@@ -253,6 +253,7 @@ static int ir_jvc_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
struct decoder_data *data;
+ u64 ir_type = ir_dev->rc_tab.ir_type;
int rc;
rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group);
@@ -266,7 +267,8 @@ static int ir_jvc_register(struct input_dev *input_dev)
}
data->ir_dev = ir_dev;
- data->enabled = 1;
+ if (ir_type == IR_TYPE_JVC || ir_type == IR_TYPE_UNKNOWN)
+ data->enabled = 1;
spin_lock(&decoder_lock);
list_add_tail(&data->list, &decoder_list);
@@ -260,6 +260,7 @@ static int ir_nec_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
struct decoder_data *data;
+ u64 ir_type = ir_dev->rc_tab.ir_type;
int rc;
rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group);
@@ -273,7 +274,8 @@ static int ir_nec_register(struct input_dev *input_dev)
}
data->ir_dev = ir_dev;
- data->enabled = 1;
+ if (ir_type == IR_TYPE_NEC || ir_type == IR_TYPE_UNKNOWN)
+ data->enabled = 1;
spin_lock(&decoder_lock);
list_add_tail(&data->list, &decoder_list);
@@ -256,6 +256,7 @@ static int ir_rc5_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
struct decoder_data *data;
+ u64 ir_type = ir_dev->rc_tab.ir_type;
int rc;
rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group);
@@ -269,7 +270,8 @@ static int ir_rc5_register(struct input_dev *input_dev)
}
data->ir_dev = ir_dev;
- data->enabled = 1;
+ if (ir_type == IR_TYPE_RC5 || ir_type == IR_TYPE_UNKNOWN)
+ data->enabled = 1;
spin_lock(&decoder_lock);
list_add_tail(&data->list, &decoder_list);
@@ -352,6 +352,7 @@ static int ir_rc6_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
struct decoder_data *data;
+ u64 ir_type = ir_dev->rc_tab.ir_type;
int rc;
rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group);
@@ -365,7 +366,8 @@ static int ir_rc6_register(struct input_dev *input_dev)
}
data->ir_dev = ir_dev;
- data->enabled = 1;
+ if (ir_type == IR_TYPE_RC6 || ir_type == IR_TYPE_UNKNOWN)
+ data->enabled = 1;
spin_lock(&decoder_lock);
list_add_tail(&data->list, &decoder_list);
@@ -245,6 +245,7 @@ static int ir_sony_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
struct decoder_data *data;
+ u64 ir_type = ir_dev->rc_tab.ir_type;
int rc;
rc = sysfs_create_group(&ir_dev->dev.kobj, &decoder_attribute_group);
@@ -258,7 +259,8 @@ static int ir_sony_register(struct input_dev *input_dev)
}
data->ir_dev = ir_dev;
- data->enabled = 1;
+ if (ir_type == IR_TYPE_SONY || ir_type == IR_TYPE_UNKNOWN)
+ data->enabled = 1;
spin_lock(&decoder_lock);
list_add_tail(&data->list, &decoder_list);