Message ID | 1579602152-7432-1-git-send-email-yannick.fertre@st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: platform: stm32: defer probe for auxiliary clock | expand |
Dears Yannick & Etienne, Thank you for your patch, Reviewed-by: Philippe Cornu <philippe.cornu@st.com> Philippe :-) On 1/21/20 11:22 AM, Yannick Fertre wrote: > From: Etienne Carriere <etienne.carriere@st.com> > > Change stm32-cec driver to defer probe when auxiliary clock > "hdmi-cec" is registered in the system not has not been probed yet. > > Signed-off-by: Etienne Carriere <etienne.carriere@st.com> > --- > drivers/media/platform/stm32/stm32-cec.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/stm32/stm32-cec.c b/drivers/media/platform/stm32/stm32-cec.c > index 8a86b2c..543c9ec 100644 > --- a/drivers/media/platform/stm32/stm32-cec.c > +++ b/drivers/media/platform/stm32/stm32-cec.c > @@ -302,10 +302,14 @@ static int stm32_cec_probe(struct platform_device *pdev) > } > > cec->clk_hdmi_cec = devm_clk_get(&pdev->dev, "hdmi-cec"); > + if (IS_ERR(cec->clk_hdmi_cec) && > + PTR_ERR(cec->clk_hdmi_cec) == -EPROBE_DEFER) > + return -EPROBE_DEFER; > + > if (!IS_ERR(cec->clk_hdmi_cec)) { > ret = clk_prepare(cec->clk_hdmi_cec); > if (ret) { > - dev_err(&pdev->dev, "Unable to prepare hdmi-cec clock\n"); > + dev_err(&pdev->dev, "Can't prepare hdmi-cec clock\n"); > return ret; > } > } >
diff --git a/drivers/media/platform/stm32/stm32-cec.c b/drivers/media/platform/stm32/stm32-cec.c index 8a86b2c..543c9ec 100644 --- a/drivers/media/platform/stm32/stm32-cec.c +++ b/drivers/media/platform/stm32/stm32-cec.c @@ -302,10 +302,14 @@ static int stm32_cec_probe(struct platform_device *pdev) } cec->clk_hdmi_cec = devm_clk_get(&pdev->dev, "hdmi-cec"); + if (IS_ERR(cec->clk_hdmi_cec) && + PTR_ERR(cec->clk_hdmi_cec) == -EPROBE_DEFER) + return -EPROBE_DEFER; + if (!IS_ERR(cec->clk_hdmi_cec)) { ret = clk_prepare(cec->clk_hdmi_cec); if (ret) { - dev_err(&pdev->dev, "Unable to prepare hdmi-cec clock\n"); + dev_err(&pdev->dev, "Can't prepare hdmi-cec clock\n"); return ret; } }