<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb/host, branch v4.9.236</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()</title>
<updated>2020-09-03T09:21:22+00:00</updated>
<author>
<name>Tang Bin</name>
<email>tangbin@cmss.chinamobile.com</email>
</author>
<published>2020-08-26T14:49:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=28d3ae31454e330aa1db09e60e468742369bab65'/>
<id>28d3ae31454e330aa1db09e60e468742369bab65</id>
<content type='text'>
commit 1d4169834628d18b2392a2da92b7fbf5e8e2ce89 upstream.

If the function platform_get_irq() failed, the negative value
returned will not be detected here. So fix error handling in
exynos_ohci_probe(). And when get irq failed, the function
platform_get_irq() logs an error message, so remove redundant
message here.

Fixes: 62194244cf87 ("USB: Add Samsung Exynos OHCI diver")
Signed-off-by: Zhang Shengju &lt;zhangshengju@cmss.chinamobile.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Tang Bin &lt;tangbin@cmss.chinamobile.com&gt;
Reviewed-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
Link: https://lore.kernel.org/r/20200826144931.1828-1-tangbin@cmss.chinamobile.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1d4169834628d18b2392a2da92b7fbf5e8e2ce89 upstream.

If the function platform_get_irq() failed, the negative value
returned will not be detected here. So fix error handling in
exynos_ohci_probe(). And when get irq failed, the function
platform_get_irq() logs an error message, so remove redundant
message here.

Fixes: 62194244cf87 ("USB: Add Samsung Exynos OHCI diver")
Signed-off-by: Zhang Shengju &lt;zhangshengju@cmss.chinamobile.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Tang Bin &lt;tangbin@cmss.chinamobile.com&gt;
Reviewed-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
Link: https://lore.kernel.org/r/20200826144931.1828-1-tangbin@cmss.chinamobile.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>xhci: Do warm-reset when both CAS and XDEV_RESUME are set</title>
<updated>2020-09-03T09:21:22+00:00</updated>
<author>
<name>Kai-Heng Feng</name>
<email>kai.heng.feng@canonical.com</email>
</author>
<published>2020-08-21T09:15:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9ef0375f018635a72d0ca54484f61940b351be02'/>
<id>9ef0375f018635a72d0ca54484f61940b351be02</id>
<content type='text'>
commit 904df64a5f4d5ebd670801d869ca0a6d6a6e8df6 upstream.

Sometimes re-plugging a USB device during system sleep renders the device
useless:
[  173.418345] xhci_hcd 0000:00:14.0: Get port status 2-4 read: 0x14203e2, return 0x10262
...
[  176.496485] usb 2-4: Waited 2000ms for CONNECT
[  176.496781] usb usb2-port4: status 0000.0262 after resume, -19
[  176.497103] usb 2-4: can't resume, status -19
[  176.497438] usb usb2-port4: logical disconnect

Because PLS equals to XDEV_RESUME, xHCI driver reports U3 to usbcore,
despite of CAS bit is flagged.

So proritize CAS over XDEV_RESUME to let usbcore handle warm-reset for
the port.

Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Kai-Heng Feng &lt;kai.heng.feng@canonical.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200821091549.20556-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 904df64a5f4d5ebd670801d869ca0a6d6a6e8df6 upstream.

Sometimes re-plugging a USB device during system sleep renders the device
useless:
[  173.418345] xhci_hcd 0000:00:14.0: Get port status 2-4 read: 0x14203e2, return 0x10262
...
[  176.496485] usb 2-4: Waited 2000ms for CONNECT
[  176.496781] usb usb2-port4: status 0000.0262 after resume, -19
[  176.497103] usb 2-4: can't resume, status -19
[  176.497438] usb usb2-port4: logical disconnect

Because PLS equals to XDEV_RESUME, xHCI driver reports U3 to usbcore,
despite of CAS bit is flagged.

So proritize CAS over XDEV_RESUME to let usbcore handle warm-reset for
the port.

Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Kai-Heng Feng &lt;kai.heng.feng@canonical.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200821091549.20556-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: xhci: Fix ASM2142/ASM3142 DMA addressing</title>
<updated>2020-07-31T14:44:04+00:00</updated>
<author>
<name>Forest Crossman</name>
<email>cyrozap@gmail.com</email>
</author>
<published>2020-07-17T11:27:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=41f5f86a7105f6d6e657894f245d4cd9c34655ed'/>
<id>41f5f86a7105f6d6e657894f245d4cd9c34655ed</id>
<content type='text'>
commit dbb0897e805f2ab1b8bc358f6c3d878a376b8897 upstream.

