From be854b39a813cbd743703c2143f8c230cdacc5c1 Mon Sep 17 00:00:00 2001 From: Stanimir Varbanov Date: Mar 28 2024 07:11:49 +0000 Subject: phy: tegra: xusb: Add API to retrieve the port number of phy (bsc#1221491) --- diff --git a/patches.suse/phy-tegra-xusb-Add-API-to-retrieve-the-port-number-of-phy.patch b/patches.suse/phy-tegra-xusb-Add-API-to-retrieve-the-port-number-of-phy.patch new file mode 100644 index 0000000..714a843 --- /dev/null +++ b/patches.suse/phy-tegra-xusb-Add-API-to-retrieve-the-port-number-of-phy.patch @@ -0,0 +1,59 @@ +From: Wayne Chang +Date: Thu, 7 Mar 2024 11:03:27 +0800 +Subject: phy: tegra: xusb: Add API to retrieve the port number of phy +Git-commit: d843f031d9e90462253015bc0bd9e3852d206bf2 +Patch-mainline: v6.9-rc1 +References: bsc#1221491 + +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 +Reviewed-by: Jon Hunter +Tested-by: Jon Hunter +Link: https://lore.kernel.org/r/20240307030328.1487748-2-waynec@nvidia.com +Signed-off-by: Greg Kroah-Hartman +Acked-by: Stanimir Varbanov +--- + drivers/phy/tegra/xusb.c | 13 +++++++++++++ + include/linux/phy/tegra/xusb.h | 1 + + 2 files changed, 14 insertions(+) + +--- a/drivers/phy/tegra/xusb.c ++++ b/drivers/phy/tegra/xusb.c +@@ -1531,6 +1531,19 @@ int tegra_xusb_padctl_get_usb3_companion + } + 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 "); + MODULE_DESCRIPTION("Tegra XUSB Pad Controller driver"); + MODULE_LICENSE("GPL v2"); +--- 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( + 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); diff --git a/series.conf b/series.conf index 05fe04b..26e9a65 100644 --- a/series.conf +++ b/series.conf @@ -20045,6 +20045,7 @@ patches.suse/cpufreq-dt-always-allocate-zeroed-cpumask.patch patches.suse/soc-fsl-dpio-fix-kcalloc-argument-order.patch patches.suse/usb-typec-ucsi-Update-connector-cap-and-status.patch + patches.suse/phy-tegra-xusb-Add-API-to-retrieve-the-port-number-of-phy.patch patches.suse/uio-introduce-uio_mem_dma_coherent-type.patch patches.suse/cnic-bnx2-bnx2x-use-uio_mem_dma_coherent.patch patches.suse/uio_pruss-uio_mem_dma_coherent-conversion.patch