You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/07/26 02:40:29 UTC

[incubator-nuttx] 03/07: driver/sensor: change protype of set_interval, batch to follow ioctl

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 8d971101cd7531779a13205770382e61c871823f
Author: Jiuzhu Dong <do...@xiaomi.com>
AuthorDate: Fri Mar 11 11:03:02 2022 +0800

    driver/sensor: change protype of set_interval, batch to follow ioctl
    
    1. change unsigned int to unsigned long
    
    Signed-off-by: Jiuzhu Dong <do...@xiaomi.com>
---
 drivers/sensors/bmp280.c       |  4 ++--
 drivers/sensors/ds18b20.c      |  6 +++---
 drivers/sensors/fakesensor.c   | 16 ++++++++--------
 drivers/sensors/hyt271.c       |  6 +++---
 drivers/sensors/ms5611.c       |  6 +++---
 drivers/sensors/sensor.c       | 19 +++++++++----------
 drivers/sensors/wtgahrs2.c     | 10 +++++-----
 include/nuttx/sensors/sensor.h |  4 ++--
 8 files changed, 35 insertions(+), 36 deletions(-)

diff --git a/drivers/sensors/bmp280.c b/drivers/sensors/bmp280.c
index 703cd8e059..07bb96d19d 100644
--- a/drivers/sensors/bmp280.c
+++ b/drivers/sensors/bmp280.c
@@ -160,7 +160,7 @@ static int bmp280_putreg8(FAR struct bmp280_dev_s *priv, uint8_t regaddr,
 /* Sensor methods */
 
 static int bmp280_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                               FAR unsigned int *period_us);
+                               FAR unsigned long *period_us);
 static int bmp280_activate(FAR struct sensor_lowerhalf_s *lower,
                            bool enable);
 static int bmp280_fetch(FAR struct sensor_lowerhalf_s *lower,
@@ -504,7 +504,7 @@ static uint32_t bmp280_compensate_press(FAR struct bmp280_dev_s *priv,
  ****************************************************************************/
 
 static int bmp280_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                               FAR unsigned int *period_us)
+                               FAR unsigned long *period_us)
 {
   FAR struct bmp280_dev_s *priv = container_of(lower,
                                                FAR struct bmp280_dev_s,
diff --git a/drivers/sensors/ds18b20.c b/drivers/sensors/ds18b20.c
index cba9e686d6..ad77d4bf3b 100644
--- a/drivers/sensors/ds18b20.c
+++ b/drivers/sensors/ds18b20.c
@@ -146,7 +146,7 @@ struct ds18b20_dev_s
   struct onewire_config_s     config;         /* 1wire device configuration */
   struct ds18b20_config_s     reg;            /* Sensor resolution */
 #ifdef CONFIG_SENSORS_DS18B20_POLL
-  unsigned int                interval;       /* Polling interval */
+  unsigned long               interval;       /* Polling interval */
   sem_t                       run;            /* Locks sensor thread */
 #endif
 };
@@ -168,7 +168,7 @@ static int ds18b20_control(FAR struct sensor_lowerhalf_s *lower,
 
 #ifdef CONFIG_SENSORS_DS18B20_POLL
 static int ds18b20_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                                FAR unsigned int *period_us);
+                                FAR unsigned long *period_us);
 #endif
 
 /****************************************************************************
@@ -778,7 +778,7 @@ static int ds18b20_active(FAR struct sensor_lowerhalf_s *lower,
 
 #ifdef CONFIG_SENSORS_DS18B20_POLL
 static int ds18b20_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                               FAR unsigned int *period_us)
+                               FAR unsigned long *period_us)
 {
   FAR struct ds18b20_dev_s *priv = (FAR struct ds18b20_dev_s *)lower;
   priv->interval = *period_us;
diff --git a/drivers/sensors/fakesensor.c b/drivers/sensors/fakesensor.c
index 8631e4dc2a..ee27e45317 100644
--- a/drivers/sensors/fakesensor.c
+++ b/drivers/sensors/fakesensor.c
@@ -47,8 +47,8 @@ struct fakesensor_s
 {
   struct sensor_lowerhalf_s lower;
   struct file data;
-  unsigned int interval;
-  unsigned int batch;
+  unsigned long interval;
+  unsigned long batch;
   int raw_start;
   FAR const char *file_path;
   sem_t wakeup;
@@ -62,9 +62,9 @@ struct fakesensor_s
 static int fakesensor_activate(FAR struct sensor_lowerhalf_s *lower,
                                bool sw);
 static int fakesensor_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                                   FAR unsigned int *period_us);
+                                   FAR unsigned long *period_us);
 static int fakesensor_batch(FAR struct sensor_lowerhalf_s *lower,
-                            FAR unsigned int *latency_us);
+                            FAR unsigned long *latency_us);
 static void fakesensor_push_event(FAR struct sensor_lowerhalf_s *lower);
 static int fakesensor_thread(int argc, char** argv);
 
@@ -120,7 +120,7 @@ static int fakesensor_read_csv_header(FAR struct fakesensor_s *sensor)
       fakesensor_read_csv_line(&sensor->data, buffer, sizeof(buffer), 0);
   if (sensor->interval == 0)
     {
-      sscanf(buffer, "interval:%d\n", &sensor->interval);
+      sscanf(buffer, "interval:%lu\n", &sensor->interval);
       sensor->interval *= 1000;
     }
 
@@ -234,7 +234,7 @@ static int fakesensor_activate(FAR struct sensor_lowerhalf_s *lower, bool sw)
 }
 
 static int fakesensor_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                                   FAR unsigned int *period_us)
+                                   FAR unsigned long *period_us)
 {
   FAR struct fakesensor_s *sensor = container_of(lower,
                                                  struct fakesensor_s, lower);
@@ -243,11 +243,11 @@ static int fakesensor_set_interval(FAR struct sensor_lowerhalf_s *lower,
 }
 
 static int fakesensor_batch(FAR struct sensor_lowerhalf_s *lower,
-                            FAR unsigned int *latency_us)
+                            FAR unsigned long *latency_us)
 {
   FAR struct fakesensor_s *sensor = container_of(lower,
                                                  struct fakesensor_s, lower);
-  uint32_t max_latency = sensor->lower.buffer_number * sensor->interval;
+  unsigned long max_latency = sensor->lower.buffer_number * sensor->interval;
   if (*latency_us > max_latency)
     {
       *latency_us = max_latency;
diff --git a/drivers/sensors/hyt271.c b/drivers/sensors/hyt271.c
index a2a0744d19..744277e0e3 100644
--- a/drivers/sensors/hyt271.c
+++ b/drivers/sensors/hyt271.c
@@ -96,7 +96,7 @@ struct hyt271_dev_s
   sem_t                   lock_measure_cycle;       /* Locks measure cycle */
   uint32_t                freq;                     /* I2C Frequency */
 #ifdef CONFIG_SENSORS_HYT271_POLL
