]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[media] cec: fix confusing CEC_CAP_RC and IS_REACHABLE(CONFIG_RC_CORE) code
authorHans Verkuil <hverkuil@xs4all.nl>
Tue, 4 Apr 2017 16:43:33 +0000 (13:43 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 10 Apr 2017 16:15:29 +0000 (13:15 -0300)
It is a bit confusing how CEC_CAP_RC and IS_REACHABLE(CONFIG_RC_CORE)
interact. By stripping CEC_CAP_RC at the beginning rather than after #else
it should be a bit clearer what is going on.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reported-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/cec/cec-core.c

index 6b32a288714f5eadd8652f04f58c87bf07439f6e..430f5e052ab36b305fa561fdd75944ffb4faf71f 100644 (file)
@@ -220,6 +220,10 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
        struct cec_adapter *adap;
        int res;
 
+#if !IS_REACHABLE(CONFIG_RC_CORE)
+       caps &= ~CEC_CAP_RC;
+#endif
+
        if (WARN_ON(!caps))
                return ERR_PTR(-EINVAL);
        if (WARN_ON(!ops))
@@ -252,10 +256,10 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
                return ERR_PTR(res);
        }
 
+#if IS_REACHABLE(CONFIG_RC_CORE)
        if (!(caps & CEC_CAP_RC))
                return adap;
 
-#if IS_REACHABLE(CONFIG_RC_CORE)
        /* Prepare the RC input device */
        adap->rc = rc_allocate_device(RC_DRIVER_SCANCODE);
        if (!adap->rc) {
@@ -282,8 +286,6 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
        adap->rc->priv = adap;
        adap->rc->map_name = RC_MAP_CEC;
        adap->rc->timeout = MS_TO_NS(100);
-#else
-       adap->capabilities &= ~CEC_CAP_RC;
 #endif
        return adap;
 }