Hi all, This patch series splits the 8250 driver into a universal/legacy driver and a separate base port operations module. Legacy IRQ chaining, RSA port resource management and probe config, port storage, driver and console definition, module parameters and linkage remain in the universal/legacy driver in 8250_core.c, which is combined with 8250_pnp.c to form the 8250.ko driver binary (which retains the 8250_core module alias) The base port operations and the uart_config[] table are split into a separate source file, 8250_port.c, which is combined with 8250_dma.c to form the 8250_base.ko port operations module. The universal/legacy 8250 driver continues to support every current method of instantiating an 8250 port, including: 1. ISA ports via arch-defined SERIAL_PORT_DFNS macro 2. early_serial_setup() ports 3. userspace-defined "phantom" ports 4. "serial8250" platform devices 5. via serial8250_register_8250_port(), which includes PNP, PCI and multi-fn cards This split retains support for all kinds of legacy behavior without the maintenance burden or footprint when legacy support is not required. The legacy support limited to this universal driver: o ISA ports defined via SERIAL_PORT_DFNS macro o serial8250_set_isa_configurator() hack for Intel CE4100 support o IRQ chaining o timer-based port polling o PNP ports o probing and resource allocation for Remote Supervisor Adapter (RSA) o serial8250_register_8250_port() and its existing behavior of replacing "found" ports with new ports and restoring/re-probing old ports @ unregistration time o user-definable 8250 ports o early_serial_setup() o cooperative ttyS port sharing with sun serial drivers o all module parameters The idea behind this split is to enable further development of o a minimal, standalone 8250 platform driver (probably w/o PCI support) o standalone 8250_omap driver none of which are done ;) This also provides a basis for some kind of ttyS port sharing since the objectionable legacy behavior is isolated (because the universal/legacy driver would not participate in ttyS port sharing). NB: this series requires 'Extensible console matching & direct earlycon' series Regards, Peter Hurley (17): serial: core: Add minor field to uart_port serial: 8250: Compute ttyS index from port minor serial: 8250: Remove duplicate ->handle_irq initialization serial: 8250: Simplify capabilities reset at port unregister serial: 8250: Move ns16550a_goto_hispeed() to local header serial: 8250: Decouple core from skip_txen_test module param serial: 8250: Separate 8250 console interface serial: 8250: Separate legacy irq handling from core port operations serial: 8250: Separate port initialization serial: 8250: Encapsulate port i/o method init serial: 8250: Initialize fixed type fields when setting defaults serial: 8250: Initialize default dma handlers when setting defaults serial: 8250: Get RSA resource iff CONFIG_SERIAL_8250_RSA serial: 8250: Only get RSA resource when required serial: 8250: Decouple RSA probe serial: 8250: Declare base port operations const serial: 8250: Split base port operations from universal driver drivers/tty/serial/8250/8250.h | 32 +- drivers/tty/serial/8250/8250_core.c | 2978 ++--------------------------------- drivers/tty/serial/8250/8250_port.c | 2849 +++++++++++++++++++++++++++++++++ drivers/tty/serial/8250/Makefile | 5 +- drivers/tty/serial/serial_core.c | 1 + include/linux/serial_8250.h | 22 + include/linux/serial_core.h | 1 + 7 files changed, 3036 insertions(+), 2852 deletions(-) create mode 100644 drivers/tty/serial/8250/8250_port.c -- 2.3.0 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html