Bug 43276

Summary: Screen black after suspending/resuming Toshiba Satellite C675D-S7109 laptop
Product: Drivers Reporter: Dan Furlani (dan.furlani)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: NEEDINFO ---    
Severity: normal CC: lenb, tianyu.lan
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.9.0-rc4 Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 56331    

Description Dan Furlani 2012-05-22 17:17:44 UTC
Originally reported as an Ubuntu bug -- they suggested I report upstream.  Please let me know if I should re-attach all the files.
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1000016

After suspending, there's no way to resume (tried keys, mouse buttons, power button). The fan was still running and both power LEDs were on (one indicating the laptop is plugged in, one indicating it's powered on).  There is no disk LED on this laptop.

I held down the power button for 4-5s to force it to power off. Fan goes off, HD spins down, power light goes out, all as expected.  (Occasionally when forcing power off, the laptop powers back on as soon as my finger is removed from the power button.  May take 3-4 times to get it to stay off.)

When I hit the power button to turn it back on, fan comes on, HD briefly makes some noise, but it doesn't show the BIOS splash screen or anything -- just a totally black screen, like before I powered it off.  The backlight is not on.

Removing and replacing the battery (while unplugged) is the only way to get it to boot normally.

I tried sudo pm-hibernate -- it worked, except it didn't actually shut down the laptop. After I heard the HD spin down I forced power off. On power-on, it resumed from hibernation just fine.  This works reliably, aside from having to manually force power off, which sometimes fails.

I have no way of knowing if this is a regression -- I just got the laptop last week, blew away Windows and installed Ubuntu.

One other thing I should mention -- rarely, the keyboard and mouse won't work when Ubuntu boots up. What's interesting is that the keyboard will work in Grub, but then once the splash/login screen comes up, no dice. Force shutdown and startup fixes. I'm not too worried about this right now, just mentioning in case it could be related somehow.

====

I tried a few more things.

I rebooted in single-user mode using the 3.4.0 rc6 kernel and followed directions here:
https://wiki.ubuntu.com/DebuggingKernelSuspend

I see this in dmesg:
[ 2.268515] Magic number: 12:953:1001
[ 2.268604] pnp 00:03: hash matches

I don't see any 00:03 in lspci output (attached to the Ubuntu bug report).

find /sys/devices -name "*00:03*"
/sys/devices/pnp0/00:03
/sys/devices/pci0000:00/0000:00:15.1/0000:03:00.0
/sys/devices/pci0000:00/0000:00:15.1/pci_bus/0000:03

Contents of files under .../pnp0/00:03/
/sys/devices/pnp0/00:03/id: PNP0200
/sys/devices/pnp0/00:03/power/control: auto
/sys/devices/pnp0/00:03/power/async: disabled
/sys/devices/pnp0/00:03/power/runtime_enabled: disabled
/sys/devices/pnp0/00:03/power/runtime_active_kids: 0
/sys/devices/pnp0/00:03/power/runtime_active_time: 0
/sys/devices/pnp0/00:03/power/autosuspend_delay_ms:
cat: /sys/devices/pnp0/00:03/power/autosuspend_delay_ms: Input/output error
/sys/devices/pnp0/00:03/power/runtime_status: unsupported
/sys/devices/pnp0/00:03/power/runtime_usage: 0
/sys/devices/pnp0/00:03/power/runtime_suspended_time: 0
/sys/devices/pnp0/00:03/uevent:
/sys/devices/pnp0/00:03/resources:
  state = active
  dma 4
  io 0x0-0xf
  io 0x81-0x83
  io 0x87-0x87
  io 0x89-0x8b
  io 0x8f-0x8f
  io 0xc0-0xdf
/sys/devices/pnp0/00:03/options:
Comment 1 Dan Furlani 2012-05-28 05:45:50 UTC
I did some experimenting with suspending but nothing I tried made any difference.

# echo mem > /sys/power/state
 --- same problem

# echo standby > /sys/power/state
-bash: echo: write error: No such device

# cat /sys/power/state
mem disk

# echo -n 3 > /proc/acpi/sleep
-bash: /proc/acpi/sleep: No such file or directory

I echoed device names into /proc/acpi/wakeup until they were all disabled, then tried suspending -- didn't make any difference.

I tried a bunch of "s2ram -f [other options]" commands in single-user mode, didn't help.

I tried adding reboot=bios or reboot=acpi to the kernel line in Grub.  I didn't test extensively but it didn't seem to help.
Comment 2 Dan Furlani 2012-05-28 06:08:33 UTC
I *did* make some progress with hibernation however.  Maybe this info gives hints to what's happening with suspend.

The uswsusp Ubuntu package provides s2disk and modifies the power menu items to use it vs. the pm tools (iiuc).  I installed it and also upgraded to the final 3.4 kernel (vs. before I was using 3.4rc6).

In /etc/uswsusp.conf there is a "shutdown method" line.  I get different behavior depending on whether it's set to "platform" (default) or "shutdown".

