tda9950: use cec_notifier_cec_adap_(un)register
authorDariusz Marcinkiewicz <darekm@google.com>
Wed, 14 Aug 2019 10:45:02 +0000 (12:45 +0200)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 9 Sep 2019 10:05:25 +0000 (12:05 +0200)
Use the new cec_notifier_cec_adap_(un)register() functions to
(un)register the notifier for the CEC adapter.

Signed-off-by: Dariusz Marcinkiewicz <darekm@google.com>
Tested-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Link: https://patchwork.freedesktop.org/patch/msgid/20190814104520.6001-5-darekm@google.com
drivers/gpu/drm/i2c/tda9950.c

index 8039fc0..a5a75bd 100644 (file)
@@ -420,7 +420,8 @@ static int tda9950_probe(struct i2c_client *client,
                priv->hdmi = glue->parent;
 
        priv->adap = cec_allocate_adapter(&tda9950_cec_ops, priv, "tda9950",
-                                         CEC_CAP_DEFAULTS,
+                                         CEC_CAP_DEFAULTS |
+                                         CEC_CAP_CONNECTOR_INFO,
                                          CEC_MAX_LOG_ADDRS);
        if (IS_ERR(priv->adap))
                return PTR_ERR(priv->adap);
@@ -457,13 +458,14 @@ static int tda9950_probe(struct i2c_client *client,
        if (ret < 0)
                return ret;
 
-       priv->notify = cec_notifier_get(priv->hdmi);
+       priv->notify = cec_notifier_cec_adap_register(priv->hdmi, NULL,
+                                                     priv->adap);
        if (!priv->notify)
                return -ENOMEM;
 
        ret = cec_register_adapter(priv->adap, priv->hdmi);
        if (ret < 0) {
-               cec_notifier_put(priv->notify);
+               cec_notifier_cec_adap_unregister(priv->notify);
                return ret;
        }
 
@@ -473,8 +475,6 @@ static int tda9950_probe(struct i2c_client *client,
         */
        devm_remove_action(dev, tda9950_cec_del, priv);
 
-       cec_register_cec_notifier(priv->adap, priv->notify);
-
        return 0;
 }
 
@@ -482,8 +482,8 @@ static int tda9950_remove(struct i2c_client *client)
 {
        struct tda9950_priv *priv = i2c_get_clientdata(client);
 
+       cec_notifier_cec_adap_unregister(priv->notify);
        cec_unregister_adapter(priv->adap);
-       cec_notifier_put(priv->notify);
 
        return 0;
 }