Messages in this thread | | | Date | Thu, 05 Jan 2006 20:20:02 +0100 | From | Petr Vandrovec <> | Subject | Re: (1) ACPI messes up Parallel support in kernels >2.6.9 |
| |
Adam Belay wrote: > On Wed, Jan 04, 2006 at 10:52:09PM -0800, Andrew Morton wrote: > >>Dane Mutters <dmutters@gmail.com> wrote: >> >>> I've been attempting to figure out this problem for a long time, and have >>> come to the conclusion that it must be a kernel bug (that or perhaps I'm a >>> bit dense). Whenever I have the option, "Device Drivers > Plug and Play > >>> ACPI Support" enabled, I become unable to print using my parallel port. >> >>hm, regressions are bad and the fact that it _used_ to work meand that we >>should be able to make it work again. >> >>Could you please raise a bug reports against acpi at bugzilla.kernel.org? >>It might help if that report includes the output of `dmesg -s 1000000' for >>both working and non-working kernels. >> >>Thanks. > > > This may be a PnP bug. If you can provide further information, I'll > look into it.
At least on my hardware (ASUS A8V, W83627THF superio) problem is that it now uses ECP...
Once parport_pc is loaded, it says it found PnPBIOS parport and finds printer
parport: PnPBIOS parport detected. parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] parport0: Printer, HEWLETT-PACKARD DESKJET 690C lp0: using parport0 (interrupt-driven). lp0: ECP mode
unfortunately write to /dev/lp* blocks indefinitely. SuperIO registers inspection reveals that SIO is actually programmed to use DMA 1 and not DMA 3. When SuperIO is reprogrammed, data are apparently sent somewhere (as writes to /dev/lp no longer blocks), IRQ count is incremented for each block sent, but unfortunately printer does not seem to agree that any data arrived.
Actually I believe that ECP mode never worked for me - but in the past parport_pc just used SPP or EPP, and everything was happy. Now 'modprobe parport_pc io=0x378' does not work anymore as parallel port hardware is kindly disabled by PnPBIOS code :-( So I have to first enable parport in SuperIO, then set parport mode to SPP, PS2, EPP1.7 or EPP1.9 (low three bits of F0 register in function 1 must be 100, 000, 001 or 101) and load parport_pc io=0x378 io_hi=0x778 irq=7 dma=1. Then ECP mode is not used and printing works...
parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE,EPP] parport0: Printer, HEWLETT-PACKARD DESKJET 690C lp0: using parport0 (interrupt-driven).
If you are interested, ACPI DSDT is available at http://platan.vc.cvut.cz/ftp/private/a8v.acpi.dsdt. W83627THF datasheet is available from Winbond website... I do not understand AML sufficiently to tell whether problem with DMA is caused by parport or AML interpreter or buggy DSDT. Non-working ECP is either dead hardware or parport problem existing for very long.
SuperIO dump after initial parport_pc load:
RR/EN 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 BASE: 0B 82 84 FF FE A2 00 00 FF 20 00 00 1A 48 00 00 FF FN00: 01 03 F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 06 FF FF FF 02 FF FF FF : 8E 00 FF FF 00 00 FF FF FF FF FF FF FF FF FF FF FN01: 01 03 78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 07 FF FF FF 01 FF FF FF : 3A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FN02: 01 03 F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 04 FF FF FF FF FF FF FF : 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FN03: 01 02 F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 03 FF FF FF FF FF FF FF : 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FN04: 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FN05: 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 00 FF 00 FF FF FF FF FF : 83 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FN06: 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF : FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FN07: 08 02 01 03 30 FF FF FF FF FF FF FF FF FF FF FF FF 00 FF FF FF FF FF FF FF : FF FF FF FF E3 00 FF FF FF FF FF FF FF FF FF 00 FN08: 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF : FF 38 00 00 FF 00 00 00 FF FF FF FF FF FF FF FF FN09: 03 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF : FF 51 00 00 DF 21 00 FF FF FF FF FF FF FF FF FF FN0A: 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 FF FF FF FF FF FF FF : 00 AF FF 3F 00 FF 00 00 FF 00 FF FF FF FF 00 00 FN0B: 01 02 90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 FF FF FF FF FF FF FF : 01 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF PowerState: 01
Petr
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |