mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 09:56:46 +00:00
phy: usb: disable COMMONONN for dual mode
The COMMONONN bit suspends the phy when the port is put into a suspend state. However when the phy is shared between host and device in dual mode, this no longer works cleanly as there is no synchronization between the two. Fixes: 5095d045a962 ("phy: usb: Turn off phy when port is in suspend") Signed-off-by: Justin Chen <justin.chen@broadcom.com> Acked-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://lore.kernel.org/r/20241010185344.859865-1-justin.chen@broadcom.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
2d0f973b5f
commit
1e48fd0574
@ -153,7 +153,9 @@ static void xhci_soft_reset(struct brcm_usb_init_params *params,
|
||||
} else {
|
||||
USB_CTRL_SET(ctrl, USB_PM, XHC_SOFT_RESETB);
|
||||
/* Required for COMMONONN to be set */
|
||||
USB_XHCI_GBL_UNSET(xhci_gbl, GUSB2PHYCFG, U2_FREECLK_EXISTS);
|
||||
if (params->supported_port_modes != USB_CTLR_MODE_DRD)
|
||||
USB_XHCI_GBL_UNSET(xhci_gbl, GUSB2PHYCFG,
|
||||
U2_FREECLK_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@ -328,8 +330,12 @@ static void usb_init_common_7216(struct brcm_usb_init_params *params)
|
||||
/* 1 millisecond - for USB clocks to settle down */
|
||||
usleep_range(1000, 2000);
|
||||
|
||||
/* Disable PHY when port is suspended */
|
||||
USB_CTRL_SET(ctrl, P0_U2PHY_CFG1, COMMONONN);
|
||||
/*
|
||||
* Disable PHY when port is suspended
|
||||
* Does not work in DRD mode
|
||||
*/
|
||||
if (params->supported_port_modes != USB_CTLR_MODE_DRD)
|
||||
USB_CTRL_SET(ctrl, P0_U2PHY_CFG1, COMMONONN);
|
||||
|
||||
usb_wake_enable_7216(params, false);
|
||||
usb_init_common(params);
|
||||
|
Loading…
x
Reference in New Issue
Block a user