[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1343601889.2487.3.camel@shinybook.infradead.org>
Date:	Sun, 29 Jul 2012 23:44:49 +0100
From:	David Woodhouse <dwmw2@...radead.org>
To:	Andreas Heider <andreas@...tr.de>
Cc:	Matthew Garrett <mjg59@...f.ucam.org>,
	Arun Raghavan <arun.raghavan@...labora.co.uk>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] apple-gmux: Restore switch registers on suspend/resume
On Sun, 2012-07-29 at 09:46 +0200, Andreas Heider wrote:
> The gmux code you're using is a bit outdated, but if you use 
> git://kernel.ubuntu.com/sforshee/linux.git gmux-switcheroo and connect 
> an external display (I tested it with a DP one) you should be able to 
> boot to DIS and switch to the IGD and get output on the external display. 
Matthew's version has changes to the core vga_switcheroo code too, to
add the ->client_active() method which lets it pick the right client at
init time. I'll let you work out how to merge the two, but in the
meantime here's what I needed to do to Matthew's one to make it work...
diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
index 321d17c..e2149e6 100644
--- a/drivers/gpu/vga/vga_switcheroo.c
+++ b/drivers/gpu/vga/vga_switcheroo.c
@@ -108,6 +108,7 @@ static void vga_switcheroo_enable(void)
 		ret = vgasr_priv.handler->get_client_id(client->pdev);
 		if (ret < 0)
 			return;
+		client->id = ret;
 
 		if (vgasr_priv.handler->client_active) {
 			active = vgasr_priv.handler->client_active(client->id);
@@ -117,7 +118,7 @@ static void vga_switcheroo_enable(void)
 			 * but the client itself doesn't, update state
 			 */
 
-			if (active && !client->active) {
+			if (active && !client->active && client->fb_info) {
 				struct fb_event event;
 				event.info = client->fb_info;
 				fb_notifier_call_chain(FB_EVENT_REMAP_ALL_CONSOLE, &event);
@@ -125,8 +126,6 @@ static void vga_switcheroo_enable(void)
 
 			client->active = active;
 		}
-
-		client->id = ret;
 	}
 	vga_switcheroo_debugfs_init(&vgasr_priv);
 	vgasr_priv.active = true;
-- 
dwmw2
Download attachment "smime.p7s" of type "application/x-pkcs7-signature" (6171 bytes)
Powered by blists - more mailing lists
 
