Linux USB
 help / color / mirror / Atom feed
* Correct ordering of phy_init and phy_power_on
@ 2020-12-20 23:06 Ahmad Fatoum
  2020-12-21  3:15 ` Kishon Vijay Abraham I
  2021-01-12 17:01 ` [PATCH] usb: dwc2: Change " Jules Maselbas
  0 siblings, 2 replies; 6+ messages in thread
From: Ahmad Fatoum @ 2020-12-20 23:06 UTC (permalink / raw)
  To: Kishon Vijay Abraham I, Vinod Koul, Minas Harutyunyan, linux-usb
  Cc: linux-kernel@vger.kernel.org, Pengutronix Kernel Team, linux-usb,
	Jules Maselbas

Hello,

I just noticed that USB controller drivers differ in the order in which they
do phy_init and phy_power_on. For example:

__dwc2_lowlevel_hw_enable():

	ret = phy_power_on(hsotg->phy);    
	if (ret == 0)                      
        	ret = phy_init(hsotg->phy);

dwc3_core_init():

	ret = dwc3_core_soft_reset(dwc); // internally does phy_init(dwc->usb2_generic_phy);
	/* [snip] */
	ret = phy_power_on(dwc->usb2_generic_phy);


My initial assumption has been init -> power_on, but at least the phy-stm32-usbphyc
(used with dwc2) is written with the assumption that exit -> power_off (and therefore
power_on -> init). If they are swapped, disabling fails.

So how was it meant to be?

Cheers,
Ahmad

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-01-19 18:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-20 23:06 Correct ordering of phy_init and phy_power_on Ahmad Fatoum
2020-12-21  3:15 ` Kishon Vijay Abraham I
2020-12-22  9:08   ` Ahmad Fatoum
2021-01-12 17:01 ` [PATCH] usb: dwc2: Change " Jules Maselbas
2021-01-12 21:30   ` Ahmad Fatoum
2021-01-19 14:22     ` [Linux-stm32] " Amelie DELAUNAY

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox