Re: [PATCH v2 01/10] phy: qcom-ufs: remove failure when rx/tx_iface_clk are absent
Hi, On Wed, Oct 19, 2016 at 10:50 PM, Vivek Gautamwrote: > Hi, > > > On Wed, Oct 19, 2016 at 2:48 AM, Stephen Boyd wrote: >> On 10/18/2016 07:28 AM, Vivek Gautam wrote: >>> From: Yaniv Gardi >>> >>> Since in future UFS Phy's the tx_iface_clk and rx_iface_clk >>> are no longer exist, we should not fail when their initialization >>> fail, but rather just report with debug message. >>> >>> Signed-off-by: Yaniv Gardi >>> Signed-off-by: Vivek Gautam >>> --- >> >> Shouldn't we have a different compatible string on future UFS phys so >> that we know which number of clks and what clks are required? That's how >> we typically handle clk configurations changing. Making them optional >> should really only be needed when they're really optional, i.e. things >> will work fine if they're there or not. > > Correct. It makes sense to have different compatible strings for different > versions. > I will gather more information about previous versions that required > this clock, and update as suggested. The tx/rx_face clocks are not available on some of the recent chips, such as msm8996. Older chips with this 14nm ufs phy had handles for tx/rx_iface clocks. So, i will add new compatible string for msm8996 - "qcom,msm8996-ufs-phy-qmp-14nm" This can be used with chips further on that are going to use the same ufs phy. Regards Vivek -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 01/10] phy: qcom-ufs: remove failure when rx/tx_iface_clk are absent
Hi, On Wed, Oct 19, 2016 at 2:48 AM, Stephen Boydwrote: > On 10/18/2016 07:28 AM, Vivek Gautam wrote: >> From: Yaniv Gardi >> >> Since in future UFS Phy's the tx_iface_clk and rx_iface_clk >> are no longer exist, we should not fail when their initialization >> fail, but rather just report with debug message. >> >> Signed-off-by: Yaniv Gardi >> Signed-off-by: Vivek Gautam >> --- > > Shouldn't we have a different compatible string on future UFS phys so > that we know which number of clks and what clks are required? That's how > we typically handle clk configurations changing. Making them optional > should really only be needed when they're really optional, i.e. things > will work fine if they're there or not. Correct. It makes sense to have different compatible strings for different versions. I will gather more information about previous versions that required this clock, and update as suggested. Regards Vivek -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 01/10] phy: qcom-ufs: remove failure when rx/tx_iface_clk are absent
On 10/18/2016 07:28 AM, Vivek Gautam wrote: > From: Yaniv Gardi> > Since in future UFS Phy's the tx_iface_clk and rx_iface_clk > are no longer exist, we should not fail when their initialization > fail, but rather just report with debug message. > > Signed-off-by: Yaniv Gardi > Signed-off-by: Vivek Gautam > --- Shouldn't we have a different compatible string on future UFS phys so that we know which number of clks and what clks are required? That's how we typically handle clk configurations changing. Making them optional should really only be needed when they're really optional, i.e. things will work fine if they're there or not. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 01/10] phy: qcom-ufs: remove failure when rx/tx_iface_clk are absent
On 2016-10-18 07:28, Vivek Gautam wrote: From: Yaniv GardiSince in future UFS Phy's the tx_iface_clk and rx_iface_clk are no longer exist, we should not fail when their initialization fail, but rather just report with debug message. You may also want to update the device tree binding (documentation) to update these as optional properties. Signed-off-by: Yaniv Gardi Signed-off-by: Vivek Gautam --- No change since v1. drivers/phy/phy-qcom-ufs.c | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/phy/phy-qcom-ufs.c b/drivers/phy/phy-qcom-ufs.c index 107cb57..183ec04 100644 --- a/drivers/phy/phy-qcom-ufs.c +++ b/drivers/phy/phy-qcom-ufs.c @@ -186,16 +186,27 @@ ufs_qcom_phy_init_clks(struct phy *generic_phy, struct ufs_qcom_phy *phy_common) { int err; + struct ufs_qcom_phy *phy = get_ufs_qcom_phy(generic_phy); err = ufs_qcom_phy_clk_get(generic_phy, "tx_iface_clk", _common->tx_iface_clk); + /* +* tx_iface_clk does not exist in newer version of ufs-phy HW, +* so don't return error if it is not found +*/ if (err) - goto out; + dev_dbg(phy->dev, "%s: failed to get tx_iface_clk\n", + __func__); err = ufs_qcom_phy_clk_get(generic_phy, "rx_iface_clk", _common->rx_iface_clk); + /* +* rx_iface_clk does not exist in newer version of ufs-phy HW, +* so don't return error if it is not found +*/ if (err) - goto out; + dev_dbg(phy->dev, "%s: failed to get rx_iface_clk\n", + __func__); err = ufs_qcom_phy_clk_get(generic_phy, "ref_clk_src", _common->ref_clk_src); -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 01/10] phy: qcom-ufs: remove failure when rx/tx_iface_clk are absent
From: Yaniv GardiSince in future UFS Phy's the tx_iface_clk and rx_iface_clk are no longer exist, we should not fail when their initialization fail, but rather just report with debug message. Signed-off-by: Yaniv Gardi Signed-off-by: Vivek Gautam --- No change since v1. drivers/phy/phy-qcom-ufs.c | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/phy/phy-qcom-ufs.c b/drivers/phy/phy-qcom-ufs.c index 107cb57..183ec04 100644 --- a/drivers/phy/phy-qcom-ufs.c +++ b/drivers/phy/phy-qcom-ufs.c @@ -186,16 +186,27 @@ ufs_qcom_phy_init_clks(struct phy *generic_phy, struct ufs_qcom_phy *phy_common) { int err; + struct ufs_qcom_phy *phy = get_ufs_qcom_phy(generic_phy); err = ufs_qcom_phy_clk_get(generic_phy, "tx_iface_clk", _common->tx_iface_clk); + /* +* tx_iface_clk does not exist in newer version of ufs-phy HW, +* so don't return error if it is not found +*/ if (err) - goto out; + dev_dbg(phy->dev, "%s: failed to get tx_iface_clk\n", + __func__); err = ufs_qcom_phy_clk_get(generic_phy, "rx_iface_clk", _common->rx_iface_clk); + /* +* rx_iface_clk does not exist in newer version of ufs-phy HW, +* so don't return error if it is not found +*/ if (err) - goto out; + dev_dbg(phy->dev, "%s: failed to get rx_iface_clk\n", + __func__); err = ufs_qcom_phy_clk_get(generic_phy, "ref_clk_src", _common->ref_clk_src); -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html