From 2b5d85d7b2b62c0e9eb638b8b5e909ffed2ad29e Mon Sep 17 00:00:00 2001 From: Zorro Liu Date: Tue, 14 Nov 2017 18:00:12 +0800 Subject: [PATCH] driver: input: sensor: fix unbalanced enable for some sensor irq [ 31.190438] Unbalanced enable for IRQ 163 [ 31.190481] ------------[ cut here ]------------ [ 31.190495] WARNING: at kernel/irq/manage.c:513 [ 31.190505] Modules linked in: bcmdhd [ 31.190525] [ 31.190544] CPU: 1 PID: 270 Comm: sensors@1.0-ser Not tainted 4.4.93 #175 [ 31.190561] Hardware name: Rockchip rk3368 xkp board (DT) [ 31.190575] task: ffffffc076ac2700 task.stack: ffffffc076b28000 [ 31.190601] PC is at __enable_irq+0x34/0x74 [ 31.190614] LR is at __enable_irq+0x34/0x74 ... [ 31.198173] [] __enable_irq+0x34/0x74 [ 31.198188] [] enable_irq+0x6c/0x94 [ 31.198207] [] sensor_enable+0x78/0x13c [ 31.198222] [] light_dev_ioctl+0x1a4/0x1d4 [ 31.198240] [] do_vfs_ioctl+0x5e4/0x720 [ 31.198254] [] SyS_ioctl+0x60/0x88 [ 31.198270] [] el0_svc_naked+0x24/0x28 Change-Id: Ieba4a76910fde7381ea4b8113cca20fa068fabbd Signed-off-by: Zorro Liu --- drivers/input/sensors/sensor-dev.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/input/sensors/sensor-dev.c b/drivers/input/sensors/sensor-dev.c index 65bdad2f434707..19fb5a28e6f68f 100644 --- a/drivers/input/sensors/sensor-dev.c +++ b/drivers/input/sensors/sensor-dev.c @@ -229,12 +229,7 @@ static int sensor_irq_init(struct i2c_client *client) } client->irq = irq; - if ((sensor->pdata->type == SENSOR_TYPE_GYROSCOPE) || (sensor->pdata->type == SENSOR_TYPE_ACCEL) || (sensor->pdata->type == SENSOR_TYPE_ANGLE)) - disable_irq_nosync(client->irq); - if (((sensor->pdata->type == SENSOR_TYPE_LIGHT) || (sensor->pdata->type == SENSOR_TYPE_PROXIMITY)) && (!(sensor->ops->trig & IRQF_SHARED))) - disable_irq_nosync(client->irq); - if (((sensor->pdata->type == SENSOR_TYPE_TEMPERATURE) || (sensor->pdata->type == SENSOR_TYPE_PRESSURE)) && (!(sensor->ops->trig & IRQF_SHARED))) - disable_irq_nosync(client->irq); + disable_irq_nosync(client->irq); dev_info(&client->dev, "%s:use irq=%d\n", __func__, irq); } else if (!sensor->pdata->irq_enable) {