Skip to content

Commit

Permalink
[media] cec: add MEDIA_CEC_RC config option
Browse files Browse the repository at this point in the history
Add an explicit config option to select whether the CEC remote control
messages are to be passed on to the RC subsystem or not.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Apr 19, 2017
1 parent ee7e987 commit 5f2c467
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
8 changes: 7 additions & 1 deletion drivers/media/cec/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,14 @@ config CEC_CORE
config MEDIA_CEC_NOTIFIER
bool

config MEDIA_CEC_RC
bool "HDMI CEC RC integration"
depends on CEC_CORE && RC_CORE
---help---
Pass on CEC remote control messages to the RC framework.

config MEDIA_CEC_DEBUG
bool "HDMI CEC debugfs interface"
depends on MEDIA_CEC_SUPPORT && DEBUG_FS
depends on CEC_CORE && DEBUG_FS
---help---
Turns on the DebugFS interface for CEC devices.
4 changes: 2 additions & 2 deletions drivers/media/cec/cec-adap.c
Original file line number Diff line number Diff line change
Expand Up @@ -1732,7 +1732,7 @@ static int cec_receive_notify(struct cec_adapter *adap, struct cec_msg *msg,
!(adap->log_addrs.flags & CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU))
break;

#if IS_REACHABLE(CONFIG_RC_CORE)
#ifdef CONFIG_MEDIA_CEC_RC
switch (msg->msg[2]) {
/*
* Play function, this message can have variable length
Expand Down Expand Up @@ -1769,7 +1769,7 @@ static int cec_receive_notify(struct cec_adapter *adap, struct cec_msg *msg,
if (!(adap->capabilities & CEC_CAP_RC) ||
!(adap->log_addrs.flags & CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU))
break;
#if IS_REACHABLE(CONFIG_RC_CORE)
#ifdef CONFIG_MEDIA_CEC_RC
rc_keyup(adap->rc);
#endif
break;
Expand Down
12 changes: 6 additions & 6 deletions drivers/media/cec/cec-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
struct cec_adapter *adap;
int res;

#if !IS_REACHABLE(CONFIG_RC_CORE)
#ifndef CONFIG_MEDIA_CEC_RC
caps &= ~CEC_CAP_RC;
#endif

Expand Down Expand Up @@ -256,7 +256,7 @@ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
return ERR_PTR(res);
}

#if IS_REACHABLE(CONFIG_RC_CORE)
#ifdef CONFIG_MEDIA_CEC_RC
if (!(caps & CEC_CAP_RC))
return adap;

Expand Down Expand Up @@ -305,7 +305,7 @@ int cec_register_adapter(struct cec_adapter *adap,
adap->owner = parent->driver->owner;
adap->devnode.dev.parent = parent;

#if IS_REACHABLE(CONFIG_RC_CORE)
#ifdef CONFIG_MEDIA_CEC_RC
if (adap->capabilities & CEC_CAP_RC) {
adap->rc->dev.parent = parent;
res = rc_register_device(adap->rc);
Expand All @@ -322,7 +322,7 @@ int cec_register_adapter(struct cec_adapter *adap,

res = cec_devnode_register(&adap->devnode, adap->owner);
if (res) {
#if IS_REACHABLE(CONFIG_RC_CORE)
#ifdef CONFIG_MEDIA_CEC_RC
/* Note: rc_unregister also calls rc_free */
rc_unregister_device(adap->rc);
adap->rc = NULL;
Expand Down Expand Up @@ -357,7 +357,7 @@ void cec_unregister_adapter(struct cec_adapter *adap)
if (IS_ERR_OR_NULL(adap))
return;

#if IS_REACHABLE(CONFIG_RC_CORE)
#ifdef CONFIG_MEDIA_CEC_RC
/* Note: rc_unregister also calls rc_free */
rc_unregister_device(adap->rc);
adap->rc = NULL;
Expand All @@ -381,7 +381,7 @@ void cec_delete_adapter(struct cec_adapter *adap)
kthread_stop(adap->kthread);
if (adap->kthread_config)
kthread_stop(adap->kthread_config);
#if IS_REACHABLE(CONFIG_RC_CORE)
#ifdef CONFIG_MEDIA_CEC_RC
rc_free_device(adap->rc);
#endif
kfree(adap);
Expand Down

0 comments on commit 5f2c467

Please sign in to comment.