|
@@ -31,6 +31,7 @@
|
|
|
#include <linux/dmi.h>
|
|
|
#include <linux/i2c.h>
|
|
|
#include <linux/slab.h>
|
|
|
+#include <linux/vga_switcheroo.h>
|
|
|
#include <drm/drmP.h>
|
|
|
#include <drm/drm_atomic_helper.h>
|
|
|
#include <drm/drm_crtc.h>
|
|
@@ -1080,7 +1081,12 @@ void intel_lvds_init(struct drm_device *dev)
|
|
|
* preferred mode is the right one.
|
|
|
*/
|
|
|
mutex_lock(&dev->mode_config.mutex);
|
|
|
- edid = drm_get_edid(connector, intel_gmbus_get_adapter(dev_priv, pin));
|
|
|
+ if (vga_switcheroo_handler_flags() & VGA_SWITCHEROO_CAN_SWITCH_DDC)
|
|
|
+ edid = drm_get_edid_switcheroo(connector,
|
|
|
+ intel_gmbus_get_adapter(dev_priv, pin));
|
|
|
+ else
|
|
|
+ edid = drm_get_edid(connector,
|
|
|
+ intel_gmbus_get_adapter(dev_priv, pin));
|
|
|
if (edid) {
|
|
|
if (drm_add_edid_modes(connector, edid)) {
|
|
|
drm_mode_connector_update_edid_property(connector,
|