-  unsigned int            interval;                 /* Polling interval */
+  unsigned long           interval;                 /* Polling interval */
   sem_t                   run;                      /* Locks sensor thread */
   bool                    initial_read;             /* Already read */
 #endif
@@ -120,7 +120,7 @@ static int hyt271_control(FAR struct sensor_lowerhalf_s *lower,
 
 #ifdef CONFIG_SENSORS_HYT271_POLL
 static int hyt271_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                               FAR unsigned int *period_us);
+                               FAR unsigned long *period_us);
 #endif
 
 /****************************************************************************
@@ -751,7 +751,7 @@ static int hyt271_active(FAR struct sensor_lowerhalf_s *lower,
 
 #ifdef CONFIG_SENSORS_HYT271_POLL
 static int hyt271_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                               FAR unsigned int *period_us)
+                               FAR unsigned long *period_us)
 {
   FAR struct hyt271_sensor_s *priv = (FAR struct hyt271_sensor_s *)lower;
   priv->dev->interval = *period_us;
diff --git a/drivers/sensors/ms5611.c b/drivers/sensors/ms5611.c
index 60b321b24b..97a4b6bd36 100644
--- a/drivers/sensors/ms5611.c
+++ b/drivers/sensors/ms5611.c
@@ -94,7 +94,7 @@ struct ms5611_dev_s
 
   uint32_t                  freq;      /* Bus Frequency I2C/SPI */
   struct ms5611_calib_s     calib;     /* Calib. params from ROM */
-  unsigned int              interval;  /* Polling interval */
+  unsigned long             interval;  /* Polling interval */
   bool                      enabled;   /* Enable/Disable MS5611 */
   sem_t                     run;       /* Locks measure cycle */
   sem_t                     exclsem;   /* Manages exclusive to device */
@@ -121,7 +121,7 @@ static unsigned long ms5611_curtime(void);
 /* Sensor methods */
 
 static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                               FAR unsigned int *period_us);
+                               FAR unsigned long *period_us);
 static int ms5611_activate(FAR struct sensor_lowerhalf_s *lower,
                            bool enable);
 
@@ -540,7 +540,7 @@ static uint32_t ms5611_compensate_press(FAR struct ms5611_dev_s *priv,
  ****************************************************************************/
 
 static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                               FAR unsigned int *period_us)
