diff options
-rw-r--r-- | sys/dev/agp/agp_i810.c | 40 | ||||
-rw-r--r-- | sys/dev/drm/drm_agpsupport.c | 5 | ||||
-rw-r--r-- | sys/dev/drm/drm_drv.c | 10 | ||||
-rw-r--r-- | sys/dev/drm/i915_drv.c | 8 | ||||
-rw-r--r-- | sys/dev/drm/mach64_drv.c | 4 | ||||
-rw-r--r-- | sys/dev/drm/mga_drv.c | 15 | ||||
-rw-r--r-- | sys/dev/drm/r128_drv.c | 4 | ||||
-rw-r--r-- | sys/dev/drm/radeon_drv.c | 4 | ||||
-rw-r--r-- | sys/dev/drm/savage_drv.c | 4 | ||||
-rw-r--r-- | sys/dev/drm/sis_drv.c | 4 | ||||
-rw-r--r-- | sys/dev/drm/tdfx_drv.c | 4 | ||||
-rw-r--r-- | sys/pci/agp_i810.c | 40 | ||||
-rw-r--r-- | sys/sys/param.h | 2 |
13 files changed, 68 insertions, 76 deletions
diff --git a/sys/dev/agp/agp_i810.c b/sys/dev/agp/agp_i810.c index 25717ce..1aa187b 100644 --- a/sys/dev/agp/agp_i810.c +++ b/sys/dev/agp/agp_i810.c @@ -178,7 +178,8 @@ agp_i810_find_bridge(device_t dev) devid -= 0x20000; break; }; - if (device_get_children(device_get_parent(dev), &children, &nchildren)) + if (device_get_children(device_get_parent(device_get_parent(dev)), + &children, &nchildren)) return 0; for (i = 0; i < nchildren; i++) { @@ -261,7 +262,6 @@ agp_i810_probe(device_t dev) return ENXIO; } - device_verbose(dev); device_set_desc(dev, desc); return BUS_PROBE_DEFAULT; } @@ -452,11 +452,7 @@ agp_i810_attach(device_t dev) gatt->ag_physical = pgtblctl & ~1; } - /* Add a device for the drm to attach to */ - if (!device_add_child( dev, "drmsub", -1 )) - printf("out of memory...\n"); - - return bus_generic_attach(dev); + return 0; } static int @@ -464,7 +460,6 @@ agp_i810_detach(device_t dev) { struct agp_i810_softc *sc = device_get_softc(dev); int error; - device_t child; error = agp_generic_detach(dev); if (error) @@ -498,10 +493,6 @@ agp_i810_detach(device_t dev) sc->regs); } - child = device_find_child( dev, "drmsub", 0 ); - if (child) - device_delete_child( dev, child ); - return 0; } @@ -806,26 +797,11 @@ agp_i810_unbind_memory(device_t dev, struct agp_memory *mem) return 0; } -static int -agp_i810_print_child(device_t dev, device_t child) -{ - int retval = 0; - - retval += bus_print_child_header(dev, child); - retval += printf(": (child of agp_i810.c)"); - retval += bus_print_child_footer(dev, child); - - return retval; -} - static device_method_t agp_i810_methods[] = { /* Device interface */ DEVMETHOD(device_probe, agp_i810_probe), DEVMETHOD(device_attach, agp_i810_attach), DEVMETHOD(device_detach, agp_i810_detach), - DEVMETHOD(device_shutdown, bus_generic_shutdown), - DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), /* AGP interface */ DEVMETHOD(agp_get_aperture, agp_i810_get_aperture), @@ -839,14 +815,6 @@ static device_method_t agp_i810_methods[] = { DEVMETHOD(agp_bind_memory, agp_i810_bind_memory), DEVMETHOD(agp_unbind_memory, agp_i810_unbind_memory), - /* bus methods */ - DEVMETHOD(bus_print_child, agp_i810_print_child), - DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), - DEVMETHOD(bus_release_resource, bus_generic_release_resource), - DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), - DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), - DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), - DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), { 0, 0 } }; @@ -858,6 +826,6 @@ static driver_t agp_i810_driver = { static devclass_t agp_devclass; -DRIVER_MODULE(agp_i810, pci, agp_i810_driver, agp_devclass, 0, 0); +DRIVER_MODULE(agp_i810, vgapci, agp_i810_driver, agp_devclass, 0, 0); MODULE_DEPEND(agp_i810, agp, 1, 1, 1); MODULE_DEPEND(agp_i810, pci, 1, 1, 1); diff --git a/sys/dev/drm/drm_agpsupport.c b/sys/dev/drm/drm_agpsupport.c index 91ead3b..19785ea 100644 --- a/sys/dev/drm/drm_agpsupport.c +++ b/sys/dev/drm/drm_agpsupport.c @@ -56,6 +56,10 @@ drm_device_find_capability(drm_device_t *dev, int cap) } #ifdef __FreeBSD__ +#if __FreeBSD_version >= 700010 + + return (pci_find_extcap(dev->device, cap, NULL) == 0); +#else /* Code taken from agp.c. IWBNI that was a public interface. */ u_int32_t status; u_int8_t ptr, next; @@ -84,6 +88,7 @@ drm_device_find_capability(drm_device_t *dev, int cap) } return 0; +#endif #else /* XXX: fill me in for non-FreeBSD */ return 1; diff --git a/sys/dev/drm/drm_drv.c b/sys/dev/drm/drm_drv.c index eb9c644..19c92b2 100644 --- a/sys/dev/drm/drm_drv.c +++ b/sys/dev/drm/drm_drv.c @@ -153,6 +153,7 @@ int drm_probe(device_t dev, drm_pci_id_list_t *idlist) { drm_pci_id_list_t *id_entry; int vendor, device; +#if __FreeBSD_version < 700010 device_t realdev; if (!strcmp(device_get_name(dev), "drmsub")) @@ -161,6 +162,10 @@ int drm_probe(device_t dev, drm_pci_id_list_t *idlist) realdev = dev; vendor = pci_get_vendor(realdev); device = pci_get_device(realdev); +#else + vendor = pci_get_vendor(dev); + device = pci_get_device(dev); +#endif id_entry = drm_find_description(vendor, device, idlist); if (id_entry != NULL) { @@ -180,11 +185,14 @@ int drm_attach(device_t nbdev, drm_pci_id_list_t *idlist) unit = device_get_unit(nbdev); dev = device_get_softc(nbdev); +#if __FreeBSD_version < 700010 if (!strcmp(device_get_name(nbdev), "drmsub")) dev->device = device_get_parent(nbdev); else dev->device = nbdev; - +#else + dev->device = nbdev; +#endif dev->devnode = make_dev(&drm_cdevsw, unit, DRM_DEV_UID, diff --git a/sys/dev/drm/i915_drv.c b/sys/dev/drm/i915_drv.c index f2ab394..138af37 100644 --- a/sys/dev/drm/i915_drv.c +++ b/sys/dev/drm/i915_drv.c @@ -98,13 +98,21 @@ static device_method_t i915_methods[] = { }; static driver_t i915_driver = { +#if __FreeBSD_version >= 700010 + "drm", +#else "drmsub", +#endif i915_methods, sizeof(drm_device_t) }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(i915, vgapci, i915_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(i915, agp, i915_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(i915, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/dev/drm/mach64_drv.c b/sys/dev/drm/mach64_drv.c index 36fe0ae..8ba4a21 100644 --- a/sys/dev/drm/mach64_drv.c +++ b/sys/dev/drm/mach64_drv.c @@ -109,7 +109,11 @@ static driver_t mach64_driver = { }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(mach64, vgapci, mach64_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(mach64, pci, mach64_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(mach64, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/dev/drm/mga_drv.c b/sys/dev/drm/mga_drv.c index 6df2434..7250043 100644 --- a/sys/dev/drm/mga_drv.c +++ b/sys/dev/drm/mga_drv.c @@ -64,6 +64,8 @@ static drm_pci_id_list_t mga_pciidlist[] = { */ static int mga_driver_device_is_agp(drm_device_t * dev) { + device_t bus; + /* There are PCI versions of the G450. These cards have the * same PCI ID as the AGP G450, but have an additional PCI-to-PCI * bridge chip. We detect these cards, which are not currently @@ -72,9 +74,14 @@ static int mga_driver_device_is_agp(drm_device_t * dev) * device is 0x0021 (HB6 Universal PCI-PCI bridge), we reject the * device. */ +#if __FreeBSD_version >= 700010 + bus = device_get_parent(device_get_parent(dev->device)); +#else + bus = device_get_parent(dev->device); +#endif if (pci_get_device(dev->device) == 0x0525 && - pci_get_vendor(device_get_parent(dev->device)) == 0x3388 && - pci_get_device(device_get_parent(dev->device)) == 0x0021) + pci_get_vendor(bus) == 0x3388 && + pci_get_device(bus) == 0x0021) return 0; else return 2; @@ -148,7 +155,11 @@ static driver_t mga_driver = { }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(mga, vgapci, mga_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(mga, pci, mga_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(mga, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/dev/drm/r128_drv.c b/sys/dev/drm/r128_drv.c index e79dcbe..71b4259 100644 --- a/sys/dev/drm/r128_drv.c +++ b/sys/dev/drm/r128_drv.c @@ -109,7 +109,11 @@ static driver_t r128_driver = { }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(r128, vgapci, r128_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(r128, pci, r128_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(r128, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/dev/drm/radeon_drv.c b/sys/dev/drm/radeon_drv.c index 8ac798ea..af12d3d 100644 --- a/sys/dev/drm/radeon_drv.c +++ b/sys/dev/drm/radeon_drv.c @@ -114,7 +114,11 @@ static driver_t radeon_driver = { }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(radeon, vgapci, radeon_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(radeon, pci, radeon_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(radeon, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/dev/drm/savage_drv.c b/sys/dev/drm/savage_drv.c index 98a8e91..1d046c4 100644 --- a/sys/dev/drm/savage_drv.c +++ b/sys/dev/drm/savage_drv.c @@ -99,7 +99,11 @@ static driver_t savage_driver = { }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(savage, vgapci, savage_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(savage, pci, savage_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(savage, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/dev/drm/sis_drv.c b/sys/dev/drm/sis_drv.c index 5c7a161..04d1451 100644 --- a/sys/dev/drm/sis_drv.c +++ b/sys/dev/drm/sis_drv.c @@ -92,7 +92,11 @@ static driver_t sis_driver = { }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(sisdrm, vgapci, sis_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(sisdrm, pci, sis_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(sisdrm, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/dev/drm/tdfx_drv.c b/sys/dev/drm/tdfx_drv.c index c193ecc..87ecf3f 100644 --- a/sys/dev/drm/tdfx_drv.c +++ b/sys/dev/drm/tdfx_drv.c @@ -93,7 +93,11 @@ static driver_t tdfx_driver = { }; extern devclass_t drm_devclass; +#if __FreeBSD_version >= 700010 +DRIVER_MODULE(tdfx, vgapci, tdfx_driver, drm_devclass, 0, 0); +#else DRIVER_MODULE(tdfx, pci, tdfx_driver, drm_devclass, 0, 0); +#endif MODULE_DEPEND(tdfx, drm, 1, 1, 1); #elif defined(__NetBSD__) || defined(__OpenBSD__) diff --git a/sys/pci/agp_i810.c b/sys/pci/agp_i810.c index 25717ce..1aa187b 100644 --- a/sys/pci/agp_i810.c +++ b/sys/pci/agp_i810.c @@ -178,7 +178,8 @@ agp_i810_find_bridge(device_t dev) devid -= 0x20000; break; }; - if (device_get_children(device_get_parent(dev), &children, &nchildren)) + if (device_get_children(device_get_parent(device_get_parent(dev)), + &children, &nchildren)) return 0; for (i = 0; i < nchildren; i++) { @@ -261,7 +262,6 @@ agp_i810_probe(device_t dev) return ENXIO; } - device_verbose(dev); device_set_desc(dev, desc); return BUS_PROBE_DEFAULT; } @@ -452,11 +452,7 @@ agp_i810_attach(device_t dev) gatt->ag_physical = pgtblctl & ~1; } - /* Add a device for the drm to attach to */ - if (!device_add_child( dev, "drmsub", -1 )) - printf("out of memory...\n"); - - return bus_generic_attach(dev); + return 0; } static int @@ -464,7 +460,6 @@ agp_i810_detach(device_t dev) { struct agp_i810_softc *sc = device_get_softc(dev); int error; - device_t child; error = agp_generic_detach(dev); if (error) @@ -498,10 +493,6 @@ agp_i810_detach(device_t dev) sc->regs); } - child = device_find_child( dev, "drmsub", 0 ); - if (child) - device_delete_child( dev, child ); - return 0; } @@ -806,26 +797,11 @@ agp_i810_unbind_memory(device_t dev, struct agp_memory *mem) return 0; } -static int -agp_i810_print_child(device_t dev, device_t child) -{ - int retval = 0; - - retval += bus_print_child_header(dev, child); - retval += printf(": (child of agp_i810.c)"); - retval += bus_print_child_footer(dev, child); - - return retval; -} - static device_method_t agp_i810_methods[] = { /* Device interface */ DEVMETHOD(device_probe, agp_i810_probe), DEVMETHOD(device_attach, agp_i810_attach), DEVMETHOD(device_detach, agp_i810_detach), - DEVMETHOD(device_shutdown, bus_generic_shutdown), - DEVMETHOD(device_suspend, bus_generic_suspend), - DEVMETHOD(device_resume, bus_generic_resume), /* AGP interface */ DEVMETHOD(agp_get_aperture, agp_i810_get_aperture), @@ -839,14 +815,6 @@ static device_method_t agp_i810_methods[] = { DEVMETHOD(agp_bind_memory, agp_i810_bind_memory), DEVMETHOD(agp_unbind_memory, agp_i810_unbind_memory), - /* bus methods */ - DEVMETHOD(bus_print_child, agp_i810_print_child), - DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), - DEVMETHOD(bus_release_resource, bus_generic_release_resource), - DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), - DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), - DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), - DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), { 0, 0 } }; @@ -858,6 +826,6 @@ static driver_t agp_i810_driver = { static devclass_t agp_devclass; -DRIVER_MODULE(agp_i810, pci, agp_i810_driver, agp_devclass, 0, 0); +DRIVER_MODULE(agp_i810, vgapci, agp_i810_driver, agp_devclass, 0, 0); MODULE_DEPEND(agp_i810, agp, 1, 1, 1); MODULE_DEPEND(agp_i810, pci, 1, 1, 1); diff --git a/sys/sys/param.h b/sys/sys/param.h index becb9a5..a7e8067 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -57,7 +57,7 @@ * is created, otherwise 1. */ #undef __FreeBSD_version -#define __FreeBSD_version 700009 /* Master, propagated to newvers */ +#define __FreeBSD_version 700010 /* Master, propagated to newvers */ #ifndef LOCORE #include <sys/types.h> |