Message ID | 20240307030328.1487748-2-waynec@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | d843f031d9e90462253015bc0bd9e3852d206bf2 |
Headers | show |
Series | Fix incorrect USB3 phy parsing in tegra-xudc | expand |
On 07/03/2024 03:03, Wayne Chang wrote: > This patch introduces a new API, tegra_xusb_padctl_get_port_number, > to the Tegra XUSB Pad Controller driver. This API is used to identify > the USB port that is associated with a given PHY. > > The function takes a PHY pointer for either a USB2 PHY or USB3 PHY as input > and returns the corresponding port number. If the PHY pointer is invalid, > it returns -ENODEV. > > Cc: stable@vger.kernel.org > Signed-off-by: Wayne Chang <waynec@nvidia.com> > --- > V1 -> V2:cc stable > drivers/phy/tegra/xusb.c | 13 +++++++++++++ > include/linux/phy/tegra/xusb.h | 1 + > 2 files changed, 14 insertions(+) > > diff --git a/drivers/phy/tegra/xusb.c b/drivers/phy/tegra/xusb.c > index 142ebe0247cc..983a6e6173bd 100644 > --- a/drivers/phy/tegra/xusb.c > +++ b/drivers/phy/tegra/xusb.c > @@ -1531,6 +1531,19 @@ int tegra_xusb_padctl_get_usb3_companion(struct tegra_xusb_padctl *padctl, > } > EXPORT_SYMBOL_GPL(tegra_xusb_padctl_get_usb3_companion); > > +int tegra_xusb_padctl_get_port_number(struct phy *phy) > +{ > + struct tegra_xusb_lane *lane; > + > + if (!phy) > + return -ENODEV; > + > + lane = phy_get_drvdata(phy); > + > + return lane->index; > +} > +EXPORT_SYMBOL_GPL(tegra_xusb_padctl_get_port_number); > + > MODULE_AUTHOR("Thierry Reding <treding@nvidia.com>"); > MODULE_DESCRIPTION("Tegra XUSB Pad Controller driver"); > MODULE_LICENSE("GPL v2"); > diff --git a/include/linux/phy/tegra/xusb.h b/include/linux/phy/tegra/xusb.h > index 70998e6dd6fd..6ca51e0080ec 100644 > --- a/include/linux/phy/tegra/xusb.h > +++ b/include/linux/phy/tegra/xusb.h > @@ -26,6 +26,7 @@ void tegra_phy_xusb_utmi_pad_power_down(struct phy *phy); > int tegra_phy_xusb_utmi_port_reset(struct phy *phy); > int tegra_xusb_padctl_get_usb3_companion(struct tegra_xusb_padctl *padctl, > unsigned int port); > +int tegra_xusb_padctl_get_port_number(struct phy *phy); > int tegra_xusb_padctl_enable_phy_sleepwalk(struct tegra_xusb_padctl *padctl, struct phy *phy, > enum usb_device_speed speed); > int tegra_xusb_padctl_disable_phy_sleepwalk(struct tegra_xusb_padctl *padctl, struct phy *phy); Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Thanks! Jon
On 07-03-24, 11:03, Wayne Chang wrote: > This patch introduces a new API, tegra_xusb_padctl_get_port_number, > to the Tegra XUSB Pad Controller driver. This API is used to identify > the USB port that is associated with a given PHY. > > The function takes a PHY pointer for either a USB2 PHY or USB3 PHY as input > and returns the corresponding port number. If the PHY pointer is invalid, > it returns -ENODEV. Acked-by: Vinod Koul <vkoul@kernel.org>
diff --git a/drivers/phy/tegra/xusb.c b/drivers/phy/tegra/xusb.c index 142ebe0247cc..983a6e6173bd 100644 --- a/drivers/phy/tegra/xusb.c +++ b/drivers/phy/tegra/xusb.c @@ -1531,6 +1531,19 @@ int tegra_xusb_padctl_get_usb3_companion(struct tegra_xusb_padctl *padctl, } EXPORT_SYMBOL_GPL(tegra_xusb_padctl_get_usb3_companion); +int tegra_xusb_padctl_get_port_number(struct phy *phy) +{ + struct tegra_xusb_lane *lane; + + if (!phy) + return -ENODEV; + + lane = phy_get_drvdata(phy); + + return lane->index; +} +EXPORT_SYMBOL_GPL(tegra_xusb_padctl_get_port_number); + MODULE_AUTHOR("Thierry Reding <treding@nvidia.com>"); MODULE_DESCRIPTION("Tegra XUSB Pad Controller driver"); MODULE_LICENSE("GPL v2"); diff --git a/include/linux/phy/tegra/xusb.h b/include/linux/phy/tegra/xusb.h index 70998e6dd6fd..6ca51e0080ec 100644 --- a/include/linux/phy/tegra/xusb.h +++ b/include/linux/phy/tegra/xusb.h @@ -26,6 +26,7 @@ void tegra_phy_xusb_utmi_pad_power_down(struct phy *phy); int tegra_phy_xusb_utmi_port_reset(struct phy *phy); int tegra_xusb_padctl_get_usb3_companion(struct tegra_xusb_padctl *padctl, unsigned int port); +int tegra_xusb_padctl_get_port_number(struct phy *phy); int tegra_xusb_padctl_enable_phy_sleepwalk(struct tegra_xusb_padctl *padctl, struct phy *phy, enum usb_device_speed speed); int tegra_xusb_padctl_disable_phy_sleepwalk(struct tegra_xusb_padctl *padctl, struct phy *phy);
This patch introduces a new API, tegra_xusb_padctl_get_port_number, to the Tegra XUSB Pad Controller driver. This API is used to identify the USB port that is associated with a given PHY. The function takes a PHY pointer for either a USB2 PHY or USB3 PHY as input and returns the corresponding port number. If the PHY pointer is invalid, it returns -ENODEV. Cc: stable@vger.kernel.org Signed-off-by: Wayne Chang <waynec@nvidia.com> --- V1 -> V2:cc stable drivers/phy/tegra/xusb.c | 13 +++++++++++++ include/linux/phy/tegra/xusb.h | 1 + 2 files changed, 14 insertions(+)