mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 04:48:04 +09:00
UPSTREAM: [media] media: rc: move check whether a protocol is enabled to the core
Checking whether a protocol is enabled and calling the related decoder
functions should be done by the rc core, not the protocol handlers.
Properly handle lirc considering that no protocol bit is set for lirc.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
(cherry picked from commit d80ca8bd71)
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
This commit is contained in:
committed by
Tao Huang
parent
2a217e3ca0
commit
8588c29848
@@ -47,9 +47,6 @@ static int ir_jvc_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
{
|
||||
struct jvc_dec *data = &dev->raw->jvc;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_JVC))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -216,9 +216,6 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u32 scancode;
|
||||
unsigned long delay;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_MCE_KBD))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -52,9 +52,6 @@ static int ir_nec_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u8 address, not_address, command, not_command;
|
||||
bool send_32bits = false;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_NEC))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -53,9 +53,6 @@ static int ir_rc5_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u32 scancode;
|
||||
enum rc_type protocol;
|
||||
|
||||
if (!(dev->enabled_protocols & (RC_BIT_RC5 | RC_BIT_RC5X | RC_BIT_RC5_SZ)))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -90,11 +90,6 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u8 toggle;
|
||||
enum rc_type protocol;
|
||||
|
||||
if (!(dev->enabled_protocols &
|
||||
(RC_BIT_RC6_0 | RC_BIT_RC6_6A_20 | RC_BIT_RC6_6A_24 |
|
||||
RC_BIT_RC6_6A_32 | RC_BIT_RC6_MCE)))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -58,9 +58,6 @@ static int ir_sanyo_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u32 scancode;
|
||||
u8 address, command, not_command;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_SANYO))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset) {
|
||||
IR_dprintk(1, "SANYO event reset received. reset to state 0\n");
|
||||
|
||||
@@ -48,9 +48,6 @@ static int ir_sharp_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
struct sharp_dec *data = &dev->raw->sharp;
|
||||
u32 msg, echo, address, command, scancode;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_SHARP))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -46,10 +46,6 @@ static int ir_sony_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
u32 scancode;
|
||||
u8 device, subdevice, function;
|
||||
|
||||
if (!(dev->enabled_protocols &
|
||||
(RC_BIT_SONY12 | RC_BIT_SONY15 | RC_BIT_SONY20)))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -43,9 +43,6 @@ static int ir_xmp_decode(struct rc_dev *dev, struct ir_raw_event ev)
|
||||
{
|
||||
struct xmp_dec *data = &dev->raw->xmp;
|
||||
|
||||
if (!(dev->enabled_protocols & RC_BIT_XMP))
|
||||
return 0;
|
||||
|
||||
if (!is_timing_event(ev)) {
|
||||
if (ev.reset)
|
||||
data->state = STATE_INACTIVE;
|
||||
|
||||
@@ -59,7 +59,9 @@ static int ir_raw_event_thread(void *data)
|
||||
|
||||
mutex_lock(&ir_raw_handler_lock);
|
||||
list_for_each_entry(handler, &ir_raw_handler_list, list)
|
||||
handler->decode(raw->dev, ev);
|
||||
if (raw->dev->enabled_protocols & handler->protocols ||
|
||||
!handler->protocols)
|
||||
handler->decode(raw->dev, ev);
|
||||
raw->prev_ev = ev;
|
||||
mutex_unlock(&ir_raw_handler_lock);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user