Bug 70863

Summary: vgaswitcheroo hibernation problem
Product: DRI Reporter: stefan.demharter
Component: DRM/IntelAssignee: Intel GFX Bugs mailing list <intel-gfx-bugs>
Status: CLOSED NOTABUG QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: low CC: intel-gfx-bugs
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
restore mux and power states after resume from hibernation none

Description stefan.demharter 2013-10-25 11:19:24 UTC
Created attachment 88106 [details]
restore mux and power states after resume from hibernation

Hi,

i've got a system with a muxed intel+ati card and had a problem with hibernation:
Vgaswitcheroo didn't restore the states of the graphics cards and the state of the mux after resume.

I have solved the issue with the attached patch.

Regards
Stefan
Comment 1 Daniel Vetter 2013-10-27 18:29:50 UTC
Can you please submit this patch to dri-devel@lists.freedesktop.org ?
Comment 2 Jani Nikula 2014-01-23 11:47:49 UTC
(In reply to comment #1)
> Can you please submit this patch to dri-devel@lists.freedesktop.org ?

http://mid.gmane.org/526E282E.5030309@gmx.net
Comment 3 stefan.demharter 2014-01-31 15:43:17 UTC
New version of the patch posted to mailing list:

http://article.gmane.org/gmane.comp.video.dri.devel/99306
Comment 4 Chris Wilson 2014-01-31 17:20:49 UTC
Just a couple of things I noticed as someone not familiar with vgasr:

1. Can you please put a description of the failure (the user impact) into the changelog? I am guessing that it spans from excess power usage to blank displays. It should also explain why we need to restore the old state rather than waking up userspace in the brave new world, and why we only turn devices off rather than powering others to match pwr_state.

2. in vga_restore_power_state() it looks like you should be performing a similar operation to vga_switchon/vga_switchoff, that is you may need a client->ops->set_gpu_state().

3. vga_switcheroo_disable() should reset mux_state = MUX_STATE_UNDEFINED (or do so in vga_switcheroo_enable()).

4. vga_restore_mux() failure should probably also reset mux_state = MUX_STATE_UNDEFINED
Comment 5 Jani Nikula 2014-09-05 11:29:55 UTC
(In reply to comment #3)
> New version of the patch posted to mailing list:
> 
> http://article.gmane.org/gmane.comp.video.dri.devel/99306

Stefan, please follow-up on the thread.
Comment 6 Daniel Vetter 2014-11-04 16:34:04 UTC
bugzilla isn't really a good tool to track patch submissions, we'd get totally swamped with reports if we'd use it like. So I'll close this, please follow up on the mailing list. And if maintainers ignore you, escalate to the next level, until you'll reach linus.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.