cvs commit: src/sys/bus/firewire firewire.c fwohci_pci.c src/sys/bus/isa isa_common.c isahint.c pnp.c src/sys/bus/pci pci.c pci_pcib.c pcivar.h src/sys/bus/pci/i386 pcibus.c src/sys/bus/ppbus ppbconf.c src/sys/dev/acpica5 acpi.c acpi_ec.c ...
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Oct 29 21:43:46 PDT 2005
dillon 2005/10/29 21:41:15 PDT
DragonFly src repository
Modified files:
sys/bus/firewire firewire.c fwohci_pci.c
sys/bus/isa isa_common.c isahint.c pnp.c
sys/bus/pci pci.c pci_pcib.c pcivar.h
sys/bus/pci/i386 pcibus.c
sys/bus/ppbus ppbconf.c
sys/dev/acpica5 acpi.c acpi_ec.c acpi_pci.c acpi_timer.c
sys/dev/misc/orm orm.c
sys/dev/netif/ep if_ep_isa.c
sys/dev/netif/ex if_ex_isa.c
sys/dev/sound/isa es1888.c
sys/i386/i386 nexus.c pnpbios.c
sys/kern bus_if.m subr_bus.c
sys/sys bus.h
Log:
Add another parameter to BUS_ADD_CHILD to allow children to inherit
code from grandparents.
Formalize and document the IDENTIFY mechanism and actually use it properly
to add PCI busses rather then the severe hacks that existed before.
Instead of attaching PCI busses (pcib) directly to nexus, create a pass-through
bus layer under nexus called 'legacypci' and attach the PCI busses to that.
Use the new BUS_ADD_CHILD and IVARS recursion capability to still allow
the pcib's under legacypci to get nexus generated IVARS.
NOTE ON IVARS: These can be utterly confusing because a BUS device may
manage and control the IVARS attached to its children. In addition, if the
BUS method for the device accessing the IVARs does not properly match up
with or recurse to the device that actually created the ivars, mass
confusion can result. I have attempted to document the issue but XXX it
needs some sanity check code.
Add a 'pcib_owner' global that is used to determine which of the several
possible PCI mainbus subsystems actually own the PCI mainbus. This is not
yet tied into ACPI but will be soon. No longer add legacy "pcib" busses
if it is detected that another subsystem controls the mainbus. Before
the busses were added but then simply not scanned later on, creating
confusing pcibX designations. Now the busses aren't added... legacypci
stops cold if it doesn't own the PCI mainbus. Get rid of the twisted
checks for "pci" devices that used to handle this job.
Document many aspects of the PCI code and redo some of the APIs slightly
to make them more obvious. In particular, document the odd fact that
pci_*() accessor function actually operate on a pci function code based
sub-device of the "pci" driver and call device_get_parent() to get to the
pci" driver layer. This sub layer really needs its own formal designation.
Change "pciX" attachments to "pcibY" busses. Use the secondary bus id
for 'X' and require it to be unique. Also reorder "pcibY" attachments
so the physical bus number tends to (but is not guarenteed to be) the
same 'Y' in pcibY.
Change IVARS access for bridges. Require that the device representing the
"pcib" device be passed to pcib_get/set_*() routines instead of children
of said device.
Add a function devclass_find_unit() to shortcut the more complex operation
of locating the devclass by name and then getting the device relative to
the devclass.
Add numerous bus_generic_*() BUS methods which now recurse through the
parent instead of terminate with an error.
Revision Changes Path
1.13 +4 -4 src/sys/bus/firewire/firewire.c
1.20 +6 -6 src/sys/bus/firewire/fwohci_pci.c
1.9 +2 -2 src/sys/bus/isa/isa_common.c
1.5 +1 -1 src/sys/bus/isa/isahint.c
1.8 +2 -1 src/sys/bus/isa/pnp.c
1.28 +28 -3 src/sys/bus/pci/pci.c
1.5 +62 -16 src/sys/bus/pci/pci_pcib.c
1.10 +12 -3 src/sys/bus/pci/pcivar.h
1.14 +150 -92 src/sys/bus/pci/i386/pcibus.c
1.9 +2 -2 src/sys/bus/ppbus/ppbconf.c
1.17 +7 -6 src/sys/dev/acpica5/acpi.c
1.6 +1 -1 src/sys/dev/acpica5/acpi_ec.c
1.4 +2 -3 src/sys/dev/acpica5/acpi_pci.c
1.7 +1 -1 src/sys/dev/acpica5/acpi_timer.c
1.5 +1 -1 src/sys/dev/misc/orm/orm.c
1.9 +2 -1 src/sys/dev/netif/ep/if_ep_isa.c
1.10 +2 -1 src/sys/dev/netif/ex/if_ex_isa.c
1.4 +1 -1 src/sys/dev/sound/isa/es1888.c
1.20 +10 -26 src/sys/i386/i386/nexus.c
1.4 +1 -1 src/sys/i386/i386/pnpbios.c
1.8 +6 -1 src/sys/kern/bus_if.m
1.29 +87 -12 src/sys/kern/subr_bus.c
1.18 +8 -0 src/sys/sys/bus.h
http://www.dragonflybsd.org/cvsweb/src/sys/bus/firewire/firewire.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/firewire/fwohci_pci.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/isa/isa_common.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/isa/isahint.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/isa/pnp.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pci/pci.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pci/pci_pcib.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pci/pcivar.h.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/pci/i386/pcibus.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/ppbus/ppbconf.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/acpica5/acpi.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/acpica5/acpi_ec.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/acpica5/acpi_pci.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/acpica5/acpi_timer.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/misc/orm/orm.c.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ep/if_ep_isa.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ex/if_ex_isa.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/sound/isa/es1888.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/nexus.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/pnpbios.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/bus_if.m.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/subr_bus.c.diff?r1=1.28&r2=1.29&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/bus.h.diff?r1=1.17&r2=1.18&f=u
More information about the Commits
mailing list