diff options
author | Eric Anholt <anholt@freebsd.org> | 2005-08-05 03:50:23 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2005-08-05 03:50:23 +0000 |
commit | c789ea1521ac9e935f2a1c6c043619d89bae9c16 (patch) | |
tree | bb8bcecf000f78f71db8dc70484d7ea82cc0b260 /shared-core/mga_dma.c | |
parent | 143622a987745ca2084f7a188e9993ffd5f28fe3 (diff) |
Rename the driver hooks in the DRM to something a little more
understandable: preinit -> load postinit -> (removed) presetup ->
firstopen postsetup -> (removed) open_helper -> open prerelease ->
preclose free_filp_priv -> postclose pretakedown -> lastclose
postcleanup -> unload release -> reclaim_buffers_locked version ->
(removed)
postinit and version were replaced with generic code in the Linux DRM
(drivers now set their version numbers and description in the driver
structure, like on BSD). postsetup wasn't used at all. Fixes the savage
hooks for initializing and tearing down mappings at the right times.
Testing involved at least starting X, running glxgears, killing
glxgears, exiting X, and repeating.
Tested on: FreeBSD (g200, g400, r200, r128) Linux (r200, savage4)
Diffstat (limited to 'shared-core/mga_dma.c')
-rw-r--r-- | shared-core/mga_dma.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/shared-core/mga_dma.c b/shared-core/mga_dma.c index f0404cc0..31df5d6e 100644 --- a/shared-core/mga_dma.c +++ b/shared-core/mga_dma.c @@ -391,7 +391,7 @@ int mga_freelist_put(drm_device_t * dev, drm_buf_t * buf) * DMA initialization, cleanup */ -int mga_driver_preinit(drm_device_t *dev, unsigned long flags) +int mga_driver_load(drm_device_t *dev, unsigned long flags) { drm_mga_private_t * dev_priv; @@ -405,6 +405,14 @@ int mga_driver_preinit(drm_device_t *dev, unsigned long flags) dev_priv->usec_timeout = MGA_DEFAULT_USEC_TIMEOUT; dev_priv->chipset = flags; + dev_priv->mmio_base = drm_get_resource_start(dev, 1); + dev_priv->mmio_size = drm_get_resource_len(dev, 1); + + dev->counters += 3; + dev->types[6] = _DRM_STAT_IRQ; + dev->types[7] = _DRM_STAT_PRIMARY; + dev->types[8] = _DRM_STAT_SECONDARY; + return 0; } @@ -437,7 +445,6 @@ static int mga_do_agp_dma_bootstrap(drm_device_t * dev, drm_agp_mode_t mode; drm_agp_info_t info; - /* Acquire AGP. */ err = drm_agp_acquire(dev); if (err) { @@ -1100,7 +1107,7 @@ int mga_dma_buffers(DRM_IOCTL_ARGS) /** * Called just before the module is unloaded. */ -int mga_driver_postcleanup(drm_device_t * dev) +int mga_driver_unload(drm_device_t * dev) { drm_free(dev->dev_private, sizeof(drm_mga_private_t), DRM_MEM_DRIVER); dev->dev_private = NULL; @@ -1111,7 +1118,7 @@ int mga_driver_postcleanup(drm_device_t * dev) /** * Called when the last opener of the device is closed. */ -void mga_driver_pretakedown(drm_device_t * dev) +void mga_driver_lastclose(drm_device_t * dev) { mga_do_cleanup_dma(dev); } |