All of lore.kernel.org
 help / color / mirror / Atom feed
* usb: dwc2: screaming interrupt after kexec reboot
@ 2020-05-26  3:25 Frank Mori Hess
  2020-05-27  6:06 ` Minas Harutyunyan
  0 siblings, 1 reply; 3+ messages in thread
From: Frank Mori Hess @ 2020-05-26  3:25 UTC (permalink / raw)
  To: Minas Harutyunyan, linux-usb

Hi,

I get a screaming dwc2 interrupt after rebooting into a new kernel
with kexec.  I fixed it by modifying the dwc2_driver_shutdown function
in dwc2/platform.c so it does

dwc2_writel(hsotg, 0, GINTMSK);
dwc2_writel(hsotg, 0, HAINTMSK);
dwc2_writel(hsotg, 0, DAINTMSK);

rather than calling disable_irq().  Another reason to make this change
is disable_irq() affects other devices if the irq is shared.  I'd
really rather not submit a formal patch, hopefully the maintainer will
adopt this suggestion.

-- 
Frank

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: usb: dwc2: screaming interrupt after kexec reboot
  2020-05-26  3:25 usb: dwc2: screaming interrupt after kexec reboot Frank Mori Hess
@ 2020-05-27  6:06 ` Minas Harutyunyan
  2020-05-28 19:16   ` Frank Mori Hess
  0 siblings, 1 reply; 3+ messages in thread
From: Minas Harutyunyan @ 2020-05-27  6:06 UTC (permalink / raw)
  To: Frank Mori Hess, Minas Harutyunyan, linux-usb

Hi Frank,

On 5/26/2020 7:25 AM, Frank Mori Hess wrote:
> Hi,
> 
> I get a screaming dwc2 interrupt after rebooting into a new kernel
> with kexec.  I fixed it by modifying the dwc2_driver_shutdown function
> in dwc2/platform.c so it does
> 
> dwc2_writel(hsotg, 0, GINTMSK);
> dwc2_writel(hsotg, 0, HAINTMSK);
> dwc2_writel(hsotg, 0, DAINTMSK);
> 
> rather than calling disable_irq().  Another reason to make this change
> is disable_irq() affects other devices if the irq is shared.  I'd
> really rather not submit a formal patch, hopefully the maintainer will
> adopt this suggestion.
> 

Could you please test this patch instead of your suggestion. Does it 
solve issue in your case?

diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
index e571c8ae65ec..ada5b66b948e 100644
--- a/drivers/usb/dwc2/platform.c
+++ b/drivers/usb/dwc2/platform.c
@@ -342,7 +342,7 @@ static void dwc2_driver_shutdown(struct 
platform_device *dev)
  {
         struct dwc2_hsotg *hsotg = platform_get_drvdata(dev);

-       disable_irq(hsotg->irq);
+       dwc2_disable_global_interrupts(hsotg);
  }

  /**


Thanks,
Minas

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: usb: dwc2: screaming interrupt after kexec reboot
  2020-05-27  6:06 ` Minas Harutyunyan
@ 2020-05-28 19:16   ` Frank Mori Hess
  0 siblings, 0 replies; 3+ messages in thread
From: Frank Mori Hess @ 2020-05-28 19:16 UTC (permalink / raw)
  To: Minas Harutyunyan; +Cc: linux-usb

Hi Minas,

On Wed, May 27, 2020 at 2:07 AM Minas Harutyunyan
<Minas.Harutyunyan@synopsys.com> wrote:
> Could you please test this patch instead of your suggestion. Does it
> solve issue in your case?

Yes, I tested using your patch and it does work.

>
> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
> index e571c8ae65ec..ada5b66b948e 100644
> --- a/drivers/usb/dwc2/platform.c
> +++ b/drivers/usb/dwc2/platform.c
> @@ -342,7 +342,7 @@ static void dwc2_driver_shutdown(struct
> platform_device *dev)
>   {
>          struct dwc2_hsotg *hsotg = platform_get_drvdata(dev);
>
> -       disable_irq(hsotg->irq);
> +       dwc2_disable_global_interrupts(hsotg);
>   }
>
>   /**
>
>
> Thanks,
> Minas



-- 
Frank

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-05-28 19:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-26  3:25 usb: dwc2: screaming interrupt after kexec reboot Frank Mori Hess
2020-05-27  6:06 ` Minas Harutyunyan
2020-05-28 19:16   ` Frank Mori Hess

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.