Interrupt and scheduling latency casues the slave timeout failure
during I2C protocol.
This patch binds the I2C IRQ to specified CPUs in order to
reduce these latency
Change-Id: I3fc6459577bac64539d79f5305dd6b3bc3f451fc
Signed-off-by: Kyungwoo Kang <kwoo.kang@samsung.com>
writel(i2c_auto_conf, i2c->regs + HSI2C_AUTO_CONF);
if (operation_mode == HSI2C_INTERRUPT) {
+ unsigned int cpu = raw_smp_processor_id();
i2c_int_en |= HSI2C_INT_CHK_TRANS_STATE | HSI2C_INT_TRANSFER_DONE;
writel(i2c_int_en, i2c->regs + HSI2C_INT_ENABLE);
+
+ irq_force_affinity(i2c->irq, cpumask_of(cpu));
enable_irq(i2c->irq);
} else {
writel(HSI2C_INT_TRANSFER_DONE, i2c->regs + HSI2C_INT_ENABLE);