Lukas Wunner
5cb8eaa227
drm/edid: Switch DDC when reading the EDID
Originally by Seth Forshee <seth.forshee@canonical.com>, 2012-10-04:
Some dual graphics machines support muxing the DDC separately from
the display, so make use of this functionality when reading the EDID
on the inactive GPU. Also serialize drm_get_edid() with a mutex to
avoid races on the DDC mux state.
Modified by Dave Airlie <airlied@gmail.com>, 2012-12-22:
I can't figure out why I didn't like this, but I rewrote this [...]
to lock/unlock the ddc lines [...]. I think I'd prefer something
like that otherwise the interface got really ugly.
Modified by Lukas Wunner <lukas@wunner.de>, 2015-04 - 2015-09:
v3: Move vga_switcheroo calls to a wrapper around drm_get_edid()
which drivers can call on muxed machines. This avoids other
drivers having to go through the vga_switcheroo motions even
though they are never used on a muxed platform
(Thierry Reding, Daniel Vetter, Alex Deucher)
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88861
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61115
Tested-by: Pierre Moreau <pierre.morrow@free.fr>
[MBP 5,3 2009 nvidia MCP79 + G96 pre-retina 15"]
Tested-by: William Brown <william@blackhats.net.au>
[MBP 8,2 2011 intel SNB + amd turks pre-retina 15"]
Tested-by: Lukas Wunner <lukas@wunner.de>
[MBP 9,1 2012 intel IVB + nvidia GK107 pre-retina 15"]
Cc: Seth Forshee <seth.forshee@canonical.com>
Cc: Dave Airlie <airlied@gmail.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/b898d0da4c134f2642d0122479006863e1830723.1452525860.git.lukas@wunner.de
2016-02-09 11:21:09 +01:00
..
2016-02-06 00:34:01 +01:00
2016-01-11 19:33:59 -08:00
2016-02-06 00:34:01 +01:00
2016-01-17 12:32:01 -08:00
2016-01-24 12:34:13 -08:00
2016-01-06 16:37:14 +01:00
2016-02-01 12:27:18 -08:00
2016-01-06 08:25:24 -05:00
2016-02-03 10:04:58 -08:00
2016-01-20 18:16:29 -08:00
2016-01-31 15:49:06 -08:00
2016-01-29 21:45:17 +01:00
2016-01-29 21:45:17 +01:00
2016-01-30 22:05:17 +08:00
2016-01-13 17:30:33 +09:00
2016-01-20 10:15:21 -08:00
2016-02-09 09:25:22 +01:00
2016-01-20 17:09:18 -08:00
2016-01-20 18:03:56 -08:00
2016-02-09 11:21:09 +01:00
2016-01-20 17:30:20 -08:00
2016-01-07 16:07:54 +01:00
2016-01-13 10:23:36 -08:00
2016-01-27 18:48:46 -08:00
2016-02-03 08:28:43 -08:00
2016-01-29 11:13:52 +01:00
2016-01-18 14:12:33 -05:00
2016-02-01 13:08:26 -08:00
2016-02-02 16:42:22 -05:00
2016-01-22 17:20:30 -08:00
2016-01-29 12:30:47 +01:00
2016-01-31 14:48:58 -08:00
2016-01-11 23:55:43 -05:00
2016-01-17 12:32:01 -08:00
2016-01-12 12:17:28 +01:00
2016-01-12 08:21:18 -07:00
2016-02-02 16:47:14 +05:30
2016-02-03 15:43:59 -08:00
2016-02-04 16:26:10 -02:00
2016-01-20 18:42:30 -08:00
2016-01-20 17:09:18 -08:00
2016-01-17 12:32:01 -08:00
2016-01-21 12:32:08 -08:00
2016-01-22 12:04:21 -08:00
2016-01-24 12:50:56 -08:00
2016-02-01 15:56:08 -08:00
2016-01-21 19:53:10 -05:00
2016-01-29 17:43:16 -08:00
2016-01-21 19:58:02 -08:00
2016-02-01 15:56:08 -08:00
2016-01-22 18:04:28 -05:00
2016-01-20 17:09:18 -08:00
2016-01-29 21:44:53 +01:00
2016-01-17 12:32:01 -08:00
2016-02-09 11:21:08 +01:00
2016-02-03 01:00:29 +01:00
2016-01-14 01:03:18 +01:00
2016-01-12 01:12:40 +01:00
2016-01-29 12:38:59 -08:00
2016-01-21 15:04:59 +01:00
2016-01-20 17:09:18 -08:00
2016-01-15 12:14:47 -08:00
2016-01-12 20:47:06 +02:00
2016-01-12 20:47:06 +02:00
2016-01-18 12:10:45 -08:00
2016-01-26 12:47:51 +01:00
2016-02-03 08:28:43 -08:00
2016-01-22 17:30:52 -08:00
2016-01-15 13:18:47 -08:00
2016-01-19 21:25:57 +02:00
2016-02-09 09:25:22 +01:00
2016-01-21 19:58:02 -08:00
2016-01-24 12:43:06 -08:00
2016-01-31 17:09:39 -08:00
2016-02-04 17:00:10 -08:00
2016-01-27 11:22:25 -07:00
2016-01-22 18:04:28 -05:00
2016-01-26 10:18:28 +02:00
2016-01-31 16:54:36 +01:00
2016-01-29 15:13:48 -08:00