The ASM2142/ASM3142 (same PCI IDs) does not support full 64-bit DMA
addresses, which can cause silent memory corruption or IOMMU errors on
platforms that use the upper bits. Add the XHCI_NO_64BIT_SUPPORT quirk
to fix this issue.

Signed-off-by: Forest Crossman &lt;cyrozap@gmail.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Link: https://lore.kernel.org/r/20200717112734.328432-1-cyrozap@gmail.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit dbb0897e805f2ab1b8bc358f6c3d878a376b8897 upstream.

The ASM2142/ASM3142 (same PCI IDs) does not support full 64-bit DMA
addresses, which can cause silent memory corruption or IOMMU errors on
platforms that use the upper bits. Add the XHCI_NO_64BIT_SUPPORT quirk
to fix this issue.

Signed-off-by: Forest Crossman &lt;cyrozap@gmail.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Link: https://lore.kernel.org/r/20200717112734.328432-1-cyrozap@gmail.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: xhci-mtk: fix the failure of bandwidth allocation</title>
<updated>2020-07-31T14:44:04+00:00</updated>
<author>
<name>Chunfeng Yun</name>
<email>chunfeng.yun@mediatek.com</email>
</author>
<published>2020-07-10T05:57:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a9423d50bb5841656cc8af8225ec385c1781fbc8'/>
<id>a9423d50bb5841656cc8af8225ec385c1781fbc8</id>
<content type='text'>
commit 5ce1a24dd98c00a57a8fa13660648abf7e08e3ef upstream.

The wMaxPacketSize field of endpoint descriptor may be zero
as default value in alternate interface, and they are not
actually selected when start stream, so skip them when try to
allocate bandwidth.

Cc: stable &lt;stable@vger.kernel.org&gt;
Fixes: 0cbd4b34cda9 ("xhci: mediatek: support MTK xHCI host controller")
Signed-off-by: Chunfeng Yun &lt;chunfeng.yun@mediatek.com&gt;
Link: https://lore.kernel.org/r/1594360672-2076-1-git-send-email-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5ce1a24dd98c00a57a8fa13660648abf7e08e3ef upstream.

The wMaxPacketSize field of endpoint descriptor may be zero
as default value in alternate interface, and they are not
actually selected when start stream, so skip them when try to
allocate bandwidth.

Cc: stable &lt;stable@vger.kernel.org&gt;
Fixes: 0cbd4b34cda9 ("xhci: mediatek: support MTK xHCI host controller")
Signed-off-by: Chunfeng Yun &lt;chunfeng.yun@mediatek.com&gt;
Link: https://lore.kernel.org/r/1594360672-2076-1-git-send-email-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "usb/ohci-platform: Fix a warning when hibernating"</title>
<updated>2020-07-22T07:10:50+00:00</updated>
<author>
<name>Sasha Levin</name>
<email>sashal@kernel.org</email>
</author>
<published>2020-07-17T16:39:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=dd37ca83f55e3b566b02670020856dd534191fda'/>
<id>dd37ca83f55e3b566b02670020856dd534191fda</id>
<content type='text'>
This reverts commit 104592a5233d77322c3e527e3925dc7c5a30a6af.

Eugeniu Rosca writes:

