Opened 10 years ago

Closed 6 years ago

#433 closed defect (fixed)

Thinkpad T42 S3 resume fails with UHCI driver hang

Reported by: stevenhl Owned by: dazarewicz
Priority: major Milestone: Feedback pending
Component: ACPI PSD Version: 3.16
Keywords: Suspend Resume Cc: rwklein@…

Description

Roderick's T42 Running PSD_install options:" /vbe /o1" --:--:--.-- @#netlabs dot org:3.16#@##1## 23 Jul 2009 12:30:42 pasha::::0::@@ ACPI core PSD Driver. (c) netlabs.org 2005-2009 Build date: Jul 23 2009 12:30:46

With ACPI, UHCI registers (i.e. 0x1840) read as all ones during resume processing. The result is that usduchd gets very confused and hangs waiting for IO to complete.

Either the port addresses have changed or the UHCI chipset power is still off.

With APM, resume works as expected and the UHCI register addresses appear unchanged.

Attachments (3)

t42_pci-d_beforesuspend.txt (38.7 KB) - added by stevenhl 10 years ago.
pci.exe output before suspend
t42_pci-d_aftersuspend.txt (38.6 KB) - added by stevenhl 10 years ago.
pci.exe output after resume - shows unconfigured uchi and ethernet registers
acpi-log-Model-of-your-PC.ziq (130.4 KB) - added by ecsnl 10 years ago.

Download all attachments as: .zip

Change History (17)

Changed 10 years ago by stevenhl

pci.exe output before suspend

Changed 10 years ago by stevenhl

pci.exe output after resume - shows unconfigured uchi and ethernet registers

comment:1 Changed 10 years ago by stevenhl

t42_pci-d_aftersuspend.txt shows the effect of the suspend/resume on the UHCI, EHCI and gigabit Ethernet controllers. The memory and/or IO address are unconfigured after the resume.

Changed 10 years ago by ecsnl

comment:2 Changed 10 years ago by ecsnl

As requested on the acpi-dev mailing list, uploaded data of the ACPI log tools are in acpi-log-Model-of-your-PC.ziq. (change extension to ZIP).

The output of iasl is included.

comment:3 Changed 10 years ago by ecsnl

This email was in relationship to testing ACPI APM with USB drivers. On the 11th of August Pavel wrote:

Hi

As you know, all thinkpad has very bad IRQ rounting at boot. So I recommended use:

LINK LNKA 10 LINK LNKH 6

For Uni CPU notebooks.

Your, Pavel

I tested this with ACPI 3.17 on the T42. With USB drivers installed system hangs at resume. REM USB drivers out it wakes up.

comment:4 Changed 7 years ago by dazarewicz

  • Keywords Suspend Resume added

comment:5 Changed 7 years ago by erdmann

I am not sure in how far ACPI.PSD can generically handle this.

For EHCI for example, in chapter 2.1, Table 2-2 the EHCI spec states that PCI config regs 00h-08h (that is: including the command register) are powered by the core power well whereas a few others are powered by the auxiliary power well.
At the beginning of chapter 2. the spec continues to say that PCI config regs powered through the core power well are initialized to default values on a "transition from the PCI Power Management D3hot state to the D0 state" (in short: on resume).
From what I can tell from various chipset specs, the vendor and device id (00h,01h,02h,03h) are always set to constant values when they are reset but for the command register this is not true (as the logs also indicate).

I am beginning to wonder how ACPI.PSD can solve this problem as I don't know if the aforementioned is exactly the same for each and every device. I think it is device specific and therefore needs to be properly handled by the device driver controlling that device.

Even if ACPI.PSD would save the entire PCI config space for each and every device, there are ADDITIONAL memory mapped registers for that device that undergo the same problem: if they are powered through the core power well, their content will be lost. If they are powered through an auxiliary power well, their content will be preserved. Again, see EHCI spec chapter 2.

The only alternative would be to disable power management for devices with device drivers that don't provide the necessary preserving of registers.

comment:6 Changed 7 years ago by stevenhl

Lars,

There's nothing for you to do on this until I test with current ACPI and USB drivers. The ticket is rather antique and clearly written against long retired driver versions, so I'm a bit confused as to why you commented on it. The last time this ticket was worked on was 3 years ago if you ignore David's keyword updates which were done 3 months ago.

I will post a comment once I've had time to retest with current drivers.

comment:7 Changed 7 years ago by dazarewicz

  • Milestone Release version 3.19 deleted

Please try the current version and let me know how it goes.

comment:8 Changed 7 years ago by dazarewicz

  • Milestone set to Feedback pending

comment:9 follow-up: Changed 7 years ago by erdmann

Tried this on my single core machine (with SMP 10.104a debug kernel).

I tried with ACPI.PSD 3.21.2

1) I tried two times: without any switches and then with /EIS /VBE switch
2) in both cases, I removed ALL USB HC drivers (USBUHCD.SYS,USBOHCD.SYS,USBEHCD.SYS) from config.sys

In both cases, the system will go into suspend but it will never resume when I attempt to . It will hang with a black text mode screen with the cursor blinking in the upper left corner. From the past I also remember that my NIC ceases to work on a resume (it's a SIS900 with an old MAC driver from Willibald Meyer and most likely has no power management support but works perfectly well otherwise). Therefore an established ICAT session via UDP will also break (I have been testing on my MUT machine).

comment:10 Changed 7 years ago by erdmann

  • Version changed from 3.16 to 3.21.02

comment:11 in reply to: ↑ 9 Changed 7 years ago by dazarewicz

  • Owner changed from stevenhl to dazarewicz

Replying to erdmann:

Tried this on my single core machine (with SMP 10.104a debug kernel).

I assume that since you are commenting on this ticket that you are either the reporter and/or you are testing on the a T42, and/or you are working on the problem described in this ticket. :-)

I tried with ACPI.PSD 3.21.2

1) I tried two times: without any switches and then with /EIS /VBE switch

Why the /EIS switch? It is not necessary.

2) in both cases, I removed ALL USB HC drivers (USBUHCD.SYS,USBOHCD.SYS,USBEHCD.SYS) from config.sys

In both cases, the system will go into suspend but it will never resume when I attempt to . It will hang with a black text mode screen with the cursor blinking in the upper left corner. From the past I also remember that my NIC ceases to work on a resume (it's a SIS900 with an old MAC driver from Willibald Meyer and most likely has no power management support but works perfectly well otherwise). Therefore an established ICAT session via UDP will also break (I have been testing on my MUT machine).

Clearly you are not having the same problem on your system as described in this ticket which makes me wonder why you are commenting on this ticket instead of opening a new one for your problem.

It is unlikely that the reporter is still having the reported problem with the current versions of all the drivers, and as he said he hasn't had a chance to try it yet so there is no point in doing anything until he reports back.

Also it was incorrect to change the version since you don't know if the reporter is still having the same problem with the current version.

Last edited 7 years ago by dazarewicz (previous) (diff)

comment:12 Changed 7 years ago by dazarewicz

  • Version changed from 3.21.02 to 3.16

comment:13 Changed 7 years ago by stevenhl

Testing is still pending on this ticket.

comment:14 Changed 6 years ago by dazarewicz

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.