media: ttpci: unknown protocol is rc-mm-32
authorSean Young <sean@mess.org>
Sat, 17 Aug 2019 12:02:40 +0000 (09:02 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 21 Aug 2019 21:39:54 +0000 (18:39 -0300)
This protocol responds to a real philips rc-mm remote; it does not respond
to IR encoded with the encoder in ir-rcmm-decoder.c.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/pci/ttpci/av7110_ir.c

index 432789a..a851ba3 100644 (file)
@@ -37,12 +37,10 @@ void av7110_ir_handler(struct av7110 *av7110, u32 ircom)
                        proto = RC_PROTO_RC5;
                        break;
 
-               case IR_RCMM: /* RCMM: ? bits device address, ? bits command */
-                       command = ircom & 0xff;
-                       addr = (ircom >> 8) & 0x1f;
-                       scancode = ircom;
+               case IR_RCMM: /* RCMM: 32 bits scancode */
+                       scancode = ircom & ~0x8000;
                        toggle = ircom & 0x8000;
-                       proto = RC_PROTO_UNKNOWN;
+                       proto = RC_PROTO_RCMM32;
                        break;
 
                case IR_RC5_EXT:
@@ -83,9 +81,9 @@ static int change_protocol(struct rc_dev *rcdev, u64 *rc_type)
        struct av7110 *av7110 = rcdev->priv;
        u32 ir_config;
 
-       if (*rc_type & RC_PROTO_BIT_UNKNOWN) {
+       if (*rc_type & RC_PROTO_BIT_RCMM32) {
                ir_config = IR_RCMM;
-               *rc_type = RC_PROTO_UNKNOWN;
+               *rc_type = RC_PROTO_BIT_RCMM32;
        } else if (*rc_type & RC_PROTO_BIT_RC5) {
                if (FW_VERSION(av7110->arm_app) >= 0x2620)
                        ir_config = IR_RC5_EXT;
@@ -133,7 +131,7 @@ int av7110_ir_init(struct av7110 *av7110)
        }
 
        rcdev->dev.parent = &pci->dev;
-       rcdev->allowed_protocols = RC_PROTO_BIT_RC5 | RC_PROTO_BIT_UNKNOWN;
+       rcdev->allowed_protocols = RC_PROTO_BIT_RC5 | RC_PROTO_BIT_RCMM32;
        rcdev->change_protocol = change_protocol;
        rcdev->map_name = RC_MAP_HAUPPAUGE;
        rcdev->priv = av7110;