Most recent kernel where this bug did not occur: Distribution: SUSE 10.1 Hardware Environment: i386 Software Environment: Problem Description: After enabling some of the debug #ifdefs in drivers/serial/8250.c and drivers/serial/8250_pnp.c in the mainline 2.6.18.1 sources I can find the following output in dmesg. This is with a Samsung P35 notebook. Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled ttyS0: autoconf (0x03f8, 0x00000000): iir=3 iir1=6 iir2=6 type=16550A serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS1: autoconf (0x02f8, 0x00000000): IER test failed (ff, ff) type=unknown ttyS2: autoconf (0x03e8, 0x00000000): IER test failed (ff, ff) type=unknown ttyS3: autoconf (0x02e8, 0x00000000): iir=3 iir1=6 iir2=6 type=16550A serial8250: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A parport: PnPBIOS parport detected. parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] lp0: using parport0 (interrupt-driven). Setup PNP port: port 3f8, mem 0x0, irq 4, type 0 ttyS0: autoconf (0x03f8, 0x00000000): iir=3 iir1=6 iir2=6 type=16550A 00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A As you can see it detects 2 serial ports: ttyS0 and ttyS3 however only ttyS0 is a valid serial port. The port at 0x02e8 is actually a irda port. The nice thing is that ttyS0 also gets autodetected twice. The first time by the 8250 module and the 2nd time by the 8250_pnp module. Later the irda driver will fail because the port is already claimed by the 8250 driver: nsc-ircc, chip->init nsc-ircc, Found chip at base=0x02e nsc-ircc, driver loaded (Dag Brattli) nsc_ircc_open(), can't get iobase of 0x2e8 nsc-ircc, Found chip at base=0x02e nsc-ircc, driver loaded (Dag Brattli) nsc_ircc_open(), can't get iobase of 0x2e8 Please tell me if you need more info or if I should test some patches. Steps to reproduce: boot....
Is this still a problem with latest kernels? Thanks.
Yes, this problem still occurs on the current kernel. This patch: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7e92b4fc345f5b6f57585fbe5ffdb0f24d7c9b26 keeps 8250 from claiming the IR device. It also gets rid of the double detection of ttyS0. Unfortunately, the patch has some serious defects as it stands (it reorders ttyS0/ttyS1 on a few machines, and it needs some module load/unload cleanup), so it will be reverted before 2.6.23. But this is still on my list of things I'd like to clean up. Someday.
It looks like there were some fixes/cleanups in this area. Bjorn, is this one done, or you have still work to do?
This is still an issue. I have not come up with a good solution yet.
Using setserial is the long documented solution - in SIR mode the tty driver needs to grab it, in FIR mode it needs its own driver. Even better someone should write code to hand it off ...