Commit dadcf995 authored by Stephen Boyd's avatar Stephen Boyd Committed by Vinod Koul

phy: qcom-qmp: Move phy mode into struct qmp_phy

The phy mode pertains to the phy itself, i.e. 'struct qmp_phy', not the
wrapper, i.e. 'struct qcom_qmp'. Move the phy mode into the phy
structure to more accurately reflect what is going on. This also cleans
up 'struct qcom_qmp' so that it can eventually be the place where qmp
wrapper wide data is located, paving the way for the USB3+DP combo phy.
Signed-off-by: default avatarStephen Boyd <swboyd@chromium.org>
Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Cc: Jeykumar Sankaran <jsanka@codeaurora.org>
Cc: Chandan Uddaraju <chandanu@codeaurora.org>
Cc: Vara Reddy <varar@codeaurora.org>
Cc: Tanmay Shah <tanmay@codeaurora.org>
Cc: Manu Gautam <mgautam@codeaurora.org>
Cc: Sandeep Maheswaram <sanm@codeaurora.org>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Jonathan Marek <jonathan@marek.ca>
Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Rob Clark <robdclark@chromium.org>
Link: https://lore.kernel.org/r/20200916231202.3637932-3-swboyd@chromium.orgSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 724fabf5
...@@ -1811,6 +1811,7 @@ struct qmp_phy_cfg { ...@@ -1811,6 +1811,7 @@ struct qmp_phy_cfg {
* @index: lane index * @index: lane index
* @qmp: QMP phy to which this lane belongs * @qmp: QMP phy to which this lane belongs
* @lane_rst: lane's reset controller * @lane_rst: lane's reset controller
* @mode: current PHY mode
*/ */
struct qmp_phy { struct qmp_phy {
struct phy *phy; struct phy *phy;
...@@ -1824,6 +1825,7 @@ struct qmp_phy { ...@@ -1824,6 +1825,7 @@ struct qmp_phy {
unsigned int index; unsigned int index;
struct qcom_qmp *qmp; struct qcom_qmp *qmp;
struct reset_control *lane_rst; struct reset_control *lane_rst;
enum phy_mode mode;
}; };
/** /**
...@@ -1842,7 +1844,6 @@ struct qmp_phy { ...@@ -1842,7 +1844,6 @@ struct qmp_phy {
* @phy_mutex: mutex lock for PHY common block initialization * @phy_mutex: mutex lock for PHY common block initialization
* @init_count: phy common block initialization count * @init_count: phy common block initialization count
* @phy_initialized: indicate if PHY has been initialized * @phy_initialized: indicate if PHY has been initialized
* @mode: current PHY mode
* @ufs_reset: optional UFS PHY reset handle * @ufs_reset: optional UFS PHY reset handle
*/ */
struct qcom_qmp { struct qcom_qmp {
...@@ -1860,7 +1861,6 @@ struct qcom_qmp { ...@@ -1860,7 +1861,6 @@ struct qcom_qmp {
struct mutex phy_mutex; struct mutex phy_mutex;
int init_count; int init_count;
bool phy_initialized; bool phy_initialized;
enum phy_mode mode;
struct reset_control *ufs_reset; struct reset_control *ufs_reset;
}; };
...@@ -2803,9 +2803,8 @@ static int qcom_qmp_phy_set_mode(struct phy *phy, ...@@ -2803,9 +2803,8 @@ static int qcom_qmp_phy_set_mode(struct phy *phy,
enum phy_mode mode, int submode) enum phy_mode mode, int submode)
{ {
struct qmp_phy *qphy = phy_get_drvdata(phy); struct qmp_phy *qphy = phy_get_drvdata(phy);
struct qcom_qmp *qmp = qphy->qmp;
qmp->mode = mode; qphy->mode = mode;
return 0; return 0;
} }
...@@ -2818,8 +2817,8 @@ static void qcom_qmp_phy_enable_autonomous_mode(struct qmp_phy *qphy) ...@@ -2818,8 +2817,8 @@ static void qcom_qmp_phy_enable_autonomous_mode(struct qmp_phy *qphy)
void __iomem *pcs_misc = qphy->pcs_misc; void __iomem *pcs_misc = qphy->pcs_misc;
u32 intr_mask; u32 intr_mask;
if (qmp->mode == PHY_MODE_USB_HOST_SS || if (qphy->mode == PHY_MODE_USB_HOST_SS ||
qmp->mode == PHY_MODE_USB_DEVICE_SS) qphy->mode == PHY_MODE_USB_DEVICE_SS)
intr_mask = ARCVR_DTCT_EN | ALFPS_DTCT_EN; intr_mask = ARCVR_DTCT_EN | ALFPS_DTCT_EN;
else else
intr_mask = ARCVR_DTCT_EN | ARCVR_DTCT_EVENT_SEL; intr_mask = ARCVR_DTCT_EN | ARCVR_DTCT_EVENT_SEL;
...@@ -2865,7 +2864,7 @@ static int __maybe_unused qcom_qmp_phy_runtime_suspend(struct device *dev) ...@@ -2865,7 +2864,7 @@ static int __maybe_unused qcom_qmp_phy_runtime_suspend(struct device *dev)
struct qmp_phy *qphy = qmp->phys[0]; struct qmp_phy *qphy = qmp->phys[0];
const struct qmp_phy_cfg *cfg = qmp->cfg; const struct qmp_phy_cfg *cfg = qmp->cfg;
dev_vdbg(dev, "Suspending QMP phy, mode:%d\n", qmp->mode); dev_vdbg(dev, "Suspending QMP phy, mode:%d\n", qphy->mode);
/* Supported only for USB3 PHY */ /* Supported only for USB3 PHY */
if (cfg->type != PHY_TYPE_USB3) if (cfg->type != PHY_TYPE_USB3)
...@@ -2891,7 +2890,7 @@ static int __maybe_unused qcom_qmp_phy_runtime_resume(struct device *dev) ...@@ -2891,7 +2890,7 @@ static int __maybe_unused qcom_qmp_phy_runtime_resume(struct device *dev)
const struct qmp_phy_cfg *cfg = qmp->cfg; const struct qmp_phy_cfg *cfg = qmp->cfg;
int ret = 0; int ret = 0;
dev_vdbg(dev, "Resuming QMP phy, mode:%d\n", qmp->mode); dev_vdbg(dev, "Resuming QMP phy, mode:%d\n", qphy->mode);
/* Supported only for USB3 PHY */ /* Supported only for USB3 PHY */
if (cfg->type != PHY_TYPE_USB3) if (cfg->type != PHY_TYPE_USB3)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment