diff options
author | Dave Airlie <airlied@starflyer.(none)> | 2005-07-10 19:27:04 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2005-07-10 19:27:04 +1000 |
commit | 836cf0465c422ee6d654060edd7c620d9cf0c09c (patch) | |
tree | 622ed9a2ca774818084ffdcfbf1622ef1735bb74 /drivers/char/drm/radeon_cp.c | |
parent | d01cff408057fa925b2f766fa1fd5a305fd1acbf (diff) | |
download | blackbird-op-linux-836cf0465c422ee6d654060edd7c620d9cf0c09c.tar.gz blackbird-op-linux-836cf0465c422ee6d654060edd7c620d9cf0c09c.zip |
drm: cleanup buffer/map code
This is a patch from DRM CVS that cleans up some code that was in CVS
that I never moved to the kernel, this patch produces the result of the
cleanups and puts it into the kernel drm.
From: Eric Anholt <anholt@freebsd.org>, Jon Smirl, Dave Airlie
Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/char/drm/radeon_cp.c')
-rw-r--r-- | drivers/char/drm/radeon_cp.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index 20bcf872b348..8255cc6fdc28 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c @@ -2048,6 +2048,27 @@ int radeon_driver_preinit(struct drm_device *dev, unsigned long flags) return ret; } +int radeon_presetup(struct drm_device *dev) +{ + int ret; + drm_local_map_t *map; + drm_radeon_private_t *dev_priv = dev->dev_private; + + ret = drm_addmap(dev, drm_get_resource_start(dev, 2), + drm_get_resource_len(dev, 2), _DRM_REGISTERS, + _DRM_READ_ONLY, &dev_priv->mmio); + if (ret != 0) + return ret; + + ret = drm_addmap(dev, drm_get_resource_start(dev, 0), + drm_get_resource_len(dev, 0), _DRM_FRAME_BUFFER, + _DRM_WRITE_COMBINING, &map); + if (ret != 0) + return ret; + + return 0; +} + int radeon_driver_postcleanup(struct drm_device *dev) { drm_radeon_private_t *dev_priv = dev->dev_private; |