+                               FAR unsigned long *period_us)
 {
   FAR struct ms5611_dev_s *priv = container_of(lower,
                                                FAR struct ms5611_dev_s,
diff --git a/drivers/sensors/sensor.c b/drivers/sensors/sensor.c
index 9c8db17081..1dada70e8b 100644
--- a/drivers/sensors/sensor.c
+++ b/drivers/sensors/sensor.c
@@ -75,8 +75,8 @@ struct sensor_upperhalf_s
   sem_t              exclsem;            /* Manages exclusive access to file operations */
   sem_t              buffersem;          /* Wakeup user waiting for data in circular buffer */
   bool               enabled;            /* The status of sensor enable or disable */
-  unsigned int       interval;           /* The sample interval for sensor, in us */
-  unsigned int       latency;            /* The batch latency for sensor, in us */
+  unsigned long      interval;           /* The sample interval for sensor, in us */
+  unsigned long      latency;            /* The batch latency for sensor, in us */
 };
 
 /****************************************************************************
@@ -340,7 +340,6 @@ static int sensor_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
   FAR struct inode *inode = filep->f_inode;
   FAR struct sensor_upperhalf_s *upper = inode->i_private;
   FAR struct sensor_lowerhalf_s *lower = upper->lower;
-  FAR unsigned int *val = (unsigned int *)(uintptr_t)arg;
   int ret;
 
   sninfo("cmd=%x arg=%08lx\n", cmd, arg);
@@ -382,15 +381,15 @@ static int sensor_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
               break;
             }
 
-          if (upper->interval == *val)
+          if (upper->interval == arg)
             {
               break;
             }
 
-          ret = lower->ops->set_interval(lower, val);
+          ret = lower->ops->set_interval(lower, &arg);
           if (ret >= 0)
             {
-              upper->interval = *val;
+              upper->interval = arg;
             }
         }
         break;
@@ -409,15 +408,15 @@ static int sensor_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
               break;
             }
 
-          if (upper->latency == *val)
+          if (upper->latency == arg)
             {
               break;
             }
 
-          ret = lower->ops->batch(lower, val);
+          ret = lower->ops->batch(lower, &arg);
           if (ret >= 0)
             {
-              upper->latency = *val;
+              upper->latency = arg;
             }
         }
         break;
@@ -460,7 +459,7 @@ static int sensor_ioctl(FAR struct file *filep, int cmd, unsigned long arg)
 
       case SNIOC_GET_NEVENTBUF:
         {
-          *val = lower->buffer_number;
+          *(FAR uint32_t *)(uintptr_t)arg = lower->buffer_number;
         }
         break;
 
diff --git a/drivers/sensors/wtgahrs2.c b/drivers/sensors/wtgahrs2.c
index 34ebd94106..004fb23eab 100644
--- a/drivers/sensors/wtgahrs2.c
+++ b/drivers/sensors/wtgahrs2.c
@@ -73,8 +73,8 @@
 struct wtgahrs2_sensor_s
 {
   struct sensor_lowerhalf_s lower;
-  unsigned int              interval;
-  unsigned int              last_update;
+  unsigned long             interval;
+  uint64_t                  last_update;
   bool                      enable;
 };
 
@@ -97,7 +97,7 @@ struct wtgahrs2_dev_s
 
 static int wtgahrs2_activate(FAR struct sensor_lowerhalf_s *lower, bool sw);
 static int wtgahrs2_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                                 FAR unsigned int *interval);
+                                 FAR unsigned long *interval);
 
 /****************************************************************************
  * Private Data
@@ -105,7 +105,7 @@ static int wtgahrs2_set_interval(FAR struct sensor_lowerhalf_s *lower,
 
 /* in microseconds */
 
-static const unsigned int g_wtgahrs2_interval[] =
+static const unsigned long g_wtgahrs2_interval[] =
 {
   10000000,  /* 0.1 hz */
   2000000,   /* 0.5 hz */
@@ -161,7 +161,7 @@ static int wtgahrs2_activate(FAR struct sensor_lowerhalf_s *lower, bool sw)
 }
 
 static int wtgahrs2_set_interval(FAR struct sensor_lowerhalf_s *lower,
-                                 FAR unsigned int *interval)
+                                 FAR unsigned long *interval)
 {
   FAR struct wtgahrs2_sensor_s *dev = (FAR struct wtgahrs2_sensor_s *)lower;
   int idx = 0;
diff --git a/include/nuttx/sensors/sensor.h b/include/nuttx/sensors/sensor.h
index c6ea2aa049..0285144904 100644
--- a/include/nuttx/sensors/sensor.h
+++ b/include/nuttx/sensors/sensor.h
@@ -628,7 +628,7 @@ struct sensor_ops_s
    **************************************************************************/
 
   CODE int (*set_interval)(FAR struct sensor_lowerhalf_s *lower,
-                           FAR unsigned int *period_us);
+                           FAR unsigned long *period_us);
 
   /**************************************************************************
    * Name: batch
@@ -672,7 +672,7 @@ struct sensor_ops_s
    **************************************************************************/
 
   CODE int (*batch)(FAR struct sensor_lowerhalf_s *lower,
-                    FAR unsigned int *latency_us);
+                    FAR unsigned long *latency_us);
 
   /**************************************************************************
    * Name: fetch