aboutsummaryrefslogtreecommitdiff
path: root/bsd-core/radeon_drv.c
diff options
context:
space:
mode:
authorvehemens <vehemens@verizon.net>2008-08-29 13:18:54 -0400
committerRobert Noland <rnoland@2hip.net>2008-08-29 15:46:05 -0400
commit2649103bf9c4eb471a10800f4a3161dca6249086 (patch)
tree2c97d0cc5e4b054e2c24bd07e14a01cadc7c878c /bsd-core/radeon_drv.c
parent71f0a3e389efb6c92a84299d05beb2a1bfa53469 (diff)
[FreeBSD] Convert drm_driver to a pointer like linux.
Signed-off-by: Robert Noland <rnoland@2hip.net>
Diffstat (limited to 'bsd-core/radeon_drv.c')
-rw-r--r--bsd-core/radeon_drv.c85
1 files changed, 49 insertions, 36 deletions
diff --git a/bsd-core/radeon_drv.c b/bsd-core/radeon_drv.c
index 0b4dba18..eea04ff9 100644
--- a/bsd-core/radeon_drv.c
+++ b/bsd-core/radeon_drv.c
@@ -44,41 +44,41 @@ static drm_pci_id_list_t radeon_pciidlist[] = {
static void radeon_configure(struct drm_device *dev)
{
- dev->driver.buf_priv_size = sizeof(drm_radeon_buf_priv_t);
- dev->driver.load = radeon_driver_load;
- dev->driver.unload = radeon_driver_unload;
- dev->driver.firstopen = radeon_driver_firstopen;
- dev->driver.open = radeon_driver_open;
- dev->driver.preclose = radeon_driver_preclose;
- dev->driver.postclose = radeon_driver_postclose;
- dev->driver.lastclose = radeon_driver_lastclose;
- dev->driver.get_vblank_counter = radeon_get_vblank_counter;
- dev->driver.enable_vblank = radeon_enable_vblank;
- dev->driver.disable_vblank = radeon_disable_vblank;
- dev->driver.irq_preinstall = radeon_driver_irq_preinstall;
- dev->driver.irq_postinstall = radeon_driver_irq_postinstall;
- dev->driver.irq_uninstall = radeon_driver_irq_uninstall;
- dev->driver.irq_handler = radeon_driver_irq_handler;
- dev->driver.dma_ioctl = radeon_cp_buffers;
-
- dev->driver.ioctls = radeon_ioctls;
- dev->driver.max_ioctl = radeon_max_ioctl;
-
- dev->driver.name = DRIVER_NAME;
- dev->driver.desc = DRIVER_DESC;
- dev->driver.date = DRIVER_DATE;
- dev->driver.major = DRIVER_MAJOR;
- dev->driver.minor = DRIVER_MINOR;
- dev->driver.patchlevel = DRIVER_PATCHLEVEL;
-
- dev->driver.use_agp = 1;
- dev->driver.use_mtrr = 1;
- dev->driver.use_pci_dma = 1;
- dev->driver.use_sg = 1;
- dev->driver.use_dma = 1;
- dev->driver.use_irq = 1;
- dev->driver.use_vbl_irq = 1;
- dev->driver.use_vbl_irq2 = 1;
+ dev->driver->buf_priv_size = sizeof(drm_radeon_buf_priv_t);
+ dev->driver->load = radeon_driver_load;
+ dev->driver->unload = radeon_driver_unload;
+ dev->driver->firstopen = radeon_driver_firstopen;
+ dev->driver->open = radeon_driver_open;
+ dev->driver->preclose = radeon_driver_preclose;
+ dev->driver->postclose = radeon_driver_postclose;
+ dev->driver->lastclose = radeon_driver_lastclose;
+ dev->driver->get_vblank_counter = radeon_get_vblank_counter;
+ dev->driver->enable_vblank = radeon_enable_vblank;
+ dev->driver->disable_vblank = radeon_disable_vblank;
+ dev->driver->irq_preinstall = radeon_driver_irq_preinstall;
+ dev->driver->irq_postinstall = radeon_driver_irq_postinstall;
+ dev->driver->irq_uninstall = radeon_driver_irq_uninstall;
+ dev->driver->irq_handler = radeon_driver_irq_handler;
+ dev->driver->dma_ioctl = radeon_cp_buffers;
+
+ dev->driver->ioctls = radeon_ioctls;
+ dev->driver->max_ioctl = radeon_max_ioctl;
+
+ dev->driver->name = DRIVER_NAME;
+ dev->driver->desc = DRIVER_DESC;
+ dev->driver->date = DRIVER_DATE;
+ dev->driver->major = DRIVER_MAJOR;
+ dev->driver->minor = DRIVER_MINOR;
+ dev->driver->patchlevel = DRIVER_PATCHLEVEL;
+
+ dev->driver->use_agp = 1;
+ dev->driver->use_mtrr = 1;
+ dev->driver->use_pci_dma = 1;
+ dev->driver->use_sg = 1;
+ dev->driver->use_dma = 1;
+ dev->driver->use_irq = 1;
+ dev->driver->use_vbl_irq = 1;
+ dev->driver->use_vbl_irq2 = 1;
}
#ifdef __FreeBSD__
@@ -94,15 +94,28 @@ radeon_attach(device_t nbdev)
struct drm_device *dev = device_get_softc(nbdev);
bzero(dev, sizeof(struct drm_device));
+
+ dev->driver = malloc(sizeof(struct drm_driver_info), M_DRM, M_ZERO);
radeon_configure(dev);
+
return drm_attach(nbdev, radeon_pciidlist);
}
+static int
+radeon_detach(device_t nbdev)
+{
+ struct drm_device *dev = device_get_softc(nbdev);
+
+ free(dev->driver, M_DRM);
+
+ return drm_detach(nbdev);
+}
+
static device_method_t radeon_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, radeon_probe),
DEVMETHOD(device_attach, radeon_attach),
- DEVMETHOD(device_detach, drm_detach),
+ DEVMETHOD(device_detach, radeon_detach),
{ 0, 0 }
};