Skip to content

Commit

Permalink
drm: mark dma setup/teardown as legacy systems
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Daniel Vetter authored and Dave Airlie committed Aug 19, 2013
1 parent 8e194bb commit e2e99a8
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 16 deletions.
17 changes: 15 additions & 2 deletions drivers/gpu/drm/drm_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,18 @@
*
* Allocate and initialize a drm_device_dma structure.
*/
int drm_dma_setup(struct drm_device *dev)
int drm_legacy_dma_setup(struct drm_device *dev)
{
int i;

if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) ||
drm_core_check_feature(dev, DRIVER_MODESET)) {
return 0;
}

dev->buf_use = 0;
atomic_set(&dev->buf_alloc, 0);

dev->dma = kzalloc(sizeof(*dev->dma), GFP_KERNEL);
if (!dev->dma)
return -ENOMEM;
Expand All @@ -66,11 +74,16 @@ int drm_dma_setup(struct drm_device *dev)
* Free all pages associated with DMA buffers, the buffers and pages lists, and
* finally the drm_device::dma structure itself.
*/
void drm_dma_takedown(struct drm_device *dev)
void drm_legacy_dma_takedown(struct drm_device *dev)
{
struct drm_device_dma *dma = dev->dma;
int i, j;

if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA) ||
drm_core_check_feature(dev, DRIVER_MODESET)) {
return;
}

if (!dma)
return;

Expand Down
4 changes: 1 addition & 3 deletions drivers/gpu/drm/drm_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,7 @@ int drm_lastclose(struct drm_device * dev)
kfree(vma);
}

if (drm_core_check_feature(dev, DRIVER_HAVE_DMA) &&
!drm_core_check_feature(dev, DRIVER_MODESET))
drm_dma_takedown(dev);
drm_legacy_dma_takedown(dev);

dev->dev_mapping = NULL;
mutex_unlock(&dev->struct_mutex);
Expand Down
12 changes: 3 additions & 9 deletions drivers/gpu/drm/drm_fops.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,9 @@ static int drm_setup(struct drm_device * dev)
atomic_set(&dev->ioctl_count, 0);
atomic_set(&dev->vma_count, 0);

if (drm_core_check_feature(dev, DRIVER_HAVE_DMA) &&
!drm_core_check_feature(dev, DRIVER_MODESET)) {
dev->buf_use = 0;
atomic_set(&dev->buf_alloc, 0);

i = drm_dma_setup(dev);
if (i < 0)
return i;
}
i = drm_legacy_dma_setup(dev);
if (i < 0)
return i;

for (i = 0; i < ARRAY_SIZE(dev->counts); i++)
atomic_set(&dev->counts[i], 0);
Expand Down
4 changes: 2 additions & 2 deletions include/drm/drmP.h
Original file line number Diff line number Diff line change
Expand Up @@ -1374,8 +1374,8 @@ extern int drm_mapbufs(struct drm_device *dev, void *data,
struct drm_file *file_priv);

/* DMA support (drm_dma.h) */
extern int drm_dma_setup(struct drm_device *dev);
extern void drm_dma_takedown(struct drm_device *dev);
extern int drm_legacy_dma_setup(struct drm_device *dev);
extern void drm_legacy_dma_takedown(struct drm_device *dev);
extern void drm_free_buffer(struct drm_device *dev, struct drm_buf * buf);
extern void drm_core_reclaim_buffers(struct drm_device *dev,
struct drm_file *filp);
Expand Down

0 comments on commit e2e99a8

Please sign in to comment.