Bug 498626
| Summary: | ITE it887x chipset serial ports don't work | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 4 | Reporter: | Bryn M. Reeves <bmr> | ||||
| Component: | kernel | Assignee: | Red Hat Kernel Manager <kernel-mgr> | ||||
| Status: | CLOSED WONTFIX | QA Contact: | Red Hat Kernel QE team <kernel-qe> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | low | ||||||
| Version: | 4.7 | CC: | javiroman, jcastillo, jwest, krahn, ndevos, tao | ||||
| Target Milestone: | rc | ||||||
| Target Release: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | |||||||
| : | 563271 (view as bug list) | Environment: | |||||
| Last Closed: | 2012-06-14 20:10:23 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
Created attachment 342510 [details]
backport ite887x fixes to RHEL4
backport of:
84f8c6fc0e3b6e48fd22c28fc3bb666a130b3994
e7c310c36e5fdf1b83a459e5db167bfbd86137db
From linux-2.6.
I don't have hardware to give this any meaningful testing so have just reviewed the combined patch (looks sane :).
Jose, if I do a build with this change will you be able to get testing feedback?
The updated kernel code does not work for all ITE cards. My card is a 2-serial, no-parallel version. It fails with the LSR warning and missed IRQ kernel errors. I registered a bug report (#578616) under Fedora 12, where the kernel already has the code from this patch. The problem is that the updated serial/8250_pci.c and the existing parport/parport_pc.c code do not work together, because they each program the ioport separately. The current parport_pc.c code ignores serial-only cards, but redefines the ioports and does not release them. If I blacklist parport_pc to avoid this, there is no LSR warning, but the missed IRQ error remains. So, the serial driver is somehow not correctly configured to handle the IRQ. My card is external, but there are some of these built into the motherboard. If so, maybe the BIOS allows the serial PNP to work, whereas something is missing for external cards. Note: The author of the 8250_pci.c code, Niels de Vos, has a datasheet, but the email address from the the driver code comment bounced. Hi Joe, there has been no RHEL-4 (or RHEL-5) kernel released that includes the required patched. This bug was opened to have the patches added to the RHEL kernel(s). We can work on the Fedora part in bug 578616 if you like. If you have valid Red Hat Enterprise Linux subscriptions, you can open a service request on http://support.redhat.com and reference this bug. We should be able to provide you with a test-kernel and see if your hardware works as expected. Cheers, Niels |
Description of problem: The ITE it887x are a range of PCI devices providing serial and parallel port functions. These devices have some hardware quirks (e.g. LSR bugs that trigger the "LSR safety check engaged!" warning in serial8250_startup() resulting in ENODEV for the affected ports). These devices look like: # lspci -vvv 06:07.0 Serial controller: Integrated Technology Express, Inc. IT8874F PCI Dual Serial Port Controller (rev 01) (prog-if 02 [16550]) # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:12 rx:0 1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 2: uart:16550A port:000003E8 irq:10 tx:0 rx:0 CTS|DSR|CD|RI 3: uart:16550A port:00000270 irq:10 tx:0 rx:0 CTS|DSR|CD|RI Note that all 887x devices report the same vendor/product IDs although they come with different combinations of functions. The patches listed below have code to cope with this. These problems were fixed up for these chipsets upstream a couple of years ago: commit 84f8c6fc0e3b6e48fd22c28fc3bb666a130b3994 Author: Niels de Vos <niels.devos> Date: Wed Aug 22 14:01:14 2007 -0700 serial: add support for ITE 887x chips Add support for the it887x-chips (PCI) manufactured by ITE. Signed-off-by: Niels de Vos <niels.devos> Cc: Russell King <rmk.org.uk> Acked-by: Alan Cox <alan.org.uk> Signed-off-by: Andrew Morton <akpm> Signed-off-by: Linus Torvalds <torvalds> commit e7c310c36e5fdf1b83a459e5db167bfbd86137db Author: Niels de Vos <niels.devos> Date: Sun Jul 15 23:41:35 2007 -0700 parport_pc: it887x fix The IO port range requested by parport_pc.c:sio_ite_8872_probe is too small. The IO-ports of ttyS1 (0x2f8) will be missconfigured by the ITE-chip. The I starts looking for the chip a 0x2a0. An IO-portrange of 32 will not overwri the ports of ttyS1. Therefore register 0x60 should be written with 0xe5000000, enabling the ITE and setting IO-portsize to 32 bytes. Signed-off-by: Andrew Morton <akpm> Signed-off-by: Linus Torvalds <torvalds> Version-Release number of selected component (if applicable): 2.6.9-*.EL How reproducible: 100% Steps to Reproduce: 1. echo "hello2" > /dev/ttyS2 2. echo "hello3" > /dev/ttyS3 3. dmesg | tail Actual results: ttyS2: LSR safety check engaged! ttyS3: LSR safety check engaged! strace of /bin/echo shows ENODEV being returned. Expected results: No ENODEV or LSR warning. Data output on serial line. Additional info: