diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 40089adfec0..55a45d9a4c8 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c @@ -1995,10 +1995,13 @@ static void msm_otg_init_sm(struct msm_otg *motg) clear_bit(B_SESS_VLD, &motg->inputs); } else if (pdata->otg_control == OTG_PMIC_CONTROL) { if (pdata->pmic_id_irq) { + unsigned long flags; + local_irq_save(flags); if (irq_read_line(pdata->pmic_id_irq)) set_bit(ID, &motg->inputs); else clear_bit(ID, &motg->inputs); + local_irq_restore(flags); } /* * VBUS initial state is reported after PMIC