* [PATCH] usb: dwc3: Fix GUID register programming order
[not found] <CGME20260410070245epcas5p49355581dcb9f629641c9914ce4ce80ec@epcas5p4.samsung.com>
@ 2026-04-10 6:47 ` Selvarasu Ganesan
2026-04-14 1:05 ` Thinh Nguyen
0 siblings, 1 reply; 7+ messages in thread
From: Selvarasu Ganesan @ 2026-04-10 6:47 UTC (permalink / raw)
To: Thinh.Nguyen, gregkh, paulz, balbi, linux-usb, linux-kernel
Cc: jh0801.jung, akash.m5, h10.kim, alim.akhtar, thiagu.r,
muhammed.ali, Selvarasu Ganesan, stable, Pritam Manohar Sutar
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.
Move the GUID register programming to occur after the core soft reset
has completed to ensure the value 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..0d3c7e7b2262f 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;
@@ -1378,6 +1372,12 @@ int dwc3_core_init(struct dwc3 *dwc)
if (ret)
goto err_exit_phy;
+ /*
+ * 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);
+
dwc3_core_setup_global_control(dwc);
dwc3_core_num_eps(dwc);
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: dwc3: Fix GUID register programming order
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
0 siblings, 1 reply; 7+ messages in thread
From: Thinh Nguyen @ 2026-04-14 1:05 UTC (permalink / raw)
To: Selvarasu Ganesan
Cc: Thinh Nguyen, gregkh@linuxfoundation.org, paulz@synopsys.com,
balbi@ti.com, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org, jh0801.jung@samsung.com,
akash.m5@samsung.com, h10.kim@samsung.com,
alim.akhtar@samsung.com, thiagu.r@samsung.com,
muhammed.ali@samsung.com, stable@vger.kernel.org,
Pritam Manohar Sutar
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
>
> Move the GUID register programming to occur after the core soft reset
> has completed to ensure the value 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..0d3c7e7b2262f 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;
> @@ -1378,6 +1372,12 @@ int dwc3_core_init(struct dwc3 *dwc)
> if (ret)
> goto err_exit_phy;
>
> + /*
> + * 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);
> +
> dwc3_core_setup_global_control(dwc);
> dwc3_core_num_eps(dwc);
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: dwc3: Fix GUID register programming order
2026-04-14 1:05 ` Thinh Nguyen
@ 2026-04-14 12:05 ` Selvarasu Ganesan
2026-04-15 1:46 ` Thinh Nguyen
0 siblings, 1 reply; 7+ messages in thread
From: Selvarasu Ganesan @ 2026-04-14 12:05 UTC (permalink / raw)
To: Thinh Nguyen
Cc: gregkh@linuxfoundation.org, paulz@synopsys.com, balbi@ti.com,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
jh0801.jung@samsung.com, akash.m5@samsung.com,
h10.kim@samsung.com, alim.akhtar@samsung.com,
thiagu.r@samsung.com, muhammed.ali@samsung.com,
stable@vger.kernel.org, Pritam Manohar Sutar
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?
Thanks, Selva
>
>> Move the GUID register programming to occur after the core soft reset
>> has completed to ensure the value 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..0d3c7e7b2262f 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;
>> @@ -1378,6 +1372,12 @@ int dwc3_core_init(struct dwc3 *dwc)
>> if (ret)
>> goto err_exit_phy;
>>
>> + /*
>> + * 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);
>> +
>> dwc3_core_setup_global_control(dwc);
>> dwc3_core_num_eps(dwc);
>>
>> --
>> 2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: dwc3: Fix GUID register programming order
2026-04-14 12:05 ` Selvarasu Ganesan
@ 2026-04-15 1:46 ` Thinh Nguyen
2026-04-15 6:53 ` Selvarasu Ganesan
0 siblings, 1 reply; 7+ messages in thread
From: Thinh Nguyen @ 2026-04-15 1:46 UTC (permalink / raw)
To: Selvarasu Ganesan
Cc: Thinh Nguyen, gregkh@linuxfoundation.org, paulz@synopsys.com,
balbi@ti.com, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org, jh0801.jung@samsung.com,
akash.m5@samsung.com, h10.kim@samsung.com,
alim.akhtar@samsung.com, thiagu.r@samsung.com,
muhammed.ali@samsung.com, stable@vger.kernel.org,
Pritam Manohar Sutar
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: dwc3: Fix GUID register programming order
2026-04-15 1:46 ` Thinh Nguyen
@ 2026-04-15 6:53 ` Selvarasu Ganesan
2026-04-16 22:24 ` Thinh Nguyen
0 siblings, 1 reply; 7+ messages in thread
From: Selvarasu Ganesan @ 2026-04-15 6:53 UTC (permalink / raw)
To: Thinh Nguyen
Cc: gregkh@linuxfoundation.org, paulz@synopsys.com, balbi@ti.com,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
jh0801.jung@samsung.com, akash.m5@samsung.com,
h10.kim@samsung.com, alim.akhtar@samsung.com,
thiagu.r@samsung.com, muhammed.ali@samsung.com,
stable@vger.kernel.org, Pritam Manohar Sutar
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);
+
ret = dwc3_core_soft_reset(dwc);
if (ret)
goto err_exit_phy;
--
2.34.1
Thanks,
Selva
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: dwc3: Fix GUID register programming order
2026-04-15 6:53 ` Selvarasu Ganesan
@ 2026-04-16 22:24 ` Thinh Nguyen
2026-04-17 6:39 ` Selvarasu Ganesan
0 siblings, 1 reply; 7+ messages in thread
From: Thinh Nguyen @ 2026-04-16 22:24 UTC (permalink / raw)
To: Selvarasu Ganesan
Cc: Thinh Nguyen, gregkh@linuxfoundation.org, paulz@synopsys.com,
balbi@ti.com, linux-usb@vger.kernel.org,
linux-kernel@vger.kernel.org, jh0801.jung@samsung.com,
akash.m5@samsung.com, h10.kim@samsung.com,
alim.akhtar@samsung.com, thiagu.r@samsung.com,
muhammed.ali@samsung.com, stable@vger.kernel.org,
Pritam Manohar Sutar
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] usb: dwc3: Fix GUID register programming order
2026-04-16 22:24 ` Thinh Nguyen
@ 2026-04-17 6:39 ` Selvarasu Ganesan
0 siblings, 0 replies; 7+ messages in thread
From: Selvarasu Ganesan @ 2026-04-17 6:39 UTC (permalink / raw)
To: Thinh Nguyen
Cc: gregkh@linuxfoundation.org, paulz@synopsys.com, balbi@ti.com,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
jh0801.jung@samsung.com, akash.m5@samsung.com,
h10.kim@samsung.com, alim.akhtar@samsung.com,
thiagu.r@samsung.com, muhammed.ali@samsung.com,
stable@vger.kernel.org, Pritam Manohar Sutar
On 4/17/2026 3:54 AM, Thinh Nguyen wrote:
> 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.
Sure.
>
>> ret = dwc3_core_soft_reset(dwc);
>> if (ret)
>> goto err_exit_phy;
>
> The changelog looks good.
Ok. Thanks for the confirmation.
Thanks,
Selva
>
> Thanks,
> Thinh
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-04-17 6:40 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[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
2026-04-17 6:39 ` Selvarasu Ganesan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox