diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-08-08 09:41:17 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-08-18 20:03:49 -0400 |
commit | 3d914e8357256e7e92d1b7dd2dda9cf94e39c4e8 (patch) | |
tree | 252aea0277f6713ba7b57e7e6615f599e373186b | |
parent | 45886af246d926304d5e990da63d55d9db3216c0 (diff) |
drm: hide legacy sg cleanup better from common code
I've decided that some clear markers for what's legacy dri1/non-gem
code is useful. I've opted to use the drm_legacy prefix and then hide
all the checks in that function for better readability in the common
code.
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | drivers/gpu/drm/drm_drv.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/drm_scatter.c | 10 | ||||
-rw-r--r-- | include/drm/drmP.h | 2 |
3 files changed, 11 insertions, 7 deletions
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index dddd79988ffc..743b24d7918e 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c | |||
@@ -197,11 +197,7 @@ int drm_lastclose(struct drm_device * dev) | |||
197 | 197 | ||
198 | drm_agp_clear(dev); | 198 | drm_agp_clear(dev); |
199 | 199 | ||
200 | if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && | 200 | drm_legacy_sg_cleanup(dev); |
201 | !drm_core_check_feature(dev, DRIVER_MODESET)) { | ||
202 | drm_sg_cleanup(dev->sg); | ||
203 | dev->sg = NULL; | ||
204 | } | ||
205 | 201 | ||
206 | /* Clear vma list (only built for debugging) */ | 202 | /* Clear vma list (only built for debugging) */ |
207 | list_for_each_entry_safe(vma, vma_temp, &dev->vmalist, head) { | 203 | list_for_each_entry_safe(vma, vma_temp, &dev->vmalist, head) { |
diff --git a/drivers/gpu/drm/drm_scatter.c b/drivers/gpu/drm/drm_scatter.c index a4a076ff1757..dd8a6480065c 100644 --- a/drivers/gpu/drm/drm_scatter.c +++ b/drivers/gpu/drm/drm_scatter.c | |||
@@ -46,7 +46,7 @@ static inline void *drm_vmalloc_dma(unsigned long size) | |||
46 | #endif | 46 | #endif |
47 | } | 47 | } |
48 | 48 | ||
49 | void drm_sg_cleanup(struct drm_sg_mem * entry) | 49 | static void drm_sg_cleanup(struct drm_sg_mem * entry) |
50 | { | 50 | { |
51 | struct page *page; | 51 | struct page *page; |
52 | int i; | 52 | int i; |
@@ -64,6 +64,14 @@ void drm_sg_cleanup(struct drm_sg_mem * entry) | |||
64 | kfree(entry); | 64 | kfree(entry); |
65 | } | 65 | } |
66 | 66 | ||
67 | void drm_legacy_sg_cleanup(struct drm_device *dev) | ||
68 | { | ||
69 | if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg && | ||
70 | !drm_core_check_feature(dev, DRIVER_MODESET)) { | ||
71 | drm_sg_cleanup(dev->sg); | ||
72 | dev->sg = NULL; | ||
73 | } | ||
74 | } | ||
67 | #ifdef _LP64 | 75 | #ifdef _LP64 |
68 | # define ScatterHandle(x) (unsigned int)((x >> 32) + (x & ((1L << 32) - 1))) | 76 | # define ScatterHandle(x) (unsigned int)((x >> 32) + (x & ((1L << 32) - 1))) |
69 | #else | 77 | #else |
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 813ca1d11728..10d9f83a9df0 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
@@ -1522,7 +1522,7 @@ extern int drm_vma_info(struct seq_file *m, void *data); | |||
1522 | #endif | 1522 | #endif |
1523 | 1523 | ||
1524 | /* Scatter Gather Support (drm_scatter.h) */ | 1524 | /* Scatter Gather Support (drm_scatter.h) */ |
1525 | extern void drm_sg_cleanup(struct drm_sg_mem * entry); | 1525 | extern void drm_legacy_sg_cleanup(struct drm_device *dev); |
1526 | extern int drm_sg_alloc(struct drm_device *dev, void *data, | 1526 | extern int drm_sg_alloc(struct drm_device *dev, void *data, |
1527 | struct drm_file *file_priv); | 1527 | struct drm_file *file_priv); |
1528 | extern int drm_sg_free(struct drm_device *dev, void *data, | 1528 | extern int drm_sg_free(struct drm_device *dev, void *data, |