All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ARM: sunxi: Fix USB host init fail on v5.1-rc1
@ 2019-03-22  8:51 ` Chen-Yu Tsai
  0 siblings, 0 replies; 16+ messages in thread
From: Chen-Yu Tsai @ 2019-03-22  8:51 UTC (permalink / raw)
  To: Maxime Ripard, Greg Kroah-Hartman, Kishon Vijay Abraham I
  Cc: Chen-Yu Tsai, Grygorii Strashko, linux-usb, linux-arm-kernel,
	linux-kernel

From: Chen-Yu Tsai <wens@csie.org>

Hi everyone,

As previously reported [1], USB EHCI/OHCI hosts are broken on Allwinner
SoCs on v5.1-rc1. This is partially triggered by commit b97a31348379
("usb: core: comply to PHY framework"), and partially due to how the
Allwinner USB PHY driver handles phy_set_mode for non-OTG PHYs.

This series fixes this in both places.

Patch 1 makes phy-sun4i-usb accept PHY_MODE_USB_HOST for non-OTG PHYs.

Patch 2 makes the usb core fall back to setting the mode
PHY_MODE_USB_HOST if set_mode with PHY_MODE_USB_HOST_SS fails. If that
fails then the failure path is the same as before. This should make it
so existing USB 3.0 drivers are affected.

The patches don't have any dependencies on each other, and could go in
through separate branches. However this affects usability of USB input
devices and Ethernet dongles, I'd rather they go in sooner than later.

Regards
ChenYu


[1] https://lkml.org/lkml/2019/3/18/74

Chen-Yu Tsai (2):
  phy: sun4i-usb: Support set_mode to USB_HOST for non-OTG PHYs
  usb: core: Try generic PHY_MODE_USB_HOST if usb_phy_roothub_set_mode
    fails

 drivers/phy/allwinner/phy-sun4i-usb.c | 5 ++++-
 drivers/usb/core/hcd.c                | 3 +++
 2 files changed, 7 insertions(+), 1 deletion(-)

-- 
2.20.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 16+ messages in thread
* [1/2] phy: sun4i-usb: Support set_mode to USB_HOST for non-OTG PHYs
  2019-03-22  8:51 ` Chen-Yu Tsai
  (?)
@ 2019-03-22  8:51 ` Chen-Yu Tsai
  -1 siblings, 0 replies; 16+ messages in thread
From: Chen-Yu Tsai @ 2019-03-22  8:51 UTC (permalink / raw)
  To: Maxime Ripard, Greg Kroah-Hartman, Kishon Vijay Abraham I
  Cc: Chen-Yu Tsai, Grygorii Strashko, linux-usb, linux-arm-kernel,
	linux-kernel

From: Chen-Yu Tsai <wens@csie.org>

While only the first PHY supports mode switching, the remaining PHYs
work in USB host mode. They should support set_mode with mode=USB_HOST
instead of failing. This is especially needed now that the USB core does
set_mode for all USB ports, which was added in commit b97a31348379 ("usb:
core: comply to PHY framework").

Make set_mode with mode=USB_HOST a no-op instead of failing for the
non-OTG USB PHYs.

Fixes: 6ba43c291961 ("phy-sun4i-usb: Add support for phy_set_mode")
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 drivers/phy/allwinner/phy-sun4i-usb.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c
index 5163097b43df..4bbd9ede38c8 100644
--- a/drivers/phy/allwinner/phy-sun4i-usb.c
+++ b/drivers/phy/allwinner/phy-sun4i-usb.c
@@ -485,8 +485,11 @@ static int sun4i_usb_phy_set_mode(struct phy *_phy,
 	struct sun4i_usb_phy_data *data = to_sun4i_usb_phy_data(phy);
 	int new_mode;
 
-	if (phy->index != 0)
+	if (phy->index != 0) {
+		if (mode == PHY_MODE_USB_HOST)
+			return 0;
 		return -EINVAL;
+	}
 
 	switch (mode) {
 	case PHY_MODE_USB_HOST:

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

end of thread, other threads:[~2019-03-26  7:49 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-22  8:51 [PATCH 0/2] ARM: sunxi: Fix USB host init fail on v5.1-rc1 Chen-Yu Tsai
2019-03-22  8:51 ` Chen-Yu Tsai
2019-03-22  8:51 ` [2/2] usb: core: Try generic PHY_MODE_USB_HOST if usb_phy_roothub_set_mode fails Chen-Yu Tsai
2019-03-22  8:51   ` [PATCH 2/2] " Chen-Yu Tsai
2019-03-22  8:51   ` Chen-Yu Tsai
2019-03-22 12:56   ` Neil Armstrong
2019-03-22 12:56     ` Neil Armstrong
2019-03-22 12:56     ` Neil Armstrong
2019-03-22 12:56     ` [2/2] " Neil Armstrong
2019-03-22  9:05 ` [PATCH 0/2] ARM: sunxi: Fix USB host init fail on v5.1-rc1 Maxime Ripard
2019-03-22  9:05   ` Maxime Ripard
2019-03-26  7:49 ` Greg Kroah-Hartman
2019-03-26  7:49   ` Greg Kroah-Hartman
  -- strict thread matches above, loose matches on Subject: below --
2019-03-22  8:51 [1/2] phy: sun4i-usb: Support set_mode to USB_HOST for non-OTG PHYs Chen-Yu Tsai
2019-03-22  8:51 ` [PATCH 1/2] " Chen-Yu Tsai
2019-03-22  8:51 ` Chen-Yu Tsai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.