diff --git a/drivers/amlogic/input/remote/remote_cdev.c b/drivers/amlogic/input/remote/remote_cdev.c index 6705b641a5ac..4eb02cc0916b 100644 --- a/drivers/amlogic/input/remote/remote_cdev.c +++ b/drivers/amlogic/input/remote/remote_cdev.c @@ -162,6 +162,8 @@ static long remote_ioctl(struct file *file, unsigned int cmd, /*backup protocol*/ chip->r_dev->protocol = chip->protocol; chip->protocol = REMOTE_TYPE_RAW_NEC; + irq_set_affinity(chip->irqno, + cpumask_of(chip->irq_cpumask)); } else { chip->protocol = chip->r_dev->protocol; chip->set_register_config(chip, chip->protocol); diff --git a/drivers/amlogic/input/remote/remote_meson.c b/drivers/amlogic/input/remote/remote_meson.c index b23c251100f6..7a8abfa68f04 100644 --- a/drivers/amlogic/input/remote/remote_meson.c +++ b/drivers/amlogic/input/remote/remote_meson.c @@ -773,7 +773,6 @@ static int ir_hardware_init(struct platform_device *pdev) goto error_irq; chip->irq_cpumask = 1; - irq_set_affinity(chip->irqno, cpumask_of(chip->irq_cpumask)); tasklet_enable(&tasklet); tasklet.data = (unsigned long)chip; @@ -947,7 +946,6 @@ static int remote_resume(struct device *dev) } #endif - irq_set_affinity(chip->irqno, cpumask_of(chip->irq_cpumask)); enable_irq(chip->irqno); return 0; } diff --git a/drivers/amlogic/input/remote/sysfs.c b/drivers/amlogic/input/remote/sysfs.c index 5bd084cd9a04..a6adb4f190c8 100644 --- a/drivers/amlogic/input/remote/sysfs.c +++ b/drivers/amlogic/input/remote/sysfs.c @@ -362,6 +362,8 @@ static ssize_t ir_learning_store(struct device *dev, chip->set_register_config(chip, REMOTE_TYPE_RAW_NEC); r_dev->protocol = chip->protocol;/*backup protocol*/ chip->protocol = REMOTE_TYPE_RAW_NEC; + irq_set_affinity(chip->irqno, + cpumask_of(chip->irq_cpumask)); } else { chip->protocol = r_dev->protocol; chip->set_register_config(chip, chip->protocol);