mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
phy: rockchip: usbdp: Add some extra debug messages
It's useful to log PHY reinit to ease debugging issues around USB-C hotplugging. Tested-by: Igor Paunovic <royalnet026@gmail.com> # Orange Pi 5 Plus Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com> Link: https://patch.msgid.link/20260915-rockchip-usbdp-cleanup-part2-v15-8-8d507cb1174f@collabora.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
619233ce6b
commit
89eb5e8aec
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/property.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/reset.h>
|
||||
#include <linux/string_choices.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
#include <linux/usb/typec_dp.h>
|
||||
#include <linux/usb/typec_mux.h>
|
||||
|
|
@ -461,6 +462,8 @@ static int rk_udphy_reset_deassert(struct rk_udphy *udphy, char *name)
|
|||
return reset_control_deassert(list[idx].rstc);
|
||||
}
|
||||
|
||||
dev_err(udphy->dev, "failed to de-assert missing reset line: %s\n", name);
|
||||
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
@ -487,6 +490,8 @@ static void rk_udphy_u3_port_disable(struct rk_udphy *udphy, u8 disable)
|
|||
const struct rk_udphy_cfg *cfg = udphy->cfgs;
|
||||
const struct rk_udphy_grf_reg *preg;
|
||||
|
||||
dev_dbg(udphy->dev, "USB3 port %s\n", str_on_off(!disable));
|
||||
|
||||
preg = udphy->id ? &cfg->grfcfg.usb3otg1_cfg : &cfg->grfcfg.usb3otg0_cfg;
|
||||
rk_udphy_grfreg_write(udphy->usbgrf, preg, disable);
|
||||
}
|
||||
|
|
@ -661,8 +666,10 @@ static int rk_udphy_orien_sw_set(struct typec_switch_dev *sw,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (udphy->flip != flipped)
|
||||
if (udphy->flip != flipped) {
|
||||
dev_dbg(udphy->dev, "cable orientation changed, PHY re-init required.\n");
|
||||
udphy->phy_needs_reinit = true;
|
||||
}
|
||||
|
||||
udphy->flip = flipped;
|
||||
rk_udphy_set_typec_default_mapping(udphy);
|
||||
|
|
@ -780,6 +787,11 @@ static int rk_udphy_init(struct rk_udphy *udphy)
|
|||
const struct rk_udphy_cfg *cfg = udphy->cfgs;
|
||||
int ret;
|
||||
|
||||
dev_dbg(udphy->dev, "reinit PHY with USB3=%s and DP=%s (%u lanes) flipped=%s\n",
|
||||
str_on_off(udphy->mode & UDPHY_MODE_USB),
|
||||
str_on_off(udphy->mode & UDPHY_MODE_DP),
|
||||
udphy->dp_lanes, str_yes_no(udphy->flip));
|
||||
|
||||
rk_udphy_reset_assert_all(udphy);
|
||||
usleep_range(10000, 11000);
|
||||
|
||||
|
|
@ -850,6 +862,8 @@ static int rk_udphy_setup(struct rk_udphy *udphy)
|
|||
{
|
||||
int ret;
|
||||
|
||||
dev_dbg(udphy->dev, "enable PHY\n");
|
||||
|
||||
ret = clk_bulk_prepare_enable(udphy->num_clks, udphy->clks);
|
||||
if (ret) {
|
||||
dev_err(udphy->dev, "failed to enable clk\n");
|
||||
|
|
@ -868,6 +882,7 @@ static int rk_udphy_setup(struct rk_udphy *udphy)
|
|||
|
||||
static void rk_udphy_disable(struct rk_udphy *udphy)
|
||||
{
|
||||
dev_dbg(udphy->dev, "disable PHY\n");
|
||||
clk_bulk_disable_unprepare(udphy->num_clks, udphy->clks);
|
||||
rk_udphy_reset_assert_all(udphy);
|
||||
}
|
||||
|
|
@ -1307,8 +1322,12 @@ static int rk_udphy_typec_mux_set(struct typec_mux_dev *mux,
|
|||
struct rk_udphy *udphy = typec_mux_get_drvdata(mux);
|
||||
|
||||
/* Ignore mux events not involving USB or DP */
|
||||
if (!rk_udphy_is_supported_mode(state))
|
||||
if (!rk_udphy_is_supported_mode(state)) {
|
||||
dev_dbg(udphy->dev, "ignore mux event with mode=%lu\n", state->mode);
|
||||
return 0;
|
||||
}
|
||||
|
||||
dev_dbg(udphy->dev, "new mode: %lu\n", state->mode);
|
||||
|
||||
guard(mutex)(&udphy->mutex);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user