<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb/chipidea, branch linux-5.4.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>usb: chipidea: udc: fix sleeping function called from invalid context</title>
<updated>2025-08-28T14:21:22+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@nxp.com</email>
</author>
<published>2020-03-16T03:10:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=651a71f931f8c6f30bc675f9723dab2c79ec1ede'/>
<id>651a71f931f8c6f30bc675f9723dab2c79ec1ede</id>
<content type='text'>
[ Upstream commit 7368760d1bcdabf515c41a502568b489de3da683 ]

The code calls pm_runtime_get_sync with irq disabled, it causes below
warning:

BUG: sleeping function called from invalid context at
wer/runtime.c:1075
in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid:
er/u8:1
CPU: 1 PID: 37 Comm: kworker/u8:1 Not tainted
20200304-00181-gbebfd2a5be98 #1588
Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
Workqueue: ci_otg ci_otg_work
[&lt;c010e8bd&gt;] (unwind_backtrace) from [&lt;c010a315&gt;]
1/0x14)
[&lt;c010a315&gt;] (show_stack) from [&lt;c0987d29&gt;]
5/0x94)
[&lt;c0987d29&gt;] (dump_stack) from [&lt;c013e77f&gt;]
+0xeb/0x118)
[&lt;c013e77f&gt;] (___might_sleep) from [&lt;c052fa1d&gt;]
esume+0x75/0x78)
[&lt;c052fa1d&gt;] (__pm_runtime_resume) from [&lt;c0627a33&gt;]
0x23/0x74)
[&lt;c0627a33&gt;] (ci_udc_pullup) from [&lt;c062fb93&gt;]
nect+0x2b/0xcc)
[&lt;c062fb93&gt;] (usb_gadget_connect) from [&lt;c062769d&gt;]
_connect+0x59/0x104)
[&lt;c062769d&gt;] (ci_hdrc_gadget_connect) from [&lt;c062778b&gt;]
ssion+0x43/0x48)
[&lt;c062778b&gt;] (ci_udc_vbus_session) from [&lt;c062f997&gt;]
s_connect+0x17/0x9c)
[&lt;c062f997&gt;] (usb_gadget_vbus_connect) from [&lt;c062634d&gt;]
bd/0x128)
[&lt;c062634d&gt;] (ci_otg_work) from [&lt;c0134719&gt;]
rk+0x149/0x404)
[&lt;c0134719&gt;] (process_one_work) from [&lt;c0134acb&gt;]
0xf7/0x3bc)
[&lt;c0134acb&gt;] (worker_thread) from [&lt;c0139433&gt;]
x118)
[&lt;c0139433&gt;] (kthread) from [&lt;c01010bd&gt;]
(ret_from_fork+0x11/0x34)

Tested-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v5.5
Fixes: 72dc8df7920f ("usb: chipidea: udc: protect usb interrupt enable")
Reported-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Link: https://lore.kernel.org/r/20200316031034.17847-2-peter.chen@kernel.org
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 7368760d1bcdabf515c41a502568b489de3da683 ]

The code calls pm_runtime_get_sync with irq disabled, it causes below
warning:

BUG: sleeping function called from invalid context at
wer/runtime.c:1075
in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid:
er/u8:1
CPU: 1 PID: 37 Comm: kworker/u8:1 Not tainted
20200304-00181-gbebfd2a5be98 #1588
Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
Workqueue: ci_otg ci_otg_work
[&lt;c010e8bd&gt;] (unwind_backtrace) from [&lt;c010a315&gt;]
1/0x14)
[&lt;c010a315&gt;] (show_stack) from [&lt;c0987d29&gt;]
5/0x94)
[&lt;c0987d29&gt;] (dump_stack) from [&lt;c013e77f&gt;]
+0xeb/0x118)
[&lt;c013e77f&gt;] (___might_sleep) from [&lt;c052fa1d&gt;]
esume+0x75/0x78)
[&lt;c052fa1d&gt;] (__pm_runtime_resume) from [&lt;c0627a33&gt;]
0x23/0x74)
[&lt;c0627a33&gt;] (ci_udc_pullup) from [&lt;c062fb93&gt;]
nect+0x2b/0xcc)
[&lt;c062fb93&gt;] (usb_gadget_connect) from [&lt;c062769d&gt;]
_connect+0x59/0x104)
[&lt;c062769d&gt;] (ci_hdrc_gadget_connect) from [&lt;c062778b&gt;]
ssion+0x43/0x48)
[&lt;c062778b&gt;] (ci_udc_vbus_session) from [&lt;c062f997&gt;]
s_connect+0x17/0x9c)
[&lt;c062f997&gt;] (usb_gadget_vbus_connect) from [&lt;c062634d&gt;]
bd/0x128)
[&lt;c062634d&gt;] (ci_otg_work) from [&lt;c0134719&gt;]
rk+0x149/0x404)
[&lt;c0134719&gt;] (process_one_work) from [&lt;c0134acb&gt;]
0xf7/0x3bc)
[&lt;c0134acb&gt;] (worker_thread) from [&lt;c0139433&gt;]
x118)
[&lt;c0139433&gt;] (kthread) from [&lt;c01010bd&gt;]
(ret_from_fork+0x11/0x34)

