aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_gem.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-08-26 19:09:46 -0400
committerDave Airlie <airlied@redhat.com>2010-08-26 19:09:46 -0400
commit5afda9e9a4625d771795a5f540fb202eec08a49c (patch)
treecc31c845eed19c1f2428afd93ab761cec9977248 /drivers/gpu/drm/nouveau/nouveau_gem.c
parentd03330383c9255cdb184dd33594e89c3542f191b (diff)
parentab699ec64a4294f2f6ccd34b9bf8a2dcb4c4cb3c (diff)
Merge remote branch 'nouveau/for-airlied' of /ssd/git/drm-nouveau-next into drm-fixes
* 'nouveau/for-airlied' of /ssd/git/drm-nouveau-next: drm/nouveau: drop drm_global_mutex before sleeping in submission path drm: export drm_global_mutex for drivers to use drm/nv20: Don't use pushbuf calls on the original nv20. drm/nouveau: Fix TMDS on some DCB1.5 boards. drm/nouveau: Fix backlight control on PPC machines with an internal TMDS panel. drm/nv30: Apply modesetting to the correct slave encoder drm/nouveau: Use a helper function to match PCI device/subsystem IDs. drm/nv50: add dcb type 14 to enum to prevent compiler complaint
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_gem.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_gem.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
index 79fc5ffff226..581c67cd7b24 100644
--- a/drivers/gpu/drm/nouveau/nouveau_gem.c
+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
@@ -337,7 +337,9 @@ retry:
337 return -EINVAL; 337 return -EINVAL;
338 } 338 }
339 339
340 mutex_unlock(&drm_global_mutex);
340 ret = ttm_bo_wait_cpu(&nvbo->bo, false); 341 ret = ttm_bo_wait_cpu(&nvbo->bo, false);
342 mutex_lock(&drm_global_mutex);
341 if (ret) { 343 if (ret) {
342 NV_ERROR(dev, "fail wait_cpu\n"); 344 NV_ERROR(dev, "fail wait_cpu\n");
343 return ret; 345 return ret;
@@ -663,7 +665,7 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data,
663 push[i].length); 665 push[i].length);
664 } 666 }
665 } else 667 } else
666 if (dev_priv->card_type >= NV_20) { 668 if (dev_priv->chipset >= 0x25) {
667 ret = RING_SPACE(chan, req->nr_push * 2); 669 ret = RING_SPACE(chan, req->nr_push * 2);
668 if (ret) { 670 if (ret) {
669 NV_ERROR(dev, "cal_space: %d\n", ret); 671 NV_ERROR(dev, "cal_space: %d\n", ret);
@@ -738,7 +740,7 @@ out_next:
738 req->suffix0 = 0x00000000; 740 req->suffix0 = 0x00000000;
739 req->suffix1 = 0x00000000; 741 req->suffix1 = 0x00000000;
740 } else 742 } else
741 if (dev_priv->card_type >= NV_20) { 743 if (dev_priv->chipset >= 0x25) {
742 req->suffix0 = 0x00020000; 744 req->suffix0 = 0x00020000;
743 req->suffix1 = 0x00000000; 745 req->suffix1 = 0x00000000;
744 } else { 746 } else {