From 9de662c911592ecda2a06c9a9029f3c10cb65680 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 1 May 2014 20:37:26 -0700 Subject: [PATCH] 3.14-stable patches added patches: arm64-__nr_compat_syscalls-fix.patch drm-armada-fix-corruption-while-loading-cursors.patch media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch media-em28xx-fix-pctv-290e-lna-oops.patch media-m88rs2000-add-caps-fe_can_inversion_auto.patch media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch media-omap3isp-preview-fix-the-crop-margins.patch media-saa7134-fix-warn_on-during-resume.patch media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch media-v4l2-dv-timings-add-module-name-description-license.patch media-videodev2.h-add-parenthesis-around-macro-arguments.patch reiserfs-fix-race-in-readdir.patch usb-dwc3-fix-randconfig-build-errors.patch usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch usb-gadget-tcm_usb_gadget-stop-format-strings.patch usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch xhci-extend-quirk-for-renesas-cards.patch xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch --- .../arm64-__nr_compat_syscalls-fix.patch | 31 +++++ ...fix-corruption-while-loading-cursors.patch | 36 ++++++ ...-counting-in-snd_em28xx_capture_open.patch | 72 +++++++++++ .../media-em28xx-fix-pctv-290e-lna-oops.patch | 37 ++++++ ...s2000-add-caps-fe_can_inversion_auto.patch | 31 +++++ ...rash-on-continuous-transponder-scans.patch | 60 ++++++++++ ...9c20x-add-id-for-genius-look-1320-v2.patch | 39 ++++++ ...map3isp-preview-fix-the-crop-margins.patch | 48 ++++++++ ...ia-saa7134-fix-warn_on-during-resume.patch | 38 ++++++ ...not-use-usb_set_interface-on-bulk-ep.patch | 71 +++++++++++ ...ong-vidioc_subdev_g-s_edid32-support.patch | 33 +++++ ...-add-module-name-description-license.patch | 33 +++++ ...d-parenthesis-around-macro-arguments.patch | 41 +++++++ queue-3.14/reiserfs-fix-race-in-readdir.patch | 47 ++++++++ queue-3.14/series | 24 ++++ ...usb-dwc3-fix-randconfig-build-errors.patch | 113 ++++++++++++++++++ ...ix-wrong-bit-mask-in-dwc3_event_devt.patch | 58 +++++++++ ...uring-stopping-when-debug-is-enabled.patch | 48 ++++++++ ...t-tcm_usb_gadget-stop-format-strings.patch | 30 +++++ ...-enumeration-for-alternate-setting-1.patch | 48 ++++++++ ...on-warning-when-config_pci-config_pm.patch | 55 +++++++++ ...is-initialized-with-the-correct-mode.patch | 44 +++++++ .../xhci-extend-quirk-for-renesas-cards.patch | 47 ++++++++ ...autosuspending-during-initialization.patch | 74 ++++++++++++ ...lynx-point-ports-to-ehci-on-shutdown.patch | 40 +++++++ 25 files changed, 1198 insertions(+) create mode 100644 queue-3.14/arm64-__nr_compat_syscalls-fix.patch create mode 100644 queue-3.14/drm-armada-fix-corruption-while-loading-cursors.patch create mode 100644 queue-3.14/media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch create mode 100644 queue-3.14/media-em28xx-fix-pctv-290e-lna-oops.patch create mode 100644 queue-3.14/media-m88rs2000-add-caps-fe_can_inversion_auto.patch create mode 100644 queue-3.14/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch create mode 100644 queue-3.14/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch create mode 100644 queue-3.14/media-omap3isp-preview-fix-the-crop-margins.patch create mode 100644 queue-3.14/media-saa7134-fix-warn_on-during-resume.patch create mode 100644 queue-3.14/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch create mode 100644 queue-3.14/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch create mode 100644 queue-3.14/media-v4l2-dv-timings-add-module-name-description-license.patch create mode 100644 queue-3.14/media-videodev2.h-add-parenthesis-around-macro-arguments.patch create mode 100644 queue-3.14/reiserfs-fix-race-in-readdir.patch create mode 100644 queue-3.14/usb-dwc3-fix-randconfig-build-errors.patch create mode 100644 queue-3.14/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch create mode 100644 queue-3.14/usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch create mode 100644 queue-3.14/usb-gadget-tcm_usb_gadget-stop-format-strings.patch create mode 100644 queue-3.14/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch create mode 100644 queue-3.14/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch create mode 100644 queue-3.14/video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch create mode 100644 queue-3.14/xhci-extend-quirk-for-renesas-cards.patch create mode 100644 queue-3.14/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch create mode 100644 queue-3.14/xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch diff --git a/queue-3.14/arm64-__nr_compat_syscalls-fix.patch b/queue-3.14/arm64-__nr_compat_syscalls-fix.patch new file mode 100644 index 00000000000..1e2d9039e66 --- /dev/null +++ b/queue-3.14/arm64-__nr_compat_syscalls-fix.patch @@ -0,0 +1,31 @@ +From 838977f0178334bf3d7f3e974ea3154b68979be0 Mon Sep 17 00:00:00 2001 +From: Miklos Szeredi +Date: Fri, 11 Apr 2014 11:25:40 +0100 +Subject: arm64: __NR_compat_syscalls fix + +From: Miklos Szeredi + +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 +Signed-off-by: Catalin Marinas +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm64/include/asm/unistd32.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm64/include/asm/unistd32.h ++++ b/arch/arm64/include/asm/unistd32.h +@@ -404,7 +404,7 @@ __SYSCALL(379, sys_finit_module) + __SYSCALL(380, sys_sched_setattr) + __SYSCALL(381, sys_sched_getattr) + +-#define __NR_compat_syscalls 379 ++#define __NR_compat_syscalls 382 + + /* + * Compat syscall numbers used by the AArch64 kernel. diff --git a/queue-3.14/drm-armada-fix-corruption-while-loading-cursors.patch b/queue-3.14/drm-armada-fix-corruption-while-loading-cursors.patch new file mode 100644 index 00000000000..e8761b3fc57 --- /dev/null +++ b/queue-3.14/drm-armada-fix-corruption-while-loading-cursors.patch @@ -0,0 +1,36 @@ +From c39b06951f1dc2e384650288676c5b7dcc0ec92c Mon Sep 17 00:00:00 2001 +From: Russell King +Date: Mon, 7 Apr 2014 12:00:17 +0100 +Subject: DRM: armada: fix corruption while loading cursors + +From: Russell King + +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 +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/armada/armada_crtc.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/armada/armada_crtc.c ++++ b/drivers/gpu/drm/armada/armada_crtc.c +@@ -678,6 +678,7 @@ static void armada_load_cursor_argb(void + base + LCD_SPU_SRAM_WRDAT); + writel_relaxed(addr | SRAM_WRITE, + base + LCD_SPU_SRAM_CTRL); ++ readl_relaxed(base + LCD_SPU_HWC_OVSA_HPXL_VLN); + addr += 1; + if ((addr & 0x00ff) == 0) + addr += 0xf00; diff --git a/queue-3.14/media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch b/queue-3.14/media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch new file mode 100644 index 00000000000..92e6768ead3 --- /dev/null +++ b/queue-3.14/media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch @@ -0,0 +1,72 @@ +From 01ae3b51af7144ea29eb28ba718b65ad59ab9493 Mon Sep 17 00:00:00 2001 +From: Frank Schaefer +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 + +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 +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/usb/em28xx/em28xx-audio.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +--- a/drivers/media/usb/em28xx/em28xx-audio.c ++++ b/drivers/media/usb/em28xx/em28xx-audio.c +@@ -252,7 +252,7 @@ static int snd_em28xx_capture_open(struc + { + struct em28xx *dev = snd_pcm_substream_chip(substream); + struct snd_pcm_runtime *runtime = substream->runtime; +- int ret = 0; ++ int nonblock, ret = 0; + + if (!dev) { + em28xx_err("BUG: em28xx can't find device struct." +@@ -265,15 +265,15 @@ static int snd_em28xx_capture_open(struc + + dprintk("opening device and trying to acquire exclusive lock\n"); + ++ nonblock = !!(substream->f_flags & O_NONBLOCK); ++ if (nonblock) { ++ if (!mutex_trylock(&dev->lock)) ++ return -EAGAIN; ++ } else ++ mutex_lock(&dev->lock); ++ + runtime->hw = snd_em28xx_hw_capture; + if ((dev->alt == 0 || dev->is_audio_only) && dev->adev.users == 0) { +- int nonblock = !!(substream->f_flags & O_NONBLOCK); +- +- if (nonblock) { +- if (!mutex_trylock(&dev->lock)) +- return -EAGAIN; +- } else +- mutex_lock(&dev->lock); + if (dev->is_audio_only) + /* vendor audio is on a separate interface */ + dev->alt = 1; +@@ -299,11 +299,11 @@ static int snd_em28xx_capture_open(struc + ret = em28xx_audio_analog_set(dev); + if (ret < 0) + goto err; +- +- dev->adev.users++; +- mutex_unlock(&dev->lock); + } + ++ dev->adev.users++; ++ mutex_unlock(&dev->lock); ++ + /* Dynamically adjust the period size */ + snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS); + snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, diff --git a/queue-3.14/media-em28xx-fix-pctv-290e-lna-oops.patch b/queue-3.14/media-em28xx-fix-pctv-290e-lna-oops.patch new file mode 100644 index 00000000000..910e527994d --- /dev/null +++ b/queue-3.14/media-em28xx-fix-pctv-290e-lna-oops.patch @@ -0,0 +1,37 @@ +From 3ec40dcfb413214b2874aec858870502b61c2202 Mon Sep 17 00:00:00 2001 +From: Antti Palosaari +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 + +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ää +Signed-off-by: Antti Palosaari +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/usb/em28xx/em28xx-dvb.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/media/usb/em28xx/em28xx-dvb.c ++++ b/drivers/media/usb/em28xx/em28xx-dvb.c +@@ -693,7 +693,8 @@ static void pctv_520e_init(struct em28xx + static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe) + { + struct dtv_frontend_properties *c = &fe->dtv_property_cache; +- struct em28xx *dev = fe->dvb->priv; ++ struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; ++ struct em28xx *dev = i2c_bus->dev; + #ifdef CONFIG_GPIOLIB + struct em28xx_dvb *dvb = dev->dvb; + int ret; diff --git a/queue-3.14/media-m88rs2000-add-caps-fe_can_inversion_auto.patch b/queue-3.14/media-m88rs2000-add-caps-fe_can_inversion_auto.patch new file mode 100644 index 00000000000..8ee06ae701c --- /dev/null +++ b/queue-3.14/media-m88rs2000-add-caps-fe_can_inversion_auto.patch @@ -0,0 +1,31 @@ +From 3c8023a782964c72574ad8268ba0ea4e2d9772fc Mon Sep 17 00:00:00 2001 +From: Malcolm Priestley +Date: Tue, 25 Feb 2014 23:05:39 -0300 +Subject: media: m88rs2000: add caps FE_CAN_INVERSION_AUTO + +From: Malcolm Priestley + +commit 3c8023a782964c72574ad8268ba0ea4e2d9772fc upstream. + +The m88rs2000 frontend is always auto inversion. + +Signed-off-by: Malcolm Priestley +Signed-off-by: Michael Krufky +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/dvb-frontends/m88rs2000.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/media/dvb-frontends/m88rs2000.c ++++ b/drivers/media/dvb-frontends/m88rs2000.c +@@ -762,7 +762,7 @@ static struct dvb_frontend_ops m88rs2000 + .symbol_rate_tolerance = 500, /* ppm */ + .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | + FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | +- FE_CAN_QPSK | ++ FE_CAN_QPSK | FE_CAN_INVERSION_AUTO | + FE_CAN_FEC_AUTO + }, + diff --git a/queue-3.14/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch b/queue-3.14/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch new file mode 100644 index 00000000000..9a9c8c1cc71 --- /dev/null +++ b/queue-3.14/media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch @@ -0,0 +1,60 @@ +From 8272d0a0c0d374a01721e579df6e8add5577132b Mon Sep 17 00:00:00 2001 +From: Malcolm Priestley +Date: Tue, 25 Feb 2014 23:11:34 -0300 +Subject: media: m88rs2000: prevent frontend crash on continuous transponder scans + +From: Malcolm Priestley + +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 +Signed-off-by: Michael Krufky +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/dvb-frontends/m88rs2000.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +--- a/drivers/media/dvb-frontends/m88rs2000.c ++++ b/drivers/media/dvb-frontends/m88rs2000.c +@@ -715,6 +715,22 @@ static int m88rs2000_get_frontend(struct + return 0; + } + ++static int m88rs2000_get_tune_settings(struct dvb_frontend *fe, ++ struct dvb_frontend_tune_settings *tune) ++{ ++ struct dtv_frontend_properties *c = &fe->dtv_property_cache; ++ ++ if (c->symbol_rate > 3000000) ++ tune->min_delay_ms = 2000; ++ else ++ tune->min_delay_ms = 3000; ++ ++ tune->step_size = c->symbol_rate / 16000; ++ tune->max_drift = c->symbol_rate / 2000; ++ ++ return 0; ++} ++ + static int m88rs2000_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) + { + struct m88rs2000_state *state = fe->demodulator_priv; +@@ -766,6 +782,7 @@ static struct dvb_frontend_ops m88rs2000 + + .set_frontend = m88rs2000_set_frontend, + .get_frontend = m88rs2000_get_frontend, ++ .get_tune_settings = m88rs2000_get_tune_settings, + }; + + struct dvb_frontend *m88rs2000_attach(const struct m88rs2000_config *config, diff --git a/queue-3.14/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch b/queue-3.14/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch new file mode 100644 index 00000000000..d16dc2d73f3 --- /dev/null +++ b/queue-3.14/media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch @@ -0,0 +1,39 @@ +From 61f0319193c44adbbada920162d880b1fdb3aeb3 Mon Sep 17 00:00:00 2001 +From: Wolfram Sang +Date: Sat, 1 Feb 2014 15:26:00 -0300 +Subject: media: media: gspca: sn9c20x: add ID for Genius Look 1320 V2 + +From: Wolfram Sang + +commit 61f0319193c44adbbada920162d880b1fdb3aeb3 upstream. + +Signed-off-by: Wolfram Sang +Signed-off-by: Hans de Goede +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/video4linux/gspca.txt | 1 + + drivers/media/usb/gspca/sn9c20x.c | 1 + + 2 files changed, 2 insertions(+) + +--- a/Documentation/video4linux/gspca.txt ++++ b/Documentation/video4linux/gspca.txt +@@ -55,6 +55,7 @@ zc3xx 0458:700f Genius VideoCam Web V2 + sonixj 0458:7025 Genius Eye 311Q + sn9c20x 0458:7029 Genius Look 320s + sonixj 0458:702e Genius Slim 310 NB ++sn9c20x 0458:7045 Genius Look 1320 V2 + sn9c20x 0458:704a Genius Slim 1320 + sn9c20x 0458:704c Genius i-Look 1321 + sn9c20x 045e:00f4 LifeCam VX-6000 (SN9C20x + OV9650) +--- a/drivers/media/usb/gspca/sn9c20x.c ++++ b/drivers/media/usb/gspca/sn9c20x.c +@@ -2359,6 +2359,7 @@ static const struct usb_device_id device + {USB_DEVICE(0x045e, 0x00f4), SN9C20X(OV9650, 0x30, 0)}, + {USB_DEVICE(0x145f, 0x013d), SN9C20X(OV7660, 0x21, 0)}, + {USB_DEVICE(0x0458, 0x7029), SN9C20X(HV7131R, 0x11, 0)}, ++ {USB_DEVICE(0x0458, 0x7045), SN9C20X(MT9M112, 0x5d, LED_REVERSE)}, + {USB_DEVICE(0x0458, 0x704a), SN9C20X(MT9M112, 0x5d, 0)}, + {USB_DEVICE(0x0458, 0x704c), SN9C20X(MT9M112, 0x5d, 0)}, + {USB_DEVICE(0xa168, 0x0610), SN9C20X(HV7131R, 0x11, 0)}, diff --git a/queue-3.14/media-omap3isp-preview-fix-the-crop-margins.patch b/queue-3.14/media-omap3isp-preview-fix-the-crop-margins.patch new file mode 100644 index 00000000000..20f847f9f96 --- /dev/null +++ b/queue-3.14/media-omap3isp-preview-fix-the-crop-margins.patch @@ -0,0 +1,48 @@ +From 8b57b9669aa884ac75b8d09c251d6b1755533c15 Mon Sep 17 00:00:00 2001 +From: Florian Vaussard +Date: Fri, 17 Jan 2014 16:37:38 -0300 +Subject: media: omap3isp: preview: Fix the crop margins + +From: Florian Vaussard + +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 +Signed-off-by: Laurent Pinchart +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/platform/omap3isp/isppreview.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/media/platform/omap3isp/isppreview.c ++++ b/drivers/media/platform/omap3isp/isppreview.c +@@ -1079,6 +1079,7 @@ static void preview_config_input_format( + */ + static void preview_config_input_size(struct isp_prev_device *prev, u32 active) + { ++ const struct v4l2_mbus_framefmt *format = &prev->formats[PREV_PAD_SINK]; + struct isp_device *isp = to_isp_device(prev); + unsigned int sph = prev->crop.left; + unsigned int eph = prev->crop.left + prev->crop.width - 1; +@@ -1086,6 +1087,14 @@ static void preview_config_input_size(st + unsigned int elv = prev->crop.top + prev->crop.height - 1; + u32 features; + ++ if (format->code != V4L2_MBUS_FMT_Y8_1X8 && ++ format->code != V4L2_MBUS_FMT_Y10_1X10) { ++ sph -= 2; ++ eph += 2; ++ slv -= 2; ++ elv += 2; ++ } ++ + features = (prev->params.params[0].features & active) + | (prev->params.params[1].features & ~active); + diff --git a/queue-3.14/media-saa7134-fix-warn_on-during-resume.patch b/queue-3.14/media-saa7134-fix-warn_on-during-resume.patch new file mode 100644 index 00000000000..a1d8751b70a --- /dev/null +++ b/queue-3.14/media-saa7134-fix-warn_on-during-resume.patch @@ -0,0 +1,38 @@ +From 30d652823de5fd7907d40e969a2d8e23938d8d03 Mon Sep 17 00:00:00 2001 +From: Hans Verkuil +Date: Fri, 7 Mar 2014 07:28:39 -0300 +Subject: media: saa7134: fix WARN_ON during resume + +From: Hans Verkuil + +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 +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/pci/saa7134/saa7134-cards.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/media/pci/saa7134/saa7134-cards.c ++++ b/drivers/media/pci/saa7134/saa7134-cards.c +@@ -8045,8 +8045,8 @@ int saa7134_board_init2(struct saa7134_d + break; + } /* switch() */ + +- /* initialize tuner */ +- if (TUNER_ABSENT != dev->tuner_type) { ++ /* initialize tuner (don't do this when resuming) */ ++ if (!dev->insuspend && TUNER_ABSENT != dev->tuner_type) { + int has_demod = (dev->tda9887_conf & TDA9887_PRESENT); + + /* Note: radio tuner address is always filled in, diff --git a/queue-3.14/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch b/queue-3.14/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch new file mode 100644 index 00000000000..a09526f3ac7 --- /dev/null +++ b/queue-3.14/media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch @@ -0,0 +1,71 @@ +From b1e43f232698274871e1358c276d7b0242a7d607 Mon Sep 17 00:00:00 2001 +From: Oleksij Rempel +Date: Sun, 16 Feb 2014 06:59:32 -0300 +Subject: media: uvcvideo: Do not use usb_set_interface on bulk EP + +From: Oleksij Rempel + +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 +Signed-off-by: Laurent Pinchart +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/usb/uvc/uvc_video.c | 20 +++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +--- a/drivers/media/usb/uvc/uvc_video.c ++++ b/drivers/media/usb/uvc/uvc_video.c +@@ -1847,7 +1847,25 @@ int uvc_video_enable(struct uvc_streamin + + if (!enable) { + uvc_uninit_video(stream, 1); +- usb_set_interface(stream->dev->udev, stream->intfnum, 0); ++ if (stream->intf->num_altsetting > 1) { ++ usb_set_interface(stream->dev->udev, ++ stream->intfnum, 0); ++ } else { ++ /* UVC doesn't specify how to inform a bulk-based device ++ * when the video stream is stopped. Windows sends a ++ * CLEAR_FEATURE(HALT) request to the video streaming ++ * bulk endpoint, mimic the same behaviour. ++ */ ++ unsigned int epnum = stream->header.bEndpointAddress ++ & USB_ENDPOINT_NUMBER_MASK; ++ unsigned int dir = stream->header.bEndpointAddress ++ & USB_ENDPOINT_DIR_MASK; ++ unsigned int pipe; ++ ++ pipe = usb_sndbulkpipe(stream->dev->udev, epnum) | dir; ++ usb_clear_halt(stream->dev->udev, pipe); ++ } ++ + uvc_queue_enable(&stream->queue, 0); + uvc_video_clock_cleanup(stream); + return 0; diff --git a/queue-3.14/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch b/queue-3.14/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch new file mode 100644 index 00000000000..8b01e098925 --- /dev/null +++ b/queue-3.14/media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch @@ -0,0 +1,33 @@ +From bc826d6e39fe5f09cbadf8723e9183e6331b586f Mon Sep 17 00:00:00 2001 +From: Hans Verkuil +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 + +commit bc826d6e39fe5f09cbadf8723e9183e6331b586f upstream. + +The wrong ioctl numbers were used due to a copy-and-paste error. + +Signed-off-by: Hans Verkuil +Acked-by: Laurent Pinchart +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c ++++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c +@@ -787,8 +787,8 @@ static int put_v4l2_subdev_edid32(struct + #define VIDIOC_DQBUF32 _IOWR('V', 17, struct v4l2_buffer32) + #define VIDIOC_ENUMSTD32 _IOWR('V', 25, struct v4l2_standard32) + #define VIDIOC_ENUMINPUT32 _IOWR('V', 26, struct v4l2_input32) +-#define VIDIOC_SUBDEV_G_EDID32 _IOWR('V', 63, struct v4l2_subdev_edid32) +-#define VIDIOC_SUBDEV_S_EDID32 _IOWR('V', 64, struct v4l2_subdev_edid32) ++#define VIDIOC_SUBDEV_G_EDID32 _IOWR('V', 40, struct v4l2_subdev_edid32) ++#define VIDIOC_SUBDEV_S_EDID32 _IOWR('V', 41, struct v4l2_subdev_edid32) + #define VIDIOC_TRY_FMT32 _IOWR('V', 64, struct v4l2_format32) + #define VIDIOC_G_EXT_CTRLS32 _IOWR('V', 71, struct v4l2_ext_controls32) + #define VIDIOC_S_EXT_CTRLS32 _IOWR('V', 72, struct v4l2_ext_controls32) diff --git a/queue-3.14/media-v4l2-dv-timings-add-module-name-description-license.patch b/queue-3.14/media-v4l2-dv-timings-add-module-name-description-license.patch new file mode 100644 index 00000000000..fe167ff9e9f --- /dev/null +++ b/queue-3.14/media-v4l2-dv-timings-add-module-name-description-license.patch @@ -0,0 +1,33 @@ +From c4885ada88e4331f8ac56d14296d0058359db2d7 Mon Sep 17 00:00:00 2001 +From: Hans Verkuil +Date: Tue, 4 Mar 2014 04:51:50 -0300 +Subject: media: v4l2-dv-timings: add module name, description, license + +From: Hans Verkuil + +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 +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + 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 + #include + ++MODULE_AUTHOR("Hans Verkuil"); ++MODULE_DESCRIPTION("V4L2 DV Timings Helper Functions"); ++MODULE_LICENSE("GPL"); ++ + const struct v4l2_dv_timings v4l2_dv_timings_presets[] = { + V4L2_DV_BT_CEA_640X480P59_94, + V4L2_DV_BT_CEA_720X480I59_94, diff --git a/queue-3.14/media-videodev2.h-add-parenthesis-around-macro-arguments.patch b/queue-3.14/media-videodev2.h-add-parenthesis-around-macro-arguments.patch new file mode 100644 index 00000000000..7d8fa2df95c --- /dev/null +++ b/queue-3.14/media-videodev2.h-add-parenthesis-around-macro-arguments.patch @@ -0,0 +1,41 @@ +From aee786acfc0a12bcd37a1c60f3198fb25cf7181a Mon Sep 17 00:00:00 2001 +From: Hans Verkuil +Date: Thu, 27 Feb 2014 06:04:57 -0300 +Subject: media: videodev2.h: add parenthesis around macro arguments + +From: Hans Verkuil + +commit aee786acfc0a12bcd37a1c60f3198fb25cf7181a upstream. + +bt->width should be (bt)->width, and same for the other fields. + +Signed-off-by: Hans Verkuil +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + include/uapi/linux/videodev2.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/include/uapi/linux/videodev2.h ++++ b/include/uapi/linux/videodev2.h +@@ -1059,14 +1059,14 @@ struct v4l2_bt_timings { + + /* A few useful defines to calculate the total blanking and frame sizes */ + #define V4L2_DV_BT_BLANKING_WIDTH(bt) \ +- (bt->hfrontporch + bt->hsync + bt->hbackporch) ++ ((bt)->hfrontporch + (bt)->hsync + (bt)->hbackporch) + #define V4L2_DV_BT_FRAME_WIDTH(bt) \ +- (bt->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) ++ ((bt)->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) + #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ +- (bt->vfrontporch + bt->vsync + bt->vbackporch + \ +- bt->il_vfrontporch + bt->il_vsync + bt->il_vbackporch) ++ ((bt)->vfrontporch + (bt)->vsync + (bt)->vbackporch + \ ++ (bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch) + #define V4L2_DV_BT_FRAME_HEIGHT(bt) \ +- (bt->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) ++ ((bt)->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) + + /** struct v4l2_dv_timings - DV timings + * @type: the type of the timings diff --git a/queue-3.14/reiserfs-fix-race-in-readdir.patch b/queue-3.14/reiserfs-fix-race-in-readdir.patch new file mode 100644 index 00000000000..1e92259c42f --- /dev/null +++ b/queue-3.14/reiserfs-fix-race-in-readdir.patch @@ -0,0 +1,47 @@ +From 01d8885785a60ae8f4c37b0ed75bdc96d0fc6a44 Mon Sep 17 00:00:00 2001 +From: Jeff Mahoney +Date: Wed, 2 Apr 2014 14:40:26 -0400 +Subject: reiserfs: fix race in readdir + +From: Jeff Mahoney + +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 +Signed-off-by: Jan Kara +Signed-off-by: Greg Kroah-Hartman + +--- + 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, diff --git a/queue-3.14/series b/queue-3.14/series index 02dd4b90953..c651f0c2b66 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -97,3 +97,27 @@ drivers-hv-vmbus-negotiate-version-3.0-when-running-on-ws2012r2-hosts.patch x86-efi-correct-efi-boot-stub-use-of-code32_start.patch efi-pass-correct-file-handle-to-efi_file_-read-close.patch word-at-a-time-avoid-undefined-behaviour-in-zero_bytemask-macro.patch +arm64-__nr_compat_syscalls-fix.patch +drm-armada-fix-corruption-while-loading-cursors.patch +reiserfs-fix-race-in-readdir.patch +usb-gadget-tcm_usb_gadget-stop-format-strings.patch +usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch +usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch +xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch +xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch +xhci-extend-quirk-for-renesas-cards.patch +usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch +media-uvcvideo-do-not-use-usb_set_interface-on-bulk-ep.patch +media-videodev2.h-add-parenthesis-around-macro-arguments.patch +video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch +media-v4l2-dv-timings-add-module-name-description-license.patch +media-v4l2-compat-ioctl32-fix-wrong-vidioc_subdev_g-s_edid32-support.patch +media-m88rs2000-prevent-frontend-crash-on-continuous-transponder-scans.patch +media-em28xx-audio-fix-user-counting-in-snd_em28xx_capture_open.patch +media-m88rs2000-add-caps-fe_can_inversion_auto.patch +media-em28xx-fix-pctv-290e-lna-oops.patch +media-saa7134-fix-warn_on-during-resume.patch +media-omap3isp-preview-fix-the-crop-margins.patch +media-media-gspca-sn9c20x-add-id-for-genius-look-1320-v2.patch +usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch +usb-dwc3-fix-randconfig-build-errors.patch diff --git a/queue-3.14/usb-dwc3-fix-randconfig-build-errors.patch b/queue-3.14/usb-dwc3-fix-randconfig-build-errors.patch new file mode 100644 index 00000000000..d42843b9bf1 --- /dev/null +++ b/queue-3.14/usb-dwc3-fix-randconfig-build-errors.patch @@ -0,0 +1,113 @@ +From 610183051d8f9421f138c4203ca894387f9f8839 Mon Sep 17 00:00:00 2001 +From: Felipe Balbi +Date: Tue, 4 Mar 2014 09:23:50 -0600 +Subject: usb: dwc3: fix randconfig build errors + +From: Felipe Balbi + +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 +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/dwc3/core.h | 33 +++++++++++++++++++++++++++++++++ + drivers/usb/dwc3/gadget.h | 12 ------------ + 2 files changed, 33 insertions(+), 12 deletions(-) + +--- a/drivers/usb/dwc3/core.h ++++ b/drivers/usb/dwc3/core.h +@@ -856,6 +856,19 @@ union dwc3_event { + struct dwc3_event_gevt gevt; + }; + ++/** ++ * struct dwc3_gadget_ep_cmd_params - representation of endpoint command ++ * parameters ++ * @param2: third parameter ++ * @param1: second parameter ++ * @param0: first parameter ++ */ ++struct dwc3_gadget_ep_cmd_params { ++ u32 param2; ++ u32 param1; ++ u32 param0; ++}; ++ + /* + * DWC3 Features to be used as Driver Data + */ +@@ -881,11 +894,31 @@ static inline void dwc3_host_exit(struct + #if IS_ENABLED(CONFIG_USB_DWC3_GADGET) || IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE) + int dwc3_gadget_init(struct dwc3 *dwc); + void dwc3_gadget_exit(struct dwc3 *dwc); ++int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode); ++int dwc3_gadget_get_link_state(struct dwc3 *dwc); ++int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state); ++int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep, ++ unsigned cmd, struct dwc3_gadget_ep_cmd_params *params); ++int dwc3_send_gadget_generic_command(struct dwc3 *dwc, int cmd, u32 param); + #else + static inline int dwc3_gadget_init(struct dwc3 *dwc) + { return 0; } + static inline void dwc3_gadget_exit(struct dwc3 *dwc) + { } ++static inline int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode) ++{ return 0; } ++static inline int dwc3_gadget_get_link_state(struct dwc3 *dwc) ++{ return 0; } ++static inline int dwc3_gadget_set_link_state(struct dwc3 *dwc, ++ enum dwc3_link_state state) ++{ return 0; } ++ ++static inline int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep, ++ unsigned cmd, struct dwc3_gadget_ep_cmd_params *params) ++{ return 0; } ++static inline int dwc3_send_gadget_generic_command(struct dwc3 *dwc, ++ int cmd, u32 param) ++{ return 0; } + #endif + + /* power management interface */ +--- a/drivers/usb/dwc3/gadget.h ++++ b/drivers/usb/dwc3/gadget.h +@@ -56,12 +56,6 @@ struct dwc3; + /* DEPXFERCFG parameter 0 */ + #define DWC3_DEPXFERCFG_NUM_XFER_RES(n) ((n) & 0xffff) + +-struct dwc3_gadget_ep_cmd_params { +- u32 param2; +- u32 param1; +- u32 param0; +-}; +- + /* -------------------------------------------------------------------------- */ + + #define to_dwc3_request(r) (container_of(r, struct dwc3_request, request)) +@@ -85,9 +79,6 @@ static inline void dwc3_gadget_move_requ + void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req, + int status); + +-int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode); +-int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state); +- + void dwc3_ep0_interrupt(struct dwc3 *dwc, + const struct dwc3_event_depevt *event); + void dwc3_ep0_out_start(struct dwc3 *dwc); +@@ -95,9 +86,6 @@ int dwc3_gadget_ep0_set_halt(struct usb_ + int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request, + gfp_t gfp_flags); + int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value); +-int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep, +- unsigned cmd, struct dwc3_gadget_ep_cmd_params *params); +-int dwc3_send_gadget_generic_command(struct dwc3 *dwc, int cmd, u32 param); + + /** + * dwc3_gadget_ep_get_transfer_index - Gets transfer index from HW diff --git a/queue-3.14/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch b/queue-3.14/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch new file mode 100644 index 00000000000..8bc398ec643 --- /dev/null +++ b/queue-3.14/usb-dwc3-fix-wrong-bit-mask-in-dwc3_event_devt.patch @@ -0,0 +1,58 @@ +From 06f9b6e59661cee510b04513b13ea7927727d758 Mon Sep 17 00:00:00 2001 +From: Huang Rui +Date: Tue, 7 Jan 2014 17:45:50 +0800 +Subject: usb: dwc3: fix wrong bit mask in dwc3_event_devt + +From: Huang Rui + +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 +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/dwc3/core.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/usb/dwc3/core.h ++++ b/drivers/usb/dwc3/core.h +@@ -815,15 +815,15 @@ struct dwc3_event_depevt { + * 12 - VndrDevTstRcved + * @reserved15_12: Reserved, not used + * @event_info: Information about this event +- * @reserved31_24: Reserved, not used ++ * @reserved31_25: Reserved, not used + */ + struct dwc3_event_devt { + u32 one_bit:1; + u32 device_event:7; + u32 type:4; + u32 reserved15_12:4; +- u32 event_info:8; +- u32 reserved31_24:8; ++ u32 event_info:9; ++ u32 reserved31_25:7; + } __packed; + + /** diff --git a/queue-3.14/usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch b/queue-3.14/usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch new file mode 100644 index 00000000000..882126105b8 --- /dev/null +++ b/queue-3.14/usb-gadget-atmel_usba-fix-crashed-during-stopping-when-debug-is-enabled.patch @@ -0,0 +1,48 @@ +From d8eb6c653ef6b323d630de3c5685478469e248bc Mon Sep 17 00:00:00 2001 +From: Gregory CLEMENT +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 + +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 +Signed-off-by: Gregory CLEMENT +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/gadget/atmel_usba_udc.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/usb/gadget/atmel_usba_udc.c ++++ b/drivers/usb/gadget/atmel_usba_udc.c +@@ -1827,12 +1827,12 @@ static int atmel_usba_stop(struct usb_ga + toggle_bias(0); + usba_writel(udc, CTRL, USBA_DISABLE_MASK); + +- udc->driver = NULL; +- + clk_disable_unprepare(udc->hclk); + clk_disable_unprepare(udc->pclk); + +- DBG(DBG_GADGET, "unregistered driver `%s'\n", driver->driver.name); ++ DBG(DBG_GADGET, "unregistered driver `%s'\n", udc->driver->driver.name); ++ ++ udc->driver = NULL; + + return 0; + } diff --git a/queue-3.14/usb-gadget-tcm_usb_gadget-stop-format-strings.patch b/queue-3.14/usb-gadget-tcm_usb_gadget-stop-format-strings.patch new file mode 100644 index 00000000000..40e0f9b2ea7 --- /dev/null +++ b/queue-3.14/usb-gadget-tcm_usb_gadget-stop-format-strings.patch @@ -0,0 +1,30 @@ +From aba37fd975f0dd58e025c99c2a79b61b20190831 Mon Sep 17 00:00:00 2001 +From: Kees Cook +Date: Tue, 11 Mar 2014 13:26:16 -0700 +Subject: usb: gadget: tcm_usb_gadget: stop format strings + +From: Kees Cook + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/gadget/tcm_usb_gadget.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/gadget/tcm_usb_gadget.c ++++ b/drivers/usb/gadget/tcm_usb_gadget.c +@@ -1613,7 +1613,7 @@ static struct se_wwn *usbg_make_tport( + return ERR_PTR(-ENOMEM); + } + tport->tport_wwpn = wwpn; +- snprintf(tport->tport_name, sizeof(tport->tport_name), wnn_name); ++ snprintf(tport->tport_name, sizeof(tport->tport_name), "%s", wnn_name); + return &tport->tport_wwn; + } + diff --git a/queue-3.14/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch b/queue-3.14/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch new file mode 100644 index 00000000000..881152da328 --- /dev/null +++ b/queue-3.14/usb-gadget-zero-fix-superspeed-enumeration-for-alternate-setting-1.patch @@ -0,0 +1,48 @@ +From 9c1b70361e0b38e4acb8e62b54da66538cb77ff2 Mon Sep 17 00:00:00 2001 +From: Roger Quadros +Date: Wed, 26 Mar 2014 18:46:38 +0200 +Subject: usb: gadget: zero: Fix SuperSpeed enumeration for alternate setting 1 + +From: Roger Quadros + +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: + modprobe -r usbtest; modprobe usbtest alt=1 + 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 +Acked-by: Sebastian Andrzej Siewior +Signed-off-by: Roger Quadros +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/gadget/zero.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/gadget/zero.c ++++ b/drivers/usb/gadget/zero.c +@@ -300,7 +300,7 @@ static int __init zero_bind(struct usb_c + ss_opts->isoc_interval = gzero_options.isoc_interval; + ss_opts->isoc_maxpacket = gzero_options.isoc_maxpacket; + ss_opts->isoc_mult = gzero_options.isoc_mult; +- ss_opts->isoc_maxburst = gzero_options.isoc_maxpacket; ++ ss_opts->isoc_maxburst = gzero_options.isoc_maxburst; + ss_opts->bulk_buflen = gzero_options.bulk_buflen; + + func_ss = usb_get_function(func_inst_ss); diff --git a/queue-3.14/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch b/queue-3.14/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch new file mode 100644 index 00000000000..f23eb19a562 --- /dev/null +++ b/queue-3.14/usb-xhci-fix-compilation-warning-when-config_pci-config_pm.patch @@ -0,0 +1,55 @@ +From 01bb59ebffdec314da8da66266edf29529372f9b Mon Sep 17 00:00:00 2001 +From: David Cohen +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 + +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 +Signed-off-by: Mathias Nyman +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/xhci.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/drivers/usb/host/xhci.c ++++ b/drivers/usb/host/xhci.c +@@ -404,16 +404,16 @@ static int xhci_try_enable_msi(struct us + + #else + +-static int xhci_try_enable_msi(struct usb_hcd *hcd) ++static inline int xhci_try_enable_msi(struct usb_hcd *hcd) + { + return 0; + } + +-static void xhci_cleanup_msix(struct xhci_hcd *xhci) ++static inline void xhci_cleanup_msix(struct xhci_hcd *xhci) + { + } + +-static void xhci_msix_sync_irqs(struct xhci_hcd *xhci) ++static inline void xhci_msix_sync_irqs(struct xhci_hcd *xhci) + { + } + diff --git a/queue-3.14/video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch b/queue-3.14/video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch new file mode 100644 index 00000000000..6308e953e96 --- /dev/null +++ b/queue-3.14/video-atmel_lcdfb-ensure-the-hardware-is-initialized-with-the-correct-mode.patch @@ -0,0 +1,44 @@ +From 7d3477d801808a5037a511cf5a5aae5718e7ecce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Antoine=20T=C3=A9nart?= +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?= + +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 +Reported-by: Alexandre Belloni +Acked-by: Alexandre Belloni +Acked-by: Nicolas Ferre +Signed-off-by: Tomi Valkeinen +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/video/atmel_lcdfb.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/video/atmel_lcdfb.c ++++ b/drivers/video/atmel_lcdfb.c +@@ -1298,6 +1298,12 @@ static int __init atmel_lcdfb_probe(stru + goto unregister_irqs; + } + ++ ret = atmel_lcdfb_set_par(info); ++ if (ret < 0) { ++ dev_err(dev, "set par failed: %d\n", ret); ++ goto unregister_irqs; ++ } ++ + dev_set_drvdata(dev, info); + + /* diff --git a/queue-3.14/xhci-extend-quirk-for-renesas-cards.patch b/queue-3.14/xhci-extend-quirk-for-renesas-cards.patch new file mode 100644 index 00000000000..0c97983a059 --- /dev/null +++ b/queue-3.14/xhci-extend-quirk-for-renesas-cards.patch @@ -0,0 +1,47 @@ +From 6db249ebefc6bf5c39f35dfaacc046d8ad3ffd70 Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Fri, 25 Apr 2014 19:20:15 +0300 +Subject: xhci: extend quirk for Renesas cards + +From: Igor Gnatenko + +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 +Reference: http://redmine.russianfedora.pro/issues/1315 +Signed-off-by: Igor Gnatenko +Signed-off-by: Mathias Nyman +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/xhci-pci.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/drivers/usb/host/xhci-pci.c ++++ b/drivers/usb/host/xhci-pci.c +@@ -145,9 +145,7 @@ static void xhci_pci_quirks(struct devic + xhci->quirks |= XHCI_TRUST_TX_LENGTH; + } + if (pdev->vendor == PCI_VENDOR_ID_RENESAS && +- pdev->device == 0x0015 && +- pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG && +- pdev->subsystem_device == 0xc0cd) ++ pdev->device == 0x0015) + xhci->quirks |= XHCI_RESET_ON_RESUME; + if (pdev->vendor == PCI_VENDOR_ID_VIA) + xhci->quirks |= XHCI_RESET_ON_RESUME; diff --git a/queue-3.14/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch b/queue-3.14/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch new file mode 100644 index 00000000000..9613b95da71 --- /dev/null +++ b/queue-3.14/xhci-prevent-runtime-pm-from-autosuspending-during-initialization.patch @@ -0,0 +1,74 @@ +From bcffae7708eb8352f44dc510b326541fe43a02a4 Mon Sep 17 00:00:00 2001 +From: Mathias Nyman +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 + +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 +Acked-by: Dan Williams +Acked-by: Alan Stern +Signed-off-by: Sarah Sharp +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/xhci-pci.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +--- a/drivers/usb/host/xhci-pci.c ++++ b/drivers/usb/host/xhci-pci.c +@@ -190,6 +190,10 @@ static int xhci_pci_probe(struct pci_dev + struct usb_hcd *hcd; + + driver = (struct hc_driver *)id->driver_data; ++ ++ /* Prevent runtime suspending between USB-2 and USB-3 initialization */ ++ pm_runtime_get_noresume(&dev->dev); ++ + /* Register the USB 2.0 roothub. + * FIXME: USB core must know to register the USB 2.0 roothub first. + * This is sort of silly, because we could just set the HCD driver flags +@@ -199,7 +203,7 @@ static int xhci_pci_probe(struct pci_dev + retval = usb_hcd_pci_probe(dev, id); + + if (retval) +- return retval; ++ goto put_runtime_pm; + + /* USB 2.0 roothub is stored in the PCI device now. */ + hcd = dev_get_drvdata(&dev->dev); +@@ -228,12 +232,17 @@ static int xhci_pci_probe(struct pci_dev + if (xhci->quirks & XHCI_LPM_SUPPORT) + hcd_to_bus(xhci->shared_hcd)->root_hub->lpm_capable = 1; + ++ /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */ ++ pm_runtime_put_noidle(&dev->dev); ++ + return 0; + + put_usb3_hcd: + usb_put_hcd(xhci->shared_hcd); + dealloc_usb2_hcd: + usb_hcd_pci_remove(dev); ++put_runtime_pm: ++ pm_runtime_put_noidle(&dev->dev); + return retval; + } + diff --git a/queue-3.14/xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch b/queue-3.14/xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch new file mode 100644 index 00000000000..723cbe8dcc6 --- /dev/null +++ b/queue-3.14/xhci-switch-intel-lynx-point-ports-to-ehci-on-shutdown.patch @@ -0,0 +1,40 @@ +From c09ec25d3684cad74d851c0f028a495999591279 Mon Sep 17 00:00:00 2001 +From: Denis Turischev +Date: Fri, 25 Apr 2014 19:20:14 +0300 +Subject: xhci: Switch Intel Lynx Point ports to EHCI on shutdown. + +From: Denis Turischev + +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 +Signed-off-by: Mathias Nyman +Signed-off-by: Greg Kroah-Hartman + +--- + 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) { -- 2.47.3