| From 2c1fc77567ca97258d9ab5e0d61e765098d8eb4c Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 24 Mar 2021 15:11:12 +0100 |
| Subject: fotg210-udc: Mask GRP2 interrupts we don't handle |
| |
| From: Fabian Vogt <fabian@ritter-vogt.de> |
| |
| [ Upstream commit 9aee3a23d6455200702f3a57e731fa11e8408667 ] |
| |
| Currently it leaves unhandled interrupts unmasked, but those are never |
| acked. In the case of a "device idle" interrupt, this leads to an |
| effectively frozen system until plugging it in. |
| |
| Fixes: b84a8dee23fd ("usb: gadget: add Faraday fotg210_udc driver") |
| Signed-off-by: Fabian Vogt <fabian@ritter-vogt.de> |
| Link: https://lore.kernel.org/r/20210324141115.9384-5-fabian@ritter-vogt.de |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/gadget/udc/fotg210-udc.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/drivers/usb/gadget/udc/fotg210-udc.c b/drivers/usb/gadget/udc/fotg210-udc.c |
| index a3ad93bfd256..bbcc92376307 100644 |
| --- a/drivers/usb/gadget/udc/fotg210-udc.c |
| +++ b/drivers/usb/gadget/udc/fotg210-udc.c |
| @@ -1026,6 +1026,12 @@ static void fotg210_init(struct fotg210_udc *fotg210) |
| value &= ~DMCR_GLINT_EN; |
| iowrite32(value, fotg210->reg + FOTG210_DMCR); |
| |
| + /* enable only grp2 irqs we handle */ |
| + iowrite32(~(DISGR2_DMA_ERROR | DISGR2_RX0BYTE_INT | DISGR2_TX0BYTE_INT |
| + | DISGR2_ISO_SEQ_ABORT_INT | DISGR2_ISO_SEQ_ERR_INT |
| + | DISGR2_RESM_INT | DISGR2_SUSP_INT | DISGR2_USBRST_INT), |
| + fotg210->reg + FOTG210_DMISGR2); |
| + |
| /* disable all fifo interrupt */ |
| iowrite32(~(u32)0, fotg210->reg + FOTG210_DMISGR1); |
| |
| -- |
| 2.30.2 |
| |