]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2014 03:37:26 +0000 (20:37 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2014 03:37:26 +0000 (20:37 -0700)
added patches:
arm64-__nr_compat_syscalls-fix.patch
drm-armada-fix-corruption-while-loading-cursors.patch
media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch
media-em28xx-fix-pctv-290e-lna-oops.patch
media-m88rs2000-add-caps-fe_can_inversion_auto.patch
media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch
media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch
media-omap3isp-preview-fix-the-crop-margins.patch
media-saa7134-fix-warn_on-during-resume.patch
media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch
media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch
media-v4l2-dv-timings-add-module-name-description-license.patch
media-videodev2.h-add-parenthesis-around-macro-arguments.patch
reiserfs-fix-race-in-readdir.patch
usb-dwc3-fix-randconfig-build-errors.patch
usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch
usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch
usb-gadget-tcm_usb_gadget-stop-format-strings.patch
usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch
usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch
video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch
xhci-extend-quirk-for-renesas-cards.patch
xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch
xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch

25 files changed:
queue-3.14/arm64-__nr_compat_syscalls-fix.patch [new file with mode: 0644]
queue-3.14/drm-armada-fix-corruption-while-loading-cursors.patch [new file with mode: 0644]
queue-3.14/media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch [new file with mode: 0644]
queue-3.14/media-em28xx-fix-pctv-290e-lna-oops.patch [new file with mode: 0644]
queue-3.14/media-m88rs2000-add-caps-fe_can_inversion_auto.patch [new file with mode: 0644]
queue-3.14/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch [new file with mode: 0644]
queue-3.14/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch [new file with mode: 0644]
queue-3.14/media-omap3isp-preview-fix-the-crop-margins.patch [new file with mode: 0644]
queue-3.14/media-saa7134-fix-warn_on-during-resume.patch [new file with mode: 0644]
queue-3.14/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch [new file with mode: 0644]
queue-3.14/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch [new file with mode: 0644]
queue-3.14/media-v4l2-dv-timings-add-module-name-description-license.patch [new file with mode: 0644]
queue-3.14/media-videodev2.h-add-parenthesis-around-macro-arguments.patch [new file with mode: 0644]
queue-3.14/reiserfs-fix-race-in-readdir.patch [new file with mode: 0644]
queue-3.14/series
queue-3.14/usb-dwc3-fix-randconfig-build-errors.patch [new file with mode: 0644]
queue-3.14/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch [new file with mode: 0644]
queue-3.14/usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch [new file with mode: 0644]
queue-3.14/usb-gadget-tcm_usb_gadget-stop-format-strings.patch [new file with mode: 0644]
queue-3.14/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch [new file with mode: 0644]
queue-3.14/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch [new file with mode: 0644]
queue-3.14/video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch [new file with mode: 0644]
queue-3.14/xhci-extend-quirk-for-renesas-cards.patch [new file with mode: 0644]
queue-3.14/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch [new file with mode: 0644]
queue-3.14/xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch [new file with mode: 0644]

diff --git a/queue-3.14/arm64-__nr_compat_syscalls-fix.patch b/queue-3.14/arm64-__nr_compat_syscalls-fix.patch
new file mode 100644 (file)
index 0000000..1e2d903
--- /dev/null
@@ -0,0 +1,31 @@
+From 838977f0178334bf3d7f3e974ea3154b68979be0 Mon Sep 17 00:00:00 2001
+From: Miklos Szeredi <mszeredi@suse.cz>
+Date: Fri, 11 Apr 2014 11:25:40 +0100
+Subject: arm64: __NR_compat_syscalls fix
+
+From: Miklos Szeredi <mszeredi@suse.cz>
+
+commit 838977f0178334bf3d7f3e974ea3154b68979be0 upstream.
+
+This fixes commit 6290b53de025 (arm64: compat: Wire up new AArch32 syscalls)
+which did not update __NR_compat_syscalls accordingly.
+
+Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
+Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm64/include/asm/unistd32.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/arm64/include/asm/unistd32.h
++++ b/arch/arm64/include/asm/unistd32.h
+@@ -404,7 +404,7 @@ __SYSCALL(379, sys_finit_module)
+ __SYSCALL(380, sys_sched_setattr)
+ __SYSCALL(381, sys_sched_getattr)
+-#define __NR_compat_syscalls          379
++#define __NR_compat_syscalls          382
+ /*
+  * Compat syscall numbers used by the AArch64 kernel.
diff --git a/queue-3.14/drm-armada-fix-corruption-while-loading-cursors.patch b/queue-3.14/drm-armada-fix-corruption-while-loading-cursors.patch
new file mode 100644 (file)
index 0000000..e8761b3
--- /dev/null
@@ -0,0 +1,36 @@
+From c39b06951f1dc2e384650288676c5b7dcc0ec92c Mon Sep 17 00:00:00 2001
+From: Russell King <rmk+kernel@arm.linux.org.uk>
+Date: Mon, 7 Apr 2014 12:00:17 +0100
+Subject: DRM: armada: fix corruption while loading cursors
+
+From: Russell King <rmk+kernel@arm.linux.org.uk>
+
+commit c39b06951f1dc2e384650288676c5b7dcc0ec92c upstream.
+
+Loading cursors to the LCD controller's SRAM can be corrupted when the
+configured pixel clock is relatively slow.  This seems to be caused
+when we write back-to-back to the SRAM registers.
+
+There doesn't appear to be any status register we can read to check
+when an access has completed.
+
+Inserting a dummy read between the writes appears to fix the problem.
+
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/armada/armada_crtc.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/gpu/drm/armada/armada_crtc.c
++++ b/drivers/gpu/drm/armada/armada_crtc.c
+@@ -678,6 +678,7 @@ static void armada_load_cursor_argb(void
+                                      base + LCD_SPU_SRAM_WRDAT);
+                       writel_relaxed(addr | SRAM_WRITE,
+                                      base + LCD_SPU_SRAM_CTRL);
++                      readl_relaxed(base + LCD_SPU_HWC_OVSA_HPXL_VLN);
+                       addr += 1;
+                       if ((addr & 0x00ff) == 0)
+                               addr += 0xf00;
diff --git a/queue-3.14/media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch b/queue-3.14/media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch
new file mode 100644 (file)
index 0000000..92e6768
--- /dev/null
@@ -0,0 +1,72 @@
+From 01ae3b51af7144ea29eb28ba718b65ad59ab9493 Mon Sep 17 00:00:00 2001
+From: Frank Schaefer <fschaefer.oss@googlemail.com>
+Date: Fri, 17 Jan 2014 14:18:42 -0300
+Subject: media: em28xx-audio: fix user counting in snd_em28xx_capture_open()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Frank Schaefer <fschaefer.oss@googlemail.com>
+
+commit 01ae3b51af7144ea29eb28ba718b65ad59ab9493 upstream.
+
+dev->adev.users always needs to be increased when snd_em28xx_capture_open() is
+called and succeeds.
+
+Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/usb/em28xx/em28xx-audio.c |   22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+--- a/drivers/media/usb/em28xx/em28xx-audio.c
++++ b/drivers/media/usb/em28xx/em28xx-audio.c
+@@ -252,7 +252,7 @@ static int snd_em28xx_capture_open(struc
+ {
+       struct em28xx *dev = snd_pcm_substream_chip(substream);
+       struct snd_pcm_runtime *runtime = substream->runtime;
+-      int ret = 0;
++      int nonblock, ret = 0;
+       if (!dev) {
+               em28xx_err("BUG: em28xx can't find device struct."
+@@ -265,15 +265,15 @@ static int snd_em28xx_capture_open(struc
+       dprintk("opening device and trying to acquire exclusive lock\n");
++      nonblock = !!(substream->f_flags & O_NONBLOCK);
++      if (nonblock) {
++              if (!mutex_trylock(&dev->lock))
++              return -EAGAIN;
++      } else
++              mutex_lock(&dev->lock);
++
+       runtime->hw = snd_em28xx_hw_capture;
+       if ((dev->alt == 0 || dev->is_audio_only) && dev->adev.users == 0) {
+-              int nonblock = !!(substream->f_flags & O_NONBLOCK);
+-
+-              if (nonblock) {
+-                      if (!mutex_trylock(&dev->lock))
+-                              return -EAGAIN;
+-              } else
+-                      mutex_lock(&dev->lock);
+               if (dev->is_audio_only)
+                       /* vendor audio is on a separate interface */
+                       dev->alt = 1;
+@@ -299,11 +299,11 @@ static int snd_em28xx_capture_open(struc
+               ret = em28xx_audio_analog_set(dev);
+               if (ret < 0)
+                       goto err;
+-
+-              dev->adev.users++;
+-              mutex_unlock(&dev->lock);
+       }
++      dev->adev.users++;
++      mutex_unlock(&dev->lock);
++
+       /* Dynamically adjust the period size */
+       snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
+       snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
diff --git a/queue-3.14/media-em28xx-fix-pctv-290e-lna-oops.patch b/queue-3.14/media-em28xx-fix-pctv-290e-lna-oops.patch
new file mode 100644 (file)
index 0000000..910e527
--- /dev/null
@@ -0,0 +1,37 @@
+From 3ec40dcfb413214b2874aec858870502b61c2202 Mon Sep 17 00:00:00 2001
+From: Antti Palosaari <crope@iki.fi>
+Date: Tue, 11 Mar 2014 06:53:16 -0300
+Subject: media: em28xx: fix PCTV 290e LNA oops
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Antti Palosaari <crope@iki.fi>
+
+commit 3ec40dcfb413214b2874aec858870502b61c2202 upstream.
+
+Pointer to device state has been moved to different location during
+some change. PCTV 290e LNA function still uses old pointer, carried
+over FE priv, and it crash.
+
+Reported-by: Janne Kujanpää <jikuja@iki.fi>
+Signed-off-by: Antti Palosaari <crope@iki.fi>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/usb/em28xx/em28xx-dvb.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/media/usb/em28xx/em28xx-dvb.c
++++ b/drivers/media/usb/em28xx/em28xx-dvb.c
+@@ -693,7 +693,8 @@ static void pctv_520e_init(struct em28xx
+ static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe)
+ {
+       struct dtv_frontend_properties *c = &fe->dtv_property_cache;
+-      struct em28xx *dev = fe->dvb->priv;
++      struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv;
++      struct em28xx *dev = i2c_bus->dev;
+ #ifdef CONFIG_GPIOLIB
+       struct em28xx_dvb *dvb = dev->dvb;
+       int ret;
diff --git a/queue-3.14/media-m88rs2000-add-caps-fe_can_inversion_auto.patch b/queue-3.14/media-m88rs2000-add-caps-fe_can_inversion_auto.patch
new file mode 100644 (file)
index 0000000..8ee06ae
--- /dev/null
@@ -0,0 +1,31 @@
+From 3c8023a782964c72574ad8268ba0ea4e2d9772fc Mon Sep 17 00:00:00 2001
+From: Malcolm Priestley <tvboxspy@gmail.com>
+Date: Tue, 25 Feb 2014 23:05:39 -0300
+Subject: media: m88rs2000: add caps FE_CAN_INVERSION_AUTO
+
+From: Malcolm Priestley <tvboxspy@gmail.com>
+
+commit 3c8023a782964c72574ad8268ba0ea4e2d9772fc upstream.
+
+The m88rs2000 frontend is always auto inversion.
+
+Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/dvb-frontends/m88rs2000.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/media/dvb-frontends/m88rs2000.c
++++ b/drivers/media/dvb-frontends/m88rs2000.c
+@@ -762,7 +762,7 @@ static struct dvb_frontend_ops m88rs2000
+               .symbol_rate_tolerance  = 500,  /* ppm */
+               .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
+                     FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 |
+-                    FE_CAN_QPSK |
++                    FE_CAN_QPSK | FE_CAN_INVERSION_AUTO |
+                     FE_CAN_FEC_AUTO
+       },
diff --git a/queue-3.14/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch b/queue-3.14/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch
new file mode 100644 (file)
index 0000000..9a9c8c1
--- /dev/null
@@ -0,0 +1,60 @@
+From 8272d0a0c0d374a01721e579df6e8add5577132b Mon Sep 17 00:00:00 2001
+From: Malcolm Priestley <tvboxspy@gmail.com>
+Date: Tue, 25 Feb 2014 23:11:34 -0300
+Subject: media: m88rs2000: prevent frontend crash on continuous transponder scans
+
+From: Malcolm Priestley <tvboxspy@gmail.com>
+
+commit 8272d0a0c0d374a01721e579df6e8add5577132b upstream.
+
+Add m88rs2000_get_tune_settings, min delay of 2000 ms on symbol
+rate more than 3000000 and delay of 3000ms less than this.
+
+Adding min delay prevents crashing the frontend on continuous
+transponder scans. Other dvb_frontend_tune_settings remain as default.
+
+This makes very little time difference to good channel scans, but slows down
+the set frontend where lock can never be achieved i.e. DVB-S2.
+
+Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/dvb-frontends/m88rs2000.c |   17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/drivers/media/dvb-frontends/m88rs2000.c
++++ b/drivers/media/dvb-frontends/m88rs2000.c
+@@ -715,6 +715,22 @@ static int m88rs2000_get_frontend(struct
+       return 0;
+ }
++static int m88rs2000_get_tune_settings(struct dvb_frontend *fe,
++      struct dvb_frontend_tune_settings *tune)
++{
++      struct dtv_frontend_properties *c = &fe->dtv_property_cache;
++
++      if (c->symbol_rate > 3000000)
++              tune->min_delay_ms = 2000;
++      else
++              tune->min_delay_ms = 3000;
++
++      tune->step_size = c->symbol_rate / 16000;
++      tune->max_drift = c->symbol_rate / 2000;
++
++      return 0;
++}
++
+ static int m88rs2000_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
+ {
+       struct m88rs2000_state *state = fe->demodulator_priv;
+@@ -766,6 +782,7 @@ static struct dvb_frontend_ops m88rs2000
+       .set_frontend = m88rs2000_set_frontend,
+       .get_frontend = m88rs2000_get_frontend,
++      .get_tune_settings = m88rs2000_get_tune_settings,
+ };
+ struct dvb_frontend *m88rs2000_attach(const struct m88rs2000_config *config,
diff --git a/queue-3.14/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch b/queue-3.14/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch
new file mode 100644 (file)
index 0000000..d16dc2d
--- /dev/null
@@ -0,0 +1,39 @@
+From 61f0319193c44adbbada920162d880b1fdb3aeb3 Mon Sep 17 00:00:00 2001
+From: Wolfram Sang <wsa@the-dreams.de>
+Date: Sat, 1 Feb 2014 15:26:00 -0300
+Subject: media: media: gspca: sn9c20x: add ID for Genius Look 1320 V2
+
+From: Wolfram Sang <wsa@the-dreams.de>
+
+commit 61f0319193c44adbbada920162d880b1fdb3aeb3 upstream.
+
+Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/video4linux/gspca.txt |    1 +
+ drivers/media/usb/gspca/sn9c20x.c   |    1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/Documentation/video4linux/gspca.txt
++++ b/Documentation/video4linux/gspca.txt
+@@ -55,6 +55,7 @@ zc3xx                0458:700f       Genius VideoCam Web V2
+ sonixj                0458:7025       Genius Eye 311Q
+ sn9c20x               0458:7029       Genius Look 320s
+ sonixj                0458:702e       Genius Slim 310 NB
++sn9c20x               0458:7045       Genius Look 1320 V2
+ sn9c20x               0458:704a       Genius Slim 1320
+ sn9c20x               0458:704c       Genius i-Look 1321
+ sn9c20x               045e:00f4       LifeCam VX-6000 (SN9C20x + OV9650)
+--- a/drivers/media/usb/gspca/sn9c20x.c
++++ b/drivers/media/usb/gspca/sn9c20x.c
+@@ -2359,6 +2359,7 @@ static const struct usb_device_id device
+       {USB_DEVICE(0x045e, 0x00f4), SN9C20X(OV9650, 0x30, 0)},
+       {USB_DEVICE(0x145f, 0x013d), SN9C20X(OV7660, 0x21, 0)},
+       {USB_DEVICE(0x0458, 0x7029), SN9C20X(HV7131R, 0x11, 0)},
++      {USB_DEVICE(0x0458, 0x7045), SN9C20X(MT9M112, 0x5d, LED_REVERSE)},
+       {USB_DEVICE(0x0458, 0x704a), SN9C20X(MT9M112, 0x5d, 0)},
+       {USB_DEVICE(0x0458, 0x704c), SN9C20X(MT9M112, 0x5d, 0)},
+       {USB_DEVICE(0xa168, 0x0610), SN9C20X(HV7131R, 0x11, 0)},
diff --git a/queue-3.14/media-omap3isp-preview-fix-the-crop-margins.patch b/queue-3.14/media-omap3isp-preview-fix-the-crop-margins.patch
new file mode 100644 (file)
index 0000000..20f847f
--- /dev/null
@@ -0,0 +1,48 @@
+From 8b57b9669aa884ac75b8d09c251d6b1755533c15 Mon Sep 17 00:00:00 2001
+From: Florian Vaussard <florian.vaussard@epfl.ch>
+Date: Fri, 17 Jan 2014 16:37:38 -0300
+Subject: media: omap3isp: preview: Fix the crop margins
+
+From: Florian Vaussard <florian.vaussard@epfl.ch>
+
+commit 8b57b9669aa884ac75b8d09c251d6b1755533c15 upstream.
+
+Commit 3fdfedaaa "[media] omap3isp: preview: Lower the crop margins"
+accidentally changed the previewer's cropping, causing the previewer
+to miss four pixels on each line, thus corrupting the final image.
+Restored the removed setting.
+
+Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
+Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/platform/omap3isp/isppreview.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/media/platform/omap3isp/isppreview.c
++++ b/drivers/media/platform/omap3isp/isppreview.c
+@@ -1079,6 +1079,7 @@ static void preview_config_input_format(
+  */
+ static void preview_config_input_size(struct isp_prev_device *prev, u32 active)
+ {
++      const struct v4l2_mbus_framefmt *format = &prev->formats[PREV_PAD_SINK];
+       struct isp_device *isp = to_isp_device(prev);
+       unsigned int sph = prev->crop.left;
+       unsigned int eph = prev->crop.left + prev->crop.width - 1;
+@@ -1086,6 +1087,14 @@ static void preview_config_input_size(st
+       unsigned int elv = prev->crop.top + prev->crop.height - 1;
+       u32 features;
++      if (format->code != V4L2_MBUS_FMT_Y8_1X8 &&
++          format->code != V4L2_MBUS_FMT_Y10_1X10) {
++              sph -= 2;
++              eph += 2;
++              slv -= 2;
++              elv += 2;
++      }
++
+       features = (prev->params.params[0].features & active)
+                | (prev->params.params[1].features & ~active);
diff --git a/queue-3.14/media-saa7134-fix-warn_on-during-resume.patch b/queue-3.14/media-saa7134-fix-warn_on-during-resume.patch
new file mode 100644 (file)
index 0000000..a1d8751
--- /dev/null
@@ -0,0 +1,38 @@
+From 30d652823de5fd7907d40e969a2d8e23938d8d03 Mon Sep 17 00:00:00 2001
+From: Hans Verkuil <hans.verkuil@cisco.com>
+Date: Fri, 7 Mar 2014 07:28:39 -0300
+Subject: media: saa7134: fix WARN_ON during resume
+
+From: Hans Verkuil <hans.verkuil@cisco.com>
+
+commit 30d652823de5fd7907d40e969a2d8e23938d8d03 upstream.
+
+Do not attempt to reload the tuner modules when resuming after a suspend.
+This triggers a WARN_ON in kernel/kmod.c:148 __request_module.
+
+This fixes https://bugzilla.kernel.org/show_bug.cgi?id=69581.
+
+This has always been wrong, but it was never noticed until the WARN_ON
+was added in 3.9.
+
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/pci/saa7134/saa7134-cards.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/pci/saa7134/saa7134-cards.c
++++ b/drivers/media/pci/saa7134/saa7134-cards.c
+@@ -8045,8 +8045,8 @@ int saa7134_board_init2(struct saa7134_d
+               break;
+       } /* switch() */
+-      /* initialize tuner */
+-      if (TUNER_ABSENT != dev->tuner_type) {
++      /* initialize tuner (don't do this when resuming) */
++      if (!dev->insuspend && TUNER_ABSENT != dev->tuner_type) {
+               int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
+               /* Note: radio tuner address is always filled in,
diff --git a/queue-3.14/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch b/queue-3.14/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch
new file mode 100644 (file)
index 0000000..a09526f
--- /dev/null
@@ -0,0 +1,71 @@
+From b1e43f232698274871e1358c276d7b0242a7d607 Mon Sep 17 00:00:00 2001
+From: Oleksij Rempel <linux@rempel-privat.de>
+Date: Sun, 16 Feb 2014 06:59:32 -0300
+Subject: media: uvcvideo: Do not use usb_set_interface on bulk EP
+
+From: Oleksij Rempel <linux@rempel-privat.de>
+
+commit b1e43f232698274871e1358c276d7b0242a7d607 upstream.
+
+The UVC specification uses alternate setting selection to notify devices
+of stream start/stop. This breaks when using bulk-based devices, as the
+video streaming interface has a single alternate setting in that case,
+making video stream start and video stream stop events to appear
+identical to the device. Bulk-based devices are thus not well supported
+by UVC.
+
+The webcam built in the Asus Zenbook UX302LA ignores the set interface
+request and will keep the video stream enabled when the driver tries to
+stop it. If USB autosuspend is enabled the device will then be suspended
+and will crash, requiring a cold reboot.
+
+USB trace capture showed that Windows sends a CLEAR_FEATURE(HALT)
+request to the bulk endpoint when stopping the stream instead of
+selecting alternate setting 0. The camera then behaves correctly, and
+thus seems to require that behaviour.
+
+Replace selection of alternate setting 0 with clearing of the endpoint
+halt feature at video stream stop for bulk-based devices. Let's refrain
+from blaming Microsoft this time, as it's not clear whether this
+Windows-specific but USB-compliant behaviour was specifically developed
+to handle bulkd-based UVC devices, or if the camera just took advantage
+of it.
+
+Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
+Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/usb/uvc/uvc_video.c |   20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+--- a/drivers/media/usb/uvc/uvc_video.c
++++ b/drivers/media/usb/uvc/uvc_video.c
+@@ -1847,7 +1847,25 @@ int uvc_video_enable(struct uvc_streamin
+       if (!enable) {
+               uvc_uninit_video(stream, 1);
+-              usb_set_interface(stream->dev->udev, stream->intfnum, 0);
++              if (stream->intf->num_altsetting > 1) {
++                      usb_set_interface(stream->dev->udev,
++                                        stream->intfnum, 0);
++              } else {
++                      /* UVC doesn't specify how to inform a bulk-based device
++                       * when the video stream is stopped. Windows sends a
++                       * CLEAR_FEATURE(HALT) request to the video streaming
++                       * bulk endpoint, mimic the same behaviour.
++                       */
++                      unsigned int epnum = stream->header.bEndpointAddress
++                                         & USB_ENDPOINT_NUMBER_MASK;
++                      unsigned int dir = stream->header.bEndpointAddress
++                                       & USB_ENDPOINT_DIR_MASK;
++                      unsigned int pipe;
++
++                      pipe = usb_sndbulkpipe(stream->dev->udev, epnum) | dir;
++                      usb_clear_halt(stream->dev->udev, pipe);
++              }
++
+               uvc_queue_enable(&stream->queue, 0);
+               uvc_video_clock_cleanup(stream);
+               return 0;
diff --git a/queue-3.14/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch b/queue-3.14/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch
new file mode 100644 (file)
index 0000000..8b01e09
--- /dev/null
@@ -0,0 +1,33 @@
+From bc826d6e39fe5f09cbadf8723e9183e6331b586f Mon Sep 17 00:00:00 2001
+From: Hans Verkuil <hans.verkuil@cisco.com>
+Date: Thu, 6 Mar 2014 07:24:21 -0300
+Subject: media: v4l2-compat-ioctl32: fix wrong VIDIOC_SUBDEV_G/S_EDID32 support
+
+From: Hans Verkuil <hans.verkuil@cisco.com>
+
+commit bc826d6e39fe5f09cbadf8723e9183e6331b586f upstream.
+
+The wrong ioctl numbers were used due to a copy-and-paste error.
+
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/v4l2-core/v4l2-compat-ioctl32.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
++++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
+@@ -787,8 +787,8 @@ static int put_v4l2_subdev_edid32(struct
+ #define VIDIOC_DQBUF32                _IOWR('V', 17, struct v4l2_buffer32)
+ #define VIDIOC_ENUMSTD32      _IOWR('V', 25, struct v4l2_standard32)
+ #define VIDIOC_ENUMINPUT32    _IOWR('V', 26, struct v4l2_input32)
+-#define VIDIOC_SUBDEV_G_EDID32        _IOWR('V', 63, struct v4l2_subdev_edid32)
+-#define VIDIOC_SUBDEV_S_EDID32        _IOWR('V', 64, struct v4l2_subdev_edid32)
++#define VIDIOC_SUBDEV_G_EDID32        _IOWR('V', 40, struct v4l2_subdev_edid32)
++#define VIDIOC_SUBDEV_S_EDID32        _IOWR('V', 41, struct v4l2_subdev_edid32)
+ #define VIDIOC_TRY_FMT32              _IOWR('V', 64, struct v4l2_format32)
+ #define VIDIOC_G_EXT_CTRLS32    _IOWR('V', 71, struct v4l2_ext_controls32)
+ #define VIDIOC_S_EXT_CTRLS32    _IOWR('V', 72, struct v4l2_ext_controls32)
diff --git a/queue-3.14/media-v4l2-dv-timings-add-module-name-description-license.patch b/queue-3.14/media-v4l2-dv-timings-add-module-name-description-license.patch
new file mode 100644 (file)
index 0000000..fe167ff
--- /dev/null
@@ -0,0 +1,33 @@
+From c4885ada88e4331f8ac56d14296d0058359db2d7 Mon Sep 17 00:00:00 2001
+From: Hans Verkuil <hans.verkuil@cisco.com>
+Date: Tue, 4 Mar 2014 04:51:50 -0300
+Subject: media: v4l2-dv-timings: add module name, description, license
+
+From: Hans Verkuil <hans.verkuil@cisco.com>
+
+commit c4885ada88e4331f8ac56d14296d0058359db2d7 upstream.
+
+I completely forgot to add them when I made this module. Loading this module
+without it will taint the kernel, which is not intended.
+
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/media/v4l2-core/v4l2-dv-timings.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/media/v4l2-core/v4l2-dv-timings.c
++++ b/drivers/media/v4l2-core/v4l2-dv-timings.c
+@@ -26,6 +26,10 @@
+ #include <linux/v4l2-dv-timings.h>
+ #include <media/v4l2-dv-timings.h>
++MODULE_AUTHOR("Hans Verkuil");
++MODULE_DESCRIPTION("V4L2 DV Timings Helper Functions");
++MODULE_LICENSE("GPL");
++
+ const struct v4l2_dv_timings v4l2_dv_timings_presets[] = {
+       V4L2_DV_BT_CEA_640X480P59_94,
+       V4L2_DV_BT_CEA_720X480I59_94,
diff --git a/queue-3.14/media-videodev2.h-add-parenthesis-around-macro-arguments.patch b/queue-3.14/media-videodev2.h-add-parenthesis-around-macro-arguments.patch
new file mode 100644 (file)
index 0000000..7d8fa2d
--- /dev/null
@@ -0,0 +1,41 @@
+From aee786acfc0a12bcd37a1c60f3198fb25cf7181a Mon Sep 17 00:00:00 2001
+From: Hans Verkuil <hverkuil@xs4all.nl>
+Date: Thu, 27 Feb 2014 06:04:57 -0300
+Subject: media: videodev2.h: add parenthesis around macro arguments
+
+From: Hans Verkuil <hverkuil@xs4all.nl>
+
+commit aee786acfc0a12bcd37a1c60f3198fb25cf7181a upstream.
+
+bt->width should be (bt)->width, and same for the other fields.
+
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/uapi/linux/videodev2.h |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/include/uapi/linux/videodev2.h
++++ b/include/uapi/linux/videodev2.h
+@@ -1059,14 +1059,14 @@ struct v4l2_bt_timings {
+ /* A few useful defines to calculate the total blanking and frame sizes */
+ #define V4L2_DV_BT_BLANKING_WIDTH(bt) \
+-      (bt->hfrontporch + bt->hsync + bt->hbackporch)
++      ((bt)->hfrontporch + (bt)->hsync + (bt)->hbackporch)
+ #define V4L2_DV_BT_FRAME_WIDTH(bt) \
+-      (bt->width + V4L2_DV_BT_BLANKING_WIDTH(bt))
++      ((bt)->width + V4L2_DV_BT_BLANKING_WIDTH(bt))
+ #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \
+-      (bt->vfrontporch + bt->vsync + bt->vbackporch + \
+-       bt->il_vfrontporch + bt->il_vsync + bt->il_vbackporch)
++      ((bt)->vfrontporch + (bt)->vsync + (bt)->vbackporch + \
++       (bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch)
+ #define V4L2_DV_BT_FRAME_HEIGHT(bt) \
+-      (bt->height + V4L2_DV_BT_BLANKING_HEIGHT(bt))
++      ((bt)->height + V4L2_DV_BT_BLANKING_HEIGHT(bt))
+ /** struct v4l2_dv_timings - DV timings
+  * @type:     the type of the timings
diff --git a/queue-3.14/reiserfs-fix-race-in-readdir.patch b/queue-3.14/reiserfs-fix-race-in-readdir.patch
new file mode 100644 (file)
index 0000000..1e92259
--- /dev/null
@@ -0,0 +1,47 @@
+From 01d8885785a60ae8f4c37b0ed75bdc96d0fc6a44 Mon Sep 17 00:00:00 2001
+From: Jeff Mahoney <jeffm@suse.com>
+Date: Wed, 2 Apr 2014 14:40:26 -0400
+Subject: reiserfs: fix race in readdir
+
+From: Jeff Mahoney <jeffm@suse.com>
+
+commit 01d8885785a60ae8f4c37b0ed75bdc96d0fc6a44 upstream.
+
+jdm-20004 reiserfs_delete_xattrs: Couldn't delete all xattrs (-2)
+
+The -ENOENT is due to readdir calling dir_emit on the same entry twice.
+
+If the dir_emit callback sleeps and the tree is changed underneath us,
+we won't be able to trust deh_offset(deh) anymore. We need to save
+next_pos before we might sleep so we can find the next entry.
+
+Signed-off-by: Jeff Mahoney <jeffm@suse.com>
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/reiserfs/dir.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/fs/reiserfs/dir.c
++++ b/fs/reiserfs/dir.c
+@@ -125,6 +125,7 @@ int reiserfs_readdir_inode(struct inode
+                               int d_reclen;
+                               char *d_name;
+                               ino_t d_ino;
++                              loff_t cur_pos = deh_offset(deh);
+                               if (!de_visible(deh))
+                                       /* it is hidden entry */
+@@ -196,8 +197,9 @@ int reiserfs_readdir_inode(struct inode
+                               if (local_buf != small_buf) {
+                                       kfree(local_buf);
+                               }
+-                              // next entry should be looked for with such offset
+-                              next_pos = deh_offset(deh) + 1;
++
++                              /* deh_offset(deh) may be invalid now. */
++                              next_pos = cur_pos + 1;
+                               if (item_moved(&tmp_ih, &path_to_entry)) {
+                                       set_cpu_key_k_offset(&pos_key,
index 02dd4b90953e1b47af961ee0f4473da541a8bbe3..c651f0c2b6634e49f56c02451ab65bdf786b2a53 100644 (file)
@@ -97,3 +97,27 @@ drivers-hv-vmbus-negotiate-version-3.0-when-running-on-ws2012r2-hosts.patch
 x86-efi-correct-efi-boot-stub-use-of-code32_start.patch
 efi-pass-correct-file-handle-to-efi_file_-read-close.patch
 word-at-a-time-avoid-undefined-behaviour-in-zero_bytemask-macro.patch
+arm64-__nr_compat_syscalls-fix.patch
+drm-armada-fix-corruption-while-loading-cursors.patch
+reiserfs-fix-race-in-readdir.patch
+usb-gadget-tcm_usb_gadget-stop-format-strings.patch
+usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch
+usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch
+xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch
+xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch
+xhci-extend-quirk-for-renesas-cards.patch
+usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch
+media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch
+media-videodev2.h-add-parenthesis-around-macro-arguments.patch
+video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch
+media-v4l2-dv-timings-add-module-name-description-license.patch
+media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch
+media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch
+media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch
+media-m88rs2000-add-caps-fe_can_inversion_auto.patch
+media-em28xx-fix-pctv-290e-lna-oops.patch
+media-saa7134-fix-warn_on-during-resume.patch
+media-omap3isp-preview-fix-the-crop-margins.patch
+media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch
+usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch
+usb-dwc3-fix-randconfig-build-errors.patch
diff --git a/queue-3.14/usb-dwc3-fix-randconfig-build-errors.patch b/queue-3.14/usb-dwc3-fix-randconfig-build-errors.patch
new file mode 100644 (file)
index 0000000..d42843b
--- /dev/null
@@ -0,0 +1,113 @@
+From 610183051d8f9421f138c4203ca894387f9f8839 Mon Sep 17 00:00:00 2001
+From: Felipe Balbi <balbi@ti.com>
+Date: Tue, 4 Mar 2014 09:23:50 -0600
+Subject: usb: dwc3: fix randconfig build errors
+
+From: Felipe Balbi <balbi@ti.com>
+
+commit 610183051d8f9421f138c4203ca894387f9f8839 upstream.
+
+commit 388e5c5 (usb: dwc3: remove dwc3 dependency
+on host AND gadget.) created the possibility for
+host-only and peripheral-only dwc3 builds but
+left a possible randconfig build error when host-only
+builds are selected.
+
+Reported-by: Jim Davis <jim.epost@gmail.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/dwc3/core.h   |   33 +++++++++++++++++++++++++++++++++
+ drivers/usb/dwc3/gadget.h |   12 ------------
+ 2 files changed, 33 insertions(+), 12 deletions(-)
+
+--- a/drivers/usb/dwc3/core.h
++++ b/drivers/usb/dwc3/core.h
+@@ -856,6 +856,19 @@ union dwc3_event {
+       struct dwc3_event_gevt          gevt;
+ };
++/**
++ * struct dwc3_gadget_ep_cmd_params - representation of endpoint command
++ * parameters
++ * @param2: third parameter
++ * @param1: second parameter
++ * @param0: first parameter
++ */
++struct dwc3_gadget_ep_cmd_params {
++      u32     param2;
++      u32     param1;
++      u32     param0;
++};
++
+ /*
+  * DWC3 Features to be used as Driver Data
+  */
+@@ -881,11 +894,31 @@ static inline void dwc3_host_exit(struct
+ #if IS_ENABLED(CONFIG_USB_DWC3_GADGET) || IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE)
+ int dwc3_gadget_init(struct dwc3 *dwc);
+ void dwc3_gadget_exit(struct dwc3 *dwc);
++int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode);
++int dwc3_gadget_get_link_state(struct dwc3 *dwc);
++int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state);
++int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
++              unsigned cmd, struct dwc3_gadget_ep_cmd_params *params);
++int dwc3_send_gadget_generic_command(struct dwc3 *dwc, int cmd, u32 param);
+ #else
+ static inline int dwc3_gadget_init(struct dwc3 *dwc)
+ { return 0; }
+ static inline void dwc3_gadget_exit(struct dwc3 *dwc)
+ { }
++static inline int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode)
++{ return 0; }
++static inline int dwc3_gadget_get_link_state(struct dwc3 *dwc)
++{ return 0; }
++static inline int dwc3_gadget_set_link_state(struct dwc3 *dwc,
++              enum dwc3_link_state state)
++{ return 0; }
++
++static inline int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
++              unsigned cmd, struct dwc3_gadget_ep_cmd_params *params)
++{ return 0; }
++static inline int dwc3_send_gadget_generic_command(struct dwc3 *dwc,
++              int cmd, u32 param)
++{ return 0; }
+ #endif
+ /* power management interface */
+--- a/drivers/usb/dwc3/gadget.h
++++ b/drivers/usb/dwc3/gadget.h
+@@ -56,12 +56,6 @@ struct dwc3;
+ /* DEPXFERCFG parameter 0 */
+ #define DWC3_DEPXFERCFG_NUM_XFER_RES(n)       ((n) & 0xffff)
+-struct dwc3_gadget_ep_cmd_params {
+-      u32     param2;
+-      u32     param1;
+-      u32     param0;
+-};
+-
+ /* -------------------------------------------------------------------------- */
+ #define to_dwc3_request(r)    (container_of(r, struct dwc3_request, request))
+@@ -85,9 +79,6 @@ static inline void dwc3_gadget_move_requ
+ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
+               int status);
+-int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode);
+-int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state);
+-
+ void dwc3_ep0_interrupt(struct dwc3 *dwc,
+               const struct dwc3_event_depevt *event);
+ void dwc3_ep0_out_start(struct dwc3 *dwc);
+@@ -95,9 +86,6 @@ int dwc3_gadget_ep0_set_halt(struct usb_
+ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
+               gfp_t gfp_flags);
+ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value);
+-int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep,
+-              unsigned cmd, struct dwc3_gadget_ep_cmd_params *params);
+-int dwc3_send_gadget_generic_command(struct dwc3 *dwc, int cmd, u32 param);
+ /**
+  * dwc3_gadget_ep_get_transfer_index - Gets transfer index from HW
diff --git a/queue-3.14/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch b/queue-3.14/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch
new file mode 100644 (file)
index 0000000..8bc398e
--- /dev/null
@@ -0,0 +1,58 @@
+From 06f9b6e59661cee510b04513b13ea7927727d758 Mon Sep 17 00:00:00 2001
+From: Huang Rui <ray.huang@amd.com>
+Date: Tue, 7 Jan 2014 17:45:50 +0800
+Subject: usb: dwc3: fix wrong bit mask in dwc3_event_devt
+
+From: Huang Rui <ray.huang@amd.com>
+
+commit 06f9b6e59661cee510b04513b13ea7927727d758 upstream.
+
+Around DWC USB3 2.30a release another bit has been added to the
+Device-Specific Event (DEVT) Event Information (EvtInfo) bitfield.
+
+Because of that, what used to be 8 bits long, has become 9 bits long.
+
+Per dwc3 2.30a+ spec in the Device-Specific Event (DEVT), the field of
+Event Information Bits(EvtInfo) uses [24:16] bits, and it has 9 bits
+not 8 bits. And the following reserved field uses [31:25] bits not
+[31:24] bits, and it has 7 bits.
+
+So in dwc3_event_devt, the bit mask should be:
+event_info     [24:16]         9 bits
+reserved31_25  [31:25]         7 bits
+
+This patch makes sure that newer core releases will work fine with
+Linux and that we will decode the event information properly on new
+core releases.
+
+[ balbi@ti.com : improve commit log a bit ]
+
+Signed-off-by: Huang Rui <ray.huang@amd.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/dwc3/core.h |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/dwc3/core.h
++++ b/drivers/usb/dwc3/core.h
+@@ -815,15 +815,15 @@ struct dwc3_event_depevt {
+  *    12      - VndrDevTstRcved
+  * @reserved15_12: Reserved, not used
+  * @event_info: Information about this event
+- * @reserved31_24: Reserved, not used
++ * @reserved31_25: Reserved, not used
+  */
+ struct dwc3_event_devt {
+       u32     one_bit:1;
+       u32     device_event:7;
+       u32     type:4;
+       u32     reserved15_12:4;
+-      u32     event_info:8;
+-      u32     reserved31_24:8;
++      u32     event_info:9;
++      u32     reserved31_25:7;
+ } __packed;
+ /**
diff --git a/queue-3.14/usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch b/queue-3.14/usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch
new file mode 100644 (file)
index 0000000..8821261
--- /dev/null
@@ -0,0 +1,48 @@
+From d8eb6c653ef6b323d630de3c5685478469e248bc Mon Sep 17 00:00:00 2001
+From: Gregory CLEMENT <gregory.clement@free-electrons.com>
+Date: Mon, 3 Mar 2014 17:48:34 +0100
+Subject: usb: gadget: atmel_usba: fix crashed during stopping when DEBUG is enabled
+
+From: Gregory CLEMENT <gregory.clement@free-electrons.com>
+
+commit d8eb6c653ef6b323d630de3c5685478469e248bc upstream.
+
+commit 511f3c5 (usb: gadget: udc-core: fix a regression during gadget driver
+unbinding) introduced a crash when DEBUG is enabled.
+
+The debug trace in the atmel_usba_stop function made the assumption that the
+driver pointer passed in parameter was not NULL, but since the commit above,
+such assumption was no longer always true.
+
+This commit now uses the driver pointer stored in udc which fixes this
+issue.
+
+[ balbi@ti.com : improved commit log a bit ]
+
+Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/atmel_usba_udc.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/gadget/atmel_usba_udc.c
++++ b/drivers/usb/gadget/atmel_usba_udc.c
+@@ -1827,12 +1827,12 @@ static int atmel_usba_stop(struct usb_ga
+       toggle_bias(0);
+       usba_writel(udc, CTRL, USBA_DISABLE_MASK);
+-      udc->driver = NULL;
+-
+       clk_disable_unprepare(udc->hclk);
+       clk_disable_unprepare(udc->pclk);
+-      DBG(DBG_GADGET, "unregistered driver `%s'\n", driver->driver.name);
++      DBG(DBG_GADGET, "unregistered driver `%s'\n", udc->driver->driver.name);
++
++      udc->driver = NULL;
+       return 0;
+ }
diff --git a/queue-3.14/usb-gadget-tcm_usb_gadget-stop-format-strings.patch b/queue-3.14/usb-gadget-tcm_usb_gadget-stop-format-strings.patch
new file mode 100644 (file)
index 0000000..40e0f9b
--- /dev/null
@@ -0,0 +1,30 @@
+From aba37fd975f0dd58e025c99c2a79b61b20190831 Mon Sep 17 00:00:00 2001
+From: Kees Cook <keescook@chromium.org>
+Date: Tue, 11 Mar 2014 13:26:16 -0700
+Subject: usb: gadget: tcm_usb_gadget: stop format strings
+
+From: Kees Cook <keescook@chromium.org>
+
+commit aba37fd975f0dd58e025c99c2a79b61b20190831 upstream.
+
+This makes sure that the name coming out of configfs cannot be used
+accidentally as a format string.
+
+Signed-off-by: Kees Cook <keescook@chromium.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/tcm_usb_gadget.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/gadget/tcm_usb_gadget.c
++++ b/drivers/usb/gadget/tcm_usb_gadget.c
+@@ -1613,7 +1613,7 @@ static struct se_wwn *usbg_make_tport(
+               return ERR_PTR(-ENOMEM);
+       }
+       tport->tport_wwpn = wwpn;
+-      snprintf(tport->tport_name, sizeof(tport->tport_name), wnn_name);
++      snprintf(tport->tport_name, sizeof(tport->tport_name), "%s", wnn_name);
+       return &tport->tport_wwn;
+ }
diff --git a/queue-3.14/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch b/queue-3.14/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch
new file mode 100644 (file)
index 0000000..881152d
--- /dev/null
@@ -0,0 +1,48 @@
+From 9c1b70361e0b38e4acb8e62b54da66538cb77ff2 Mon Sep 17 00:00:00 2001
+From: Roger Quadros <rogerq@ti.com>
+Date: Wed, 26 Mar 2014 18:46:38 +0200
+Subject: usb: gadget: zero: Fix SuperSpeed enumeration for alternate setting 1
+
+From: Roger Quadros <rogerq@ti.com>
+
+commit 9c1b70361e0b38e4acb8e62b54da66538cb77ff2 upstream.
+
+It was impossible to enumerate on a SuperSpeed (XHCI) host
+with alternate setting = 1 due to the wrongly set 'bMaxBurst'
+field in the SuperSpeed Endpoint Companion descriptor.
+
+Testcase:
+<host> modprobe -r usbtest; modprobe usbtest alt=1
+<device> modprobe g_zero
+plug device to SuperSpeed port on the host.
+
+Without this patch the host always complains like so
+"usb 12-2: Not enough bandwidth for new device state.
+ usb 12-2: Not enough bandwidth for altsetting 1"
+
+Bug was introduced by commit cf9a08ae in v3.9
+
+Fixes: cf9a08ae5aec (usb: gadget: convert source sink and loopback to
+new function interface)
+
+Reviewed-by: Felipe Balbi <balbi@ti.com>
+Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Signed-off-by: Roger Quadros <rogerq@ti.com>
+Signed-off-by: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/gadget/zero.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/gadget/zero.c
++++ b/drivers/usb/gadget/zero.c
+@@ -300,7 +300,7 @@ static int __init zero_bind(struct usb_c
+       ss_opts->isoc_interval = gzero_options.isoc_interval;
+       ss_opts->isoc_maxpacket = gzero_options.isoc_maxpacket;
+       ss_opts->isoc_mult = gzero_options.isoc_mult;
+-      ss_opts->isoc_maxburst = gzero_options.isoc_maxpacket;
++      ss_opts->isoc_maxburst = gzero_options.isoc_maxburst;
+       ss_opts->bulk_buflen = gzero_options.bulk_buflen;
+       func_ss = usb_get_function(func_inst_ss);
diff --git a/queue-3.14/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch b/queue-3.14/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch
new file mode 100644 (file)
index 0000000..f23eb19
--- /dev/null
@@ -0,0 +1,55 @@
+From 01bb59ebffdec314da8da66266edf29529372f9b Mon Sep 17 00:00:00 2001
+From: David Cohen <david.a.cohen@linux.intel.com>
+Date: Fri, 25 Apr 2014 19:20:16 +0300
+Subject: usb/xhci: fix compilation warning when !CONFIG_PCI && !CONFIG_PM
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: David Cohen <david.a.cohen@linux.intel.com>
+
+commit 01bb59ebffdec314da8da66266edf29529372f9b upstream.
+
+When CONFIG_PCI and CONFIG_PM are not selected, xhci.c gets this
+warning:
+drivers/usb/host/xhci.c:409:13: warning: ‘xhci_msix_sync_irqs’ defined
+but not used [-Wunused-function]
+
+Instead of creating nested #ifdefs, this patch fixes it by defining the
+xHCI PCI stubs as inline.
+
+This warning has been in since 3.2 kernel and was
+caused by commit 421aa841a134f6a743111cf44d0c6d3b45e3cf8c
+"usb/xhci: hide MSI code behind PCI bars", but wasn't noticed
+until 3.13 when a configuration with these options was tried
+
+Signed-off-by: David Cohen <david.a.cohen@linux.intel.com>
+Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/xhci.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -404,16 +404,16 @@ static int xhci_try_enable_msi(struct us
+ #else
+-static int xhci_try_enable_msi(struct usb_hcd *hcd)
++static inline int xhci_try_enable_msi(struct usb_hcd *hcd)
+ {
+       return 0;
+ }
+-static void xhci_cleanup_msix(struct xhci_hcd *xhci)
++static inline void xhci_cleanup_msix(struct xhci_hcd *xhci)
+ {
+ }
+-static void xhci_msix_sync_irqs(struct xhci_hcd *xhci)
++static inline void xhci_msix_sync_irqs(struct xhci_hcd *xhci)
+ {
+ }
diff --git a/queue-3.14/video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch b/queue-3.14/video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch
new file mode 100644 (file)
index 0000000..6308e95
--- /dev/null
@@ -0,0 +1,44 @@
+From 7d3477d801808a5037a511cf5a5aae5718e7ecce Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Antoine=20T=C3=A9nart?= <antoine.tenart@free-electrons.com>
+Date: Fri, 7 Mar 2014 17:20:54 +0100
+Subject: video: atmel_lcdfb: ensure the hardware is initialized with the correct mode
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Antoine=20T=C3=A9nart?= <antoine.tenart@free-electrons.com>
+
+commit 7d3477d801808a5037a511cf5a5aae5718e7ecce upstream.
+
+If no driver takeover the atmel_lcdfb, the lcd won't be in a working state
+since atmel_lcdfb_set_par() will never be called. Enabling a driver which does,
+like fbcon, will call the function and put atmel_lcdfb in a working state.
+
+Fixes: b985172b328a (video: atmel_lcdfb: add device tree suport)
+
+Signed-off-by: Antoine Ténart <antoine.tenart@free-electrons.com>
+Reported-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
+Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
+Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/video/atmel_lcdfb.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/video/atmel_lcdfb.c
++++ b/drivers/video/atmel_lcdfb.c
+@@ -1298,6 +1298,12 @@ static int __init atmel_lcdfb_probe(stru
+               goto unregister_irqs;
+       }
++      ret = atmel_lcdfb_set_par(info);
++      if (ret < 0) {
++              dev_err(dev, "set par failed: %d\n", ret);
++              goto unregister_irqs;
++      }
++
+       dev_set_drvdata(dev, info);
+       /*
diff --git a/queue-3.14/xhci-extend-quirk-for-renesas-cards.patch b/queue-3.14/xhci-extend-quirk-for-renesas-cards.patch
new file mode 100644 (file)
index 0000000..0c97983
--- /dev/null
@@ -0,0 +1,47 @@
+From 6db249ebefc6bf5c39f35dfaacc046d8ad3ffd70 Mon Sep 17 00:00:00 2001
+From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
+Date: Fri, 25 Apr 2014 19:20:15 +0300
+Subject: xhci: extend quirk for Renesas cards
+
+From: Igor Gnatenko <i.gnatenko.brain@gmail.com>
+
+commit 6db249ebefc6bf5c39f35dfaacc046d8ad3ffd70 upstream.
+
+After suspend another Renesas PCI-X USB 3.0 card doesn't work.
+[root@fedora-20 ~]# lspci -vmnnd 1912:
+Device:        03:00.0
+Class: USB controller [0c03]
+Vendor:        Renesas Technology Corp. [1912]
+Device:        uPD720202 USB 3.0 Host Controller [0015]
+SVendor:       Renesas Technology Corp. [1912]
+SDevice:       uPD720202 USB 3.0 Host Controller [0015]
+Rev:   02
+ProgIf:        30
+
+This patch should be applied to stable kernel 3.14 that contain
+the commit 1aa9578c1a9450fb21501c4f549f5b1edb557e6d
+"xhci: Fix resume issues on Renesas chips in Samsung laptops"
+
+Reported-and-tested-by: Anatoly Kharchenko <rfr-bugs@yandex.ru>
+Reference: http://redmine.russianfedora.pro/issues/1315
+Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
+Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/xhci-pci.c |    4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+--- a/drivers/usb/host/xhci-pci.c
++++ b/drivers/usb/host/xhci-pci.c
+@@ -145,9 +145,7 @@ static void xhci_pci_quirks(struct devic
+               xhci->quirks |= XHCI_TRUST_TX_LENGTH;
+       }
+       if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
+-                      pdev->device == 0x0015 &&
+-                      pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG &&
+-                      pdev->subsystem_device == 0xc0cd)
++                      pdev->device == 0x0015)
+               xhci->quirks |= XHCI_RESET_ON_RESUME;
+       if (pdev->vendor == PCI_VENDOR_ID_VIA)
+               xhci->quirks |= XHCI_RESET_ON_RESUME;
diff --git a/queue-3.14/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch b/queue-3.14/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch
new file mode 100644 (file)
index 0000000..9613b95
--- /dev/null
@@ -0,0 +1,74 @@
+From bcffae7708eb8352f44dc510b326541fe43a02a4 Mon Sep 17 00:00:00 2001
+From: Mathias Nyman <mathias.nyman@linux.intel.com>
+Date: Mon, 3 Mar 2014 19:30:17 +0200
+Subject: xhci: Prevent runtime pm from autosuspending during initialization
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Mathias Nyman <mathias.nyman@linux.intel.com>
+
+commit bcffae7708eb8352f44dc510b326541fe43a02a4 upstream.
+
+xHCI driver has its own pci probe function that will call usb_hcd_pci_probe
+to register its usb-2 bus, and then continue to manually register the
+usb-3 bus. usb_hcd_pci_probe does a pm_runtime_put_noidle at the end and
+might thus trigger a runtime suspend before the usb-3 bus is ready.
+
+Prevent the runtime suspend by increasing the usage count in the
+beginning of xhci_pci_probe, and decrease it once the usb-3 bus is
+ready.
+
+xhci-platform driver is not using usb_hcd_pci_probe to set up
+busses and should not need to have it's usage count increased during probe.
+
+Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
+Acked-by: Dan Williams <dan.j.williams@intel.com>
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/xhci-pci.c |   11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/host/xhci-pci.c
++++ b/drivers/usb/host/xhci-pci.c
+@@ -190,6 +190,10 @@ static int xhci_pci_probe(struct pci_dev
+       struct usb_hcd *hcd;
+       driver = (struct hc_driver *)id->driver_data;
++
++      /* Prevent runtime suspending between USB-2 and USB-3 initialization */
++      pm_runtime_get_noresume(&dev->dev);
++
+       /* Register the USB 2.0 roothub.
+        * FIXME: USB core must know to register the USB 2.0 roothub first.
+        * This is sort of silly, because we could just set the HCD driver flags
+@@ -199,7 +203,7 @@ static int xhci_pci_probe(struct pci_dev
+       retval = usb_hcd_pci_probe(dev, id);
+       if (retval)
+-              return retval;
++              goto put_runtime_pm;
+       /* USB 2.0 roothub is stored in the PCI device now. */
+       hcd = dev_get_drvdata(&dev->dev);
+@@ -228,12 +232,17 @@ static int xhci_pci_probe(struct pci_dev
+       if (xhci->quirks & XHCI_LPM_SUPPORT)
+               hcd_to_bus(xhci->shared_hcd)->root_hub->lpm_capable = 1;
++      /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */
++      pm_runtime_put_noidle(&dev->dev);
++
+       return 0;
+ put_usb3_hcd:
+       usb_put_hcd(xhci->shared_hcd);
+ dealloc_usb2_hcd:
+       usb_hcd_pci_remove(dev);
++put_runtime_pm:
++      pm_runtime_put_noidle(&dev->dev);
+       return retval;
+ }
diff --git a/queue-3.14/xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch b/queue-3.14/xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch
new file mode 100644 (file)
index 0000000..723cbe8
--- /dev/null
@@ -0,0 +1,40 @@
+From c09ec25d3684cad74d851c0f028a495999591279 Mon Sep 17 00:00:00 2001
+From: Denis Turischev <denis.turischev@compulab.co.il>
+Date: Fri, 25 Apr 2014 19:20:14 +0300
+Subject: xhci: Switch Intel Lynx Point ports to EHCI on shutdown.
+
+From: Denis Turischev <denis.turischev@compulab.co.il>
+
+commit c09ec25d3684cad74d851c0f028a495999591279 upstream.
+
+The same issue like with Panther Point chipsets. If the USB ports are
+switched to xHCI on shutdown, the xHCI host will send a spurious interrupt,
+which will wake the system. Some BIOS have work around for this, but not all.
+One example is Compulab's mini-desktop, the Intense-PC2.
+
+The bug can be avoided if the USB ports are switched back to EHCI on
+shutdown.
+
+This patch should be backported to stable kernels as old as 3.12,
+that contain the commit 638298dc66ea36623dbc2757a24fc2c4ab41b016
+"xhci: Fix spurious wakeups after S5 on Haswell"
+
+Signed-off-by: Denis Turischev <denis@compulab.co.il>
+Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/xhci-pci.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/host/xhci-pci.c
++++ b/drivers/usb/host/xhci-pci.c
+@@ -134,6 +134,8 @@ static void xhci_pci_quirks(struct devic
+                */
+               if (pdev->subsystem_vendor == PCI_VENDOR_ID_HP)
+                       xhci->quirks |= XHCI_SPURIOUS_WAKEUP;
++
++              xhci->quirks |= XHCI_SPURIOUS_REBOOT;
+       }
+       if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
+                       pdev->device == PCI_DEVICE_ID_ASROCK_P67) {