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 <s...@mess.org>
---
 drivers/media/pci/ttpci/av7110_ir.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/media/pci/ttpci/av7110_ir.c 
b/drivers/media/pci/ttpci/av7110_ir.c
index 432789a3c312..a851ba328e4a 100644
--- a/drivers/media/pci/ttpci/av7110_ir.c
+++ b/drivers/media/pci/ttpci/av7110_ir.c
@@ -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;
-- 
2.21.0

Reply via email to