https://bugzilla.novell.com/show_bug.cgi?id=375836 User trenn@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=375836#c21 --- Comment #21 from Thomas Renninger <trenn@novell.com> 2008-05-16 10:21:20 MST ---
Does anyone know why parport_pc suddenly started to think IRQ 14 is its? This is not parport_pc's fault. This is ACPI. If the device is switched off in BIOS the _STA function must return 0 and the device must not be further evaluated.
In this case, I expect the _STA function returns not 0 wrongly or the value is ignored and the _CRS Current Resource Settings are evaluated. Probably only in PNP case or I expect this would have been noticed earlier. There the IO flags are statically declared, the IRQ and DMA values are set dynamically, possibly based on uninitialised values. As this is not that important (and my queue starts to get really long), I will start with fixing the DSDT override and then come back. This is the whole parallel device ACPI declaration (already with my debug messages, which should have printed to dmesg if DSDT override had worked): Device (ECP0) { Name (_HID, EisaId ("PNP0401")) Name (_DDN, "LPT1") Name (CRES, ResourceTemplate () { IRQNoFlags () {7} DMA (Compatibility, NotBusMaster, Transfer8, ) {3} IO (Decode16, 0x0378, // Range Minimum 0x0378, // Range Maximum 0x00, // Alignment 0x08, // Length ) IO (Decode16, 0x0778, // Range Minimum 0x0778, // Range Maximum 0x00, // Alignment 0x06, // Length ) }) Method (_STA, 0, NotSerialized) { Store("_STA of Parallel device", debug) If (LPTN) { LETR () Store (0x03, LDN) Store (CFG1, Local0) And (Local0, 0x07, Local0) If (LEqual (Local0, 0x03)) { If (ACTR) { LEXT () Store (0x0F, debug) Return (0x0F) } Else { LEXT () Store (0x0D, debug) Return (0x0D) } } Else { LEXT () Store (0x0, debug) Return (Zero) } } Else { Store (0x0, debug) Return (Zero) } Store ("We should not end here", debug) } Method (_CRS, 0, NotSerialized) { CreateWordField (CRES, 0x01, IRQW) CreateByteField (CRES, 0x04, DMAC) CreateByteField (CRES, 0x08, IOLO) CreateByteField (CRES, 0x09, IOHI) CreateByteField (CRES, 0x0A, IORL) CreateByteField (CRES, 0x0B, IORH) CreateByteField (CRES, 0x0D, LEN1) CreateByteField (CRES, 0x10, ISL1) CreateByteField (CRES, 0x11, ISH1) CreateByteField (CRES, 0x12, ISL2) CreateByteField (CRES, 0x13, ISH2) CreateByteField (CRES, 0x15, LEN2) LETR () Store (0x03, LDN) Store (IOAL, IOLO) Store (IOAH, IOHI) Store (IOAL, IORL) Store (IOAH, IORH) Store (IOAL, ISL1) Add (0x04, IOAH, ISH1) Store (IOAL, ISL2) Add (0x04, IOAH, ISH2) If (LEqual (IOAL, 0xBC)) { Store (0x03, LEN1) Store (0x03, LEN2) } Else { Store (0x08, LEN1) Store (0x06, LEN2) } If (LEqual (INTR, Zero)) { Store (Zero, IRQW) } Else { Store (One, Local0) ShiftLeft (Local0, INTR, IRQW) } If (LEqual (DMCH, 0x04)) { Store (Zero, DMAC) } Else { Store (One, Local0) ShiftLeft (Local0, DMCH, DMAC) } LEXT () Return (CRES) } } -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.