]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2014 03:37:18 +0000 (20:37 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2014 03:37:18 +0000 (20:37 -0700)
added patches:
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
reiserfs-fix-race-in-readdir.patch
usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.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
xhci-extend-quirk-for-renesas-cards.patch
xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch

16 files changed:
queue-3.10/media-em28xx-fix-pctv-290e-lna-oops.patch [new file with mode: 0644]
queue-3.10/media-m88rs2000-add-caps-fe_can_inversion_auto.patch [new file with mode: 0644]
queue-3.10/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch [new file with mode: 0644]
queue-3.10/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch [new file with mode: 0644]
queue-3.10/media-omap3isp-preview-fix-the-crop-margins.patch [new file with mode: 0644]
queue-3.10/media-saa7134-fix-warn_on-during-resume.patch [new file with mode: 0644]
queue-3.10/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch [new file with mode: 0644]
queue-3.10/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch [new file with mode: 0644]
queue-3.10/reiserfs-fix-race-in-readdir.patch [new file with mode: 0644]
queue-3.10/series
queue-3.10/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch [new file with mode: 0644]
queue-3.10/usb-gadget-tcm_usb_gadget-stop-format-strings.patch [new file with mode: 0644]
queue-3.10/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch [new file with mode: 0644]
queue-3.10/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch [new file with mode: 0644]
queue-3.10/xhci-extend-quirk-for-renesas-cards.patch [new file with mode: 0644]
queue-3.10/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch [new file with mode: 0644]

diff --git a/queue-3.10/media-em28xx-fix-pctv-290e-lna-oops.patch b/queue-3.10/media-em28xx-fix-pctv-290e-lna-oops.patch
new file mode 100644 (file)
index 0000000..3f7a3bb
--- /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
+@@ -673,7 +673,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.10/media-m88rs2000-add-caps-fe_can_inversion_auto.patch b/queue-3.10/media-m88rs2000-add-caps-fe_can_inversion_auto.patch
new file mode 100644 (file)
index 0000000..a07f58e
--- /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
+@@ -759,7 +759,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.10/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch b/queue-3.10/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch
new file mode 100644 (file)
index 0000000..131dd64
--- /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
+@@ -712,6 +712,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;
+@@ -763,6 +779,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.10/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch b/queue-3.10/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch
new file mode 100644 (file)
index 0000000..87b8732
--- /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
+@@ -2394,6 +2394,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.10/media-omap3isp-preview-fix-the-crop-margins.patch b/queue-3.10/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.10/media-saa7134-fix-warn_on-during-resume.patch b/queue-3.10/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.10/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch b/queue-3.10/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch
new file mode 100644 (file)
index 0000000..5041017
--- /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
+@@ -1846,7 +1846,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.10/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch b/queue-3.10/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.10/reiserfs-fix-race-in-readdir.patch b/queue-3.10/reiserfs-fix-race-in-readdir.patch
new file mode 100644 (file)
index 0000000..6ede84b
--- /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
+@@ -128,6 +128,7 @@ int reiserfs_readdir_dentry(struct dentr
+                               char *d_name;
+                               off_t d_off;
+                               ino_t d_ino;
++                              loff_t cur_pos = deh_offset(deh);
+                               if (!de_visible(deh))
+                                       /* it is hidden entry */
+@@ -200,8 +201,9 @@ int reiserfs_readdir_dentry(struct dentr
+                               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 7264431a16583161c2784d48686a7d652e4f8775..ea0d4e635143bb052d0957b482c7d2bee7c3a502 100644 (file)
@@ -55,3 +55,18 @@ scsi-arcmsr-upper-32-of-dma-address-lost.patch
 iscsi-target-fix-erl-2-async_event-connection-pointer-bug.patch
 target-tcm_fc-fix-use-after-free-of-ft_tpg.patch
 x86-efi-correct-efi-boot-stub-use-of-code32_start.patch
+reiserfs-fix-race-in-readdir.patch
+usb-gadget-tcm_usb_gadget-stop-format-strings.patch
+usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch
+xhci-prevent-runtime-pm-from-autosuspending-during-initialization.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-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch
+media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.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
diff --git a/queue-3.10/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch b/queue-3.10/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch
new file mode 100644 (file)
index 0000000..aecfb2b
--- /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
+@@ -836,15 +836,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.10/usb-gadget-tcm_usb_gadget-stop-format-strings.patch b/queue-3.10/usb-gadget-tcm_usb_gadget-stop-format-strings.patch
new file mode 100644 (file)
index 0000000..93c87b9
--- /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
+@@ -1614,7 +1614,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.10/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch b/queue-3.10/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch
new file mode 100644 (file)
index 0000000..42b5ef6
--- /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
+@@ -280,7 +280,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.10/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch b/queue-3.10/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch
new file mode 100644 (file)
index 0000000..ac59f79
--- /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
+@@ -394,16 +394,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.10/xhci-extend-quirk-for-renesas-cards.patch b/queue-3.10/xhci-extend-quirk-for-renesas-cards.patch
new file mode 100644 (file)
index 0000000..9da5d31
--- /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
+@@ -114,9 +114,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.10/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch b/queue-3.10/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch
new file mode 100644 (file)
index 0000000..33238e1
--- /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
+@@ -161,6 +161,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
+@@ -170,7 +174,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);
+@@ -199,12 +203,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;
+ }