[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <TY2PR01MB3692AB237DE409457E0E9A07D8600@TY2PR01MB3692.jpnprd01.prod.outlook.com>
Date: Mon, 13 Jul 2020 10:08:42 +0000
From: Yoshihiro Shimoda <yoshihiro.shimoda.uh@...esas.com>
To: Vinod Koul <vkoul@...nel.org>
CC: "kishon@...com" <kishon@...com>,
"wsa+renesas@...g-engineering.com" <wsa+renesas@...g-engineering.com>,
"geert+renesas@...der.be" <geert+renesas@...der.be>,
"linux-renesas-soc@...r.kernel.org"
<linux-renesas-soc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] phy: renesas: rcar-gen3-usb2: fix SError happen if
DEBUG_SHIRQ is enabled
Hi Vinod,
> From: Vinod Koul, Sent: Monday, July 13, 2020 2:17 PM
>
> Hi Yoshihiro,
>
> On 09-07-20, 19:36, Yoshihiro Shimoda wrote:
> > If CONFIG_DEBUG_SHIRQ was enabled, r8a77951-salvator-xs could boot
> > correctly. If we appended "earlycon keep_bootcon" to the kernel
> > command like, we could get kernel log like below.
> >
> > SError Interrupt on CPU0, code 0xbf000002 -- SError
> > CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.8.0-rc3-salvator-x-00505-g6c843129e6faaf01 #785
> > Hardware name: Renesas Salvator-X 2nd version board based on r8a77951 (DT)
> > pstate: 60400085 (nZCv daIf +PAN -UAO BTYPE=--)
> > pc : rcar_gen3_phy_usb2_irq+0x14/0x54
> > lr : free_irq+0xf4/0x27c
> >
> > This means free_irq() calls the interrupt handler while PM runtime
> > is not getting if DEBUG_SHIRQ is enabled and rcar_gen3_phy_usb2_probe()
> > failed. To fix the issue, add a condition into the interrupt
> > handler to avoid register access if any phys are not initialized.
> >
> > Note that rcar_gen3_is_any_rphy_initialized() was introduced on v5.2.
> > So, if we backports this patch to v5.1 or less, we need to make
> > other way.
>
> Should we really check phy is initialized? I think the issue here is
> that you register irq first, so your handler can be invoked. Right fix
> for this would be to move the irq registration to later in the probe
> when we are ready to handle interrupts
Thank you for your review! I think we need to check whether phy is initialized
even if the irq registration moves to rcar_gen3_phy_usb2_init() because the current
driver will have multiple phy instances. However, moving the irq registration can be
easy to backport than this patch, I think. So, I'll modify this patch as you suggested.
Best regards,
Yoshihiro Shiomda
Powered by blists - more mailing lists