diff options
author | Xu Yang <xu.yang_2@nxp.com> | 2023-08-09 10:44:32 +0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-08-09 14:16:06 +0200 |
commit | 12e6ac69cc7e7d3367599ae26a92a0f9a18bc728 (patch) | |
tree | 17e2d94b47614b80d01b2800657c14fd5b8c78af /drivers/usb/chipidea/ci.h | |
parent | dda4b60ed70bd670eefda081f70c0cb20bbeb1fa (diff) | |
download | linux-12e6ac69cc7e7d3367599ae26a92a0f9a18bc728.tar.gz linux-12e6ac69cc7e7d3367599ae26a92a0f9a18bc728.tar.bz2 linux-12e6ac69cc7e7d3367599ae26a92a0f9a18bc728.zip |
usb: chipidea: add workaround for chipidea PEC bug
Some NXP processors using ChipIdea USB IP have a bug when frame babble is
detected.
Issue description:
In USB camera test, our controller is host in HS mode. In ISOC IN, when
device sends data across the micro frame, it causes the babble in host
controller. This will clear the PE bit. In spec, it also requires to set
the PEC bit and then set the PCI bit. Without the PCI interrupt, the
software does not know the PE is cleared.
This will add a flag CI_HDRC_HAS_PORTSC_PEC_MISSED to some impacted
platform datas. And the ehci host driver will assert PEC by SW when
specific conditions are satisfied.
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Link: https://lore.kernel.org/r/20230809024432.535160-2-xu.yang_2@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/chipidea/ci.h')
-rw-r--r-- | drivers/usb/chipidea/ci.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h index d262b9df7b3d..d9bb3d3f026e 100644 --- a/drivers/usb/chipidea/ci.h +++ b/drivers/usb/chipidea/ci.h @@ -257,6 +257,7 @@ struct ci_hdrc { bool id_event; bool b_sess_valid_event; bool imx28_write_fix; + bool has_portsc_pec_bug; bool supports_runtime_pm; bool in_lpm; bool wakeup_int; |