From 080bee2a1f361c9aefeb0aeccdc2880415970026 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 14 Jan 2013 09:52:08 -0800 Subject: [PATCH] 3.0-stable patches added patches: drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch i2400m-add-intel-6150-device-ids.patch jffs2-hold-erase_completion_lock-on-exit.patch --- ...-fitter-work-on-pipes-b-and-c-on-ivb.patch | 50 +++++++++++++++++ .../i2400m-add-intel-6150-device-ids.patch | 54 +++++++++++++++++++ ...2-hold-erase_completion_lock-on-exit.patch | 45 ++++++++++++++++ queue-3.0/series | 3 ++ 4 files changed, 152 insertions(+) create mode 100644 queue-3.0/drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch create mode 100644 queue-3.0/i2400m-add-intel-6150-device-ids.patch create mode 100644 queue-3.0/jffs2-hold-erase_completion_lock-on-exit.patch diff --git a/queue-3.0/drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch b/queue-3.0/drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch new file mode 100644 index 00000000000..67cfb37a7c7 --- /dev/null +++ b/queue-3.0/drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch @@ -0,0 +1,50 @@ +From 13888d78c664a1f61d7b09d282f5916993827a40 Mon Sep 17 00:00:00 2001 +From: Paulo Zanoni +Date: Tue, 20 Nov 2012 13:27:41 -0200 +Subject: drm/i915: make the panel fitter work on pipes B and C on IVB + +From: Paulo Zanoni + +commit 13888d78c664a1f61d7b09d282f5916993827a40 upstream. + +I actually found this problem on Haswell, but then discovered Ivy +Bridge also has it by reading the spec. + +I don't have the hardware to test this. + +Signed-off-by: Paulo Zanoni +Reviewed-by: Damien Lespiau +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_reg.h | 2 ++ + drivers/gpu/drm/i915/intel_display.c | 6 +++++- + 2 files changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/i915/i915_reg.h ++++ b/drivers/gpu/drm/i915/i915_reg.h +@@ -2754,6 +2754,8 @@ + #define _PFA_CTL_1 0x68080 + #define _PFB_CTL_1 0x68880 + #define PF_ENABLE (1<<31) ++#define PF_PIPE_SEL_MASK_IVB (3<<29) ++#define PF_PIPE_SEL_IVB(pipe) ((pipe)<<29) + #define PF_FILTER_MASK (3<<23) + #define PF_FILTER_PROGRAMMED (0<<23) + #define PF_FILTER_MED_3x3 (1<<23) +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -2696,7 +2696,11 @@ static void ironlake_crtc_enable(struct + * as some pre-programmed values are broken, + * e.g. x201. + */ +- I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3); ++ if (IS_IVYBRIDGE(dev)) ++ I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3 | ++ PF_PIPE_SEL_IVB(pipe)); ++ else ++ I915_WRITE(PF_CTL(pipe), PF_ENABLE | PF_FILTER_MED_3x3); + I915_WRITE(PF_WIN_POS(pipe), dev_priv->pch_pf_pos); + I915_WRITE(PF_WIN_SZ(pipe), dev_priv->pch_pf_size); + } diff --git a/queue-3.0/i2400m-add-intel-6150-device-ids.patch b/queue-3.0/i2400m-add-intel-6150-device-ids.patch new file mode 100644 index 00000000000..d6031fdb8c2 --- /dev/null +++ b/queue-3.0/i2400m-add-intel-6150-device-ids.patch @@ -0,0 +1,54 @@ +From 999a7c5776a0ed2133645fa7e008bec05bda9254 Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Fri, 14 Dec 2012 13:10:50 +0000 +Subject: i2400m: add Intel 6150 device IDs + +From: Dan Williams + +commit 999a7c5776a0ed2133645fa7e008bec05bda9254 upstream. + +Add device IDs for WiMAX function of Intel 6150 cards. + +Signed-off-by: Dan Williams +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wimax/i2400m/i2400m-usb.h | 3 +++ + drivers/net/wimax/i2400m/usb.c | 6 ++++++ + 2 files changed, 9 insertions(+) + +--- a/drivers/net/wimax/i2400m/i2400m-usb.h ++++ b/drivers/net/wimax/i2400m/i2400m-usb.h +@@ -152,6 +152,9 @@ enum { + /* Device IDs */ + USB_DEVICE_ID_I6050 = 0x0186, + USB_DEVICE_ID_I6050_2 = 0x0188, ++ USB_DEVICE_ID_I6150 = 0x07d6, ++ USB_DEVICE_ID_I6150_2 = 0x07d7, ++ USB_DEVICE_ID_I6150_3 = 0x07d9, + USB_DEVICE_ID_I6250 = 0x0187, + }; + +--- a/drivers/net/wimax/i2400m/usb.c ++++ b/drivers/net/wimax/i2400m/usb.c +@@ -491,6 +491,9 @@ int i2400mu_probe(struct usb_interface * + switch (id->idProduct) { + case USB_DEVICE_ID_I6050: + case USB_DEVICE_ID_I6050_2: ++ case USB_DEVICE_ID_I6150: ++ case USB_DEVICE_ID_I6150_2: ++ case USB_DEVICE_ID_I6150_3: + case USB_DEVICE_ID_I6250: + i2400mu->i6050 = 1; + break; +@@ -740,6 +743,9 @@ static + struct usb_device_id i2400mu_id_table[] = { + { USB_DEVICE(0x8086, USB_DEVICE_ID_I6050) }, + { USB_DEVICE(0x8086, USB_DEVICE_ID_I6050_2) }, ++ { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150) }, ++ { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150_2) }, ++ { USB_DEVICE(0x8087, USB_DEVICE_ID_I6150_3) }, + { USB_DEVICE(0x8086, USB_DEVICE_ID_I6250) }, + { USB_DEVICE(0x8086, 0x0181) }, + { USB_DEVICE(0x8086, 0x1403) }, diff --git a/queue-3.0/jffs2-hold-erase_completion_lock-on-exit.patch b/queue-3.0/jffs2-hold-erase_completion_lock-on-exit.patch new file mode 100644 index 00000000000..cef01fbb4cb --- /dev/null +++ b/queue-3.0/jffs2-hold-erase_completion_lock-on-exit.patch @@ -0,0 +1,45 @@ +From 2cbba75a56ea78e6876b4e2547a882f10b3fe72b Mon Sep 17 00:00:00 2001 +From: Alexey Khoroshilov +Date: Mon, 5 Nov 2012 22:40:14 +0400 +Subject: jffs2: hold erase_completion_lock on exit + +From: Alexey Khoroshilov + +commit 2cbba75a56ea78e6876b4e2547a882f10b3fe72b upstream. + +Users of jffs2_do_reserve_space() expect they still held +erase_completion_lock after call to it. But there is a path +where jffs2_do_reserve_space() leaves erase_completion_lock unlocked. +The patch fixes it. + +Found by Linux Driver Verification project (linuxtesting.org). + +Signed-off-by: Alexey Khoroshilov +Signed-off-by: Artem Bityutskiy +Signed-off-by: Greg Kroah-Hartman + +--- + fs/jffs2/nodemgmt.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/fs/jffs2/nodemgmt.c ++++ b/fs/jffs2/nodemgmt.c +@@ -355,14 +355,16 @@ static int jffs2_do_reserve_space(struct + spin_unlock(&c->erase_completion_lock); + + ret = jffs2_prealloc_raw_node_refs(c, jeb, 1); +- if (ret) +- return ret; ++ + /* Just lock it again and continue. Nothing much can change because + we hold c->alloc_sem anyway. In fact, it's not entirely clear why + we hold c->erase_completion_lock in the majority of this function... + but that's a question for another (more caffeine-rich) day. */ + spin_lock(&c->erase_completion_lock); + ++ if (ret) ++ return ret; ++ + waste = jeb->free_size; + jffs2_link_node_ref(c, jeb, + (jeb->offset + c->sector_size - waste) | REF_OBSOLETE, diff --git a/queue-3.0/series b/queue-3.0/series index 03a8f9fb7b0..e3b75d00e5a 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -16,3 +16,6 @@ mfd-only-unregister-platform-devices-allocated-by-the-mfd-core.patch ext4-fix-memory-leak-in-ext4_xattr_set_acl-s-error-path.patch sunrpc-ensure-that-we-free-the-rpc_task-after-cleanups-are-done.patch sunrpc-ensure-we-release-the-socket-write-lock-if-the-rpc_task-exits-early.patch +jffs2-hold-erase_completion_lock-on-exit.patch +i2400m-add-intel-6150-device-ids.patch +drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch -- 2.47.3