Hi Hans,

On 2019-07-15 12:30, Hans Verkuil wrote:
> Use cec_notifier_cec_adap_(un)register instead of
> cec_notifier_get, cec_notifier_put and cec_register_cec_notifier.
>
> Also enable the CEC_CAP_CONNECTOR_INFO capability.
>
> Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>
> Cc: Marek Szyprowski <m.szyprow...@samsung.com>
> Cc: Sylwester Nawrocki <snawro...@kernel.org>

Acked-by: Marek Szyprowski <m.szyprow...@samsung.com>

> ---
>   drivers/media/platform/s5p-cec/s5p_cec.c | 23 ++++++++++++++---------
>   1 file changed, 14 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/media/platform/s5p-cec/s5p_cec.c 
> b/drivers/media/platform/s5p-cec/s5p_cec.c
> index ea6231b387ed..6ddcc35b0bbd 100644
> --- a/drivers/media/platform/s5p-cec/s5p_cec.c
> +++ b/drivers/media/platform/s5p-cec/s5p_cec.c
> @@ -214,21 +214,23 @@ static int s5p_cec_probe(struct platform_device *pdev)
>       if (IS_ERR(cec->reg))
>               return PTR_ERR(cec->reg);
>   
> -     cec->notifier = cec_notifier_get(hdmi_dev);
> -     if (cec->notifier == NULL)
> -             return -ENOMEM;
> -
>       cec->adap = cec_allocate_adapter(&s5p_cec_adap_ops, cec, CEC_NAME,
> -             CEC_CAP_DEFAULTS | (needs_hpd ? CEC_CAP_NEEDS_HPD : 0), 1);
> +             CEC_CAP_DEFAULTS | (needs_hpd ? CEC_CAP_NEEDS_HPD : 0) |
> +             CEC_CAP_CONNECTOR_INFO, 1);
>       ret = PTR_ERR_OR_ZERO(cec->adap);
>       if (ret)
>               return ret;
>   
> -     ret = cec_register_adapter(cec->adap, &pdev->dev);
> -     if (ret)
> +     cec->notifier = cec_notifier_cec_adap_register(hdmi_dev, NULL,
> +                                                    cec->adap);
> +     if (!cec->notifier) {
> +             ret = -ENOMEM;
>               goto err_delete_adapter;
> +     }
>   
> -     cec_register_cec_notifier(cec->adap, cec->notifier);
> +     ret = cec_register_adapter(cec->adap, &pdev->dev);
> +     if (ret)
> +             goto err_notifier;
>   
>       platform_set_drvdata(pdev, cec);
>       pm_runtime_enable(dev);
> @@ -236,6 +238,9 @@ static int s5p_cec_probe(struct platform_device *pdev)
>       dev_dbg(dev, "successfully probed\n");
>       return 0;
>   
> +err_notifier:
> +     cec_notifier_cec_adap_unregister(cec->notifier);
> +
>   err_delete_adapter:
>       cec_delete_adapter(cec->adap);
>       return ret;
> @@ -245,8 +250,8 @@ static int s5p_cec_remove(struct platform_device *pdev)
>   {
>       struct s5p_cec_dev *cec = platform_get_drvdata(pdev);
>   
> +     cec_notifier_cec_adap_unregister(cec->notifier);
>       cec_unregister_adapter(cec->adap);
> -     cec_notifier_put(cec->notifier);
>       pm_runtime_disable(&pdev->dev);
>       return 0;
>   }

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland

Reply via email to