public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
To: Selvarasu Ganesan <selvarasu.g@samsung.com>
Cc: Thinh Nguyen <Thinh.Nguyen@synopsys.com>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"paulz@synopsys.com" <paulz@synopsys.com>,
	"balbi@ti.com" <balbi@ti.com>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"jh0801.jung@samsung.com" <jh0801.jung@samsung.com>,
	"akash.m5@samsung.com" <akash.m5@samsung.com>,
	"h10.kim@samsung.com" <h10.kim@samsung.com>,
	"alim.akhtar@samsung.com" <alim.akhtar@samsung.com>,
	"thiagu.r@samsung.com" <thiagu.r@samsung.com>,
	"muhammed.ali@samsung.com" <muhammed.ali@samsung.com>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>,
	Pritam Manohar Sutar <pritam.sutar@samsung.com>
Subject: Re: [PATCH] usb: dwc3: Fix GUID register programming order
Date: Thu, 16 Apr 2026 22:24:20 +0000	[thread overview]
Message-ID: <20260416222407.fk2wbjnrkgwsjj5i@synopsys.com> (raw)
In-Reply-To: <242b06d2-7785-4728-8286-ff79a8dfaaa6@samsung.com>

On Wed, Apr 15, 2026, Selvarasu Ganesan wrote:
> 
> On 4/15/2026 7:16 AM, Thinh Nguyen wrote:
> > On Tue, Apr 14, 2026, Selvarasu Ganesan wrote:
> >> On 4/14/2026 6:35 AM, Thinh Nguyen wrote:
> >>> On Fri, Apr 10, 2026, Selvarasu Ganesan wrote:
> >>>> The Linux Version Code is currently written to the GUID register before
> >>>> dwc3_core_soft_reset() is executed. Since the core soft reset clears the
> >>>> GUID register back to its default value, the version information is
> >>>> subsequently lost.
> >>> This is not right. Soft reset should not clear the GUID register.
> >>> Something else must have cleared it. Did you assert Vcc reset (hard
> >>> reset) during phy reset/initialization?
> >>>
> >>> BR,
> >>> Thinh
> >> Hi Thinh,
> >>
> >> Thank you for the clarification. Yes, you are correct, this issue is not
> >> related to a dwc3 core soft reset. Instead, the GUID value reverts to
> >> its default state when the PHY link_sw_reset completes during PHY init
> >> sequence.
> >>
> >> We are using the Synopsys eUSB PHY, this reset is triggered from our
> >> downstream driver during the PHY init sequence (invoked through
> >> |dwc3_core_init|).
> >>
> >> Could you please suggest the best way to retrieve the correct linux
> >> version information from the GUID?
> >> Additionally, would it be feasible to update the GUID register after the
> >> PHY init sequence (triggered by |dwc3_core_init|) completes?
> >>
> > Yes. Just fix up the changelog to properly describe the problem and
> > solution.
> >
> > BR,
> > Thinh
> Hi Thinh,
> 
> Thanks for the confirmation. I have modified the changelog as shown 
> below, please review it once then i will post updated patchset.
> 
> 
> From: Selvarasu Ganesan <selvarasu.g@samsung.com>
> Date: Thu, 9 Apr 2026 18:34:03 +0530
> Subject: [PATCH v2] usb: dwc3: Move GUID programming after PHY 
> initialization
> 
> The Linux Version Code is currently written to the GUID register before
> PHY initialization. Certain PHY implementations (such as Synopsys eUSB
> PHY performing link_sw_reset) clear the GUID register to its default
> value during initialization, causing the kernel version information to
> be lost.
> 
> Move the GUID register programming to occur after PHY initialization
> completes to ensure the Linux version information persists.
> 
> Fixes: fa0ea13e9f1c ("usb: dwc3: core: write LINUX_VERSION_CODE to our 
> GUID register")
> Cc: stable@vger.kernel.org
> Reported-by: Pritam Manohar Sutar <pritam.sutar@samsung.com>
> Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
> ---
>   drivers/usb/dwc3/core.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index 161a4d58b2cec..8b9e9d3e9589a 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -1341,12 +1341,6 @@ int dwc3_core_init(struct dwc3 *dwc)
> 
>          hw_mode = DWC3_GHWPARAMS0_MODE(dwc->hwparams.hwparams0);
> 
> -       /*
> -        * Write Linux Version Code to our GUID register so it's easy to 
> figure
> -        * out which kernel version a bug was found.
> -        */
> -       dwc3_writel(dwc, DWC3_GUID, LINUX_VERSION_CODE);
> -
>          ret = dwc3_phy_setup(dwc);
>          if (ret)
>                  return ret;
> @@ -1374,6 +1368,12 @@ int dwc3_core_init(struct dwc3 *dwc)
>          if (ret)
>                  goto err_exit_ulpi;
> 
> +       /*
> +        * Write Linux Version Code to our GUID register so it's easy to 
> figure
> +        * out which kernel version a bug was found.
> +        */
> +       dwc3_writel(dwc, DWC3_GUID, LINUX_VERSION_CODE);
> +

In the really old kernel, the phy init was part of the
dwc3_core_soft_reset(). Move this after dwc3_core_soft_reset() just as
you had before. It will be better for backporting, and it looks more
fitting to place it there.

>          ret = dwc3_core_soft_reset(dwc);
>          if (ret)
>                  goto err_exit_phy;


The changelog looks good.

Thanks,
Thinh

  reply	other threads:[~2026-04-16 22:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20260410070245epcas5p49355581dcb9f629641c9914ce4ce80ec@epcas5p4.samsung.com>
2026-04-10  6:47 ` [PATCH] usb: dwc3: Fix GUID register programming order Selvarasu Ganesan
2026-04-14  1:05   ` Thinh Nguyen
2026-04-14 12:05     ` Selvarasu Ganesan
2026-04-15  1:46       ` Thinh Nguyen
2026-04-15  6:53         ` Selvarasu Ganesan
2026-04-16 22:24           ` Thinh Nguyen [this message]
2026-04-17  6:39             ` Selvarasu Ganesan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260416222407.fk2wbjnrkgwsjj5i@synopsys.com \
    --to=thinh.nguyen@synopsys.com \
    --cc=akash.m5@samsung.com \
    --cc=alim.akhtar@samsung.com \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=h10.kim@samsung.com \
    --cc=jh0801.jung@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=muhammed.ali@samsung.com \
    --cc=paulz@synopsys.com \
    --cc=pritam.sutar@samsung.com \
    --cc=selvarasu.g@samsung.com \
    --cc=stable@vger.kernel.org \
    --cc=thiagu.r@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox