From: Greg Kroah-Hartman Date: Wed, 13 Jul 2016 23:04:53 +0000 (+0900) Subject: 3.14-stable patches X-Git-Tag: v4.6.5~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9bc0a5599bb0ad7ee9161deece8c69781a8d81ad;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: cdc_ncm-workaround-for-em7455-silent-data-interface.patch --- diff --git a/queue-3.14/cdc_ncm-workaround-for-em7455-silent-data-interface.patch b/queue-3.14/cdc_ncm-workaround-for-em7455-silent-data-interface.patch new file mode 100644 index 00000000000..c3de06b7d9f --- /dev/null +++ b/queue-3.14/cdc_ncm-workaround-for-em7455-silent-data-interface.patch @@ -0,0 +1,57 @@ +From foo@baz Thu Jul 14 07:36:31 JST 2016 +From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= +Date: Sun, 3 Jul 2016 22:24:50 +0200 +Subject: cdc_ncm: workaround for EM7455 "silent" data interface +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= + +[ Upstream commit c086e7096170390594c425114d98172bc9aceb8a ] + +Several Lenovo users have reported problems with their Sierra +Wireless EM7455 modem. The driver has loaded successfully and +the MBIM management channel has appeared to work, including +establishing a connection to the mobile network. But no frames +have been received over the data interface. + +The problem affects all EM7455 and MC7455, and is assumed to +affect other modems based on the same Qualcomm chipset and +baseband firmware. + +Testing narrowed the problem down to what seems to be a +firmware timing bug during initialization. Adding a short sleep +while probing is sufficient to make the problem disappear. +Experiments have shown that 1-2 ms is too little to have any +effect, while 10-20 ms is enough to reliably succeed. + +Reported-by: Stefan Armbruster +Reported-by: Ralph Plawetzki +Reported-by: Andreas Fett +Reported-by: Rasmus Lerdorf +Reported-by: Samo Ratnik +Reported-and-tested-by: Aleksander Morgado +Signed-off-by: Bjørn Mork +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/usb/cdc_ncm.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/net/usb/cdc_ncm.c ++++ b/drivers/net/usb/cdc_ncm.c +@@ -438,6 +438,13 @@ advance: + if (cdc_ncm_setup(dev)) + goto error2; + ++ /* Some firmwares need a pause here or they will silently fail ++ * to set up the interface properly. This value was decided ++ * empirically on a Sierra Wireless MC7455 running 02.08.02.00 ++ * firmware. ++ */ ++ usleep_range(10000, 20000); ++ + /* configure data interface */ + temp = usb_set_interface(dev->udev, iface_no, data_altsetting); + if (temp) { diff --git a/queue-3.14/series b/queue-3.14/series index 5c9a88c7688..955fd5cfc0f 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -24,3 +24,4 @@ posix_acl-add-set_posix_acl.patch nfsd-check-permissions-when-setting-acls.patch signal-remove-warning-about-using-si_tkill-in-rt_sigqueueinfo.patch mips-kvm-fix-modular-kvm-under-qemu.patch +cdc_ncm-workaround-for-em7455-silent-data-interface.patch