Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm: mark dma setup/teardown as legacy systems

And hide the checks a bit better. This was already disallowed for
modesetting drivers, so no functinal change here.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>

authored by

Daniel Vetter and committed by
Dave Airlie
e2e99a82 8e194bbf

+21 -16
+15 -2
drivers/gpu/drm/drm_dma.c
··· 44 44 * 45 45 * Allocate and initialize a drm_device_dma structure. 46 46 */ 47 - int drm_dma_setup(struct drm_device *dev) 47 + int drm_legacy_dma_setup(struct drm_device *dev) 48 48 { 49 49 int i; 50 + 51 + if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || 52 + drm_core_check_feature(dev, DRIVER_MODESET)) { 53 + return 0; 54 + } 55 + 56 + dev->buf_use = 0; 57 + atomic_set(&dev->buf_alloc, 0); 50 58 51 59 dev->dma = kzalloc(sizeof(*dev->dma), GFP_KERNEL); 52 60 if (!dev->dma) ··· 74 66 * Free all pages associated with DMA buffers, the buffers and pages lists, and 75 67 * finally the drm_device::dma structure itself. 76 68 */ 77 - void drm_dma_takedown(struct drm_device *dev) 69 + void drm_legacy_dma_takedown(struct drm_device *dev) 78 70 { 79 71 struct drm_device_dma *dma = dev->dma; 80 72 int i, j; 73 + 74 + if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) || 75 + drm_core_check_feature(dev, DRIVER_MODESET)) { 76 + return; 77 + } 81 78 82 79 if (!dma) 83 80 return;
+1 -3
drivers/gpu/drm/drm_drv.c
··· 205 205 kfree(vma); 206 206 } 207 207 208 - if (drm_core_check_feature(dev, DRIVER_HAVE_DMA) && 209 - !drm_core_check_feature(dev, DRIVER_MODESET)) 210 - drm_dma_takedown(dev); 208 + drm_legacy_dma_takedown(dev); 211 209 212 210 dev->dev_mapping = NULL; 213 211 mutex_unlock(&dev->struct_mutex);
+3 -9
drivers/gpu/drm/drm_fops.c
··· 60 60 atomic_set(&dev->ioctl_count, 0); 61 61 atomic_set(&dev->vma_count, 0); 62 62 63 - if (drm_core_check_feature(dev, DRIVER_HAVE_DMA) && 64 - !drm_core_check_feature(dev, DRIVER_MODESET)) { 65 - dev->buf_use = 0; 66 - atomic_set(&dev->buf_alloc, 0); 67 - 68 - i = drm_dma_setup(dev); 69 - if (i < 0) 70 - return i; 71 - } 63 + i = drm_legacy_dma_setup(dev); 64 + if (i < 0) 65 + return i; 72 66 73 67 for (i = 0; i < ARRAY_SIZE(dev->counts); i++) 74 68 atomic_set(&dev->counts[i], 0);
+2 -2
include/drm/drmP.h
··· 1374 1374 struct drm_file *file_priv); 1375 1375 1376 1376 /* DMA support (drm_dma.h) */ 1377 - extern int drm_dma_setup(struct drm_device *dev); 1378 - extern void drm_dma_takedown(struct drm_device *dev); 1377 + extern int drm_legacy_dma_setup(struct drm_device *dev); 1378 + extern void drm_legacy_dma_takedown(struct drm_device *dev); 1379 1379 extern void drm_free_buffer(struct drm_device *dev, struct drm_buf * buf); 1380 1380 extern void drm_core_reclaim_buffers(struct drm_device *dev, 1381 1381 struct drm_file *filp);