Merge 4.8-rc5 into staging-next
We want the staging fixes in here as well to handle merge issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -6,6 +6,8 @@ menu "Humidity sensors"
|
||||
config AM2315
|
||||
tristate "Aosong AM2315 relative humidity and temperature sensor"
|
||||
depends on I2C
|
||||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
help
|
||||
If you say yes here you get support for the Aosong AM2315
|
||||
relative humidity and ambient temperature sensor.
|
||||
|
@@ -244,7 +244,7 @@ static int am2315_probe(struct i2c_client *client,
|
||||
indio_dev->channels = am2315_channels;
|
||||
indio_dev->num_channels = ARRAY_SIZE(am2315_channels);
|
||||
|
||||
ret = iio_triggered_buffer_setup(indio_dev, NULL,
|
||||
ret = iio_triggered_buffer_setup(indio_dev, iio_pollfunc_store_time,
|
||||
am2315_trigger_handler, NULL);
|
||||
if (ret < 0) {
|
||||
dev_err(&client->dev, "iio triggered buffer setup failed\n");
|
||||
|
@@ -142,7 +142,7 @@ static int hdc100x_get_measurement(struct hdc100x_data *data,
|
||||
struct i2c_client *client = data->client;
|
||||
int delay = data->adc_int_us[chan->address];
|
||||
int ret;
|
||||
int val;
|
||||
__be16 val;
|
||||
|
||||
/* start measurement */
|
||||
ret = i2c_smbus_write_byte(client, chan->address);
|
||||
@@ -154,26 +154,13 @@ static int hdc100x_get_measurement(struct hdc100x_data *data,
|
||||
/* wait for integration time to pass */
|
||||
usleep_range(delay, delay + 1000);
|
||||
|
||||
/*
|
||||
* i2c_smbus_read_word_data cannot() be used here due to the command
|
||||
* value not being understood and causes NAKs preventing any reading
|
||||
* from being accessed.
|
||||
*/
|
||||
ret = i2c_smbus_read_byte(client);
|
||||
/* read measurement */
|
||||
ret = i2c_master_recv(data->client, (char *)&val, sizeof(val));
|
||||
if (ret < 0) {
|
||||
dev_err(&client->dev, "cannot read high byte measurement");
|
||||
dev_err(&client->dev, "cannot read sensor data\n");
|
||||
return ret;
|
||||
}
|
||||
val = ret << 8;
|
||||
|
||||
ret = i2c_smbus_read_byte(client);
|
||||
if (ret < 0) {
|
||||
dev_err(&client->dev, "cannot read low byte measurement");
|
||||
return ret;
|
||||
}
|
||||
val |= ret;
|
||||
|
||||
return val;
|
||||
return be16_to_cpu(val);
|
||||
}
|
||||
|
||||
static int hdc100x_get_heater_status(struct hdc100x_data *data)
|
||||
@@ -272,8 +259,8 @@ static int hdc100x_probe(struct i2c_client *client,
|
||||
struct iio_dev *indio_dev;
|
||||
struct hdc100x_data *data;
|
||||
|
||||
if (!i2c_check_functionality(client->adapter,
|
||||
I2C_FUNC_SMBUS_WORD_DATA | I2C_FUNC_SMBUS_BYTE))
|
||||
if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA |
|
||||
I2C_FUNC_SMBUS_BYTE | I2C_FUNC_I2C))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*data));
|
||||
|
Reference in New Issue
Block a user