* PROBLEM: additional serial ports on MS9830 board do not work (IRQ problems)
@ 2010-09-05 18:09 Jan Kandziora
2010-09-05 22:35 ` Alan Cox
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kandziora @ 2010-09-05 18:09 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 2869 bytes --]
Hello,
Summary: additional serial ports on MS9830 board do not work
Keywords: serial
Kernel version: 2.6.35.4
I have problems with the IRQs of a MS9830 Mini ITX board. The board has 1
serial port on a DB9 connector and 4 additional ones on internal connectors,
which can also be powered. The computer has a touchscreen controller
connected to one of those internal ports.
The internal ports seem to be special as they don't work correctly. Depending
on BIOS settings, I either don't get any IRQs from them or I get IRQs but the
serial driver doesn't claim them.
To make the bug hunt simpler, I disabled all ports but one of the internal
ones, which I've set to 0x3F8/IRQ4. Then I open the port with "od /dev/ttyS0"
and touch the screen. After some seconds I get
<3>irq 4: nobody cared (try booting with the "irqpoll" option)
<4>Pid: 3923, comm: exe Not tainted 2.6.35.4 #1
<4>Call Trace:
<4> [<c103a950>] __report_bad_irq+0x2e/0x6f
<4> [<c103aa81>] note_interrupt+0xf0/0x147
<4> [<c103b042>] handle_level_irq+0x6d/0x99
<4> [<c1003b32>] handle_irq+0x1a/0x20
<4> [<c1003883>] do_IRQ+0x33/0x75
<4> [<c1002b69>] common_interrupt+0x29/0x30
<4> [<c101d8c8>] ? __do_softirq+0x34/0xca
<4> [<c101d983>] do_softirq+0x25/0x2a
<4> [<c101da43>] irq_exit+0x28/0x57
<4> [<c10038b0>] do_IRQ+0x60/0x75
<4> [<c1002b69>] common_interrupt+0x29/0x30
<4> [<c103007b>] ? timecompare_offset+0x9c/0x2c6
<4> [<c103a3ec>] ? __setup_irq+0x1d8/0x259
<4> [<c103a510>] request_threaded_irq+0xa3/0xd0
<4> [<c119f173>] ? serial8250_interrupt+0x0/0xb2
<4> [<c119ec07>] serial8250_startup+0x3f5/0x53d
<4> [<c119bfa9>] uart_startup+0x6e/0x101
<4> [<c119ca89>] uart_open+0xff/0x2ac
<4> [<c114fee7>] ? tty_init_dev+0xb7/0xf0
<4> [<c11501ab>] tty_open+0x28b/0x354
<4> [<c106336e>] chrdev_open+0xc0/0xd7
<4> [<c1060141>] __dentry_open+0xd1/0x1a7
<4> [<c10602ad>] nameidata_to_filp+0x29/0x3d
<4> [<c10632ae>] ? chrdev_open+0x0/0xd7
<4> [<c1068a92>] do_last+0x3d1/0x4d1
<4> [<c106a13f>] do_filp_open+0x17c/0x41e
<4> [<c10124c0>] ? do_page_fault+0x2a1/0x2cf
<4> [<c105ff43>] do_sys_open+0x48/0x116
<4> [<c1060053>] sys_open+0x1e/0x26
<4> [<c1002650>] sysenter_do_call+0x12/0x26
<3>handlers:
<3>[<c119f173>] (serial8250_interrupt+0x0/0xb2)
<0>Disabling IRQ #4
<4>ttyS0: 1 input overrun(s)
<6>usb 4-1: new full speed USB device using uhci_hcd and address 2
<4>ttyS0: 10 input overrun(s)
in dmesg and some data from the touch controller. But it's very jumpy without
interrupts, hardly useable.
I tried the suggested option "irqpoll", but then the computer just freezes
when I do "od /dev/ttyS0" and touch the screen. No kernel panic, just a hard
freeze. I tried "acpi=noirq", "acpi=off" and disabling the APIC in the BIOS
setup, too. None of these made the serial irq work.
Can you give me any useful pointers what to try next? Kernel configuration is
attached.
Kind regards
Jan
[-- Attachment #2: config.gz --]
[-- Type: application/x-gzip, Size: 12780 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: PROBLEM: additional serial ports on MS9830 board do not work (IRQ problems)
2010-09-05 18:09 PROBLEM: additional serial ports on MS9830 board do not work (IRQ problems) Jan Kandziora
@ 2010-09-05 22:35 ` Alan Cox
2010-09-06 21:28 ` Jan Kandziora
0 siblings, 1 reply; 3+ messages in thread
From: Alan Cox @ 2010-09-05 22:35 UTC (permalink / raw)
To: Jan Kandziora; +Cc: linux-kernel
> I tried the suggested option "irqpoll", but then the computer just freezes
> when I do "od /dev/ttyS0" and touch the screen. No kernel panic, just a hard
> freeze. I tried "acpi=noirq", "acpi=off" and disabling the APIC in the BIOS
> setup, too. None of these made the serial irq work.
I suspect you need a BIOS which has correct tables for IRQ routing.
> Can you give me any useful pointers what to try next? Kernel configuration is
> attached.
Vendor for BIOS update would be the obvious starting point.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: PROBLEM: additional serial ports on MS9830 board do not work (IRQ problems)
2010-09-05 22:35 ` Alan Cox
@ 2010-09-06 21:28 ` Jan Kandziora
0 siblings, 0 replies; 3+ messages in thread
From: Jan Kandziora @ 2010-09-06 21:28 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-kernel
Am Montag, 6. September 2010 schrieb Alan Cox:
>
> I suspect you need a BIOS which has correct tables for IRQ routing.
>
> > Can you give me any useful pointers what to try next? Kernel
> > configuration is attached.
>
> Vendor for BIOS update would be the obvious starting point.
>
Ok, done. Now I have V3.2 instead of V3.0 and things have changed some way: if
I enable only the first of the internal ports as 0x3f8/4, no tty shows up at
all. If I enable the DB9 port as 0x2f8/3 and the first internal port as
0x3f8/4, only the DB9 port shows up as ttyS1. Other permutations bring other
oddities with some enabled ttys showing up, some not. (And the BIOS update
broke LVDS. Hardware vendors make me sick...)
Aside from that, I noticed no difference. I filed a bug report at the
manufacturer of that POS PC the board is inside but I doubt there will be any
reaction, at least not in time.
Is there some tweaking I can try from within Linux? Some things I tried are:
==================
If I enable the DB9-Port as 0x3f8/4 and the first of the internal ports as
0x3e8/11, I get the following:
<6>serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
<6>00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>00:08: ttyS2 at I/O 0x3e8 (irq = 11) is a 16550A
No other tty messages. I can receive is some data from ttyS2, but it is
broken. At the same time ttyS0, the DB9 port, works without problems. That's
the same as before the BIOS update.
==================
If I enable the DB9-Port as 0x3f8/4 and the first of the internal ports as
0x3e8/4, I get the following:
<6>serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
<6>00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>00:08: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
and later, when /dev/ttyS2 is accessed, again:
<3>irq 4: nobody cared (try booting with the "irqpoll" option)
<4>Pid: 3798, comm: X Not tainted 2.6.35.4 #1
<4>Call Trace:
<4> [<c103a950>] __report_bad_irq+0x2e/0x6f
<4> [<c103aa81>] note_interrupt+0xf0/0x147
<4> [<c103b042>] handle_level_irq+0x6d/0x99
<4> [<c1003b32>] handle_irq+0x1a/0x20
<4> [<c1003883>] do_IRQ+0x33/0x75
<4> [<c1002b69>] common_interrupt+0x29/0x30
<4> [<c101d8c8>] ? __do_softirq+0x34/0xca
<4> [<c101d983>] do_softirq+0x25/0x2a
<4> [<c101da43>] irq_exit+0x28/0x57
<4> [<c10038b0>] do_IRQ+0x60/0x75
<4> [<c1002b69>] common_interrupt+0x29/0x30
<4> [<c103007b>] ? timecompare_offset+0x9c/0x2c6
<4> [<c103a3ec>] ? __setup_irq+0x1d8/0x259
<4> [<c103a510>] request_threaded_irq+0xa3/0xd0
<4> [<c119f173>] ? serial8250_interrupt+0x0/0xb2
<4> [<c119ec07>] serial8250_startup+0x3f5/0x53d
<4> [<c119bfa9>] uart_startup+0x6e/0x101
<4> [<c119ca89>] uart_open+0xff/0x2ac
<4> [<c114fee7>] ? tty_init_dev+0xb7/0xf0
<4> [<c11501ab>] tty_open+0x28b/0x354
<4> [<c106336e>] chrdev_open+0xc0/0xd7
<4> [<c1060141>] __dentry_open+0xd1/0x1a7
<4> [<c10602ad>] nameidata_to_filp+0x29/0x3d
<4> [<c10632ae>] ? chrdev_open+0x0/0xd7
<4> [<c1068a92>] do_last+0x3d1/0x4d1
<4> [<c106a34f>] do_filp_open+0x38c/0x41e
<4> [<c10124c0>] ? do_page_fault+0x2a1/0x2cf
<4> [<c105ff43>] do_sys_open+0x48/0x116
<4> [<c1060053>] sys_open+0x1e/0x26
<4> [<c1002650>] sysenter_do_call+0x12/0x26
<4> [<c1300000>] ? dump_stack+0x40/0x60
<3>handlers:
<3>[<c119f173>] (serial8250_interrupt+0x0/0xb2)
<0>Disabling IRQ #4
==================
If I enable the DB9-Port as 0x3f8/4 and the second of the internal ports as
0x2f8/3, I get the following:
<6>serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
<6>00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
<6>00:08: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
and later, when /dev/ttyS1 is accessed, and I touch the screen:
<4>ttyS1: 1 input overrun(s)
and no data at all.
Kind regards
Jan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-09-06 21:28 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-05 18:09 PROBLEM: additional serial ports on MS9830 board do not work (IRQ problems) Jan Kandziora
2010-09-05 22:35 ` Alan Cox
2010-09-06 21:28 ` Jan Kandziora
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®