I think I see a problem.
in ir-sysfs.c is the following:
if (!strncasecmp(tmp, "unknown", 7)) { tmp += 7; mask = IR_TYPE_UNKNOWN; } else if (!strncasecmp(tmp, "rc5", 3)) { tmp += 3; mask = IR_TYPE_RC5; } else if (!strncasecmp(tmp, "nec", 3)) { tmp += 3; mask = IR_TYPE_NEC; } else if (!strncasecmp(tmp, "rc6", 3)) { tmp += 3; mask = IR_TYPE_RC6; } else if (!strncasecmp(tmp, "jvc", 3)) { tmp += 3; mask = IR_TYPE_JVC; } else if (!strncasecmp(tmp, "sony", 4)) { tmp += 4; mask = IR_TYPE_SONY; } else if (!strncasecmp(tmp, "rc5sz", 5)) { tmp += 5; mask = IR_TYPE_RC5_SZ; } else if (!strncasecmp(tmp, "lirc", 4)) { tmp += 4; mask = IR_TYPE_LIRC; } else { IR_dprintk(1, "Unknown protocol\n"); return -EINVAL; }
If "rc5sz" is entered, the check for "rc5" will pass.
I think I see a problem.
in ir-sysfs.c is the following:
if (!strncasecmp(tmp, "unknown", 7)) {
mask = IR_TYPE_UNKNOWN;
mask = IR_TYPE_RC5;
mask = IR_TYPE_NEC;
mask = IR_TYPE_RC6;
mask = IR_TYPE_JVC;
mask = IR_TYPE_SONY;
mask = IR_TYPE_RC5_SZ;
mask = IR_TYPE_LIRC;
IR_dprintk( 1, "Unknown protocol\n");
return -EINVAL;
tmp += 7;
} else if (!strncasecmp(tmp, "rc5", 3)) {
tmp += 3;
} else if (!strncasecmp(tmp, "nec", 3)) {
tmp += 3;
} else if (!strncasecmp(tmp, "rc6", 3)) {
tmp += 3;
} else if (!strncasecmp(tmp, "jvc", 3)) {
tmp += 3;
} else if (!strncasecmp(tmp, "sony", 4)) {
tmp += 4;
} else if (!strncasecmp(tmp, "rc5sz", 5)) {
tmp += 5;
} else if (!strncasecmp(tmp, "lirc", 4)) {
tmp += 4;
} else {
}
If "rc5sz" is entered, the check for "rc5" will pass.