cvs commit: src/sys/dev/uart uart.h uart_bus.h uart_bus_acpi.c
uart_bus_ebus.c uart_bus_isa.c uart_bus_pccard.c uart_bus_pci.c
uart_bus_puc.c uart_core.c uart_cpu_alpha.c uart_cpu_amd64.c...
Marcel Moolenaar
marcel at FreeBSD.org
Thu Sep 25 22:14:58 PDT 2003
marcel 2003/09/25 22:14:56 PDT
FreeBSD src repository
Modified files:
sys/dev/uart uart.h uart_bus.h uart_bus_acpi.c
uart_bus_ebus.c uart_bus_isa.c
uart_bus_pccard.c uart_bus_pci.c
uart_bus_puc.c uart_core.c
uart_cpu_alpha.c uart_cpu_amd64.c
uart_cpu_i386.c uart_cpu_ia64.c
uart_cpu_pc98.c uart_cpu_sparc64.c
uart_dev_sab82532.c uart_dev_z8530.c
Log:
Revert the introduction of iobase in struct uart_bas. Both the SAB82532
and the Z8530 drivers used the I/O address as a quick and dirty way to
determine which channel they operated on, but formalizing this by
introducing iobase is not a solution. How for example would a driver
know which channel it controls for a multi-channel UART that only has a
single I/O range?
Instead, add an explicit field, called chan, to struct uart_bas that
holds the channel within a device, or 0 otherwise. The chan field is
initialized both by the system device probing (i.e. a system console)
or it is passed down to uart_bus_probe() by any of the bus front-ends.
As such, it impacts all platforms and bus drivers and makes it a rather
large commit.
Remove the use of iobase in uart_cpu_eqres() for pc98. It is expected
that platforms have the capability to compare tag and handle pairs for
equality; as to determine whether two pairs access the same device or
not. The use of iobase for pc98 makes it impossible to formalize this
and turn it into a real newbus function later. This commit reverts
uart_cpu_eqres() for pc98 to an unimplemented function. It has to be
reimplemented using only the tag and handle fields in struct uart_bas.
Rewrite the SAB82532 and Z8530 drivers to use the chan field in struct
uart_bas. Remove the IS_CHANNEL_A and IS_CHANNEL_B macros. We don't
need to abstract anything anymore.
Discussed with: nyan
Tested on: i386, ia64, sparc64
Revision Changes Path
1.3 +2 -2 src/sys/dev/uart/uart.h
1.4 +1 -1 src/sys/dev/uart/uart_bus.h
1.2 +1 -1 src/sys/dev/uart/uart_bus_acpi.c
1.2 +2 -2 src/sys/dev/uart/uart_bus_ebus.c
1.2 +2 -2 src/sys/dev/uart/uart_bus_isa.c
1.5 +1 -1 src/sys/dev/uart/uart_bus_pccard.c
1.2 +1 -1 src/sys/dev/uart/uart_bus_pci.c
1.2 +7 -2 src/sys/dev/uart/uart_bus_puc.c
1.7 +4 -5 src/sys/dev/uart/uart_core.c
1.6 +2 -2 src/sys/dev/uart/uart_cpu_alpha.c
1.6 +1 -1 src/sys/dev/uart/uart_cpu_amd64.c
1.6 +1 -1 src/sys/dev/uart/uart_cpu_i386.c
1.6 +7 -6 src/sys/dev/uart/uart_cpu_ia64.c
1.9 +2 -2 src/sys/dev/uart/uart_cpu_pc98.c
1.5 +9 -8 src/sys/dev/uart/uart_cpu_sparc64.c
1.5 +42 -14 src/sys/dev/uart/uart_dev_sab82532.c
1.6 +14 -10 src/sys/dev/uart/uart_dev_z8530.c
More information about the cvs-src
mailing list