--- /dev/null
+From 3916e3fd81021fb795bfbdb17f375b6b3685bced Mon Sep 17 00:00:00 2001
+From: Lukas Wunner <lukas@wunner.de>
+Date: Mon, 4 May 2015 15:06:49 +0200
+Subject: drm/i915: Add missing MacBook Pro models with dual channel LVDS
+
+From: Lukas Wunner <lukas@wunner.de>
+
+commit 3916e3fd81021fb795bfbdb17f375b6b3685bced upstream.
+
+Single channel LVDS maxes out at 112 MHz. The 15" pre-retina models
+shipped with 1440x900 (106 MHz) by default or 1680x1050 (119 MHz)
+as a BTO option, both versions used dual channel LVDS even though
+the smaller one would have fit into a single channel.
+
+Notes:
+ Bug report showing that the MacBookPro8,2 with 1440x900 uses dual
+ channel LVDS (this lead to it being hardcoded in intel_lvds.c by
+ Daniel Vetter with commit 618563e3945b9d0864154bab3c607865b557cecc):
+ https://bugzilla.kernel.org/show_bug.cgi?id=42842
+
+ If i915.lvds_channel_mode=2 is missing even though the machine needs
+ it, every other vertical line is white and consequently, only the left
+ half of the screen is visible (verified by myself on a MacBookPro9,1).
+
+ Forum posting concerning a MacBookPro6,2 with 1440x900, author is
+ using i915.lvds_channel_mode=2 on the kernel command line, proving
+ that the machine uses dual channels:
+ https://bbs.archlinux.org/viewtopic.php?id=185770
+
+ Chi Mei N154C6-L04 with 1440x900 is a replacement panel for all
+ MacBook Pro "A1286" models, and that model number encompasses the
+ MacBookPro6,2 / 8,2 / 9,1. Page 17 of the panel's datasheet shows it's
+ driven with dual channel LVDS:
+ http://www.ebay.com/itm/-/400690878560
+ http://www.everymac.com/ultimate-mac-lookup/?search_keywords=A1286
+ http://www.taopanel.com/chimei/datasheet/N154C6-L04.pdf
+
+ Those three 15" models, MacBookPro6,2 / 8,2 / 9,1, are the only ones
+ with i915 graphics and dual channel LVDS, so that list should be
+ complete. And the 8,2 is already in intel_lvds.c.
+
+ Possible motivation to use dual channel LVDS even on the 1440x900
+ models: Reduce the number of different parts, i.e. use identical logic
+ boards and display cabling on both versions and the only differing
+ component is the panel.
+
+Signed-off-by: Lukas Wunner <lukas@wunner.de>
+Acked-by: Jani Nikula <jani.nikula@intel.com>
+[Jani: included notes in the commit message for posterity]
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_lvds.c | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/intel_lvds.c
++++ b/drivers/gpu/drm/i915/intel_lvds.c
+@@ -1007,12 +1007,28 @@ static int intel_dual_link_lvds_callback
+ static const struct dmi_system_id intel_dual_link_lvds[] = {
+ {
+ .callback = intel_dual_link_lvds_callback,
+- .ident = "Apple MacBook Pro (Core i5/i7 Series)",
++ .ident = "Apple MacBook Pro 15\" (2010)",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro6,2"),
++ },
++ },
++ {
++ .callback = intel_dual_link_lvds_callback,
++ .ident = "Apple MacBook Pro 15\" (2011)",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro8,2"),
+ },
+ },
++ {
++ .callback = intel_dual_link_lvds_callback,
++ .ident = "Apple MacBook Pro 15\" (2012)",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
++ DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro9,1"),
++ },
++ },
+ { } /* terminating entry */
+ };
+