Message ID | 20230824-qcom-tcpc-v2-1-3dd8c3424564@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2] usb: typec: qcom: check regulator enable status before disabling it | expand |
On 25/08/2023 11:03, hui liu wrote: > Hi Heikki, > > I will let Bryan to comment, I am using the driver to support the pdphy > in SMB2352 and there is no external regulator required, so I am just > using a dummy regulator device and I saw this unbalanced regulator > disabling warnings, so my intention for this change is just fixing the > warning message. However, I am fine with whatever suggestion you have, > since the logic is straightforward, and I can make the changes once you > have the agreement. > > Thanks, > Hui Err well on real hardware with a real regulator I don't see this error. I'd say we should try the second proposed changed in pdphy_start pdphy_stop since it looks neater. If it works then fine, else lets stick to your original fix. --- bod
On 8/25/2023 6:11 PM, Bryan O'Donoghue wrote: > On 25/08/2023 11:03, hui liu wrote: >> Hi Heikki, >> >> I will let Bryan to comment, I am using the driver to support the >> pdphy in SMB2352 and there is no external regulator required, so I am >> just using a dummy regulator device and I saw this unbalanced >> regulator disabling warnings, so my intention for this change is just >> fixing the warning message. However, I am fine with whatever >> suggestion you have, since the logic is straightforward, and I can >> make the changes once you have the agreement. >> >> Thanks, >> Hui > > Err well on real hardware with a real regulator I don't see this error. Just a doublt, if real regulator has no this error, who enabled it before it was reseted? > > I'd say we should try the second proposed changed in pdphy_start > pdphy_stop since it looks neater. > I updated the code refer to the proposal, and it worked well,but I just thought it makes code a little redundant. Why don't we only keep one pdphy_enable/pdphy_disable or pdphy_start/pdphy_stop? > If it works then fine, else lets stick to your original fix. > > --- > bod
On 28/08/2023 06:51, hui liu wrote: > > > On 8/25/2023 6:11 PM, Bryan O'Donoghue wrote: >> On 25/08/2023 11:03, hui liu wrote: >>> Hi Heikki, >>> >>> I will let Bryan to comment, I am using the driver to support the >>> pdphy in SMB2352 and there is no external regulator required, so I am >>> just using a dummy regulator device and I saw this unbalanced >>> regulator disabling warnings, so my intention for this change is just >>> fixing the warning message. However, I am fine with whatever >>> suggestion you have, since the logic is straightforward, and I can >>> make the changes once you have the agreement. >>> >>> Thanks, >>> Hui >> >> Err well on real hardware with a real regulator I don't see this error. > Just a doublt, if real regulator has no this error, who enabled it > before it was reseted? adb/xbl most likely i.e. the bootloader If you think about it, be it on an embedded dev board or on a phone, enabling the type-c port -> regulator that goes with it, would be common practice, especially if you boot the board, as I do via USB to begin with. >> >> I'd say we should try the second proposed changed in pdphy_start >> pdphy_stop since it looks neater. >> > I updated the code refer to the proposal, and it worked well,but I just > thought it makes code a little redundant. Why don't we only keep one > pdphy_enable/pdphy_disable or pdphy_start/pdphy_stop? Not sure I follow you there. We should have only one regulator enable/disable in pdphy_start and pdphy_stop per my understanding. https://lore.kernel.org/linux-arm-msm/9574a219-3abf-b2c9-7d90-e79d364134bb@linaro.org/ --- bod
diff --git a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c index bb0b8479d80f..ca616b17b5b6 100644 --- a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c +++ b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c @@ -422,7 +422,8 @@ static int qcom_pmic_typec_pdphy_disable(struct pmic_typec_pdphy *pmic_typec_pdp ret = regmap_write(pmic_typec_pdphy->regmap, pmic_typec_pdphy->base + USB_PDPHY_EN_CONTROL_REG, 0); - regulator_disable(pmic_typec_pdphy->vdd_pdphy); + if (regulator_is_enabled(pmic_typec_pdphy->vdd_pdphy)) + regulator_disable(pmic_typec_pdphy->vdd_pdphy); return ret; }