diff mbox

IR: only initially enable protocol that matches loaded keymap

Message ID 20100601202707.GA28024@redhat.com (mailing list archive)
State Accepted
Headers show

Commit Message

Jarod Wilson June 1, 2010, 8:27 p.m. UTC
None
diff mbox

Patch

diff --git a/drivers/media/IR/ir-jvc-decoder.c b/drivers/media/IR/ir-jvc-decoder.c
index 0b80494..b02e801 100644
--- a/drivers/media/IR/ir-jvc-decoder.c
+++ b/drivers/media/IR/ir-jvc-decoder.c
@@ -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);
diff --git a/drivers/media/IR/ir-nec-decoder.c b/drivers/media/IR/ir-nec-decoder.c
index ba79233..6059a1f 100644
--- a/drivers/media/IR/ir-nec-decoder.c
+++ b/drivers/media/IR/ir-nec-decoder.c
@@ -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);
diff --git a/drivers/media/IR/ir-rc5-decoder.c b/drivers/media/IR/ir-rc5-decoder.c
index 23cdb1b..4aa797b 100644
--- a/drivers/media/IR/ir-rc5-decoder.c
+++ b/drivers/media/IR/ir-rc5-decoder.c
@@ -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);
diff --git a/drivers/media/IR/ir-rc6-decoder.c b/drivers/media/IR/ir-rc6-decoder.c
index 2bf479f..9f61da2 100644
--- a/drivers/media/IR/ir-rc6-decoder.c
+++ b/drivers/media/IR/ir-rc6-decoder.c
@@ -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);
diff --git a/drivers/media/IR/ir-sony-decoder.c b/drivers/media/IR/ir-sony-decoder.c
index 9f440c5..219075f 100644
--- a/drivers/media/IR/ir-sony-decoder.c
+++ b/drivers/media/IR/ir-sony-decoder.c
@@ -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);