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-cisco@xxxxxxxxx> > Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > Cc: Sylwester Nawrocki <snawrocki@xxxxxxxxxx> Acked-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > --- > 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