Loading drivers/misc/apds993x.c +26 −12 Original line number Diff line number Diff line Loading @@ -268,7 +268,7 @@ static struct sensors_classdev sensors_light_cdev = { .max_range = "30000", .resolution = "0.0125", .sensor_power = "0.20", .min_delay = 1000, /* in microseconds */ .min_delay = 0, /* in microseconds */ .fifo_reserved_event_count = 0, .fifo_max_event_count = 0, .enabled = 0, Loading @@ -286,7 +286,7 @@ static struct sensors_classdev sensors_proximity_cdev = { .max_range = "5", .resolution = "5.0", .sensor_power = "3", .min_delay = 1000, /* in microseconds */ .min_delay = 0, /* in microseconds */ .fifo_reserved_event_count = 0, .fifo_max_event_count = 0, .enabled = 0, Loading Loading @@ -1188,12 +1188,10 @@ static int apds993x_set_als_poll_delay(struct i2c_client *client, pr_debug("%s: val=%d\n", __func__, val); /* minimum 5ms */ if (val < 3000) val = 3000; /* convert us => ms */ data->als_poll_delay = val / 1000; /* minimum 3ms */ if (val < 3) val = 3; data->als_poll_delay = val; if (data->als_poll_delay >= 100) atime_index = APDS993X_ALS_RES_37888; Loading Loading @@ -1754,7 +1752,7 @@ static ssize_t apds993x_show_als_poll_delay(struct device *dev, struct apds993x_data *data = i2c_get_clientdata(client); /* return in micro-second */ return sprintf(buf, "%d\n", data->als_poll_delay * 1000); return snprintf(buf, PAGE_SIZE, "%d\n", data->als_poll_delay); } static ssize_t apds993x_store_als_poll_delay(struct device *dev, Loading @@ -1770,6 +1768,23 @@ static ssize_t apds993x_store_als_poll_delay(struct device *dev, return count; } #ifdef ALS_POLLING_ENABLED static int apds993x_als_poll_delay(struct sensors_classdev *sensors_cdev, unsigned int delay_msec) { struct apds993x_data *data = container_of(sensors_cdev, struct apds993x_data, als_cdev); apds993x_set_als_poll_delay(data->client, delay_msec); return 0; } #else static int apds993x_als_poll_delay(struct sensors_classdev *sensors_cdev, unsigned int delay_msec) { return 0; } #endif static DEVICE_ATTR(als_poll_delay, S_IWUSR | S_IRUGO, apds993x_show_als_poll_delay, apds993x_store_als_poll_delay); Loading Loading @@ -2402,11 +2417,10 @@ static int apds993x_probe(struct i2c_client *client, /* Register to sensors class */ data->als_cdev = sensors_light_cdev; data->als_cdev.sensors_enable = apds993x_als_set_enable; data->als_cdev.sensors_poll_delay = NULL; data->als_cdev.sensors_poll_delay = apds993x_als_poll_delay; data->ps_cdev = sensors_proximity_cdev; data->ps_cdev.sensors_enable = apds993x_ps_set_enable; data->ps_cdev.sensors_poll_delay = NULL, data->ps_cdev.sensors_poll_delay = NULL; err = sensors_classdev_register(&client->dev, &data->als_cdev); if (err) { Loading Loading
drivers/misc/apds993x.c +26 −12 Original line number Diff line number Diff line Loading @@ -268,7 +268,7 @@ static struct sensors_classdev sensors_light_cdev = { .max_range = "30000", .resolution = "0.0125", .sensor_power = "0.20", .min_delay = 1000, /* in microseconds */ .min_delay = 0, /* in microseconds */ .fifo_reserved_event_count = 0, .fifo_max_event_count = 0, .enabled = 0, Loading @@ -286,7 +286,7 @@ static struct sensors_classdev sensors_proximity_cdev = { .max_range = "5", .resolution = "5.0", .sensor_power = "3", .min_delay = 1000, /* in microseconds */ .min_delay = 0, /* in microseconds */ .fifo_reserved_event_count = 0, .fifo_max_event_count = 0, .enabled = 0, Loading Loading @@ -1188,12 +1188,10 @@ static int apds993x_set_als_poll_delay(struct i2c_client *client, pr_debug("%s: val=%d\n", __func__, val); /* minimum 5ms */ if (val < 3000) val = 3000; /* convert us => ms */ data->als_poll_delay = val / 1000; /* minimum 3ms */ if (val < 3) val = 3; data->als_poll_delay = val; if (data->als_poll_delay >= 100) atime_index = APDS993X_ALS_RES_37888; Loading Loading @@ -1754,7 +1752,7 @@ static ssize_t apds993x_show_als_poll_delay(struct device *dev, struct apds993x_data *data = i2c_get_clientdata(client); /* return in micro-second */ return sprintf(buf, "%d\n", data->als_poll_delay * 1000); return snprintf(buf, PAGE_SIZE, "%d\n", data->als_poll_delay); } static ssize_t apds993x_store_als_poll_delay(struct device *dev, Loading @@ -1770,6 +1768,23 @@ static ssize_t apds993x_store_als_poll_delay(struct device *dev, return count; } #ifdef ALS_POLLING_ENABLED static int apds993x_als_poll_delay(struct sensors_classdev *sensors_cdev, unsigned int delay_msec) { struct apds993x_data *data = container_of(sensors_cdev, struct apds993x_data, als_cdev); apds993x_set_als_poll_delay(data->client, delay_msec); return 0; } #else static int apds993x_als_poll_delay(struct sensors_classdev *sensors_cdev, unsigned int delay_msec) { return 0; } #endif static DEVICE_ATTR(als_poll_delay, S_IWUSR | S_IRUGO, apds993x_show_als_poll_delay, apds993x_store_als_poll_delay); Loading Loading @@ -2402,11 +2417,10 @@ static int apds993x_probe(struct i2c_client *client, /* Register to sensors class */ data->als_cdev = sensors_light_cdev; data->als_cdev.sensors_enable = apds993x_als_set_enable; data->als_cdev.sensors_poll_delay = NULL; data->als_cdev.sensors_poll_delay = apds993x_als_poll_delay; data->ps_cdev = sensors_proximity_cdev; data->ps_cdev.sensors_enable = apds993x_ps_set_enable; data->ps_cdev.sensors_poll_delay = NULL, data->ps_cdev.sensors_poll_delay = NULL; err = sensors_classdev_register(&client->dev, &data->als_cdev); if (err) { Loading