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