Tested-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; #v5.5
Fixes: 72dc8df7920f ("usb: chipidea: udc: protect usb interrupt enable")
Reported-by: Dmitry Osipenko &lt;digetx@gmail.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Link: https://lore.kernel.org/r/20200316031034.17847-2-peter.chen@kernel.org
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>usb: chipidea: add USB PHY event</title>
<updated>2025-08-28T14:21:18+00:00</updated>
<author>
<name>Xu Yang</name>
<email>xu.yang_2@nxp.com</email>
</author>
<published>2023-06-27T11:03:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4eb4ad451e3ffb8abc33775a84baacf1a9a75d33'/>
<id>4eb4ad451e3ffb8abc33775a84baacf1a9a75d33</id>
<content type='text'>
[ Upstream commit b7a62611fab72e585c729a7fcf666aa9c4144214 ]

Add USB PHY event for below situation:
- usb role changed
- vbus connect
- vbus disconnect
- gadget driver is enumerated

USB PHY driver can get the last event after above situation occurs
and deal with different situations.

Signed-off-by: Xu Yang &lt;xu.yang_2@nxp.com&gt;
Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Link: https://lore.kernel.org/r/20230627110353.1879477-1-xu.yang_2@nxp.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 b7a62611fab72e585c729a7fcf666aa9c4144214 ]

Add USB PHY event for below situation:
- usb role changed
- vbus connect
- vbus disconnect
- gadget driver is enumerated

USB PHY driver can get the last event after above situation occurs
and deal with different situations.

Signed-off-by: Xu Yang &lt;xu.yang_2@nxp.com&gt;
Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Link: https://lore.kernel.org/r/20230627110353.1879477-1-xu.yang_2@nxp.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>usb: chipidea: introduce CI_HDRC_CONTROLLER_VBUS_EVENT glue layer use</title>
<updated>2025-08-28T14:21:18+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@nxp.com</email>
</author>
<published>2020-01-23T06:00:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f2b6a88c1cbd764d8507c4f1bfab586782c0be02'/>
<id>f2b6a88c1cbd764d8507c4f1bfab586782c0be02</id>
<content type='text'>
[ Upstream commit d755cdb1b9d7e1b645e176b97eb137194bbe8cf9 ]

Some vendors glue layer need to handle some events for vbus, eg,
some i.mx platforms (imx7d, imx8mm, imx8mn, etc) needs vbus event
to handle charger detection, its charger detection is finished at
glue layer code, but not at USB PHY driver.

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: b7a62611fab7 ("usb: chipidea: add USB PHY event")
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 d755cdb1b9d7e1b645e176b97eb137194bbe8cf9 ]

Some vendors glue layer need to handle some events for vbus, eg,
some i.mx platforms (imx7d, imx8mm, imx8mn, etc) needs vbus event
to handle charger detection, its charger detection is finished at
glue layer code, but not at USB PHY driver.

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: b7a62611fab7 ("usb: chipidea: add USB PHY event")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: udc: protect usb interrupt enable</title>
<updated>2025-08-28T14:21:18+00:00</updated>
<author>
<name>Jun Li</name>
<email>jun.li@nxp.com</email>
</author>
<published>2019-09-10T06:54:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=770809a95864ad8b79e02c7ea573f065e53ed96a'/>
<id>770809a95864ad8b79e02c7ea573f065e53ed96a</id>
<content type='text'>
[ Upstream commit 72dc8df7920fc24eba0f586c56e900a1643ff2b3 ]

We hit the problem with below sequence:
- ci_udc_vbus_session() update vbus_active flag and ci-&gt;driver
is valid,
- before calling the ci_hdrc_gadget_connect(),
usb_gadget_udc_stop() is called by application remove gadget
driver,
- ci_udc_vbus_session() will contine do ci_hdrc_gadget_connect() as
gadget_ready is 1, so udc interrupt is enabled, but ci-&gt;driver is
NULL.
- USB connection irq generated but ci-&gt;driver is NULL.

