diff options
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_channel.c | 22 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_fence.c | 2 |
2 files changed, 15 insertions, 9 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_channel.c b/drivers/gpu/drm/nouveau/nouveau_channel.c index 4d2f19420922..a57a1d2f3a11 100644 --- a/drivers/gpu/drm/nouveau/nouveau_channel.c +++ b/drivers/gpu/drm/nouveau/nouveau_channel.c | |||
@@ -446,14 +446,20 @@ nouveau_ioctl_fifo_alloc(struct drm_device *dev, void *data, | |||
446 | else | 446 | else |
447 | init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_GART; | 447 | init->pushbuf_domains = NOUVEAU_GEM_DOMAIN_GART; |
448 | 448 | ||
449 | init->subchan[0].handle = NvM2MF; | 449 | if (dev_priv->card_type < NV_C0) { |
450 | if (dev_priv->card_type < NV_50) | 450 | init->subchan[0].handle = NvM2MF; |
451 | init->subchan[0].grclass = 0x0039; | 451 | if (dev_priv->card_type < NV_50) |
452 | else | 452 | init->subchan[0].grclass = 0x0039; |
453 | init->subchan[0].grclass = 0x5039; | 453 | else |
454 | init->subchan[1].handle = NvSw; | 454 | init->subchan[0].grclass = 0x5039; |
455 | init->subchan[1].grclass = NV_SW; | 455 | init->subchan[1].handle = NvSw; |
456 | init->nr_subchan = 2; | 456 | init->subchan[1].grclass = NV_SW; |
457 | init->nr_subchan = 2; | ||
458 | } else { | ||
459 | init->subchan[0].handle = 0x9039; | ||
460 | init->subchan[0].grclass = 0x9039; | ||
461 | init->nr_subchan = 1; | ||
462 | } | ||
457 | 463 | ||
458 | /* Named memory object area */ | 464 | /* Named memory object area */ |
459 | ret = drm_gem_handle_create(file_priv, chan->notifier_bo->gem, | 465 | ret = drm_gem_handle_create(file_priv, chan->notifier_bo->gem, |
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c index 88b2f29ca3e4..221b8462ea37 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c | |||
@@ -165,7 +165,7 @@ nouveau_fence_emit(struct nouveau_fence *fence) | |||
165 | if (dev_priv->card_type < NV_C0) | 165 | if (dev_priv->card_type < NV_C0) |
166 | BEGIN_RING(chan, NvSubSw, 0x0050, 1); | 166 | BEGIN_RING(chan, NvSubSw, 0x0050, 1); |
167 | else | 167 | else |
168 | BEGIN_NVC0(chan, 2, NvSubSw, 0x0050, 1); | 168 | BEGIN_NVC0(chan, 2, NvSubM2MF, 0x0050, 1); |
169 | } else { | 169 | } else { |
170 | BEGIN_RING(chan, NvSubSw, 0x0150, 1); | 170 | BEGIN_RING(chan, NvSubSw, 0x0150, 1); |
171 | } | 171 | } |