-----Original Message-----
From: Marek Vasut <[email protected]>
Sent: Thursday, 22 June, 2023 5:35 PM
To: Lim, Jit Loon <[email protected]>; [email protected]
Cc: Jagan Teki <[email protected]>; Simon
<[email protected]>; Chee, Tien Fong
<[email protected]>; Hea, Kok Kiang <[email protected]>;
Lokanathan, Raaj <[email protected]>; Maniyam, Dinesh
<[email protected]>; Ng, Boon Khai <[email protected]>;
Yuslaimi, Alif Zakuan <[email protected]>; Chong, Teik Heng
<[email protected]>; Zamri, Muhammad Hazim Izzat
<[email protected]>; Tang, Sieu Mun
<[email protected]>; Bin Meng <[email protected]>; Michal Simek
<[email protected]>; Tom Rini <[email protected]>; Eugen Hristev
<[email protected]>
Subject: Re: [PATCH v1] HSD #18028953892: usb: xhci-dwc3: Fix USB3.1
controller register access in reset state
On 6/22/23 04:48, Lim, Jit Loon wrote:
-----Original Message-----
From: Marek Vasut <[email protected]>
Sent: Wednesday, 21 June, 2023 10:19 PM
To: Lim, Jit Loon <[email protected]>; [email protected]
Cc: Jagan Teki <[email protected]>; Simon
<[email protected]>; Chee, Tien Fong
<[email protected]>; Hea, Kok Kiang <[email protected]>;
Lokanathan, Raaj <[email protected]>; Maniyam, Dinesh
<[email protected]>; Ng, Boon Khai <[email protected]>;
Yuslaimi, Alif Zakuan <[email protected]>; Chong, Teik
Heng <[email protected]>; Zamri, Muhammad Hazim Izzat
<[email protected]>; Tang, Sieu Mun
<[email protected]>; Bin Meng <[email protected]>
Subject: Re: [PATCH v1] HSD #18028953892: usb: xhci-dwc3: Fix USB3.1
controller register access in reset state
On 6/21/23 16:11, Jit Loon Lim wrote:
From: Teik Heng Chong <[email protected]>
The controller registers should not be accessed while the
controller's vcc_reset_n is asserted.
Signed-off-by: Teik Heng Chong <[email protected]>
Is this patch ported from Linux or is this custom development ?
Is there a matching patch/fix in Linux already ?
In xhci_dwc3_probe(), the program sequence is vcc reset -> clk init ->
phy setup -> xhci_register therefore, when xhci_dwc3_remove is called,
the proper usb stop sequence should be xhci_register _> phy setup ->
clk init -> vcc reset
if we look at linux driver
https://elixir.bootlin.com/linux/latest/source/drivers/usb/dwc3/dwc3-o
f-simple.c#L33
dwc3_of_simple_probe: The sequence is reset -> clock
__dwc3_of_simple_teardown: Then, clock -> reset
So based on the above, we have made changes and the uboot fix is now
aligned with linux driver.
Instead of adding random patches to the U-Boot dwc3 driver, please just
synchronize the driver with Linux. You should be able to add the missing
patches to the DWC3 driver from Linux since the last synchronization point, the
process should be largely mechanical. Make sure to include commit ID of each
Linux commit in the new matching U-Boot patch.
It shouldn't be difficult, one approach I can think of is roughly this:
- figure out the original merge base from which the DWC3 driver was imported
to U-Boot
- in U-Boot, revert all dwc3 patches on top of that import patch
- pick all Linux kernel dwc3 patches from that merge base and apply on top of
this U-Boot with reverts
- Run rebase and drop the reverts, let git drop duplicate patches