As udc irq only should be enabled when gadget driver is binded, so
add spinlock to protect the usb irq enable for vbus session handling.

Signed-off-by: Jun Li &lt;jun.li@nxp.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: b7a62611fab7 ("usb: chipidea: add USB PHY event")
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 72dc8df7920fc24eba0f586c56e900a1643ff2b3 ]

We hit the problem with below sequence:
- ci_udc_vbus_session() update vbus_active flag and ci-&gt;driver
is valid,
- before calling the ci_hdrc_gadget_connect(),
usb_gadget_udc_stop() is called by application remove gadget
driver,
- ci_udc_vbus_session() will contine do ci_hdrc_gadget_connect() as
gadget_ready is 1, so udc interrupt is enabled, but ci-&gt;driver is
NULL.
- USB connection irq generated but ci-&gt;driver is NULL.

As udc irq only should be enabled when gadget driver is binded, so
add spinlock to protect the usb irq enable for vbus session handling.

Signed-off-by: Jun Li &lt;jun.li@nxp.com&gt;
Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: b7a62611fab7 ("usb: chipidea: add USB PHY event")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: udc: add new API ci_hdrc_gadget_connect</title>
<updated>2025-08-28T14:21:18+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@nxp.com</email>
</author>
<published>2019-09-10T02:54:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4fbf6bb0f97c66d9085352d85bea6adafb202abd'/>
<id>4fbf6bb0f97c66d9085352d85bea6adafb202abd</id>
<content type='text'>
[ Upstream commit d16ab536aad208421c5ed32cdcb01b5ab6aa1f19 ]

This API is used enable device function, it is called at below
situations:
- VBUS is connected during boots up
- Hot plug occurs during runtime

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Signed-off-by: Jun Li &lt;jun.li@nxp.com&gt;
Stable-dep-of: b7a62611fab7 ("usb: chipidea: add USB PHY event")
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 d16ab536aad208421c5ed32cdcb01b5ab6aa1f19 ]

This API is used enable device function, it is called at below
situations:
- VBUS is connected during boots up
- Hot plug occurs during runtime

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Signed-off-by: Jun Li &lt;jun.li@nxp.com&gt;
Stable-dep-of: b7a62611fab7 ("usb: chipidea: add USB PHY event")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling</title>
<updated>2025-06-04T12:32:26+00:00</updated>
<author>
<name>Fedor Pchelkin</name>
<email>pchelkin@ispras.ru</email>
</author>
<published>2025-03-16T10:26:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d086cca921fd8134c1324dd6b5ba33f64de82c96'/>
<id>d086cca921fd8134c1324dd6b5ba33f64de82c96</id>
<content type='text'>
[ Upstream commit 8c531e0a8c2d82509ad97c6d3a1e6217c7ed136d ]

usb_phy_init() may return an error code if e.g. its implementation fails
to prepare/enable some clocks. And properly rollback on probe error path
by calling the counterpart usb_phy_shutdown().

Found by Linux Verification Center (linuxtesting.org).

Fixes: be9cae2479f4 ("usb: chipidea: imx: Fix ULPI on imx53")
Cc: stable &lt;stable@kernel.org&gt;
Signed-off-by: Fedor Pchelkin &lt;pchelkin@ispras.ru&gt;
Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Link: https://lore.kernel.org/r/20250316102658.490340-4-pchelkin@ispras.ru
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 8c531e0a8c2d82509ad97c6d3a1e6217c7ed136d ]

usb_phy_init() may return an error code if e.g. its implementation fails
to prepare/enable some clocks. And properly rollback on probe error path
by calling the counterpart usb_phy_shutdown().

Found by Linux Verification Center (linuxtesting.org).

Fixes: be9cae2479f4 ("usb: chipidea: imx: Fix ULPI on imx53")
Cc: stable &lt;stable@kernel.org&gt;
Signed-off-by: Fedor Pchelkin &lt;pchelkin@ispras.ru&gt;
Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Link: https://lore.kernel.org/r/20250316102658.490340-4-pchelkin@ispras.ru
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>usb: chipidea: ci_hdrc_imx: use dev_err_probe()</title>
<updated>2025-06-04T12:32:26+00:00</updated>
<author>
<name>Alexander Stein</name>
<email>alexander.stein@ew.tq-group.com</email>
</author>
<published>2022-06-14T12:05:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b8feb22ee5596e3332f7e458988be3c6ff93535d'/>
<id>b8feb22ee5596e3332f7e458988be3c6ff93535d</id>
<content type='text'>
[ Upstream commit 18171cfc3c236a1587dcad9adc27c6e781af4438 ]

Use dev_err_probe() to simplify handling errors in ci_hdrc_imx_probe()

Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Signed-off-by: Alexander Stein &lt;alexander.stein@ew.tq-group.com&gt;
Link: https://lore.kernel.org/r/20220614120522.1469957-1-alexander.stein@ew.tq-group.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Stable-dep-of: 8c531e0a8c2d ("usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling")
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 18171cfc3c236a1587dcad9adc27c6e781af4438 ]

Use dev_err_probe() to simplify handling errors in ci_hdrc_imx_probe()

Acked-by: Peter Chen &lt;peter.chen@kernel.org&gt;
Signed-off-by: Alexander Stein &lt;alexander.stein@ew.tq-group.com&gt;
Link: https://lore.kernel.org/r/20220614120522.1469957-1-alexander.stein@ew.tq-group.com
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Stable-dep-of: 8c531e0a8c2d ("usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: imx: refine the error handling for hsic</title>
<updated>2025-06-04T12:32:25+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@nxp.com</email>
</author>
<published>2019-10-10T00:59:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=33f2c60835a73d5c611385921b11786290fc59de'/>
<id>33f2c60835a73d5c611385921b11786290fc59de</id>
<content type='text'>
[ Upstream commit 3f4aad6e1a4c26a20700fb4f630e4e6c6831db47 ]

- -EPROBE_DEFER is an error, but without need show error message
- If pintrol is not existed, as pintrol is NULL

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: 8c531e0a8c2d ("usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling")
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 3f4aad6e1a4c26a20700fb4f630e4e6c6831db47 ]

- -EPROBE_DEFER is an error, but without need show error message
- If pintrol is not existed, as pintrol is NULL

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: 8c531e0a8c2d ("usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: imx: change hsic power regulator as optional</title>
<updated>2025-06-04T12:32:25+00:00</updated>
<author>
<name>Peter Chen</name>
<email>peter.chen@nxp.com</email>
</author>
<published>2019-10-10T00:40:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8604f111147d702b1b452093aefd30282c382b23'/>
<id>8604f111147d702b1b452093aefd30282c382b23</id>
<content type='text'>
[ Upstream commit 7d5ec335f94e74e885ca2f6c97a3479fe9fe3b15 ]

Not every platform needs this regulator.

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: 8c531e0a8c2d ("usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling")
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 7d5ec335f94e74e885ca2f6c97a3479fe9fe3b15 ]

Not every platform needs this regulator.

Signed-off-by: Peter Chen &lt;peter.chen@nxp.com&gt;
Stable-dep-of: 8c531e0a8c2d ("usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: chipidea: udc: handle USB Error Interrupt if IOC not set</title>
<updated>2024-12-14T18:44:54+00:00</updated>
<author>
<name>Xu Yang</name>
<email>xu.yang_2@nxp.com</email>
</author>
<published>2024-09-26T02:29:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e99a36ed0ccf35f8135bf28bce61330a692c1932'/>
<id>e99a36ed0ccf35f8135bf28bce61330a692c1932</id>
<content type='text'>
[ Upstream commit 548f48b66c0c5d4b9795a55f304b7298cde2a025 ]

As per USBSTS register description about UEI:

  When completion of a USB transaction results in an error condition, this
  bit is set by the Host/Device Controller. This bit is set along with the
  USBINT bit, if the TD on which the error interrupt occurred also had its
  interrupt on complete (IOC) bit set.

UI is set only when IOC set. Add checking UEI to fix miss call
isr_tr_complete_handler() when IOC have not set and transfer error happen.

Acked-by: Peter Chen &lt;peter.chen@kernel.com&gt;
Signed-off-by: Xu Yang &lt;xu.yang_2@nxp.com&gt;
Link: https://lore.kernel.org/r/20240926022906.473319-1-xu.yang_2@nxp.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 548f48b66c0c5d4b9795a55f304b7298cde2a025 ]

As per USBSTS register description about UEI:

  When completion of a USB transaction results in an error condition, this
  bit is set by the Host/Device Controller. This bit is set along with the
  USBINT bit, if the TD on which the error interrupt occurred also had its
  interrupt on complete (IOC) bit set.

UI is set only when IOC set. Add checking UEI to fix miss call
isr_tr_complete_handler() when IOC have not set and transfer error happen.

Acked-by: Peter Chen &lt;peter.chen@kernel.com&gt;
Signed-off-by: Xu Yang &lt;xu.yang_2@nxp.com&gt;
Link: https://lore.kernel.org/r/20240926022906.473319-1-xu.yang_2@nxp.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>
</feed>
