Commit 0c4c4a86 authored by Jonathan Cameron's avatar Jonathan Cameron
Browse files

staging:iio:cdc:ad7150: Refactor event parameter update



Original code was ordered in a fairly unituitive fashion with
the non adaptive threshold handling returning from the switch
statement, whilst the adapative path did the actual writes outside
the switch.   Make it more readable by bringing everything within
the switch statement cases and reducing scope of local variables
as appropriate.

Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
Link: https://lore.kernel.org/r/20210314181511.531414-4-jic23@kernel.org
parent 1a17e7cb
Loading
Loading
Loading
Loading
+17 −15
Original line number Diff line number Diff line
@@ -163,9 +163,6 @@ static int ad7150_write_event_params(struct iio_dev *indio_dev,
				     enum iio_event_type type,
				     enum iio_event_direction dir)
{
	int ret;
	u16 value;
	u8 sens, timeout;
	struct ad7150_chip_info *chip = iio_priv(indio_dev);
	int rising = (dir == IIO_EV_DIR_RISING);
	u64 event_code;
@@ -177,27 +174,32 @@ static int ad7150_write_event_params(struct iio_dev *indio_dev,

	switch (type) {
		/* Note completely different from the adaptive versions */
	case IIO_EV_TYPE_THRESH:
		value = chip->threshold[rising][chan];
	case IIO_EV_TYPE_THRESH: {
		u16 value = chip->threshold[rising][chan];
		return i2c_smbus_write_word_swapped(chip->client,
						    ad7150_addresses[chan][3],
						    value);
	case IIO_EV_TYPE_THRESH_ADAPTIVE:
		sens = chip->thresh_sensitivity[rising][chan];
		timeout = chip->thresh_timeout[rising][chan];
		break;
	default:
		return -EINVAL;
	}
	case IIO_EV_TYPE_THRESH_ADAPTIVE: {
		int ret;
		u8 sens, timeout;

		sens = chip->thresh_sensitivity[rising][chan];
		ret = i2c_smbus_write_byte_data(chip->client,
						ad7150_addresses[chan][4],
						sens);
		if (ret)
			return ret;

		timeout = chip->thresh_timeout[rising][chan];
		return i2c_smbus_write_byte_data(chip->client,
						 ad7150_addresses[chan][5],
						 timeout);
	}
	default:
		return -EINVAL;
	}
}

static int ad7150_write_event_config(struct iio_dev *indio_dev,
				     const struct iio_chan_spec *chan,