diff options
author | Dave Airlie <airlied@redhat.com> | 2010-08-26 19:09:46 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-08-26 19:09:46 -0400 |
commit | 5afda9e9a4625d771795a5f540fb202eec08a49c (patch) | |
tree | cc31c845eed19c1f2428afd93ab761cec9977248 /drivers/gpu/drm/nouveau/nouveau_gem.c | |
parent | d03330383c9255cdb184dd33594e89c3542f191b (diff) | |
parent | ab699ec64a4294f2f6ccd34b9bf8a2dcb4c4cb3c (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.c | 6 |
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 { |