diff options
Diffstat (limited to 'drivers/media/i2c/ir-kbd-i2c.c')
| -rw-r--r-- | drivers/media/i2c/ir-kbd-i2c.c | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/media/i2c/ir-kbd-i2c.c b/drivers/media/i2c/ir-kbd-i2c.c index 08ae067b2b6..8e2f79cb045 100644 --- a/drivers/media/i2c/ir-kbd-i2c.c +++ b/drivers/media/i2c/ir-kbd-i2c.c @@ -230,7 +230,7 @@ static int get_key_avermedia_cardbus(struct IR_i2c *ir,  		return 0;  	dprintk(1, "read key 0x%02x/0x%02x\n", key, keygroup); -	if (keygroup < 2 || keygroup > 3) { +	if (keygroup < 2 || keygroup > 4) {  		/* Only a warning */  		dprintk(1, "warning: invalid key group 0x%02x for key 0x%02x\n",  								keygroup, key); @@ -239,6 +239,10 @@ static int get_key_avermedia_cardbus(struct IR_i2c *ir,  	*ir_key = key;  	*ir_raw = key; +	if (!strcmp(ir->ir_codes, RC_MAP_AVERMEDIA_M733A_RM_K6)) { +		*ir_key |= keygroup << 8; +		*ir_raw |= keygroup << 8; +	}  	return 1;  } @@ -332,6 +336,13 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)  		rc_type     = RC_BIT_OTHER;  		ir_codes    = RC_MAP_AVERMEDIA_CARDBUS;  		break; +	case 0x41: +		name        = "AVerMedia EM78P153"; +		ir->get_key = get_key_avermedia_cardbus; +		rc_type     = RC_BIT_OTHER; +		/* RM-KV remote, seems to be same as RM-K6 */ +		ir_codes    = RC_MAP_AVERMEDIA_M733A_RM_K6; +		break;  	case 0x71:  		name        = "Hauppauge/Zilog Z8";  		ir->get_key = get_key_haup_xvr; @@ -423,6 +434,7 @@ static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)  	 */  	rc->map_name       = ir->ir_codes;  	rc->allowed_protos = rc_type; +	rc->enabled_protocols = rc_type;  	if (!rc->driver_name)  		rc->driver_name = MODULE_NAME;  |