aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_chan.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2012-08-14 14:53:51 +1000
committerBen Skeggs <bskeggs@redhat.com>2012-10-03 13:13:04 +1000
commit503b0f1cd66c54dd88e644fa1a521ebd764bf54e (patch)
treee22a7eaa0d517adfa4225fe7c3fdb89318020394 /drivers/gpu/drm/nouveau/nouveau_chan.c
parentdrm/nouveau: restore fifo chid information in engine error messages (diff)
downloadlinux-dev-503b0f1cd66c54dd88e644fa1a521ebd764bf54e.tar.xz
linux-dev-503b0f1cd66c54dd88e644fa1a521ebd764bf54e.zip
drm/nouveau/fifo: separate object classes for dma channels
Future code will use the object class rather than chipset checks in order to identify available channel features. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to '')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_chan.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c b/drivers/gpu/drm/nouveau/nouveau_chan.c
index 62c7edf08e5a..cf61dc0226a3 100644
--- a/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ b/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -221,7 +221,7 @@ static int
nouveau_channel_dma(struct nouveau_drm *drm, struct nouveau_cli *cli,
u32 parent, u32 handle, struct nouveau_channel **pchan)
{
- static const u16 oclasses[] = { 0x006e, 0 };
+ static const u16 oclasses[] = { 0x406e, 0x176e, 0x006e, 0x006b, 0 };
const u16 *oclass = oclasses;
struct nv_channel_dma_class args;
struct nouveau_channel *chan;
@@ -305,7 +305,8 @@ nouveau_channel_init(struct nouveau_channel *chan, u32 vram, u32 gart)
}
/* initialise dma tracking parameters */
- switch (nv_hclass(chan->object) & 0xffff) {
+ switch (nv_hclass(chan->object) & 0x00ff) {
+ case 0x006b:
case 0x006e:
chan->user_put = 0x40;
chan->user_get = 0x44;