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-ci...@xs4all.nl>
> ---
>  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 <narmstr...@baylibre.com>

Thanks,
Neil

Reply via email to