diff options
Diffstat (limited to 'drivers/media/usb/em28xx/em28xx-input.c')
| -rw-r--r-- | drivers/media/usb/em28xx/em28xx-input.c | 16 | 
1 files changed, 10 insertions, 6 deletions
| diff --git a/drivers/media/usb/em28xx/em28xx-input.c b/drivers/media/usb/em28xx/em28xx-input.c index 97d36b4f19db..660bf803c9e4 100644 --- a/drivers/media/usb/em28xx/em28xx-input.c +++ b/drivers/media/usb/em28xx/em28xx-input.c @@ -345,7 +345,7 @@ static void em28xx_ir_stop(struct rc_dev *rc)  	cancel_delayed_work_sync(&ir->work);  } -static int em28xx_ir_change_protocol(struct rc_dev *rc_dev, u64 rc_type) +static int em28xx_ir_change_protocol(struct rc_dev *rc_dev, u64 *rc_type)  {  	int rc = 0;  	struct em28xx_IR *ir = rc_dev->priv; @@ -354,14 +354,16 @@ static int em28xx_ir_change_protocol(struct rc_dev *rc_dev, u64 rc_type)  	/* Adjust xclk based o IR table for RC5/NEC tables */ -	if (rc_type == RC_TYPE_RC5) { +	if (*rc_type & RC_BIT_RC5) {  		dev->board.xclk |= EM28XX_XCLK_IR_RC5_MODE;  		ir->full_code = 1; -	} else if (rc_type == RC_TYPE_NEC) { +		*rc_type = RC_BIT_RC5; +	} else if (*rc_type & RC_BIT_NEC) {  		dev->board.xclk &= ~EM28XX_XCLK_IR_RC5_MODE;  		ir_config = EM2874_IR_NEC;  		ir->full_code = 1; -	} else if (rc_type != RC_TYPE_UNKNOWN) +		*rc_type = RC_BIT_NEC; +	} else if (*rc_type != RC_BIT_UNKNOWN)  		rc = -EINVAL;  	em28xx_write_reg_bits(dev, EM28XX_R0F_XCLK, dev->board.xclk, @@ -524,6 +526,7 @@ static int em28xx_ir_init(struct em28xx *dev)  	struct em28xx_IR *ir;  	struct rc_dev *rc;  	int err = -ENOMEM; +	u64 rc_type;  	if (dev->board.ir_codes == NULL) {  		/* No remote control support */ @@ -546,14 +549,15 @@ static int em28xx_ir_init(struct em28xx *dev)  	 * em2874 supports more protocols. For now, let's just announce  	 * the two protocols that were already tested  	 */ -	rc->allowed_protos = RC_TYPE_RC5 | RC_TYPE_NEC; +	rc->allowed_protos = RC_BIT_RC5 | RC_BIT_NEC;  	rc->priv = ir;  	rc->change_protocol = em28xx_ir_change_protocol;  	rc->open = em28xx_ir_start;  	rc->close = em28xx_ir_stop;  	/* By default, keep protocol field untouched */ -	err = em28xx_ir_change_protocol(rc, RC_TYPE_UNKNOWN); +	rc_type = RC_BIT_UNKNOWN; +	err = em28xx_ir_change_protocol(rc, &rc_type);  	if (err)  		goto err_out_free; |