소스 검색

[drivers/sensor]disable irq only when the sensor and module sensors are all cloesed.

Fanming 5 년 전
부모
커밋
f3ee2dd186
1개의 변경된 파일5개의 추가작업 그리고 6개의 파일을 삭제
  1. 5 6
      components/drivers/sensors/sensor.c

+ 5 - 6
components/drivers/sensors/sensor.c

@@ -211,12 +211,6 @@ static rt_err_t rt_sensor_close(rt_device_t dev)
         sensor->config.power = RT_SENSOR_POWER_DOWN;
     }
 
-    /* Sensor disable interrupt */
-    if (sensor->config.irq_pin.pin != RT_PIN_NONE)
-    {
-        rt_pin_irq_enable(sensor->config.irq_pin.pin, RT_FALSE);
-    }
-
     if (sensor->module != RT_NULL && sensor->info.fifo_max > 0 && sensor->data_buf != RT_NULL)
     {
         for (i = 0; i < sensor->module->sen_num; i ++)
@@ -235,6 +229,11 @@ static rt_err_t rt_sensor_close(rt_device_t dev)
             }
         }
     }
+    /* Sensor disable interrupt */
+    if (sensor->config.irq_pin.pin != RT_PIN_NONE)
+    {
+        rt_pin_irq_enable(sensor->config.irq_pin.pin, RT_FALSE);
+    }
 
 __exit:
     if (sensor->module)