sensors:fix lightsensor ioctl logic error
authorluowei <lw@rock-chips.com>
Thu, 11 Oct 2012 06:34:47 +0000 (14:34 +0800)
committerluowei <lw@rock-chips.com>
Thu, 11 Oct 2012 06:34:47 +0000 (14:34 +0800)
drivers/input/sensors/sensor-dev.c

index a3050cbac4d89e5ef2b968e0415d3df8095944ab..d43432301627df20e9db184c4aeed8c6af778951 100755 (executable)
@@ -779,10 +779,13 @@ static long light_dev_ioctl(struct file *file,
                                        printk("%s:fail to active sensor,ret=%d\n",__func__,result);         \r
                                        goto error;           \r
                                        }       \r
-                                       if(sensor->pdata->irq_enable && (!(sensor->ops->trig & IRQF_SHARED)))\r
+                                       if(sensor->pdata->irq_enable)\r
                                        {\r
-                                               DBG("%s:enable irq,irq=%d\n",__func__,client->irq);\r
-                                               enable_irq(client->irq);        //enable irq\r
+                                               if(!(sensor->ops->trig & IRQF_SHARED))\r
+                                               {\r
+                                                       DBG("%s:enable irq,irq=%d\n",__func__,client->irq);\r
+                                                       enable_irq(client->irq);        //enable irq\r
+                                               }\r
                                        }       \r
                                        else\r
                                        {\r
@@ -802,10 +805,13 @@ static long light_dev_ioctl(struct file *file,
                                        goto error;\r
                                        }\r
                                        \r
-                                       if(sensor->pdata->irq_enable && (!(sensor->ops->trig & IRQF_SHARED)))\r
+                                       if(sensor->pdata->irq_enable)\r
                                        {                               \r
-                                               DBG("%s:disable irq,irq=%d\n",__func__,client->irq);\r
-                                               disable_irq_nosync(client->irq);//disable irq\r
+                                               if(!(sensor->ops->trig & IRQF_SHARED))\r
+                                               {\r
+                                                       DBG("%s:disable irq,irq=%d\n",__func__,client->irq);\r
+                                                       disable_irq_nosync(client->irq);//disable irq\r
+                                               }\r
                                        }\r
                                        else\r
                                        cancel_delayed_work_sync(&sensor->delaywork);   \r
@@ -874,10 +880,13 @@ static long proximity_dev_ioctl(struct file *file,
                                        goto error;           \r
                                        }\r
                                        \r
-                                       if(sensor->pdata->irq_enable && (!(sensor->ops->trig & IRQF_SHARED)))\r
+                                       if(sensor->pdata->irq_enable)\r
                                        {\r
-                                               DBG("%s:enable irq,irq=%d\n",__func__,client->irq);\r
-                                               enable_irq(client->irq);        //enable irq\r
+                                               if(!(sensor->ops->trig & IRQF_SHARED))\r
+                                               {\r
+                                                       DBG("%s:enable irq,irq=%d\n",__func__,client->irq);\r
+                                                       enable_irq(client->irq);        //enable irq\r
+                                               }\r
                                        }       \r
                                        else\r
                                        {\r
@@ -896,10 +905,13 @@ static long proximity_dev_ioctl(struct file *file,
                                        mutex_unlock(&sensor->operation_mutex);              \r
                                        goto error;\r
                                        }\r
-                                       if(sensor->pdata->irq_enable && (!(sensor->ops->trig & IRQF_SHARED)))\r
+                                       if(sensor->pdata->irq_enable)\r
                                        {                               \r
-                                               DBG("%s:disable irq,irq=%d\n",__func__,client->irq);\r
-                                               disable_irq_nosync(client->irq);//disable irq\r
+                                               if(!(sensor->ops->trig & IRQF_SHARED))\r
+                                               {\r
+                                                       DBG("%s:disable irq,irq=%d\n",__func__,client->irq);\r
+                                                       disable_irq_nosync(client->irq);//disable irq\r
+                                               }\r
                                        }\r
                                        else\r
                                        cancel_delayed_work_sync(&sensor->delaywork);           \r