This is a note to let you know that I've just added the patch titled
xhci: Add missing CAS workaround for Intel Sunrise Point xHCI
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From ffe84e01bb1b38c7eb9c6b6da127a6c136d251df Mon Sep 17 00:00:00 2001
From: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Date: Mon, 1 Oct 2018 18:36:07 +0300
Subject: xhci: Add missing CAS workaround for Intel Sunrise Point xHCI
The workaround for missing CAS bit is also needed for xHC on Intel
sunrisepoint PCH. For more details see:
Intel 100/c230 series PCH specification update Doc #332692-006 Errata #8
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/host/xhci-pci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 6372edf339d9..722860eb5a91 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -185,6 +185,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
}
if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
(pdev->device == PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI ||
+ pdev->device == PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_XHCI ||
+ pdev->device == PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_XHCI ||
pdev->device == PCI_DEVICE_ID_INTEL_APL_XHCI ||
pdev->device == PCI_DEVICE_ID_INTEL_DNV_XHCI))
xhci->quirks |= XHCI_MISSING_CAS;
--
2.19.0
This is a note to let you know that I've just added the patch titled
usb: cdc_acm: Do not leak URB buffers
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From f2924d4b16ae138c2de6a0e73f526fb638330858 Mon Sep 17 00:00:00 2001
From: Romain Izard <romain.izard.pro(a)gmail.com>
Date: Thu, 20 Sep 2018 16:49:04 +0200
Subject: usb: cdc_acm: Do not leak URB buffers
When the ACM TTY port is disconnected, the URBs it uses must be killed, and
then the buffers must be freed. Unfortunately a previous refactor removed
the code freeing the buffers because it looked extremely similar to the
code killing the URBs.
As a result, there were many new leaks for each plug/unplug cycle of a
CDC-ACM device, that were detected by kmemleak.
Restore the missing code, and the memory leak is removed.
Fixes: ba8c931ded8d ("cdc-acm: refactor killing urbs")
Signed-off-by: Romain Izard <romain.izard.pro(a)gmail.com>
Acked-by: Oliver Neukum <oneukum(a)suse.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/class/cdc-acm.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index f9b40a9dc4d3..bc03b0a690b4 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -1514,6 +1514,7 @@ static void acm_disconnect(struct usb_interface *intf)
{
struct acm *acm = usb_get_intfdata(intf);
struct tty_struct *tty;
+ int i;
/* sibling interface is already cleaning up */
if (!acm)
@@ -1544,6 +1545,11 @@ static void acm_disconnect(struct usb_interface *intf)
tty_unregister_device(acm_tty_driver, acm->minor);
+ usb_free_urb(acm->ctrlurb);
+ for (i = 0; i < ACM_NW; i++)
+ usb_free_urb(acm->wb[i].urb);
+ for (i = 0; i < acm->rx_buflimit; i++)
+ usb_free_urb(acm->read_urbs[i]);
acm_write_buffers_free(acm);
usb_free_coherent(acm->dev, acm->ctrlsize, acm->ctrl_buffer, acm->ctrl_dma);
acm_read_buffers_free(acm);
--
2.19.0
This is a note to let you know that I've just added the patch titled
usb: xhci-mtk: resume USB3 roothub first
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 555df5820e733cded7eb8d0bf78b2a791be51d75 Mon Sep 17 00:00:00 2001
From: Chunfeng Yun <chunfeng.yun(a)mediatek.com>
Date: Mon, 1 Oct 2018 18:36:08 +0300
Subject: usb: xhci-mtk: resume USB3 roothub first
Give USB3 devices a better chance to enumerate at USB3 speeds if
they are connected to a suspended host.
Porting from "671ffdff5b13 xhci: resume USB 3 roothub first"
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Chunfeng Yun <chunfeng.yun(a)mediatek.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/host/xhci-mtk.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/xhci-mtk.c b/drivers/usb/host/xhci-mtk.c
index 7334da9e9779..71d0d33c3286 100644
--- a/drivers/usb/host/xhci-mtk.c
+++ b/drivers/usb/host/xhci-mtk.c
@@ -642,10 +642,10 @@ static int __maybe_unused xhci_mtk_resume(struct device *dev)
xhci_mtk_host_enable(mtk);
xhci_dbg(xhci, "%s: restart port polling\n", __func__);
- set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
- usb_hcd_poll_rh_status(hcd);
set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
usb_hcd_poll_rh_status(xhci->shared_hcd);
+ set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
+ usb_hcd_poll_rh_status(hcd);
return 0;
}
--
2.19.0
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi Greg,
Pleae pull commits for Linux 3.18 .
I've sent a review request for all commits over a week ago and all
comments were addressed.
Thanks,
Sasha
=====
The following changes since commit 921b2fed6a79439ef1609ef4af0ada5cccb3555c:
Linux 3.18.123 (2018-09-26 08:33:59 +0200)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git tags/for-greg-3.18-01102018
for you to fetch changes up to 220ede8ef5c1c764d077de976d0b7ce60b86c4f3:
hwmon: (adt7475) Make adt7475_read_word() return errors (2018-09-28 10:14:53 -0400)
- ----------------------------------------------------------------
for-greg-3.18-01102018
- ----------------------------------------------------------------
Anson Huang (1):
thermal: of-thermal: disable passive polling when thermal zone is disabled
Bo Chen (2):
e1000: check on netif_running() before calling e1000_up()
e1000: ensure to free old tx/rx rings in set_ringparam()
Dan Carpenter (1):
hwmon: (adt7475) Make adt7475_read_word() return errors
drivers/hwmon/adt7475.c | 14 +++++++++-----
drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 7 ++++---
drivers/thermal/of-thermal.c | 7 +++++--
3 files changed, 18 insertions(+), 10 deletions(-)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAluywrYACgkQ3qZv95d3
LNxWXQ/+LF1zsw1943J5rWDPiFC1Qeqgaq/eagAMvrMDoSNdpqUdw9aetBs+UebM
npHU20jGw5yhT8Ki7iGoOIgeZaWYIBKOwyGDULrUJ9jxWHM5TxSNc7LjIH6jUnUE
S9Oiqlc4piqlzrkkasKbtBARhRORTg5HlCsYyp/+WtgMg6Ol8/HUBdP+gY2XB677
HpQLmaCkmD20gy/8l9rZ0Wx/gfojvwBp+GbRl72w+SuFjBxDsbIrU/J7qsJDWS6D
nYEfgX9Q4+vCcppbKM5GntcfHvoTdOU3fCgCQJd4Jh/Ny5P9wUMyk3BgAejRML73
EgyUeOEodJamYJrCk11/bq/McSXcUZ8K/BpgAoonMP2wW6DZJuQ8usyYhNuE1sk3
0KHw0j0OQ1PHf9538qHrbxNo+dq5884vkOYjv5773lTzfw8Dn404yvUvhdST+oQU
UjbZowPJZ0qaqa9nW3H38jiThBvwS/FTFi5T/72tVSSZM+Axvy85CkBxTDF/2ydw
cy+0F/IunGS8iWu9ScrgWA58ceQrdrXS6OCa0hcKdlq6ViKJohPd8L2SWfLvJ73H
+244bH1BjbAdp2Vc5hAHK9GgFsMFq4ClfQThnrGG5fFkVaV5+kCl2H0xdUR1nS4l
/ZfZsfhTDqFdzliIWBPohhS8vOiR/pTHERU/tz26tLLwRZORFz4=
=61PK
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi Greg,
Pleae pull commits for Linux 4.4 .
I've sent a review request for all commits over a week ago and all
comments were addressed.
Thanks,
Sasha
=====
The following changes since commit 9c6cd3f3a4b8194e82fa927bc00028c7a505e3b3:
Linux 4.4.159 (2018-09-29 03:08:55 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git tags/for-greg-4.4-01102018
for you to fetch changes up to da69b4edceeef0612ed770171cba979b6fe6efb0:
i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus (2018-09-29 13:01:12 -0400)
- ----------------------------------------------------------------
for-greg-4.4-01102018
- ----------------------------------------------------------------
Anson Huang (1):
thermal: of-thermal: disable passive polling when thermal zone is disabled
Bo Chen (2):
e1000: check on netif_running() before calling e1000_up()
e1000: ensure to free old tx/rx rings in set_ringparam()
Dan Carpenter (1):
hwmon: (adt7475) Make adt7475_read_word() return errors
Huazhong Tan (1):
net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES
Lothar Felten (1):
hwmon: (ina2xx) fix sysfs shunt resistor read access
Mika Westerberg (1):
i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus
Documentation/hwmon/ina2xx | 2 +-
drivers/hwmon/adt7475.c | 14 +++++++++-----
drivers/hwmon/ina2xx.c | 13 +++++++++++--
drivers/i2c/busses/i2c-i801.c | 9 ++++++++-
drivers/net/ethernet/hisilicon/hns/hnae.h | 6 +++---
drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 7 ++++---
drivers/thermal/of-thermal.c | 7 +++++--
include/linux/platform_data/ina2xx.h | 2 +-
8 files changed, 42 insertions(+), 18 deletions(-)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAluywq8ACgkQ3qZv95d3
LNwckQ//egkChb4BsD2phGTiD5nqjse9byuXHfIMesKf9FhTFIBr3M9s+plBXdtQ
14pUFl5qYMQFIF0bZXPg6twd2D/x7rS//1QV0OVASSKE0W5wOr3E7XDna34/0ztj
yiwUlcmWzUyPmJyB9O6J2/CK5q/5nhpJBvncVvoF4CWt8F9I9f3u0RJYQviLqjL/
PO2rx8wW4DOKta9lVQ6h6A1A8/O2zgvYy/tP9iiJdunk5ziuFYjquhaFTS55sqIp
k6nQP63I52KCEBezSoUqNwJ+Rtcp5AVpXXdGbf9l42SsecoJiqySoP+PHKF7lOkQ
udEKK0QORL4qA32s42bdtBIb/m6aBDrtAGIOeimlrOAsSwu3E+to0v9i6R5tSb3T
5ovQQPlcGGOIr8MXIv10tCO7zXlhlL+bpDNHPoZJiEBgub0WRBiwE5EMtiGBe3vM
cr2gxHWwtF9dx2RSYnPAGcoqo9R9OmlkJaRJqvq3I03vCjg3G8/6HDeFdBoxlm1N
Fn77ylMamuXyZNT/2bjNqZt7UMiVTCL+sFJvGxVOfpmSvb4Z4sgcDj2HkCGXkvRW
R3reb80D69w+pG/clMO5fspe8nmy1BVfK7PkP6m6SD1p8Sf9XUgafX+P+bY8bMn2
qehMJVMNxw0V5PrhwPdAuCBhJOjH35Vp5RsJYyxqByyWN694RPk=
=5jnL
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi Greg,
Pleae pull commits for Linux 4.9 .
I've sent a review request for all commits over a week ago and all
comments were addressed.
Thanks,
Sasha
=====
The following changes since commit 46f9f7c3c326389d5765c28f120fead6cc068e67:
Linux 4.9.130 (2018-09-29 03:07:35 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git tags/for-greg-4.9-01102018
for you to fetch changes up to cc9aeaaefbea89c50d54ca193bfba32d7e66ba88:
i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus (2018-09-29 13:01:07 -0400)
- ----------------------------------------------------------------
for-greg-4.9-01102018
- ----------------------------------------------------------------
Anson Huang (1):
thermal: of-thermal: disable passive polling when thermal zone is disabled
Bo Chen (2):
e1000: check on netif_running() before calling e1000_up()
e1000: ensure to free old tx/rx rings in set_ringparam()
Dan Carpenter (1):
hwmon: (adt7475) Make adt7475_read_word() return errors
Huazhong Tan (2):
net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES
net: hns: fix skb->truesize underestimation
Lothar Felten (1):
hwmon: (ina2xx) fix sysfs shunt resistor read access
Marc Zyngier (2):
arm/arm64: smccc-1.1: Make return values unsigned long
arm/arm64: smccc-1.1: Handle function result as parameters
Mika Westerberg (1):
i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus
Rex Zhu (2):
drm/amdgpu: Enable/disable gfx PG feature in rlc safe mode
drm/amdgpu: Update power state at the end of smu hw_init.
Tomer Tayar (2):
qed: Wait for ready indication before rereading the shmem
qed: Wait for MCP halt and resume commands to take place
Documentation/hwmon/ina2xx | 2 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 11 ++-
drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 4 +-
drivers/gpu/drm/amd/amdgpu/si_dpm.c | 3 +-
drivers/hwmon/adt7475.c | 14 ++--
drivers/hwmon/ina2xx.c | 13 +++-
drivers/i2c/busses/i2c-i801.c | 9 ++-
drivers/net/ethernet/hisilicon/hns/hnae.h | 6 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 2 +-
drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 7 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 96 +++++++++++++++++++-----
drivers/net/ethernet/qlogic/qed/qed_reg_addr.h | 1 +
drivers/thermal/of-thermal.c | 7 +-
include/linux/arm-smccc.h | 38 ++++++----
include/linux/platform_data/ina2xx.h | 2 +-
15 files changed, 159 insertions(+), 56 deletions(-)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAluywqkACgkQ3qZv95d3
LNwMTQ//aFXCRx/5spsygsZVGnYIM2QCIElDALeKjSuLZlJCV/UZDgPLKc453ZW/
IpzheGF3Ut4w0IrHiKnTgxE0Zv6rXHpnCHAUUXcpdfinrgWIXcT8uHt0x3mhOu3Y
j+mNv4q+yakwScGd06zUqNr+Pq7KQIJuT+18DAGFchvJUS3ncA3PVK2PRAhcFKiM
sP8SFUcuwi1M+puV6oexoVfYJAwT7EyoidykSKvLhOPweLcjESFbx/lP/p2tG8wN
1jGpxqLY1IDrvGHuaCCbWZfXo3m40+etvlVgV6izAckbU2Agh0FLOuHl3cuzbiBr
1nkwa8hPNzbmctxH5iAzFIThZ8vKQk21naoVSP5jm91g42QJZAr6BV9XXXFcsB4D
bHm5zeKMKvImlcEIJQNG1TccDFdgxXMA+4hiESv1YjtfFCmd4zRJoQFCk6KTvr3z
3uu3P2kjiDfhNCuOhyqs8i7NVXwiqoprqoXGFdpvxQCEgHVX7GPdtEjb3JPuHQzl
J/WjIcuG0ULYmTHE+5OiPstNICtzPLpQb4HPrLLHBQ8t2Id7YSshrVTAWslC7PSP
Taxk5L0kyE6men06auPhBu5gI8JAimM/fzSz9IFNRlhqf+yafrSnHcNcgCcXZdJ1
W0XrWU/qsj/6cuL1G/CaIhYGy9GrZ0gA44FxdAovJsEaZIq0F8g=
=Rpjy
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi Greg,
Pleae pull commits for Linux 4.14 .
I've sent a review request for all commits over a week ago and all
comments were addressed.
Thanks,
Sasha
=====
The following changes since commit 3b65f403d7d0e98484e8f2c9471808f2785a8235:
Linux 4.14.73 (2018-09-29 03:06:07 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git tags/for-greg-4.14-01102018
for you to fetch changes up to edfbb55326888cde6bedb15fe7453e7f198559db:
x86/pti: Fix section mismatch warning/error (2018-09-29 13:00:59 -0400)
- ----------------------------------------------------------------
for-greg-4.14-01102018
- ----------------------------------------------------------------
Anson Huang (1):
thermal: of-thermal: disable passive polling when thermal zone is disabled
Bo Chen (2):
e1000: check on netif_running() before calling e1000_up()
e1000: ensure to free old tx/rx rings in set_ringparam()
Dan Carpenter (1):
hwmon: (adt7475) Make adt7475_read_word() return errors
Eric Sandeen (1):
isofs: reject hardware sector size > 2048 bytes
Huazhong Tan (2):
net: hns: fix length and page_offset overflow when CONFIG_ARM64_64K_PAGES
net: hns: fix skb->truesize underestimation
James Smart (1):
nvme-fcloop: Fix dropped LS's to removed target port
John Fastabend (2):
tls: possible hang when do_tcp_sendpages hits sndbuf is full case
bpf: sockmap: write_space events need to be passed to TCP handler
Leonard Crestez (1):
Revert "ARM: dts: imx7d: Invert legacy PCI irq mapping"
Linus Walleij (1):
ata: ftide010: Add a quirk for SQ201
Lothar Felten (1):
hwmon: (ina2xx) fix sysfs shunt resistor read access
Marc Zyngier (2):
arm/arm64: smccc-1.1: Make return values unsigned long
arm/arm64: smccc-1.1: Handle function result as parameters
Mika Westerberg (1):
i2c: i801: Allow ACPI AML access I/O ports not reserved for SMBus
Randy Dunlap (1):
x86/pti: Fix section mismatch warning/error
Rex Zhu (2):
drm/amdgpu: Enable/disable gfx PG feature in rlc safe mode
drm/amdgpu: Update power state at the end of smu hw_init.
Srikanth Jampala (1):
crypto: cavium/nitrox - fix for command corruption in queue full case with backlog submissions.
Tomer Tayar (4):
qed: Wait for ready indication before rereading the shmem
qed: Wait for MCP halt and resume commands to take place
qed: Prevent a possible deadlock during driver load and unload
qed: Avoid sending mailbox commands when MFW is not responsive
Tony Lindgren (1):
ARM: dts: omap4-droid4: Fix emmc errors seen on some devices
Documentation/hwmon/ina2xx | 2 +-
arch/arm/boot/dts/imx7d.dtsi | 12 +-
arch/arm/boot/dts/omap4-droid4-xt894.dts | 2 +-
arch/x86/mm/pti.c | 2 +-
drivers/ata/pata_ftide010.c | 27 ++--
drivers/crypto/cavium/nitrox/nitrox_dev.h | 3 +-
drivers/crypto/cavium/nitrox/nitrox_lib.c | 1 +
drivers/crypto/cavium/nitrox/nitrox_reqmgr.c | 57 ++++---
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 11 +-
drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 4 +-
drivers/gpu/drm/amd/amdgpu/si_dpm.c | 3 +-
drivers/hwmon/adt7475.c | 14 +-
drivers/hwmon/ina2xx.c | 13 +-
drivers/i2c/busses/i2c-i801.c | 9 +-
drivers/net/ethernet/hisilicon/hns/hnae.h | 6 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 2 +-
drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 7 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 187 +++++++++++++++++++----
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 27 ++--
drivers/net/ethernet/qlogic/qed/qed_reg_addr.h | 2 +
drivers/nvme/target/fcloop.c | 3 +-
drivers/thermal/of-thermal.c | 7 +-
fs/isofs/inode.c | 7 +
include/linux/arm-smccc.h | 38 +++--
include/linux/platform_data/ina2xx.h | 2 +-
kernel/bpf/sockmap.c | 3 +
net/tls/tls_main.c | 9 +-
27 files changed, 338 insertions(+), 122 deletions(-)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAluywqIACgkQ3qZv95d3
LNyn8g/8CyhwmJpHasRk5DF07M05Zhjzivz+qN6vOACneDftZzm5ezlX8ayHs4ls
C8GlyTPPHwIw36GkTuYf8PopoQTDU8gsbb3yTr/RHFtIQJ3XOCmzAYtbkaQQ4sP2
UsAay4BETeqqYnyniNdcJ1b6dqX0llP6QmrYJg4hWI3B4FqzfWIl0decjX3RLxDB
Q/X3c5TvhQMcWSYuKti7M1ULE/AWg9BB2HMg1leJxFpESpF0UTpcVpPq3DMxd3os
B4bjBprGeemZ5/ctVG4J2P0uteoGocUS1pcgHgOr20etWdlu1TxtSBoI0THt/9fj
ZvbxNGN71Jpkb+wnRC18afPilDNKvLrlaaV65/rjk00Zzs1W0zCXl1zxnImHiCFn
kFMLZUv0KPNVYNa4U0HEQRrgf1mrgyncVWmIGLnzuC9hXZtF7UvHliGTr7dXctRX
i5FFdYeAk6bAMilNwK3VZyS2gvXU9C/yXz1tqFmhZuDaKsywvtOrfLO+XPLHly+T
K532vncSshpmrgPFK9iky/JMHiJ0flmF6CRqVjjd/PQA4wj1W2Np9vg8MtZm2n4N
SmYg4FNiKuGeRPaLxwubVVe6iALtfa47ARG67aYYnxRedc2RyK6saaxh3zbmJ7gW
kxZScnx0MKVYrNV/IIj3D/Dg/pX3XLIFpMEOwweEGzDwdbD6nxg=
=P3AS
-----END PGP SIGNATURE-----
This is a note to let you know that I've just added the patch titled
USB: serial: simple: add Motorola Tetra MTP6550 id
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From f5fad711c06e652f90f581fc7c2caee327c33d31 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 24 Sep 2018 15:28:10 +0200
Subject: USB: serial: simple: add Motorola Tetra MTP6550 id
Add device-id for the Motorola Tetra radio MTP6550.
Bus 001 Device 004: ID 0cad:9012 Motorola CGISS
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0cad Motorola CGISS
idProduct 0x9012
bcdDevice 24.16
iManufacturer 1 Motorola Solutions, Inc.
iProduct 2 TETRA PEI interface
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 55
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 3 Generic Serial config
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
Reported-by: Hans Hult <hanshult35(a)gmail.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/serial/usb-serial-simple.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/serial/usb-serial-simple.c b/drivers/usb/serial/usb-serial-simple.c
index 40864c2bd9dc..4d0273508043 100644
--- a/drivers/usb/serial/usb-serial-simple.c
+++ b/drivers/usb/serial/usb-serial-simple.c
@@ -84,7 +84,8 @@ DEVICE(moto_modem, MOTO_IDS);
/* Motorola Tetra driver */
#define MOTOROLA_TETRA_IDS() \
- { USB_DEVICE(0x0cad, 0x9011) } /* Motorola Solutions TETRA PEI */
+ { USB_DEVICE(0x0cad, 0x9011) }, /* Motorola Solutions TETRA PEI */ \
+ { USB_DEVICE(0x0cad, 0x9012) } /* MTP6550 */
DEVICE(motorola_tetra, MOTOROLA_TETRA_IDS);
/* Novatel Wireless GPS driver */
--
2.19.0
This is a note to let you know that I've just added the patch titled
USB: serial: option: add two-endpoints device-id flag
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 35aecc02b5b621782111f64cbb032c7f6a90bb32 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Thu, 13 Sep 2018 11:21:50 +0200
Subject: USB: serial: option: add two-endpoints device-id flag
Allow matching on interfaces having two endpoints by adding a new
device-id flag.
This allows for the handling of devices whose interface numbers can
change (e.g. Quectel EP06) to be contained in the device-id table.
Tested-by: Kristian Evensen <kristian.evensen(a)gmail.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/serial/option.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 382feafbd127..e72ad9f81c73 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -561,6 +561,9 @@ static void option_instat_callback(struct urb *urb);
/* Interface is reserved */
#define RSVD(ifnum) ((BIT(ifnum) & 0xff) << 0)
+/* Interface must have two endpoints */
+#define NUMEP2 BIT(16)
+
static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -1082,7 +1085,7 @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
- .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) },
+ .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 },
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
@@ -1986,7 +1989,6 @@ static int option_probe(struct usb_serial *serial,
{
struct usb_interface_descriptor *iface_desc =
&serial->interface->cur_altsetting->desc;
- struct usb_device_descriptor *dev_desc = &serial->dev->descriptor;
unsigned long device_flags = id->driver_info;
/* Never bind to the CD-Rom emulation interface */
@@ -2002,16 +2004,11 @@ static int option_probe(struct usb_serial *serial,
return -ENODEV;
/*
- * Don't bind to the QMI device of the Quectel EP06/EG06/EM06. Class,
- * subclass and protocol is 0xff for both the diagnostic port and the
- * QMI interface, but the diagnostic port only has two endpoints (QMI
- * has three).
+ * Allow matching on bNumEndpoints for devices whose interface numbers
+ * can change (e.g. Quectel EP06).
*/
- if (dev_desc->idVendor == cpu_to_le16(QUECTEL_VENDOR_ID) &&
- dev_desc->idProduct == cpu_to_le16(QUECTEL_PRODUCT_EP06) &&
- iface_desc->bInterfaceSubClass && iface_desc->bNumEndpoints == 3) {
+ if (device_flags & NUMEP2 && iface_desc->bNumEndpoints != 2)
return -ENODEV;
- }
/* Store the device flags so we can use them during attach. */
usb_set_serial_data(serial, (void *)device_flags);
--
2.19.0
This is a note to let you know that I've just added the patch titled
USB: serial: option: improve Quectel EP06 detection
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 36cae568404a298a19a6e8a3f18641075d4cab04 Mon Sep 17 00:00:00 2001
From: Kristian Evensen <kristian.evensen(a)gmail.com>
Date: Thu, 13 Sep 2018 11:21:49 +0200
Subject: USB: serial: option: improve Quectel EP06 detection
The Quectel EP06 (and EM06/EG06) LTE modem supports updating the USB
configuration, without the VID/PID or configuration number changing.
When the configuration is updated and interfaces are added/removed, the
interface numbers are updated. This causes our current code for matching
EP06 not to work as intended, as the assumption about reserved
interfaces no longer holds. If for example the diagnostic (first)
interface is removed, option will (try to) bind to the QMI interface.
This patch improves EP06 detection by replacing the current match with
two matches, and those matches check class, subclass and protocol as
well as VID and PID. The diag interface exports class, subclass and
protocol as 0xff. For the other serial interfaces, class is 0xff and
subclass and protocol are both 0x0.
The modem can export the following devices and always in this order:
diag, nmea, at, ppp. qmi and adb. This means that diag can only ever be
interface 0, and interface numbers 1-5 should be marked as reserved. The
three other serial devices can have interface numbers 0-3, but I have
not marked any interfaces as reserved. The reason is that the serial
devices are the only interfaces exported by the device where subclass
and protocol is 0x0.
QMI exports the same class, subclass and protocol values as the diag
interface. However, the two interfaces have different number of
endpoints, QMI has three and diag two. I have added a check for number
of interfaces if VID/PID matches the EP06, and we ignore the device if
number of interfaces equals three (and subclass is set).
Signed-off-by: Kristian Evensen <kristian.evensen(a)gmail.com>
Acked-by: Dan Williams <dcbw(a)redhat.com>
[ johan: drop uneeded RSVD(5) for ADB ]
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
drivers/usb/serial/option.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 0215b70c4efc..382feafbd127 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -1081,8 +1081,9 @@ static const struct usb_device_id option_ids[] = {
.driver_info = RSVD(4) },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },
- { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06),
- .driver_info = RSVD(4) | RSVD(5) },
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff),
+ .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) },
+ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
@@ -1985,6 +1986,7 @@ static int option_probe(struct usb_serial *serial,
{
struct usb_interface_descriptor *iface_desc =
&serial->interface->cur_altsetting->desc;
+ struct usb_device_descriptor *dev_desc = &serial->dev->descriptor;
unsigned long device_flags = id->driver_info;
/* Never bind to the CD-Rom emulation interface */
@@ -1999,6 +2001,18 @@ static int option_probe(struct usb_serial *serial,
if (device_flags & RSVD(iface_desc->bInterfaceNumber))
return -ENODEV;
+ /*
+ * Don't bind to the QMI device of the Quectel EP06/EG06/EM06. Class,
+ * subclass and protocol is 0xff for both the diagnostic port and the
+ * QMI interface, but the diagnostic port only has two endpoints (QMI
+ * has three).
+ */
+ if (dev_desc->idVendor == cpu_to_le16(QUECTEL_VENDOR_ID) &&
+ dev_desc->idProduct == cpu_to_le16(QUECTEL_PRODUCT_EP06) &&
+ iface_desc->bInterfaceSubClass && iface_desc->bNumEndpoints == 3) {
+ return -ENODEV;
+ }
+
/* Store the device flags so we can use them during attach. */
usb_set_serial_data(serial, (void *)device_flags);
--
2.19.0