With "shutdown method = platform":
- The system will not power off when I hibernate.  I have to force power off.
- When I power on to thaw the system, a slightly-different BIOS/splash screen is shown that doesn't have the F2/F12 text at the bottom.  This seems sensible.

With "shutdown method = shutdown":
- The system powers off by itself on hibernate.  YES!
- On thaw, the regular boot BIOS/splash screen is shown.  Not a problem though.

The other thing I figured out is that if the laptop is plugged in, it will reboot instead of powering off.  However, if it's unplugged and just running on battery power, it powers off successfully.

The bottom line is that hibernate works perfectly now as long as the laptop is unplugged.

I did some experimenting with setting /sys/power/disk to [platform] vs. [shutdown] but it didn't seem to make any difference to anything.
Comment 3 Dan Furlani 2012-05-28 06:22:02 UTC
The kernel option "i8042.nomux" might be helping the keyboard/touchpad issue, but I can't be sure since it's a fairly rare problem.  At first I tried "i8042.reset" but the problem still occurred.

When the keyboard/touchpad don't work on boot/thaw, I can plug in a USB kbd/mouse and use them instead.  Surprisingly, some of the special laptop function key-combos still work (such as Fn-F6 to adjust LCD brightness) even if the keyboard is dead.
Comment 4 Len Brown 2013-01-30 22:22:07 UTC
Linux 3.4 is somewhat old...

Poweroff fix in bug 35262 is in Linux-3.8-rc
does it help here?

EHCI workaround being used in bug 43129
does it help here?
Comment 5 Lan Tianyu 2013-03-21 14:22:09 UTC
ping ...
Comment 6 Dan Furlani 2013-03-23 07:50:11 UTC
Will try this weekend.
Comment 7 Lan Tianyu 2013-03-24 02:33:34 UTC
Ok. Thanks.
Comment 8 Dan Furlani 2013-03-25 17:31:15 UTC
Running 3.9.0-rc4, it suspends and resumes properly but the screen doesn't turn back on after resume. I tried these:
echo mem > /sys/power/state
pm-suspend
pm-suspend --quirk-dpms-on

Definitely working better than before -- on resume, I hear the HD spin up, the power LED goes from pulsing to solid-on, the num-lock key toggles its LED, only issue is the screen. If I then close the lid, wait for hibernate, and reopen the lid, the screen is back and my desktop session is still there.

Also, I think the issue with shutting down / hibernating while pluggegd in may be fixed. Need to test more. If I can get the screen to come back after resume I'll do extensive testing...
Comment 9 Lan Tianyu 2013-03-26 02:39:56 UTC
This sounds good. Can you log on your laptop via network(e.g ssh) after resume?
The screen problem seems caused by video driver.Which video driver are you using?
Comment 10 Dan Furlani 2013-03-28 15:02:05 UTC
Yes, I can ssh in after resume. Video driver is radeon. Let me know if there's additional info I can provide, and thanks for the help!

$ sudo lshw -c video
 *-display 
 description: VGA compatible controller
 product: Wrestler [Radeon HD 6310]
 vendor: Hynix Semiconductor (Hyundai Electronics)
 physical id: 1
 bus info: pci@0000:00:01.0
 version: 00
 width: 32 bits
 clock: 33MHz
 capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
 configuration: driver=radeon latency=0
 resources: irq:41 memory:c0000000-cfffffff ioport:f000(size=256) memory:feb00000-feb3ffff

$ modinfo radeon
filename: /lib/modules/3.9.0-030900rc4-generic/kernel/drivers/gpu/drm/radeon/radeon.ko
....
vermagic: 3.9.0-030900rc4-generic SMP mod_unload modversions
parm: no_wb:Disable AGP writeback for scratch registers (int)
parm: modeset:Disable/Enable modesetting (int)
parm: dynclks:Disable/Enable dynamic clocks (int)
parm: r4xx_atom:Enable ATOMBIOS modesetting for R4xx (int)
parm: vramlimit:Restrict VRAM for testing (int)
parm: agpmode:AGP Mode (-1 == PCI) (int)
parm: gartsize:Size of PCIE/IGP gart to setup in megabytes (32, 64, etc) (int)
parm: benchmark:Run benchmark (int)
parm: test:Run tests (int)
parm: connector_table:Force connector table (int)
parm: tv:TV enable (0 = disable) (int)
parm: audio:Audio enable (1 = enable) (int)
parm: disp_priority:Display Priority (0 = auto, 1 = normal, 2 = high) (int)
parm: hw_i2c:hw i2c engine enable (0 = disable) (int)
parm: pcie_gen2:PCIE Gen2 mode (-1 = auto, 0 = disable, 1 = enable) (int)
parm: msi:MSI support (1 = enable, 0 = disable, -1 = auto) (int)
parm: lockup_timeout:GPU lockup timeout in ms (defaul 10000 = 10 seconds, 0 = disable) (int)
Comment 11 Lan Tianyu 2013-03-28 15:53:28 UTC
> Yes, I can ssh in after resume. 
This means pm core works well. Screen not resume is Graphic driver issume.
So assign to Graphic driver module. There will be Graphic expert.