PD#SWPL-9797
Problem:
ir irq is binded to cup 1 and will re-set in every resume process.
cup 0 wakeup first in resume, if there comes a irq during resume in
a critical time it may occurs concurrency.
Solution:
remove irq affinity in hard decode mode and only use it in learning
mode.
Verify:
w400
Change-Id: I26fad9f67665a2bfe9c6d2455559eb1d95e8b2ba
Signed-off-by: Qianggui Song <qianggui.song@amlogic.com>
/*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);
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;
}
#endif
- irq_set_affinity(chip->irqno, cpumask_of(chip->irq_cpumask));
enable_irq(chip->irqno);
return 0;
}
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);