mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-10 12:35:09 +07:00
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: Stephen Boyd <swboyd@chromium.org> Reviewed-by: Bjorn 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.org Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
724fabf5df
commit
dadcf9959c
@ -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 {
|
|||||||
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 {
|
|||||||
* @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 {
|
|||||||
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,
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user