--- /dev/null
+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;
--- /dev/null
+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
+ },
+
--- /dev/null
+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,
--- /dev/null
+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)},
--- /dev/null
+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);
+
--- /dev/null
+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,
--- /dev/null
+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;
--- /dev/null
+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)
--- /dev/null
+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,
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
--- /dev/null
+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;
+
+ /**
--- /dev/null
+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;
+ }
+
--- /dev/null
+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);
--- /dev/null
+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)
+ {
+ }
+
--- /dev/null
+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;
--- /dev/null
+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;
+ }
+