phy: tegra: xusb: Fix crash during pad power on/down
Commita88520bfc0
("usb: gadget: tegra: Reduce pad power") added calls to tegra_phy_xusb_utmi_pad_power_on/down in the Tegra XUDC driver to control the pad power. This change is causing a kernel panic when powering down the pads on entering suspend with the Jetson TX2 platform. The panic occurs because the 'xudc->curr_utmi_phy' is not configured on this platform and we do not check to see if the pointer is valid before attempting to deference the pointer. Fix this by checking to see if the 'phy' pointer passed to tegra_phy_xusb_utmi_pad_power_on/down is valid. Fixes:a88520bfc0
("usb: gadget: tegra: Reduce pad power") Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Link: https://lore.kernel.org/r/20221010135132.30809-1-jonathanh@nvidia.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
ca1c73628f
commit
2a4ea83bb8
|
@ -1461,8 +1461,14 @@ EXPORT_SYMBOL_GPL(tegra_phy_xusb_utmi_port_reset);
|
|||
|
||||
void tegra_phy_xusb_utmi_pad_power_on(struct phy *phy)
|
||||
{
|
||||
struct tegra_xusb_lane *lane = phy_get_drvdata(phy);
|
||||
struct tegra_xusb_padctl *padctl = lane->pad->padctl;
|
||||
struct tegra_xusb_lane *lane;
|
||||
struct tegra_xusb_padctl *padctl;
|
||||
|
||||
if (!phy)
|
||||
return;
|
||||
|
||||
lane = phy_get_drvdata(phy);
|
||||
padctl = lane->pad->padctl;
|
||||
|
||||
if (padctl->soc->ops->utmi_pad_power_on)
|
||||
padctl->soc->ops->utmi_pad_power_on(phy);
|
||||
|
@ -1471,8 +1477,14 @@ EXPORT_SYMBOL_GPL(tegra_phy_xusb_utmi_pad_power_on);
|
|||
|
||||
void tegra_phy_xusb_utmi_pad_power_down(struct phy *phy)
|
||||
{
|
||||
struct tegra_xusb_lane *lane = phy_get_drvdata(phy);
|
||||
struct tegra_xusb_padctl *padctl = lane->pad->padctl;
|
||||
struct tegra_xusb_lane *lane;
|
||||
struct tegra_xusb_padctl *padctl;
|
||||
|
||||
if (!phy)
|
||||
return;
|
||||
|
||||
lane = phy_get_drvdata(phy);
|
||||
padctl = lane->pad->padctl;
|
||||
|
||||
if (padctl->soc->ops->utmi_pad_power_down)
|
||||
padctl->soc->ops->utmi_pad_power_down(phy);
|
||||
|
|
Loading…
Reference in New Issue