From 3e09810a33d05c8c5752f03b987e71479d5fe93c Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 12 Nov 2014 09:06:23 +0900 Subject: [PATCH] 3.17-stable patches added patches: acer-wmi-add-acpi_backlight-video-quirk-for-the-acer-kav80.patch arm-pxa-fix-hang-on-startup-with-debug_ll.patch drm-i915-do-a-dummy-dpcd-read-before-the-actual-read.patch drm-i915-fix-gmbusfreq-on-vlv-chv.patch drm-i915-ignore-vbt-backlight-check-on-macbook-2-1.patch drm-radeon-dpm-disable-ulv-support-on-si.patch drm-radeon-dpm-fixes-for-asrock-systems.patch drm-radeon-remove-invalid-pci-id.patch drm-radeon-use-drm_malloc_ab-instead-of-kmalloc_array.patch drm-vmwgfx-filter-out-modes-those-cannot-be-supported-by-the-current-vram-size.patch fix-breakage-in-o2net_send_tcp_msg.patch mm-cma-don-t-crash-on-allocation-if-cma-area-can-t-be-activated.patch pinctrl-baytrail-show-output-gpio-state-correctly-on-intel-baytrail.patch rbd-fix-error-recovery-in-rbd_obj_read_sync.patch samsung-laptop-add-broken-acpi-video-quirk-for-nc210-nc110.patch x86-intel-mid-create-irqs-for-apb-timers-and-rtc-timers.patch --- ...light-video-quirk-for-the-acer-kav80.patch | 47 ++++++++++ ...xa-fix-hang-on-startup-with-debug_ll.patch | 93 +++++++++++++++++++ ...mmy-dpcd-read-before-the-actual-read.patch | 52 +++++++++++ .../drm-i915-fix-gmbusfreq-on-vlv-chv.patch | 40 ++++++++ ...e-vbt-backlight-check-on-macbook-2-1.patch | 42 +++++++++ ...radeon-dpm-disable-ulv-support-on-si.patch | 32 +++++++ ...-radeon-dpm-fixes-for-asrock-systems.patch | 60 ++++++++++++ .../drm-radeon-remove-invalid-pci-id.patch | 30 ++++++ ...m_malloc_ab-instead-of-kmalloc_array.patch | 71 ++++++++++++++ ...e-supported-by-the-current-vram-size.patch | 80 ++++++++++++++++ .../fix-breakage-in-o2net_send_tcp_msg.patch | 30 ++++++ ...ation-if-cma-area-can-t-be-activated.patch | 33 +++++++ ...io-state-correctly-on-intel-baytrail.patch | 36 +++++++ ...-error-recovery-in-rbd_obj_read_sync.patch | 36 +++++++ ...ken-acpi-video-quirk-for-nc210-nc110.patch | 40 ++++++++ queue-3.17/series | 16 ++++ ...e-irqs-for-apb-timers-and-rtc-timers.patch | 70 ++++++++++++++ 17 files changed, 808 insertions(+) create mode 100644 queue-3.17/acer-wmi-add-acpi_backlight-video-quirk-for-the-acer-kav80.patch create mode 100644 queue-3.17/arm-pxa-fix-hang-on-startup-with-debug_ll.patch create mode 100644 queue-3.17/drm-i915-do-a-dummy-dpcd-read-before-the-actual-read.patch create mode 100644 queue-3.17/drm-i915-fix-gmbusfreq-on-vlv-chv.patch create mode 100644 queue-3.17/drm-i915-ignore-vbt-backlight-check-on-macbook-2-1.patch create mode 100644 queue-3.17/drm-radeon-dpm-disable-ulv-support-on-si.patch create mode 100644 queue-3.17/drm-radeon-dpm-fixes-for-asrock-systems.patch create mode 100644 queue-3.17/drm-radeon-remove-invalid-pci-id.patch create mode 100644 queue-3.17/drm-radeon-use-drm_malloc_ab-instead-of-kmalloc_array.patch create mode 100644 queue-3.17/drm-vmwgfx-filter-out-modes-those-cannot-be-supported-by-the-current-vram-size.patch create mode 100644 queue-3.17/fix-breakage-in-o2net_send_tcp_msg.patch create mode 100644 queue-3.17/mm-cma-don-t-crash-on-allocation-if-cma-area-can-t-be-activated.patch create mode 100644 queue-3.17/pinctrl-baytrail-show-output-gpio-state-correctly-on-intel-baytrail.patch create mode 100644 queue-3.17/rbd-fix-error-recovery-in-rbd_obj_read_sync.patch create mode 100644 queue-3.17/samsung-laptop-add-broken-acpi-video-quirk-for-nc210-nc110.patch create mode 100644 queue-3.17/x86-intel-mid-create-irqs-for-apb-timers-and-rtc-timers.patch diff --git a/queue-3.17/acer-wmi-add-acpi_backlight-video-quirk-for-the-acer-kav80.patch b/queue-3.17/acer-wmi-add-acpi_backlight-video-quirk-for-the-acer-kav80.patch new file mode 100644 index 00000000000..fa9fb90b1fc --- /dev/null +++ b/queue-3.17/acer-wmi-add-acpi_backlight-video-quirk-for-the-acer-kav80.patch @@ -0,0 +1,47 @@ +From 183fd8fcd7f8afb7ac5ec68f83194872f9fecc84 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Oct 2014 16:06:38 +0200 +Subject: acer-wmi: Add acpi_backlight=video quirk for the Acer KAV80 + +From: Hans de Goede + +commit 183fd8fcd7f8afb7ac5ec68f83194872f9fecc84 upstream. + +The acpi-video backlight interface on the Acer KAV80 is broken, and worse +it causes the entire machine to slow down significantly after a suspend/resume. + +Blacklist it, and use the acer-wmi backlight interface instead. Note that +the KAV80 is somewhat unique in that it is the only Acer model where we +fall back to acer-wmi after blacklisting, rather then using the native +(e.g. intel) backlight driver. This is done because there is no native +backlight interface on this model. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1128309 +Signed-off-by: Hans de Goede +Signed-off-by: Darren Hart +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/platform/x86/acer-wmi.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/drivers/platform/x86/acer-wmi.c ++++ b/drivers/platform/x86/acer-wmi.c +@@ -579,6 +579,17 @@ static const struct dmi_system_id video_ + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5741"), + }, + }, ++ { ++ /* ++ * Note no video_set_backlight_video_vendor, we must use the ++ * acer interface, as there is no native backlight interface. ++ */ ++ .ident = "Acer KAV80", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Acer"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "KAV80"), ++ }, ++ }, + {} + }; + diff --git a/queue-3.17/arm-pxa-fix-hang-on-startup-with-debug_ll.patch b/queue-3.17/arm-pxa-fix-hang-on-startup-with-debug_ll.patch new file mode 100644 index 00000000000..908e409b7e8 --- /dev/null +++ b/queue-3.17/arm-pxa-fix-hang-on-startup-with-debug_ll.patch @@ -0,0 +1,93 @@ +From cde7fc879969f933614b1256df2625d6ff637bab Mon Sep 17 00:00:00 2001 +From: Robert Jarzmik +Date: Tue, 7 Oct 2014 21:18:14 +0200 +Subject: ARM: pxa: fix hang on startup with DEBUG_LL + +From: Robert Jarzmik + +commit cde7fc879969f933614b1256df2625d6ff637bab upstream. + +The commit 2111667b4677 ("ARM: pxa: call debug_ll_io_init for +earlyprintk") triggers in the current kernel the attached backtrace on +PXA/tosa early in the boot time when DEBUG_LL is enabled. + +It is due to overlap between uart virtual memory defined in +DEBUG_UART_VIRT and mapped by debug_ll_io_init() and peripheral bus +mapped by pxa_map_io at the same address, 0xf2100000. + +As hinted by Arnd, map early virtual memory for low level debug on +address 0xf6200000, even if that means 2 virtual mappings will give +access to the pxa internal UARTs (FFUART, BTUART, STUART, ...). + +------------[ cut here ]------------ +kernel BUG at /home/lumag/linux/mm/vmalloc.c:1143! +Internal error: Oops - BUG: 0 [#1] PREEMPT ARM +Modules linked in: +CPU: 0 PID: 0 Comm: swapper Not tainted 3.17.0-00032-g8e0d202-dirty #23 +task: c062a5a8 ti: c0620000 task.ti: c0620000 +PC is at vm_area_add_early+0x54/0x84 +LR is at add_static_vm_early+0xc/0x60 +pc : [] lr : [] psr: 800001d3 +sp : c0621f04 ip : c03efa74 fp : c03edf84 +r10: c0637e98 r9 : 40000001 r8 : c03da57c +r7 : c3ffcfb0 r6 : 00000000 r5 : c3ffcfb0 r4 : 02000000 +r3 : c3ffcfd8 r2 : f2100000 r1 : f4000000 r0 : c3ffcfb0 +Flags: Nzcv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel +Control: 00007977 Table: a0004000 DAC: 00000017 +Process swapper (pid: 0, stack limit = 0xc06201c8) +Stack: (0xc0621f04 to 0xc0622000) +1f00: c3ffcfd8 40000001 c3ffcfd8 c03ee08c c03da570 c03db90c c0637d24 +1f20: 00000000 c03ec7cc c066e654 a0700000 000a0700 c03db914 c03db90c c03daf84 +1f40: 00000000 000a0000 c0000000 c03ec7cc 000a0700 c0700000 ffff1000 000a3fff +1f60: 00001000 00000007 00000000 c03ec7cc c0008000 c03ed748 c0621fd4 c03d5d18 +1f80: 69052d00 a03ec48c 00000000 c03d8ad0 0000006c 00007977 c036c6e8 00000001 +1fa0: c0621fd4 c03ed744 c0628000 a0004000 69052d00 a03ec48c 00000000 c03d68d4 +1fc0: 00000000 00000000 00000000 00000000 00000000 c03ed748 c0649894 c062801c +1fe0: c03ed744 c062b2f0 a0004000 69052d00 a03ec48c a0008040 00000000 00000000 +[] (vm_area_add_early) from [] (add_static_vm_early+0xc/0x60) +[] (add_static_vm_early) from [] (iotable_init.part.6+0xa8/0xb4) +[] (iotable_init.part.6) from [] (pxa25x_map_io+0x8/0x24) +[] (pxa25x_map_io) from [] (paging_init+0x744/0x8d8) +[] (paging_init) from [] (setup_arch+0x354/0x608) +[] (setup_arch) from [] (start_kernel+0xa8/0x3dc) +[] (start_kernel) from [] (0xa0008040) +Code: e5904008 e0811004 e1520001 2a000005 (e7f001f2) +---[ end trace f24b6c88ae00fa9a ]--- +Kernel panic - not syncing: Attempted to kill the idle task! +---[ end Kernel panic - not syncing: Attempted to kill the idle task! + +Reported-by: Dmitry Eremin-Solenikov +Signed-off-by: Robert Jarzmik +Acked-by: Arnd Bergmann +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/Kconfig.debug | 2 +- + arch/arm/mach-pxa/include/mach/addr-map.h | 5 +++++ + 2 files changed, 6 insertions(+), 1 deletion(-) + +--- a/arch/arm/Kconfig.debug ++++ b/arch/arm/Kconfig.debug +@@ -1142,7 +1142,7 @@ config DEBUG_UART_VIRT + default 0xf1c28000 if DEBUG_SUNXI_UART0 + default 0xf1c28400 if DEBUG_SUNXI_UART1 + default 0xf1f02800 if DEBUG_SUNXI_R_UART +- default 0xf2100000 if DEBUG_PXA_UART1 ++ default 0xf6200000 if DEBUG_PXA_UART1 + default 0xf4090000 if ARCH_LPC32XX + default 0xf4200000 if ARCH_GEMINI + default 0xf7000000 if DEBUG_S3C24XX_UART && (DEBUG_S3C_UART0 || \ +--- a/arch/arm/mach-pxa/include/mach/addr-map.h ++++ b/arch/arm/mach-pxa/include/mach/addr-map.h +@@ -39,6 +39,11 @@ + #define DMEMC_SIZE 0x00100000 + + /* ++ * Reserved space for low level debug virtual addresses within ++ * 0xf6200000..0xf6201000 ++ */ ++ ++/* + * Internal Memory Controller (PXA27x and later) + */ + #define IMEMC_PHYS 0x58000000 diff --git a/queue-3.17/drm-i915-do-a-dummy-dpcd-read-before-the-actual-read.patch b/queue-3.17/drm-i915-do-a-dummy-dpcd-read-before-the-actual-read.patch new file mode 100644 index 00000000000..6a76b7368d5 --- /dev/null +++ b/queue-3.17/drm-i915-do-a-dummy-dpcd-read-before-the-actual-read.patch @@ -0,0 +1,52 @@ +From f6a1906674005377b64ee5431c1418077c1b2425 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= +Date: Thu, 16 Oct 2014 20:46:09 +0300 +Subject: drm/i915: Do a dummy DPCD read before the actual read +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= + +commit f6a1906674005377b64ee5431c1418077c1b2425 upstream. + +Sometimes we seem to get utter garbage from DPCD reads. The resulting +buffer is filled with the same byte, and the operation completed without +errors. My HP ZR24w monitor seems particularly susceptible to this +problem once it's gone into a sleep mode. + +The issue seems to happen only for the first AUX message that wakes the +sink up. But as the first AUX read we often do is the DPCD receiver +cap it does wreak a bit of havoc with subsequent link training etc. when +the receiver cap bw/lane/etc. information is garbage. + +A sufficient workaround seems to be to perform a single byte dummy read +before reading the actual data. I suppose that just wakes up the sink +sufficiently and we can just throw away the returned data in case it's +crap. DP_DPCD_REV seems like a sufficiently safe location to read here. + +Signed-off-by: Ville Syrjälä +Reviewed-by: Todd Previte +Signed-off-by: Jani Nikula +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_dp.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/gpu/drm/i915/intel_dp.c ++++ b/drivers/gpu/drm/i915/intel_dp.c +@@ -2364,6 +2364,13 @@ intel_dp_dpcd_read_wake(struct drm_dp_au + ssize_t ret; + int i; + ++ /* ++ * Sometime we just get the same incorrect byte repeated ++ * over the entire buffer. Doing just one throw away read ++ * initially seems to "solve" it. ++ */ ++ drm_dp_dpcd_read(aux, DP_DPCD_REV, buffer, 1); ++ + for (i = 0; i < 3; i++) { + ret = drm_dp_dpcd_read(aux, offset, buffer, size); + if (ret == size) diff --git a/queue-3.17/drm-i915-fix-gmbusfreq-on-vlv-chv.patch b/queue-3.17/drm-i915-fix-gmbusfreq-on-vlv-chv.patch new file mode 100644 index 00000000000..dde23c4ab91 --- /dev/null +++ b/queue-3.17/drm-i915-fix-gmbusfreq-on-vlv-chv.patch @@ -0,0 +1,40 @@ +From 6be1e3d3ea29354d7c834a3936e796e185d5c73b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= +Date: Thu, 16 Oct 2014 20:52:31 +0300 +Subject: drm/i915: Fix GMBUSFREQ on vlv/chv +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= + +commit 6be1e3d3ea29354d7c834a3936e796e185d5c73b upstream. + +vlv_cdclk_freq is in kHz but we need MHz for the GMBUSFREQ divider. + +This is a regression from: +commit f8bf63fdcb1f82459dae7a3f22ee5ce92f3ea727 +Author: Ville Syrjälä +Date: Fri Jun 13 13:37:54 2014 +0300 + + drm/i915: Kill duplicated cdclk readout code from i2c + +Signed-off-by: Ville Syrjälä +Signed-off-by: Jani Nikula +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_display.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -4470,7 +4470,7 @@ static void vlv_update_cdclk(struct drm_ + * BSpec erroneously claims we should aim for 4MHz, but + * in fact 1MHz is the correct frequency. + */ +- I915_WRITE(GMBUSFREQ_VLV, dev_priv->vlv_cdclk_freq); ++ I915_WRITE(GMBUSFREQ_VLV, DIV_ROUND_UP(dev_priv->vlv_cdclk_freq, 1000)); + } + + /* Adjust CDclk dividers to allow high res or save power if possible */ diff --git a/queue-3.17/drm-i915-ignore-vbt-backlight-check-on-macbook-2-1.patch b/queue-3.17/drm-i915-ignore-vbt-backlight-check-on-macbook-2-1.patch new file mode 100644 index 00000000000..d8d0c8dcc54 --- /dev/null +++ b/queue-3.17/drm-i915-ignore-vbt-backlight-check-on-macbook-2-1.patch @@ -0,0 +1,42 @@ +From b2a9601c587dbc5536546aa54009d1130adedd72 Mon Sep 17 00:00:00 2001 +From: jens stein +Date: Tue, 28 Oct 2014 20:25:53 +0100 +Subject: drm/i915: Ignore VBT backlight check on Macbook 2, 1 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: jens stein + +commit b2a9601c587dbc5536546aa54009d1130adedd72 upstream. + +commit c675949ec58ca50d5a3ae3c757892f1560f6e896 +Author: Jani Nikula +Date: Wed Apr 9 11:31:37 2014 +0300 + + drm/i915: do not setup backlight if not available according to VBT + +prevents backlight setup on Macbook 2,1. Apply quirk to ignore the VBT +check so backlight is set up properly. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81438 +Signed-off-by: Jens Stein Jørgensen +Signed-off-by: Jani Nikula +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_display.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -12507,6 +12507,9 @@ static struct intel_quirk intel_quirks[] + /* Acer C720 Chromebook (Core i3 4005U) */ + { 0x0a16, 0x1025, 0x0a11, quirk_backlight_present }, + ++ /* Apple Macbook 2,1 (Core 2 T7400) */ ++ { 0x27a2, 0x8086, 0x7270, quirk_backlight_present }, ++ + /* Toshiba CB35 Chromebook (Celeron 2955U) */ + { 0x0a06, 0x1179, 0x0a88, quirk_backlight_present }, + diff --git a/queue-3.17/drm-radeon-dpm-disable-ulv-support-on-si.patch b/queue-3.17/drm-radeon-dpm-disable-ulv-support-on-si.patch new file mode 100644 index 00000000000..9c06b9bca51 --- /dev/null +++ b/queue-3.17/drm-radeon-dpm-disable-ulv-support-on-si.patch @@ -0,0 +1,32 @@ +From 6fa455935ab956248b165f150ec6ae9106210077 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Mon, 13 Oct 2014 12:44:49 -0400 +Subject: drm/radeon/dpm: disable ulv support on SI + +From: Alex Deucher + +commit 6fa455935ab956248b165f150ec6ae9106210077 upstream. + +Causes problems on some boards. + +bug: +https://bugs.freedesktop.org/show_bug.cgi?id=82889 + +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/si_dpm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/radeon/si_dpm.c ++++ b/drivers/gpu/drm/radeon/si_dpm.c +@@ -6255,7 +6255,7 @@ static void si_parse_pplib_clock_info(st + if ((rps->class2 & ATOM_PPLIB_CLASSIFICATION2_ULV) && + index == 0) { + /* XXX disable for A0 tahiti */ +- si_pi->ulv.supported = true; ++ si_pi->ulv.supported = false; + si_pi->ulv.pl = *pl; + si_pi->ulv.one_pcie_lane_in_ulv = false; + si_pi->ulv.volt_change_delay = SISLANDS_ULVVOLTAGECHANGEDELAY_DFLT; diff --git a/queue-3.17/drm-radeon-dpm-fixes-for-asrock-systems.patch b/queue-3.17/drm-radeon-dpm-fixes-for-asrock-systems.patch new file mode 100644 index 00000000000..eb8b1f036ed --- /dev/null +++ b/queue-3.17/drm-radeon-dpm-fixes-for-asrock-systems.patch @@ -0,0 +1,60 @@ +From 72b3f9183ed57e4a2f0601a1c25ae2fd39855952 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Sun, 26 Oct 2014 15:10:21 -0400 +Subject: drm/radeon: dpm fixes for asrock systems + +From: Alex Deucher + +commit 72b3f9183ed57e4a2f0601a1c25ae2fd39855952 upstream. + +- bapm seems to cause CPU stuck messages so disable it. +- nb dpm seems to prevent GPU dpm from getting enabled, so +disable it. + +bug: +https://bugs.freedesktop.org/show_bug.cgi?id=85107 + +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/kv_dpm.c | 19 ++++++++++++++++--- + 1 file changed, 16 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/radeon/kv_dpm.c ++++ b/drivers/gpu/drm/radeon/kv_dpm.c +@@ -2725,7 +2725,11 @@ int kv_dpm_init(struct radeon_device *rd + + pi->sram_end = SMC_RAM_END; + +- pi->enable_nb_dpm = true; ++ /* Enabling nb dpm on an asrock system prevents dpm from working */ ++ if (rdev->pdev->subsystem_vendor == 0x1849) ++ pi->enable_nb_dpm = false; ++ else ++ pi->enable_nb_dpm = true; + + pi->caps_power_containment = true; + pi->caps_cac = true; +@@ -2740,10 +2744,19 @@ int kv_dpm_init(struct radeon_device *rd + pi->caps_sclk_ds = true; + pi->enable_auto_thermal_throttling = true; + pi->disable_nb_ps3_in_battery = false; +- if (radeon_bapm == 0) ++ if (radeon_bapm == -1) { ++ /* There are stability issues reported on with ++ * bapm enabled on an asrock system. ++ */ ++ if (rdev->pdev->subsystem_vendor == 0x1849) ++ pi->bapm_enable = false; ++ else ++ pi->bapm_enable = true; ++ } else if (radeon_bapm == 0) { + pi->bapm_enable = false; +- else ++ } else { + pi->bapm_enable = true; ++ } + pi->voltage_drop_t = 0; + pi->caps_sclk_throttle_low_notification = false; + pi->caps_fps = false; /* true? */ diff --git a/queue-3.17/drm-radeon-remove-invalid-pci-id.patch b/queue-3.17/drm-radeon-remove-invalid-pci-id.patch new file mode 100644 index 00000000000..b4461492c6e --- /dev/null +++ b/queue-3.17/drm-radeon-remove-invalid-pci-id.patch @@ -0,0 +1,30 @@ +From 8c3e434769b1707fd2d24de5a2eb25fedc634c4a Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Sun, 26 Oct 2014 15:18:42 -0400 +Subject: drm/radeon: remove invalid pci id + +From: Alex Deucher + +commit 8c3e434769b1707fd2d24de5a2eb25fedc634c4a upstream. + +0x4c6e is a secondary device id so should not be used +by the driver. + +Noticed-by: Mark Kettenis +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + include/drm/drm_pciids.h | 1 - + 1 file changed, 1 deletion(-) + +--- a/include/drm/drm_pciids.h ++++ b/include/drm/drm_pciids.h +@@ -74,7 +74,6 @@ + {0x1002, 0x4C64, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ + {0x1002, 0x4C66, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ + {0x1002, 0x4C67, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ +- {0x1002, 0x4C6E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280|RADEON_IS_MOBILITY}, \ + {0x1002, 0x4E44, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ + {0x1002, 0x4E45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ + {0x1002, 0x4E46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ diff --git a/queue-3.17/drm-radeon-use-drm_malloc_ab-instead-of-kmalloc_array.patch b/queue-3.17/drm-radeon-use-drm_malloc_ab-instead-of-kmalloc_array.patch new file mode 100644 index 00000000000..7453f14cfeb --- /dev/null +++ b/queue-3.17/drm-radeon-use-drm_malloc_ab-instead-of-kmalloc_array.patch @@ -0,0 +1,71 @@ +From e5a5fd4df21b9c4acb67e815ec949cce594860f8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= +Date: Mon, 20 Oct 2014 18:40:54 +0900 +Subject: drm/radeon: Use drm_malloc_ab instead of kmalloc_array +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= + +commit e5a5fd4df21b9c4acb67e815ec949cce594860f8 upstream. + +Should avoid kmalloc failures due to large number of array entries. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81991 +Reviewed-by: Dave Airlie +Reviewed-by: Christian König +Signed-off-by: Michel Dänzer +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/radeon_cs.c | 2 +- + drivers/gpu/drm/radeon/radeon_ring.c | 4 ++-- + drivers/gpu/drm/radeon/radeon_vm.c | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/gpu/drm/radeon/radeon_cs.c ++++ b/drivers/gpu/drm/radeon/radeon_cs.c +@@ -418,7 +418,7 @@ static void radeon_cs_parser_fini(struct + kfree(parser->track); + kfree(parser->relocs); + kfree(parser->relocs_ptr); +- kfree(parser->vm_bos); ++ drm_free_large(parser->vm_bos); + for (i = 0; i < parser->nchunks; i++) + drm_free_large(parser->chunks[i].kdata); + kfree(parser->chunks); +--- a/drivers/gpu/drm/radeon/radeon_ring.c ++++ b/drivers/gpu/drm/radeon/radeon_ring.c +@@ -335,7 +335,7 @@ unsigned radeon_ring_backup(struct radeo + } + + /* and then save the content of the ring */ +- *data = kmalloc_array(size, sizeof(uint32_t), GFP_KERNEL); ++ *data = drm_malloc_ab(size, sizeof(uint32_t)); + if (!*data) { + mutex_unlock(&rdev->ring_lock); + return 0; +@@ -377,7 +377,7 @@ int radeon_ring_restore(struct radeon_de + } + + radeon_ring_unlock_commit(rdev, ring, false); +- kfree(data); ++ drm_free_large(data); + return 0; + } + +--- a/drivers/gpu/drm/radeon/radeon_vm.c ++++ b/drivers/gpu/drm/radeon/radeon_vm.c +@@ -132,8 +132,8 @@ struct radeon_cs_reloc *radeon_vm_get_bo + struct radeon_cs_reloc *list; + unsigned i, idx; + +- list = kmalloc_array(vm->max_pde_used + 2, +- sizeof(struct radeon_cs_reloc), GFP_KERNEL); ++ list = drm_malloc_ab(vm->max_pde_used + 2, ++ sizeof(struct radeon_cs_reloc)); + if (!list) + return NULL; + diff --git a/queue-3.17/drm-vmwgfx-filter-out-modes-those-cannot-be-supported-by-the-current-vram-size.patch b/queue-3.17/drm-vmwgfx-filter-out-modes-those-cannot-be-supported-by-the-current-vram-size.patch new file mode 100644 index 00000000000..ea170968d61 --- /dev/null +++ b/queue-3.17/drm-vmwgfx-filter-out-modes-those-cannot-be-supported-by-the-current-vram-size.patch @@ -0,0 +1,80 @@ +From 9a72384d86b26cb8a2b25106677e1197f606668f Mon Sep 17 00:00:00 2001 +From: Sinclair Yeh +Date: Fri, 31 Oct 2014 09:58:06 +0100 +Subject: drm/vmwgfx: Filter out modes those cannot be supported by the current VRAM size. + +From: Sinclair Yeh + +commit 9a72384d86b26cb8a2b25106677e1197f606668f upstream. + +When screen objects are enabled, the bpp is assumed to be 32, otherwise +it is set to 16. + +v2: +* Use u32 instead of u64 for assumed_bpp. +* Fixed mechanism to check for screen objects +* Limit the back buffer size to VRAM. + +Signed-off-by: Sinclair Yeh +Reviewed-by: Thomas Hellstrom +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 6 +++++- + drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 16 +++++++++++++--- + 2 files changed, 18 insertions(+), 4 deletions(-) + +--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c ++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +@@ -688,7 +688,11 @@ static int vmw_driver_load(struct drm_de + goto out_err0; + } + +- if (unlikely(dev_priv->prim_bb_mem < dev_priv->vram_size)) ++ /* ++ * Limit back buffer size to VRAM size. Remove this once ++ * screen targets are implemented. ++ */ ++ if (dev_priv->prim_bb_mem > dev_priv->vram_size) + dev_priv->prim_bb_mem = dev_priv->vram_size; + + mutex_unlock(&dev_priv->hw_mutex); +--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c ++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +@@ -1950,6 +1950,14 @@ int vmw_du_connector_fill_modes(struct d + DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC) + }; + int i; ++ u32 assumed_bpp = 2; ++ ++ /* ++ * If using screen objects, then assume 32-bpp because that's what the ++ * SVGA device is assuming ++ */ ++ if (dev_priv->sou_priv) ++ assumed_bpp = 4; + + /* Add preferred mode */ + { +@@ -1960,8 +1968,9 @@ int vmw_du_connector_fill_modes(struct d + mode->vdisplay = du->pref_height; + vmw_guess_mode_timing(mode); + +- if (vmw_kms_validate_mode_vram(dev_priv, mode->hdisplay * 2, +- mode->vdisplay)) { ++ if (vmw_kms_validate_mode_vram(dev_priv, ++ mode->hdisplay * assumed_bpp, ++ mode->vdisplay)) { + drm_mode_probed_add(connector, mode); + } else { + drm_mode_destroy(dev, mode); +@@ -1983,7 +1992,8 @@ int vmw_du_connector_fill_modes(struct d + bmode->vdisplay > max_height) + continue; + +- if (!vmw_kms_validate_mode_vram(dev_priv, bmode->hdisplay * 2, ++ if (!vmw_kms_validate_mode_vram(dev_priv, ++ bmode->hdisplay * assumed_bpp, + bmode->vdisplay)) + continue; + diff --git a/queue-3.17/fix-breakage-in-o2net_send_tcp_msg.patch b/queue-3.17/fix-breakage-in-o2net_send_tcp_msg.patch new file mode 100644 index 00000000000..e48d92ec33a --- /dev/null +++ b/queue-3.17/fix-breakage-in-o2net_send_tcp_msg.patch @@ -0,0 +1,30 @@ +From 7e8631e8b9d4e9f698c09c7e7309c96249180ff9 Mon Sep 17 00:00:00 2001 +From: Al Viro +Date: Wed, 5 Nov 2014 15:18:29 -0500 +Subject: fix breakage in o2net_send_tcp_msg() + +From: Al Viro + +commit 7e8631e8b9d4e9f698c09c7e7309c96249180ff9 upstream. + +uninitialized msghdr. Broken in "ocfs2: don't open-code kernel_recvmsg()" +by me ;-/ + +Signed-off-by: Al Viro +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ocfs2/cluster/tcp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/fs/ocfs2/cluster/tcp.c ++++ b/fs/ocfs2/cluster/tcp.c +@@ -925,7 +925,7 @@ static int o2net_send_tcp_msg(struct soc + size_t veclen, size_t total) + { + int ret; +- struct msghdr msg; ++ struct msghdr msg = {.msg_flags = 0,}; + + if (sock == NULL) { + ret = -EINVAL; diff --git a/queue-3.17/mm-cma-don-t-crash-on-allocation-if-cma-area-can-t-be-activated.patch b/queue-3.17/mm-cma-don-t-crash-on-allocation-if-cma-area-can-t-be-activated.patch new file mode 100644 index 00000000000..497f0afa3b3 --- /dev/null +++ b/queue-3.17/mm-cma-don-t-crash-on-allocation-if-cma-area-can-t-be-activated.patch @@ -0,0 +1,33 @@ +From f022d8cb7ec70fe8edd56383d876001317ee76b1 Mon Sep 17 00:00:00 2001 +From: Laurent Pinchart +Date: Fri, 24 Oct 2014 13:18:39 +0300 +Subject: mm: cma: Don't crash on allocation if CMA area can't be activated + +From: Laurent Pinchart + +commit f022d8cb7ec70fe8edd56383d876001317ee76b1 upstream. + +If activation of the CMA area fails its mutex won't be initialized, +leading to an oops at allocation time when trying to lock the mutex. Fix +this by setting the cma area count field to 0 when activation fails, +leading to allocation returning NULL immediately. + +Signed-off-by: Laurent Pinchart +Acked-by: Michal Nazarewicz +Signed-off-by: Marek Szyprowski +Signed-off-by: Greg Kroah-Hartman + +--- + mm/cma.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/mm/cma.c ++++ b/mm/cma.c +@@ -123,6 +123,7 @@ static int __init cma_activate_area(stru + + err: + kfree(cma->bitmap); ++ cma->count = 0; + return -EINVAL; + } + diff --git a/queue-3.17/pinctrl-baytrail-show-output-gpio-state-correctly-on-intel-baytrail.patch b/queue-3.17/pinctrl-baytrail-show-output-gpio-state-correctly-on-intel-baytrail.patch new file mode 100644 index 00000000000..266d313ffbd --- /dev/null +++ b/queue-3.17/pinctrl-baytrail-show-output-gpio-state-correctly-on-intel-baytrail.patch @@ -0,0 +1,36 @@ +From d90c33818967c5e5371961604ad98b4dea4fa3f4 Mon Sep 17 00:00:00 2001 +From: David Cohen +Date: Tue, 14 Oct 2014 10:54:37 -0700 +Subject: pinctrl: baytrail: show output gpio state correctly on Intel Baytrail + +From: David Cohen + +commit d90c33818967c5e5371961604ad98b4dea4fa3f4 upstream. + +Even if a gpio pin is set to output, we still need to set INPUT_EN +functionality (by clearing INPUT_EN bit) to be able to read the pin's +level. + +E.g. without this change, we'll always read low level state from sysfs. + +Cc: Mathias Nyman +Signed-off-by: David Cohen +Reviewed-by: Felipe Balbi +Signed-off-by: Linus Walleij +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pinctrl/pinctrl-baytrail.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/pinctrl/pinctrl-baytrail.c ++++ b/drivers/pinctrl/pinctrl-baytrail.c +@@ -318,7 +318,7 @@ static int byt_gpio_direction_output(str + "Potential Error: Setting GPIO with direct_irq_en to output"); + + reg_val = readl(reg) | BYT_DIR_MASK; +- reg_val &= ~BYT_OUTPUT_EN; ++ reg_val &= ~(BYT_OUTPUT_EN | BYT_INPUT_EN); + + if (value) + writel(reg_val | BYT_LEVEL, reg); diff --git a/queue-3.17/rbd-fix-error-recovery-in-rbd_obj_read_sync.patch b/queue-3.17/rbd-fix-error-recovery-in-rbd_obj_read_sync.patch new file mode 100644 index 00000000000..d756f794e30 --- /dev/null +++ b/queue-3.17/rbd-fix-error-recovery-in-rbd_obj_read_sync.patch @@ -0,0 +1,36 @@ +From a8d4205623ae965e36c68629db306ca0695a2771 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Wed, 22 Oct 2014 09:17:24 +0200 +Subject: rbd: Fix error recovery in rbd_obj_read_sync() + +From: Jan Kara + +commit a8d4205623ae965e36c68629db306ca0695a2771 upstream. + +When we fail to allocate page vector in rbd_obj_read_sync() we just +basically ignore the problem and continue which will result in an oops +later. Fix the problem by returning proper error. + +CC: Yehuda Sadeh +CC: Sage Weil +CC: ceph-devel@vger.kernel.org +Coverity-id: 1226882 +Signed-off-by: Jan Kara +Signed-off-by: Ilya Dryomov +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/block/rbd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/block/rbd.c ++++ b/drivers/block/rbd.c +@@ -3382,7 +3382,7 @@ static int rbd_obj_read_sync(struct rbd_ + page_count = (u32) calc_pages_for(offset, length); + pages = ceph_alloc_page_vector(page_count, GFP_KERNEL); + if (IS_ERR(pages)) +- ret = PTR_ERR(pages); ++ return PTR_ERR(pages); + + ret = -ENOMEM; + obj_request = rbd_obj_request_create(object_name, offset, length, diff --git a/queue-3.17/samsung-laptop-add-broken-acpi-video-quirk-for-nc210-nc110.patch b/queue-3.17/samsung-laptop-add-broken-acpi-video-quirk-for-nc210-nc110.patch new file mode 100644 index 00000000000..bde8bf4b33b --- /dev/null +++ b/queue-3.17/samsung-laptop-add-broken-acpi-video-quirk-for-nc210-nc110.patch @@ -0,0 +1,40 @@ +From 5a1426c99f9b7aa11d60c4e6b7a3211bb5321696 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Oct 2014 16:06:37 +0200 +Subject: samsung-laptop: Add broken-acpi-video quirk for NC210/NC110 + +From: Hans de Goede + +commit 5a1426c99f9b7aa11d60c4e6b7a3211bb5321696 upstream. + +The acpi-video backlight interface on the NC210 does not work, blacklist it +and use the samsung-laptop interface instead. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=861573 +Signed-off-by: Hans de Goede +Signed-off-by: Darren Hart +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/platform/x86/samsung-laptop.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/drivers/platform/x86/samsung-laptop.c ++++ b/drivers/platform/x86/samsung-laptop.c +@@ -1561,6 +1561,16 @@ static struct dmi_system_id __initdata s + }, + { + .callback = samsung_dmi_matched, ++ .ident = "NC210", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "NC210/NC110"), ++ DMI_MATCH(DMI_BOARD_NAME, "NC210/NC110"), ++ }, ++ .driver_data = &samsung_broken_acpi_video, ++ }, ++ { ++ .callback = samsung_dmi_matched, + .ident = "730U3E/740U3E", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), diff --git a/queue-3.17/series b/queue-3.17/series index e76318c5eac..bf43bab029e 100644 --- a/queue-3.17/series +++ b/queue-3.17/series @@ -280,3 +280,19 @@ mtd-m25p80-fix-module-aliases-for-m25p80.patch usb-dwc3-gadget-fix-set_halt-bug-with-pending-transfers.patch usb-gadget-function-acm-make-f_acm-pass-usb20cv-chapter9.patch sched-use-rq-rd-in-sched_setaffinity-under-rcu-read-lock.patch +x86-intel-mid-create-irqs-for-apb-timers-and-rtc-timers.patch +drm-vmwgfx-filter-out-modes-those-cannot-be-supported-by-the-current-vram-size.patch +drm-radeon-dpm-disable-ulv-support-on-si.patch +drm-radeon-use-drm_malloc_ab-instead-of-kmalloc_array.patch +drm-radeon-dpm-fixes-for-asrock-systems.patch +drm-radeon-remove-invalid-pci-id.patch +drm-i915-do-a-dummy-dpcd-read-before-the-actual-read.patch +drm-i915-fix-gmbusfreq-on-vlv-chv.patch +drm-i915-ignore-vbt-backlight-check-on-macbook-2-1.patch +mm-cma-don-t-crash-on-allocation-if-cma-area-can-t-be-activated.patch +rbd-fix-error-recovery-in-rbd_obj_read_sync.patch +acer-wmi-add-acpi_backlight-video-quirk-for-the-acer-kav80.patch +samsung-laptop-add-broken-acpi-video-quirk-for-nc210-nc110.patch +fix-breakage-in-o2net_send_tcp_msg.patch +pinctrl-baytrail-show-output-gpio-state-correctly-on-intel-baytrail.patch +arm-pxa-fix-hang-on-startup-with-debug_ll.patch diff --git a/queue-3.17/x86-intel-mid-create-irqs-for-apb-timers-and-rtc-timers.patch b/queue-3.17/x86-intel-mid-create-irqs-for-apb-timers-and-rtc-timers.patch new file mode 100644 index 00000000000..f0d2309b53e --- /dev/null +++ b/queue-3.17/x86-intel-mid-create-irqs-for-apb-timers-and-rtc-timers.patch @@ -0,0 +1,70 @@ +From f18298595aefa2c836a128ec6e0f75f39965dd81 Mon Sep 17 00:00:00 2001 +From: Jiang Liu +Date: Mon, 27 Oct 2014 13:21:32 +0800 +Subject: x86, intel-mid: Create IRQs for APB timers and RTC timers + +From: Jiang Liu + +commit f18298595aefa2c836a128ec6e0f75f39965dd81 upstream. + +Intel MID platforms has no legacy interrupts, so no IRQ descriptors +preallocated. We need to call mp_map_gsi_to_irq() to create IRQ +descriptors for APB timers and RTC timers, otherwise it may cause +invalid memory access as: +[ 0.116839] BUG: unable to handle kernel NULL pointer dereference at +0000003a +[ 0.123803] IP: [] setup_irq+0xf/0x4d + +Tested-by: Andy Shevchenko +Signed-off-by: Jiang Liu +Cc: Konrad Rzeszutek Wilk +Cc: Tony Luck +Cc: Joerg Roedel +Cc: Greg Kroah-Hartman +Cc: H. Peter Anvin +Cc: Benjamin Herrenschmidt +Cc: Rafael J. Wysocki +Cc: Bjorn Helgaas +Cc: Randy Dunlap +Cc: Yinghai Lu +Cc: Borislav Petkov +Cc: David Cohen +Link: http://lkml.kernel.org/r/1414387308-27148-3-git-send-email-jiang.liu@linux.intel.com +Signed-off-by: Thomas Gleixner +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kernel/apb_timer.c | 2 -- + arch/x86/platform/intel-mid/sfi.c | 2 ++ + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/x86/kernel/apb_timer.c ++++ b/arch/x86/kernel/apb_timer.c +@@ -185,8 +185,6 @@ static void apbt_setup_irq(struct apbt_d + + irq_modify_status(adev->irq, 0, IRQ_MOVE_PCNTXT); + irq_set_affinity(adev->irq, cpumask_of(adev->cpu)); +- /* APB timer irqs are set up as mp_irqs, timer is edge type */ +- __irq_set_handler(adev->irq, handle_edge_irq, 0, "edge"); + } + + /* Should be called with per cpu */ +--- a/arch/x86/platform/intel-mid/sfi.c ++++ b/arch/x86/platform/intel-mid/sfi.c +@@ -106,6 +106,7 @@ int __init sfi_parse_mtmr(struct sfi_tab + mp_irq.dstapic = MP_APIC_ALL; + mp_irq.dstirq = pentry->irq; + mp_save_irq(&mp_irq); ++ mp_map_gsi_to_irq(pentry->irq, IOAPIC_MAP_ALLOC); + } + + return 0; +@@ -176,6 +177,7 @@ int __init sfi_parse_mrtc(struct sfi_tab + mp_irq.dstapic = MP_APIC_ALL; + mp_irq.dstirq = pentry->irq; + mp_save_irq(&mp_irq); ++ mp_map_gsi_to_irq(pentry->irq, IOAPIC_MAP_ALLOC); + } + return 0; + } -- 2.47.3