lkml.org 
[lkml]   [2020]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 1/2] iio: cros_ec: do an early exit if not physical_device case
Date
This whole code-block was put under one big if() condition/block.
This change does an early return if the 'physical_device' boolean is false,
thus unindenting the block by one level.

No other functional change has been done.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
---
.../cros_ec_sensors/cros_ec_sensors_core.c | 161 +++++++++---------
1 file changed, 81 insertions(+), 80 deletions(-)

diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
index 5c6c4e6fec9b..9470014936f2 100644
--- a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
+++ b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
@@ -287,89 +287,90 @@ int cros_ec_sensors_core_init(struct platform_device *pdev,

indio_dev->name = pdev->name;

- if (physical_device) {
- state->param.cmd = MOTIONSENSE_CMD_INFO;
- state->param.info.sensor_num = sensor_platform->sensor_num;
- ret = cros_ec_motion_send_host_cmd(state, 0);
- if (ret) {
- dev_warn(dev, "Can not access sensor info\n");
+ if (!physical_device)
+ return 0;
+
+ state->param.cmd = MOTIONSENSE_CMD_INFO;
+ state->param.info.sensor_num = sensor_platform->sensor_num;
+ ret = cros_ec_motion_send_host_cmd(state, 0);
+ if (ret) {
+ dev_warn(dev, "Can not access sensor info\n");
+ return ret;
+ }
+ state->type = state->resp->info.type;
+ state->loc = state->resp->info.location;
+
+ /* Set sign vector, only used for backward compatibility. */
+ memset(state->sign, 1, CROS_EC_SENSOR_MAX_AXIS);
+
+ for (i = CROS_EC_SENSOR_X; i < CROS_EC_SENSOR_MAX_AXIS; i++)
+ state->calib[i].scale = MOTION_SENSE_DEFAULT_SCALE;
+
+ /* 0 is a correct value used to stop the device */
+ if (state->msg->version < 3) {
+ get_default_min_max_freq(state->resp->info.type,
+ &frequencies[1],
+ &frequencies[2],
+ &state->fifo_max_event_count);
+ } else {
+ frequencies[1] = state->resp->info_3.min_frequency;
+ frequencies[2] = state->resp->info_3.max_frequency;
+ state->fifo_max_event_count =
+ state->resp->info_3.fifo_max_event_count;
+ }
+ for (i = 0; i < ARRAY_SIZE(frequencies); i++) {
+ state->frequencies[2 * i] = frequencies[i] / 1000;
+ state->frequencies[2 * i + 1] =
+ (frequencies[i] % 1000) * 1000;
+ }
+
+ if (cros_ec_check_features(ec, EC_FEATURE_MOTION_SENSE_FIFO)) {
+ /*
+ * Create a software buffer, feed by the EC FIFO.
+ * We can not use trigger here, as events are generated
+ * as soon as sample_frequency is set.
+ */
+ struct iio_buffer *buffer;
+
+ buffer = devm_iio_kfifo_allocate(dev);
+ if (!buffer)
+ return -ENOMEM;
+
+ iio_device_attach_buffer(indio_dev, buffer);
+ indio_dev->modes = INDIO_BUFFER_SOFTWARE;
+
+ ret = cros_ec_sensorhub_register_push_data(
+ sensor_hub, sensor_platform->sensor_num,
+ indio_dev, push_data);
+ if (ret)
return ret;
- }
- state->type = state->resp->info.type;
- state->loc = state->resp->info.location;

- /* Set sign vector, only used for backward compatibility. */
- memset(state->sign, 1, CROS_EC_SENSOR_MAX_AXIS);
+ ret = devm_add_action_or_reset(
+ dev, cros_ec_sensors_core_clean, pdev);
+ if (ret)
+ return ret;

- for (i = CROS_EC_SENSOR_X; i < CROS_EC_SENSOR_MAX_AXIS; i++)
- state->calib[i].scale = MOTION_SENSE_DEFAULT_SCALE;
-
- /* 0 is a correct value used to stop the device */
- if (state->msg->version < 3) {
- get_default_min_max_freq(state->resp->info.type,
- &frequencies[1],
- &frequencies[2],
- &state->fifo_max_event_count);
- } else {
- frequencies[1] = state->resp->info_3.min_frequency;
- frequencies[2] = state->resp->info_3.max_frequency;
- state->fifo_max_event_count =
- state->resp->info_3.fifo_max_event_count;
- }
- for (i = 0; i < ARRAY_SIZE(frequencies); i++) {
- state->frequencies[2 * i] = frequencies[i] / 1000;
- state->frequencies[2 * i + 1] =
- (frequencies[i] % 1000) * 1000;
- }
-
- if (cros_ec_check_features(ec, EC_FEATURE_MOTION_SENSE_FIFO)) {
- /*
- * Create a software buffer, feed by the EC FIFO.
- * We can not use trigger here, as events are generated
- * as soon as sample_frequency is set.
- */
- struct iio_buffer *buffer;
-
- buffer = devm_iio_kfifo_allocate(dev);
- if (!buffer)
- return -ENOMEM;
-
- iio_device_attach_buffer(indio_dev, buffer);
- indio_dev->modes = INDIO_BUFFER_SOFTWARE;
-
- ret = cros_ec_sensorhub_register_push_data(
- sensor_hub, sensor_platform->sensor_num,
- indio_dev, push_data);
- if (ret)
- return ret;
-
- ret = devm_add_action_or_reset(
- dev, cros_ec_sensors_core_clean, pdev);
- if (ret)
- return ret;
-
- /* Timestamp coming from FIFO are in ns since boot. */
- ret = iio_device_set_clock(indio_dev, CLOCK_BOOTTIME);
- if (ret)
- return ret;
- } else {
- const struct attribute **fifo_attrs;
-
- if (has_hw_fifo)
- fifo_attrs = cros_ec_sensor_fifo_attributes;
- else
- fifo_attrs = NULL;
-
- /*
- * The only way to get samples in buffer is to set a
- * software trigger (systrig, hrtimer).
- */
- ret = devm_iio_triggered_buffer_setup_ext(
- dev, indio_dev, NULL, trigger_capture,
- NULL, fifo_attrs);
- if (ret)
- return ret;
- }
+ /* Timestamp coming from FIFO are in ns since boot. */
+ ret = iio_device_set_clock(indio_dev, CLOCK_BOOTTIME);
+ if (ret)
+ return ret;
+ } else {
+ const struct attribute **fifo_attrs;
+
+ if (has_hw_fifo)
+ fifo_attrs = cros_ec_sensor_fifo_attributes;
+ else
+ fifo_attrs = NULL;
+
+ /*
+ * The only way to get samples in buffer is to set a
+ * software trigger (systrig, hrtimer).
+ */
+ ret = devm_iio_triggered_buffer_setup_ext(
+ dev, indio_dev, NULL, trigger_capture,
+ NULL, fifo_attrs);
+ if (ret)
+ return ret;
}

return 0;
--
2.17.1
\
 
 \ /
  Last update: 2020-11-23 15:41    [W:0.071 / U:0.264 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site