Re: [PATCH 3/3] usb: renesas_usbhs: Reorder clock handling and power management in probe

From: Kuninori Morimoto
Date: Sun Mar 30 2025 - 20:05:18 EST



Hi Lad, Prabhakar

> > > usbhs_probe()
> > > usbhs_sys_clock_ctrl()
> > > usbhs_bset()
> > > usbhs_write()
> > > iowrite16() <-- Register access before enabling clocks
> >
> > This patch itself is not so bad idea, but basically, we should not assume
> > the power/clock was enabled since kernel boot.
> > In this driver, register access happen only during power enable <-> power
> > disable (except your issue case), and this is good idea. So, the strange
> > is usbhs_sys_clock_ctrl() call in usbhs_probe() (without power enable) I
> > guess.
> >
> > According to the comment, it is just caring boot loader, and
> > usbhs_sys_clock_ctrl() itself will be called when usbhsc_power_ctrl() was
> > called anyway. And more, if my understanding was correct, Renesas clock
> > driver will stop all unused devices clock/power after boot.
> > So maybe we can just remove strange usbhs_sys_clock_ctrl() from usbhs_probe() ?
> >
>
> After dropping usbhs_sys_clock_ctrl and removing the clock enabling
> done in this patch and with `CONFIG_USB_G_SERIAL=y` I hit the same
> issue.

Ah...
OK, not only usbhs_sys_clock_ctrl(), but other initializer also
missing power in probe(). Thank you for reporting, your original patch
is reasonable.

Thank you for your help !!

Best regards
---
Kuninori Morimoto