Created attachment 24029 [details] Latest Linux git test results. This is pretty much a continuation of bug 12873. I couldn't reopen the bug, due to how it was closed somehow. This attached file includes the testing results against the latest kernel git. A patch already exists which handles the acpi interrupt, and all that is left is a few fixes to the suspend (some resume bug involving ext4), hibernate ( radeon resume failure). The Quick Results: acpi_osi="Windows 2006" has the irq ignored. acpi_osi="Linux" has the irq working. acpi_osi="!Windows 2006" acpi_osi="!Windows 2006 SP1" has the irq working. s2ram tests with init=/bin/bash show fully working suspend and resume, however, it takes a acpi mode 1 or 3 or for one to post the video card for video to return.
Created attachment 24109 [details] custom DSDT please try this custom DSDT and see if it helps. In order to override the DSDT, you just need to follow the step 5,6,7 at http://www.lesswatts.org/projects/acpi/overridingDSDT.php Note you need to do the test without any acpi_osi parameters.
Created attachment 24122 [details] Kernel result with custom dsdt the custom dsdt works on irq being handled, however the suspend/resume still hangs a bit. The hang is a driver issue from what i can tell.
Created attachment 24125 [details] patch: don't invoke _PSW in boot phase okay, problem is clear now, IMO, it's caused by commit 729b2bdbfa19dd9be98dbd49caf2773b3271cc24. you can try the patch attached to see if it fixes the problem for you, no extra kernel parameter, no custom dsdt this time. :) the bug is caused by this piece of code: Method (_PSW, 1, NotSerialized) { Store (Arg0, \_SB.PCI0.SMB.WOLE) If (LEqual (TPOS, 0x40)) { Store (Arg0, \_SB.PCI0.SMB.WOLF) /* everything goes well if we don't execute this AML code */ } } without commit 729b2bdbfa19dd9be98dbd49caf2773b3271cc24, Linux won't invoke this _PSW method during boot phase. with the _OSI strings, TPOS is set to something else that doesn't equal 0x40. So the problem is clear, but I don't know what should be the right fix for this problem. reverting 729b2bdbfa19dd9be98dbd49caf2773b3271cc24? _OSI dmi quirks for this TOSHIBA laptop?
*** Bug 12873 has been marked as a duplicate of this bug. ***
> The Quick Results: > acpi_osi="Windows 2006" has the irq ignored. > acpi_osi="Linux" has the irq working. > acpi_osi="!Windows 2006" acpi_osi="!Windows 2006 SP1" has the irq working. acpi_osi=Linux appears to be a "red herring" on this system. Rather than enable any specific Linux support, it is effectively disabling explicit Windows 2006 and Windows 2006 SP1 support: If (\_OSI ("Windows 2006")) { Store (0x40, ^OSTB) Store (0x40, ^TPOS) } If (\_OSI ("Windows 2006 SP1")) { Store (0x01, OSSP) Store (0x40, ^OSTB) Store (0x40, ^TPOS) } If (\_OSI ("Linux")) { Store (0x01, LINX) Store (0x80, ^OSTB) Store (0x80, ^TPOS) } Assuming that Windows 2006 and 2006/SP1 work properly on this box, what this means is that Linux compatibility with Win2006 on this box is broken. The possible exception to this may be the this: If (LEqual (TPOS, 0x80)) { Store (One, \_SB.PCI0.SMB.MT3A) } which is done at init and _WAK time only if acpi_osi=Linux This writes a byte to PCI configuration space that is otherwise uninitialized.
kenney, please attach the lspci -vvxxx output of your laptop.
Created attachment 24138 [details] lspci -vvxxx Here's the lspci results requested... not exactly sure how this will help though.
It tells me what chipset is using so that I can figure out what does "Store (Arg0, \_SB.PCI0.SMB.WOLF)" mean. But the lspci output shows that it's using an AMD chipset... Len, When _OSI(Windows 2006) is true, the AML code pokes an PCI register during boot and this triggers the unhandled interrupts. As we don't know what the PCI register stands for, I don't think we can debug further. what do you think we should do now?
I know that AMD has released the 780 chipset register documentation available for public use, so this might be of use.... look at the Developer Guides & Manuals for further reference... http://developer.amd.com/documentation/guides/Pages/default.aspx#chipset
Created attachment 24254 [details] patch: disable Windows Vista compatibility for Toshiba P305D I'm not sure if this is the right fix. But this seems like a Windows Vista compatibility issue and I'm sure this patch works for you.
i did a few tests with fglrx on kernel 2.6.31 and found that the broken suspend after the irq was not ignored is related to the kernel mode setting and radeon drivers. disabling the vista support removed support for various special function keys that should be supported, like Suspend and hibernate. Although, the special function keys for brightness control work. here's a small bit of kernel errors and warnings when vista compatibility is disabled: [ 1052.575579] atkbd.c: Unknown key pressed (translated set 2, code 0x55 on isa0060/serio0). [ 1052.575594] atkbd.c: Use 'setkeycodes 55 <keycode>' to make it known. [ 1052.967989] atkbd.c: Unknown key pressed (translated set 2, code 0xa6 on isa0060/serio0). [ 1052.968003] atkbd.c: Use 'setkeycodes e026 <keycode>' to make it known.
Created attachment 26965 [details] System Log from 2.6.32 with failed resume. I am still having resume and suspend problems with 2.6.32 using the flgrx driver (to help with getting the video back on resume.)
The suspend and resume work properly now, however the code fix is not in linus's or the linux-acpi trees, so i am having to reopen the bug. tested with linus tree, commit: 9fbd7f9d112e50dc7649d13de37bc92cb50c3905 I'll attach the latest test results shortly. also as a quick note, the tests involed a quick patch where i reverted a commit mentioned in bug 16325.
Created attachment 26995 [details] 2.6.35-rc3 dmesg log with default detection.
Created attachment 26996 [details] 2.6.35-rc3 dmesg log with acpi set to avoid using windows 2006 params. This is the log with avoiding using windows 2006, and as a quick note, this is showing the results of what happens after a suspend, however, the system does not crash after two suspends and is fully functional. also as a side note, forcing linux acpi results with similar corruption messages on suspend and resume.
no, the procedure is that 1. the bug is marked as Resolved as we have a patch available to fix this issue. 2. Len will look at the Resolved bugs in bugzilla and pick up the patches that should go upstream. 3. Len will CLOSE the bug when the patch hit upstream. so I think we should mark it as Resolved for now. please feel free to re-open it if you still have any questions.
> the broken suspend > after the irq was not ignored is related to the kernel mode setting and > radeon > drivers. okay, since Linux does not have compatibility with that Vista ATI driver, I've applied a refreshed version of the DMI patch in comment #10 to acpi-test.
commit 337279ce3aa85d81d34c0f837d1c204df105103b Author: Zhang Rui <rui.zhang@intel.com> Date: Tue Sep 28 22:48:55 2010 -0400 ACPI: Disable Windows Vista compatibility for Toshiba P305D shipped in 2.6.36-rc6-git2 closed