diff options
Diffstat (limited to 'drivers/media/IR/ir-keytable.c')
| -rw-r--r-- | drivers/media/IR/ir-keytable.c | 17 | 
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/media/IR/ir-keytable.c b/drivers/media/IR/ir-keytable.c index 9374a006f43..94a8577e72e 100644 --- a/drivers/media/IR/ir-keytable.c +++ b/drivers/media/IR/ir-keytable.c @@ -490,11 +490,12 @@ int __ir_input_register(struct input_dev *input_dev,  	if (rc < 0)  		goto out_table; -	if (ir_dev->props->driver_type == RC_DRIVER_IR_RAW) { -		rc = ir_raw_event_register(input_dev); -		if (rc < 0) -			goto out_event; -	} +	if (ir_dev->props) +		if (ir_dev->props->driver_type == RC_DRIVER_IR_RAW) { +			rc = ir_raw_event_register(input_dev); +			if (rc < 0) +				goto out_event; +		}  	IR_dprintk(1, "Registered input device on %s for %s remote.\n",  		   driver_name, rc_tab->name); @@ -530,8 +531,10 @@ void ir_input_unregister(struct input_dev *input_dev)  	IR_dprintk(1, "Freed keycode table\n");  	del_timer_sync(&ir_dev->timer_keyup); -	if (ir_dev->props->driver_type == RC_DRIVER_IR_RAW) -		ir_raw_event_unregister(input_dev); +	if (ir_dev->props) +		if (ir_dev->props->driver_type == RC_DRIVER_IR_RAW) +			ir_raw_event_unregister(input_dev); +  	rc_tab = &ir_dev->rc_tab;  	rc_tab->size = 0;  	kfree(rc_tab->scan);  |