On 08/04/2019 13:03, Hans Verkuil wrote: > The meson CEC driver increased the HDMI device refcount when > it shouldn't. Use the new helper function to ensure that that > doesn't happen and to simplify the driver code. > > Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> > --- > drivers/media/platform/meson/ao-cec.c | 16 +++++----------- > 1 file changed, 5 insertions(+), 11 deletions(-) > > diff --git a/drivers/media/platform/meson/ao-cec.c b/drivers/media/platform/meson/ao-cec.c > index cd4be38ab5ac..c8b374741a7c 100644 > --- a/drivers/media/platform/meson/ao-cec.c > +++ b/drivers/media/platform/meson/ao-cec.c > @@ -601,20 +601,14 @@ static const struct cec_adap_ops meson_ao_cec_ops = { > static int meson_ao_cec_probe(struct platform_device *pdev) > { > struct meson_ao_cec_device *ao_cec; > - struct platform_device *hdmi_dev; > - struct device_node *np; > + struct device *hdmi_dev; > struct resource *res; > int ret, irq; > > - np = of_parse_phandle(pdev->dev.of_node, "hdmi-phandle", 0); > - if (!np) { > - dev_err(&pdev->dev, "Failed to find hdmi node\n"); > - return -ENODEV; > - } > + hdmi_dev = cec_notifier_find_hdmi_dev(&pdev->dev); > > - hdmi_dev = of_find_device_by_node(np); > - if (hdmi_dev == NULL) > - return -EPROBE_DEFER; > + if (IS_ERR(hdmi_dev)) > + return PTR_ERR(hdmi_dev); > > ao_cec = devm_kzalloc(&pdev->dev, sizeof(*ao_cec), GFP_KERNEL); > if (!ao_cec) > @@ -622,7 +616,7 @@ static int meson_ao_cec_probe(struct platform_device *pdev) > > spin_lock_init(&ao_cec->cec_reg_lock); > > - ao_cec->notify = cec_notifier_get(&hdmi_dev->dev); > + ao_cec->notify = cec_notifier_get(hdmi_dev); > if (!ao_cec->notify) > return -ENOMEM; > > Acked-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx> Thanks, Neil