diff options
author | Dave Airlie <airlied@redhat.com> | 2008-09-26 15:37:21 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-09-30 14:13:49 +1000 |
commit | 972f6572652bc4a2f6c44c525e5e91f2becdb62a (patch) | |
tree | 60af3dc7e8a7c0f8bef7a3927dae161093b10dbe /bsd-core/radeon_drv.c | |
parent | 89126bb58ec82511758bed36a28e698b721fb435 (diff) | |
parent | 2db8e0c8ef8c7a66460fceda129533b364f6418c (diff) |
Merge remote branch 'origin/master' into modesetting-gem
Conflicts:
libdrm/Makefile.am
libdrm/dri_bufmgr.h
linux-core/drm_irq.c
linux-core/drm_sysfs.c
linux-core/drm_ttm.c
shared-core/i915_dma.c
shared-core/i915_irq.c
shared-core/nouveau_drv.h
shared-core/radeon_cp.c
Diffstat (limited to 'bsd-core/radeon_drv.c')
-rw-r--r-- | bsd-core/radeon_drv.c | 93 |
1 files changed, 47 insertions, 46 deletions
diff --git a/bsd-core/radeon_drv.c b/bsd-core/radeon_drv.c index 0b4dba18..8ab3e995 100644 --- a/bsd-core/radeon_drv.c +++ b/bsd-core/radeon_drv.c @@ -44,44 +44,38 @@ 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->driver_features = + DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | + DRIVER_SG | DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ; + + 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; } -#ifdef __FreeBSD__ static int radeon_probe(device_t dev) { @@ -94,15 +88,31 @@ 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_NOWAIT | 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); + int ret; + + ret = drm_detach(nbdev); + + free(dev->driver, M_DRM); + + return ret; +} + 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 } }; @@ -120,12 +130,3 @@ DRIVER_MODULE(radeon, vgapci, radeon_driver, drm_devclass, 0, 0); DRIVER_MODULE(radeon, pci, radeon_driver, drm_devclass, 0, 0); #endif MODULE_DEPEND(radeon, drm, 1, 1, 1); - -#elif defined(__NetBSD__) || defined(__OpenBSD__) -#ifdef _LKM -CFDRIVER_DECL(radeon, DV_TTY, NULL); -#else -CFATTACH_DECL(radeon, sizeof(struct drm_device), drm_probe, drm_attach, - drm_detach, drm_activate); -#endif -#endif /* __FreeBSD__ */ |