mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-07 19:48:14 +07:00
usb: chipidea: clear otg interrupt status for otg capable controller
We need to do it for all otg capable controller, not only peripheral featured otg capable controller, otherwise, the host-only role, but otg capable controller may be responded by otg interrupt. Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
01e3ad863f
commit
2e37cfd8e0
@ -649,8 +649,12 @@ static void ci_get_otg_capable(struct ci_hdrc *ci)
|
|||||||
ci->is_otg = (hw_read(ci, CAP_DCCPARAMS,
|
ci->is_otg = (hw_read(ci, CAP_DCCPARAMS,
|
||||||
DCCPARAMS_DC | DCCPARAMS_HC)
|
DCCPARAMS_DC | DCCPARAMS_HC)
|
||||||
== (DCCPARAMS_DC | DCCPARAMS_HC));
|
== (DCCPARAMS_DC | DCCPARAMS_HC));
|
||||||
if (ci->is_otg)
|
if (ci->is_otg) {
|
||||||
dev_dbg(ci->dev, "It is OTG capable controller\n");
|
dev_dbg(ci->dev, "It is OTG capable controller\n");
|
||||||
|
/* Disable and clear all OTG irq */
|
||||||
|
hw_write_otgsc(ci, OTGSC_INT_EN_BITS | OTGSC_INT_STATUS_BITS,
|
||||||
|
OTGSC_INT_STATUS_BITS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ci_hdrc_probe(struct platform_device *pdev)
|
static int ci_hdrc_probe(struct platform_device *pdev)
|
||||||
@ -749,9 +753,6 @@ static int ci_hdrc_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ci->is_otg && ci->roles[CI_ROLE_GADGET]) {
|
if (ci->is_otg && ci->roles[CI_ROLE_GADGET]) {
|
||||||
/* Disable and clear all OTG irq */
|
|
||||||
hw_write_otgsc(ci, OTGSC_INT_EN_BITS | OTGSC_INT_STATUS_BITS,
|
|
||||||
OTGSC_INT_STATUS_BITS);
|
|
||||||
ret = ci_hdrc_otg_init(ci);
|
ret = ci_hdrc_otg_init(ci);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev, "init otg fails, ret = %d\n", ret);
|
dev_err(dev, "init otg fails, ret = %d\n", ret);
|
||||||
|
Loading…
Reference in New Issue
Block a user