On Thu, Jul 09, 2020 at 09:00:23AM +0200, Eugeniu Rosca wrote:
&gt;After integrating v4.14.186 commit 5410d158ca2a50 ("usb/ehci-platform:
&gt;Set PM runtime as active on resume") into downstream v4.14.x, we started
&gt;to consistently experience below panic [1] on every second s2ram of
&gt;R-Car H3 Salvator-X Renesas reference board.
&gt;
&gt;After some investigations, we concluded the following:
&gt; - the issue does not exist in vanilla v5.8-rc4+
&gt; - [bisecting shows that] the panic on v4.14.186 is caused by the lack
&gt;   of v5.6-rc1 commit 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support"). Getting evidence for that is easy. Reverting
&gt;   987351e1ea7772 in vanilla leads to a similar backtrace [2].
&gt;
&gt;Questions:
&gt; - Backporting 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support") to v4.14.187 looks challenging enough, so probably not
&gt;   worth it. Anybody to contradict this?
&gt; - Assuming no plans to backport the missing mainline commit to v4.14.x,
&gt;   should the following three v4.14.186 commits be reverted on v4.14.x?
&gt;   * baef809ea497a4 ("usb/ohci-platform: Fix a warning when hibernating")
&gt;   * 9f33eff4958885 ("usb/xhci-plat: Set PM runtime as active on resume")
&gt;   * 5410d158ca2a50 ("usb/ehci-platform: Set PM runtime as active on resume")

Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 104592a5233d77322c3e527e3925dc7c5a30a6af.

Eugeniu Rosca writes:

On Thu, Jul 09, 2020 at 09:00:23AM +0200, Eugeniu Rosca wrote:
&gt;After integrating v4.14.186 commit 5410d158ca2a50 ("usb/ehci-platform:
&gt;Set PM runtime as active on resume") into downstream v4.14.x, we started
&gt;to consistently experience below panic [1] on every second s2ram of
&gt;R-Car H3 Salvator-X Renesas reference board.
&gt;
&gt;After some investigations, we concluded the following:
&gt; - the issue does not exist in vanilla v5.8-rc4+
&gt; - [bisecting shows that] the panic on v4.14.186 is caused by the lack
&gt;   of v5.6-rc1 commit 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support"). Getting evidence for that is easy. Reverting
&gt;   987351e1ea7772 in vanilla leads to a similar backtrace [2].
&gt;
&gt;Questions:
&gt; - Backporting 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support") to v4.14.187 looks challenging enough, so probably not
&gt;   worth it. Anybody to contradict this?
&gt; - Assuming no plans to backport the missing mainline commit to v4.14.x,
&gt;   should the following three v4.14.186 commits be reverted on v4.14.x?
&gt;   * baef809ea497a4 ("usb/ohci-platform: Fix a warning when hibernating")
&gt;   * 9f33eff4958885 ("usb/xhci-plat: Set PM runtime as active on resume")
&gt;   * 5410d158ca2a50 ("usb/ehci-platform: Set PM runtime as active on resume")

Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "usb/xhci-plat: Set PM runtime as active on resume"</title>
<updated>2020-07-22T07:10:50+00:00</updated>
<author>
<name>Sasha Levin</name>
<email>sashal@kernel.org</email>
</author>
<published>2020-07-17T16:38:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=100903943fc4b014c89f70d833d36ce03606fcd7'/>
<id>100903943fc4b014c89f70d833d36ce03606fcd7</id>
<content type='text'>
This reverts commit 9e148a5e5e0929a4cb3000de9c843a07508ce575.

Eugeniu Rosca writes:

On Thu, Jul 09, 2020 at 09:00:23AM +0200, Eugeniu Rosca wrote:
&gt;After integrating v4.14.186 commit 5410d158ca2a50 ("usb/ehci-platform:
&gt;Set PM runtime as active on resume") into downstream v4.14.x, we started
&gt;to consistently experience below panic [1] on every second s2ram of
&gt;R-Car H3 Salvator-X Renesas reference board.
&gt;
&gt;After some investigations, we concluded the following:
&gt; - the issue does not exist in vanilla v5.8-rc4+
&gt; - [bisecting shows that] the panic on v4.14.186 is caused by the lack
&gt;   of v5.6-rc1 commit 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support"). Getting evidence for that is easy. Reverting
&gt;   987351e1ea7772 in vanilla leads to a similar backtrace [2].
&gt;
&gt;Questions:
&gt; - Backporting 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support") to v4.14.187 looks challenging enough, so probably not
&gt;   worth it. Anybody to contradict this?
&gt; - Assuming no plans to backport the missing mainline commit to v4.14.x,
&gt;   should the following three v4.14.186 commits be reverted on v4.14.x?
&gt;   * baef809ea497a4 ("usb/ohci-platform: Fix a warning when hibernating")
&gt;   * 9f33eff4958885 ("usb/xhci-plat: Set PM runtime as active on resume")
&gt;   * 5410d158ca2a50 ("usb/ehci-platform: Set PM runtime as active on resume")

Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 9e148a5e5e0929a4cb3000de9c843a07508ce575.

Eugeniu Rosca writes:

On Thu, Jul 09, 2020 at 09:00:23AM +0200, Eugeniu Rosca wrote:
&gt;After integrating v4.14.186 commit 5410d158ca2a50 ("usb/ehci-platform:
&gt;Set PM runtime as active on resume") into downstream v4.14.x, we started
&gt;to consistently experience below panic [1] on every second s2ram of
&gt;R-Car H3 Salvator-X Renesas reference board.
&gt;
&gt;After some investigations, we concluded the following:
&gt; - the issue does not exist in vanilla v5.8-rc4+
&gt; - [bisecting shows that] the panic on v4.14.186 is caused by the lack
&gt;   of v5.6-rc1 commit 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support"). Getting evidence for that is easy. Reverting
&gt;   987351e1ea7772 in vanilla leads to a similar backtrace [2].
&gt;
&gt;Questions:
&gt; - Backporting 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support") to v4.14.187 looks challenging enough, so probably not
&gt;   worth it. Anybody to contradict this?
&gt; - Assuming no plans to backport the missing mainline commit to v4.14.x,
&gt;   should the following three v4.14.186 commits be reverted on v4.14.x?
&gt;   * baef809ea497a4 ("usb/ohci-platform: Fix a warning when hibernating")
&gt;   * 9f33eff4958885 ("usb/xhci-plat: Set PM runtime as active on resume")
&gt;   * 5410d158ca2a50 ("usb/ehci-platform: Set PM runtime as active on resume")

Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "usb/ehci-platform: Set PM runtime as active on resume"</title>
<updated>2020-07-22T07:10:50+00:00</updated>
<author>
<name>Sasha Levin</name>
<email>sashal@kernel.org</email>
</author>
<published>2020-07-17T16:36:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cff2986553e9cb5a000734bbca53054a40dc76ad'/>
<id>cff2986553e9cb5a000734bbca53054a40dc76ad</id>
<content type='text'>
This reverts commit 5365fc3132a36a027fd7c2bb461e651b37f1e4d1.

Eugeniu Rosca writes:

On Thu, Jul 09, 2020 at 09:00:23AM +0200, Eugeniu Rosca wrote:
&gt;After integrating v4.14.186 commit 5410d158ca2a50 ("usb/ehci-platform:
&gt;Set PM runtime as active on resume") into downstream v4.14.x, we started
&gt;to consistently experience below panic [1] on every second s2ram of
&gt;R-Car H3 Salvator-X Renesas reference board.
&gt;
&gt;After some investigations, we concluded the following:
&gt; - the issue does not exist in vanilla v5.8-rc4+
&gt; - [bisecting shows that] the panic on v4.14.186 is caused by the lack
&gt;   of v5.6-rc1 commit 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support"). Getting evidence for that is easy. Reverting
&gt;   987351e1ea7772 in vanilla leads to a similar backtrace [2].
&gt;
&gt;Questions:
&gt; - Backporting 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support") to v4.14.187 looks challenging enough, so probably not
&gt;   worth it. Anybody to contradict this?
&gt; - Assuming no plans to backport the missing mainline commit to v4.14.x,
&gt;   should the following three v4.14.186 commits be reverted on v4.14.x?
&gt;   * baef809ea497a4 ("usb/ohci-platform: Fix a warning when hibernating")
&gt;   * 9f33eff4958885 ("usb/xhci-plat: Set PM runtime as active on resume")
&gt;   * 5410d158ca2a50 ("usb/ehci-platform: Set PM runtime as active on resume")

Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 5365fc3132a36a027fd7c2bb461e651b37f1e4d1.

Eugeniu Rosca writes:

On Thu, Jul 09, 2020 at 09:00:23AM +0200, Eugeniu Rosca wrote:
&gt;After integrating v4.14.186 commit 5410d158ca2a50 ("usb/ehci-platform:
&gt;Set PM runtime as active on resume") into downstream v4.14.x, we started
&gt;to consistently experience below panic [1] on every second s2ram of
&gt;R-Car H3 Salvator-X Renesas reference board.
&gt;
&gt;After some investigations, we concluded the following:
&gt; - the issue does not exist in vanilla v5.8-rc4+
&gt; - [bisecting shows that] the panic on v4.14.186 is caused by the lack
&gt;   of v5.6-rc1 commit 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support"). Getting evidence for that is easy. Reverting
&gt;   987351e1ea7772 in vanilla leads to a similar backtrace [2].
&gt;
&gt;Questions:
&gt; - Backporting 987351e1ea7772 ("phy: core: Add consumer device
&gt;   link support") to v4.14.187 looks challenging enough, so probably not
&gt;   worth it. Anybody to contradict this?
&gt; - Assuming no plans to backport the missing mainline commit to v4.14.x,
&gt;   should the following three v4.14.186 commits be reverted on v4.14.x?
&gt;   * baef809ea497a4 ("usb/ohci-platform: Fix a warning when hibernating")
&gt;   * 9f33eff4958885 ("usb/xhci-plat: Set PM runtime as active on resume")
&gt;   * 5410d158ca2a50 ("usb/ehci-platform: Set PM runtime as active on resume")

Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>xhci: Poll for U0 after disabling USB2 LPM</title>
<updated>2020-06-30T19:38:41+00:00</updated>
<author>
<name>Kai-Heng Feng</name>
<email>kai.heng.feng@canonical.com</email>
</author>
<published>2020-06-24T13:59:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=dfa2cacd9f4811982d9d450fb0bf07526f56e9a2'/>
<id>dfa2cacd9f4811982d9d450fb0bf07526f56e9a2</id>
<content type='text'>
[ Upstream commit b3d71abd135e6919ca0b6cab463738472653ddfb ]

USB2 devices with LPM enabled may interrupt the system suspend:
[  932.510475] usb 1-7: usb suspend, wakeup 0
[  932.510549] hub 1-0:1.0: hub_suspend
[  932.510581] usb usb1: bus suspend, wakeup 0
[  932.510590] xhci_hcd 0000:00:14.0: port 9 not suspended
[  932.510593] xhci_hcd 0000:00:14.0: port 8 not suspended
..
[  932.520323] xhci_hcd 0000:00:14.0: Port change event, 1-7, id 7, portsc: 0x400e03
..
[  932.591405] PM: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
[  932.591414] PM: dpm_run_callback(): pci_pm_suspend+0x0/0x160 returns -16
[  932.591418] PM: Device 0000:00:14.0 failed to suspend async: error -16

During system suspend, USB core will let HC suspends the device if it
doesn't have remote wakeup enabled and doesn't have any children.
However, from the log above we can see that the usb 1-7 doesn't get bus
suspended due to not in U0. After a while the port finished U2 -&gt; U0
transition, interrupts the suspend process.

The observation is that after disabling LPM, port doesn't transit to U0
immediately and can linger in U2. xHCI spec 4.23.5.2 states that the
maximum exit latency for USB2 LPM should be BESL + 10us. The BESL for
the affected device is advertised as 400us, which is still not enough
based on my testing result.

So let's use the maximum permitted latency, 10000, to poll for U0
status to solve the issue.

Cc: stable@vger.kernel.org
Signed-off-by: Kai-Heng Feng &lt;kai.heng.feng@canonical.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200624135949.22611-6-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit b3d71abd135e6919ca0b6cab463738472653ddfb ]

USB2 devices with LPM enabled may interrupt the system suspend:
[  932.510475] usb 1-7: usb suspend, wakeup 0
[  932.510549] hub 1-0:1.0: hub_suspend
[  932.510581] usb usb1: bus suspend, wakeup 0
[  932.510590] xhci_hcd 0000:00:14.0: port 9 not suspended
[  932.510593] xhci_hcd 0000:00:14.0: port 8 not suspended
..
[  932.520323] xhci_hcd 0000:00:14.0: Port change event, 1-7, id 7, portsc: 0x400e03
..
[  932.591405] PM: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
[  932.591414] PM: dpm_run_callback(): pci_pm_suspend+0x0/0x160 returns -16
[  932.591418] PM: Device 0000:00:14.0 failed to suspend async: error -16

During system suspend, USB core will let HC suspends the device if it
doesn't have remote wakeup enabled and doesn't have any children.
However, from the log above we can see that the usb 1-7 doesn't get bus
suspended due to not in U0. After a while the port finished U2 -&gt; U0
transition, interrupts the suspend process.

The observation is that after disabling LPM, port doesn't transit to U0
immediately and can linger in U2. xHCI spec 4.23.5.2 states that the
maximum exit latency for USB2 LPM should be BESL + 10us. The BESL for
the affected device is advertised as 400us, which is still not enough
based on my testing result.

So let's use the maximum permitted latency, 10000, to poll for U0
status to solve the issue.

Cc: stable@vger.kernel.org
Signed-off-by: Kai-Heng Feng &lt;kai.heng.feng@canonical.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200624135949.22611-6-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>xhci: Fix enumeration issue when setting max packet size for FS devices.</title>
<updated>2020-06-30T19:38:41+00:00</updated>
<author>
<name>Al Cooper</name>
<email>alcooperx@gmail.com</email>
</author>
<published>2020-06-24T13:59:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=dbf2c1a8a2baa68aaa9862e02c34f31c55478055'/>
<id>dbf2c1a8a2baa68aaa9862e02c34f31c55478055</id>
<content type='text'>
commit a73d9d9cfc3cfceabd91fb0b0c13e4062b6dbcd7 upstream.

Unable to complete the enumeration of a USB TV Tuner device.

Per XHCI spec (4.6.5), the EP state field of the input context shall
be cleared for a set address command. In the special case of an FS
device that has "MaxPacketSize0 = 8", the Linux XHCI driver does
not do this before evaluating the context. With an XHCI controller
that checks the EP state field for parameter context error this
causes a problem in cases such as the device getting reset again
after enumeration.

When that field is cleared, the problem does not occur.

This was found and fixed by Sasi Kumar.

Cc: stable@vger.kernel.org
Signed-off-by: Al Cooper &lt;alcooperx@gmail.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200624135949.22611-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a73d9d9cfc3cfceabd91fb0b0c13e4062b6dbcd7 upstream.

Unable to complete the enumeration of a USB TV Tuner device.

Per XHCI spec (4.6.5), the EP state field of the input context shall
be cleared for a set address command. In the special case of an FS
device that has "MaxPacketSize0 = 8", the Linux XHCI driver does
not do this before evaluating the context. With an XHCI controller
that checks the EP state field for parameter context error this
causes a problem in cases such as the device getting reset again
after enumeration.

When that field is cleared, the problem does not occur.

This was found and fixed by Sasi Kumar.

Cc: stable@vger.kernel.org
Signed-off-by: Al Cooper &lt;alcooperx@gmail.com&gt;
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200624135949.22611-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>xhci: Fix incorrect EP_STATE_MASK</title>
<updated>2020-06-30T19:38:41+00:00</updated>
<author>
<name>Mathias Nyman</name>
<email>mathias.nyman@linux.intel.com</email>
</author>
<published>2020-06-24T13:59:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f0a2a8d0add7403cb3f5b9b0d1fd948703760190'/>
<id>f0a2a8d0add7403cb3f5b9b0d1fd948703760190</id>
<content type='text'>
commit dceea67058fe22075db3aed62d5cb62092be5053 upstream.

EP_STATE_MASK should be 0x7 instead of 0xf

xhci spec 6.2.3 shows that the EP state field in the endpoint context data
structure consist of bits [2:0].
The old value included a bit from the next field which fortunately is a
 RsvdZ region. So hopefully this hasn't caused too much harm

Cc: stable@vger.kernel.org
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200624135949.22611-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit dceea67058fe22075db3aed62d5cb62092be5053 upstream.

EP_STATE_MASK should be 0x7 instead of 0xf

xhci spec 6.2.3 shows that the EP state field in the endpoint context data
structure consist of bits [2:0].
The old value included a bit from the next field which fortunately is a
 RsvdZ region. So hopefully this hasn't caused too much harm

Cc: stable@vger.kernel.org
Signed-off-by: Mathias Nyman &lt;mathias.nyman@linux.intel.com&gt;
Link: https://lore.kernel.org/r/20200624135949.22611-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
</feed>
