Message ID | 20220427063243.32576-4-johan+linaro@kernel.org |
---|---|
State | Accepted |
Commit | 0a97630ac9726436e319e38cb95d73706581c6c4 |
Headers | show |
Series | phy: qcom-qmp: fix leaks on probe errors | expand |
On Tue 26 Apr 23:32 PDT 2022, Johan Hovold wrote: > Switch to consistently using the explicit reset-controller API which > makes it clear that the reset controllers are used exclusively by the > PHY driver. > > Note that the deprecated of_reset_control_get() and > devm_reset_control_get() are just transitional wrappers for the explicit > API so there's no functional change. > > Suggested-by: Philipp Zabel <p.zabel@pengutronix.de> > Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > --- > drivers/phy/qualcomm/phy-qcom-qmp.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c > index 3f77830921f5..160d723fc773 100644 > --- a/drivers/phy/qualcomm/phy-qcom-qmp.c > +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c > @@ -5701,7 +5701,7 @@ static int qcom_qmp_phy_reset_init(struct device *dev, const struct qmp_phy_cfg > struct reset_control *rst; > const char *name = cfg->reset_list[i]; > > - rst = devm_reset_control_get(dev, name); > + rst = devm_reset_control_get_exclusive(dev, name); > if (IS_ERR(rst)) { > dev_err(dev, "failed to get %s reset\n", name); > return PTR_ERR(rst); > @@ -6099,7 +6099,7 @@ int qcom_qmp_phy_create(struct device *dev, struct device_node *np, int id, > /* Get lane reset, if any */ > if (cfg->has_lane_rst) { > snprintf(prop_name, sizeof(prop_name), "lane%d", id); > - qphy->lane_rst = of_reset_control_get(np, prop_name); > + qphy->lane_rst = of_reset_control_get_exclusive(np, prop_name); > if (IS_ERR(qphy->lane_rst)) { > dev_err(dev, "failed to get lane%d reset\n", id); > return PTR_ERR(qphy->lane_rst); > -- > 2.35.1 >
diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c index 3f77830921f5..160d723fc773 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c @@ -5701,7 +5701,7 @@ static int qcom_qmp_phy_reset_init(struct device *dev, const struct qmp_phy_cfg struct reset_control *rst; const char *name = cfg->reset_list[i]; - rst = devm_reset_control_get(dev, name); + rst = devm_reset_control_get_exclusive(dev, name); if (IS_ERR(rst)) { dev_err(dev, "failed to get %s reset\n", name); return PTR_ERR(rst); @@ -6099,7 +6099,7 @@ int qcom_qmp_phy_create(struct device *dev, struct device_node *np, int id, /* Get lane reset, if any */ if (cfg->has_lane_rst) { snprintf(prop_name, sizeof(prop_name), "lane%d", id); - qphy->lane_rst = of_reset_control_get(np, prop_name); + qphy->lane_rst = of_reset_control_get_exclusive(np, prop_name); if (IS_ERR(qphy->lane_rst)) { dev_err(dev, "failed to get lane%d reset\n", id); return PTR_ERR(qphy->lane_rst);
Switch to consistently using the explicit reset-controller API which makes it clear that the reset controllers are used exclusively by the PHY driver. Note that the deprecated of_reset_control_get() and devm_reset_control_get() are just transitional wrappers for the explicit API so there's no functional change. Suggested-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Johan Hovold <johan+linaro@kernel.org> --- drivers/phy/qualcomm/phy-qcom-qmp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)