usb: musb: core: remove unnecessary reg access from resume IRQ
when musb is operating as host and a remote wakeup fires up, a resume interrupt will be raised. At that point SUSPENDM bit is automatically cleared and RESUME bit is automatically set. Remove those two from IRQ handler. Tested-by: Bin Liu <b-liu@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
0acff6b831
commit
46571889ec
|
@ -538,27 +538,12 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb,
|
||||||
usb_otg_state_string(musb->xceiv->otg->state));
|
usb_otg_state_string(musb->xceiv->otg->state));
|
||||||
|
|
||||||
if (devctl & MUSB_DEVCTL_HM) {
|
if (devctl & MUSB_DEVCTL_HM) {
|
||||||
void __iomem *mbase = musb->mregs;
|
|
||||||
u8 power;
|
|
||||||
|
|
||||||
switch (musb->xceiv->otg->state) {
|
switch (musb->xceiv->otg->state) {
|
||||||
case OTG_STATE_A_SUSPEND:
|
case OTG_STATE_A_SUSPEND:
|
||||||
/* remote wakeup? later, GetPortStatus
|
/* remote wakeup? later, GetPortStatus
|
||||||
* will stop RESUME signaling
|
* will stop RESUME signaling
|
||||||
*/
|
*/
|
||||||
|
|
||||||
power = musb_readb(musb->mregs, MUSB_POWER);
|
|
||||||
if (power & MUSB_POWER_SUSPENDM) {
|
|
||||||
/* spurious */
|
|
||||||
musb->int_usb &= ~MUSB_INTR_SUSPEND;
|
|
||||||
dev_dbg(musb->controller, "Spurious SUSPENDM\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
power &= ~MUSB_POWER_SUSPENDM;
|
|
||||||
musb_writeb(mbase, MUSB_POWER,
|
|
||||||
power | MUSB_POWER_RESUME);
|
|
||||||
|
|
||||||
musb->port1_status |=
|
musb->port1_status |=
|
||||||
(USB_PORT_STAT_C_SUSPEND << 16)
|
(USB_PORT_STAT_C_SUSPEND << 16)
|
||||||
| MUSB_PORT_STAT_RESUME;
|
| MUSB_PORT_STAT_RESUME;
|
||||||
|
|
Loading…
Reference in New Issue