First round of fixes for IIO post 3.8-rc1.
A set of worthy if rather dull little fixes. * A whole set of incorrect error handling on regulator voltage requests. * An error in the probe path for max1363. * A couple of Kconfig issues with missing/ignored dependencies. * A nasty shift vs compare typo in adf4350 * Bug fixes for a silly error that prevents at91_adc driver building. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIcBAABAgAGBQJQ4xe4AAoJEFSFNJnE9BaIhl8P/AyoE0zzKTsG+KpmvMVI6Swj +JsZXI/aOBf2kfbyIUpB+P6wUjH3wxv9kR08p63xHwiHZZ++yAmKVhx4A1CYicyX S1Nhmx7r/iW0INgXXXxdYUXSyPUN0tkNaD6cO9O/SV4/0Fmb2EogzfkMazkMu9jz 5sEFLMUuvo1XFud5fJoHhUB9Qzu3KuumCrj+tpOq+u1jIKRbba5IXCgBpKjs6vBS isk1Ui0Vf2adQUKwGI29Asppx+eUF9GoiiylRwaX+UQiNPc9BxPbA0yBLTNTc08v 0qrspqZh8j7Ei5qTNZKFcO4Pt5J27LZaAmCquNGG2ykU20T4AD0epZRlhutrFdF0 TdrIJkfznwMJT3P43Uk43WYdZGNEB4vE2TkVw7p21VirjlgWyJLiK8V2DlHboSHV 3ZQtX5ni59GbXUFQvk2AP4YuNe9Hd5Bw/MzdhfZZOZXuXnWpF5FTJyfnUrCkRnWc eBRW7H9zM7LSWjmgGZ5ls8TTyXzT72dRuZt/ECVbXPFlEM5IKP3I1bwMA3/30qoZ ro37Q7PlJ2QprvfNNF3X4osUOUjoXW0d8REAK+BLLHxSE4M1Og2tLkHOmeboqVvM f1ZXRGsbHg16DWhGT5PpY9EuKYpXrDM4fsddlSphENzgCPLoSjHgKjZDM3aYy6La 0xxOKkweMtKNdFlaE9LR =ZA43 -----END PGP SIGNATURE----- Merge tag 'iio-fixes-for-3.8a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus Jonathan says: First round of fixes for IIO post 3.8-rc1. A set of worthy if rather dull little fixes. * A whole set of incorrect error handling on regulator voltage requests. * An error in the probe path for max1363. * A couple of Kconfig issues with missing/ignored dependencies. * A nasty shift vs compare typo in adf4350 * Bug fixes for a silly error that prevents at91_adc driver building.
This commit is contained in:
Коммит
ef1d17d7d8
|
@ -8,6 +8,7 @@ config HID_SENSOR_ACCEL_3D
|
|||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Accelerometers 3D"
|
||||
help
|
||||
Say yes here to build support for the HID SENSOR
|
||||
|
|
|
@ -411,7 +411,11 @@ static int __devinit ad7266_probe(struct spi_device *spi)
|
|||
if (ret)
|
||||
goto error_put_reg;
|
||||
|
||||
st->vref_uv = regulator_get_voltage(st->reg);
|
||||
ret = regulator_get_voltage(st->reg);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg;
|
||||
|
||||
st->vref_uv = ret;
|
||||
} else {
|
||||
/* Use internal reference */
|
||||
st->vref_uv = 2500000;
|
||||
|
|
|
@ -80,7 +80,7 @@ static irqreturn_t at91_adc_trigger_handler(int irq, void *p)
|
|||
*timestamp = pf->timestamp;
|
||||
}
|
||||
|
||||
iio_push_to_buffers(indio_dev, (u8 *)st->buffer);
|
||||
iio_push_to_buffers(idev, (u8 *)st->buffer);
|
||||
|
||||
iio_trigger_notify_done(idev->trig);
|
||||
|
||||
|
|
|
@ -1605,19 +1605,20 @@ static int __devinit max1363_probe(struct i2c_client *client,
|
|||
|
||||
return 0;
|
||||
error_free_irq:
|
||||
free_irq(st->client->irq, indio_dev);
|
||||
if (client->irq)
|
||||
free_irq(st->client->irq, indio_dev);
|
||||
error_uninit_buffer:
|
||||
iio_buffer_unregister(indio_dev);
|
||||
error_cleanup_buffer:
|
||||
max1363_buffer_cleanup(indio_dev);
|
||||
error_free_available_scan_masks:
|
||||
kfree(indio_dev->available_scan_masks);
|
||||
error_unregister_map:
|
||||
iio_map_array_unregister(indio_dev, client->dev.platform_data);
|
||||
error_disable_reg:
|
||||
regulator_disable(st->reg);
|
||||
error_put_reg:
|
||||
regulator_put(st->reg);
|
||||
error_unregister_map:
|
||||
iio_map_array_unregister(indio_dev, client->dev.platform_data);
|
||||
error_free_device:
|
||||
iio_device_free(indio_dev);
|
||||
error_out:
|
||||
|
@ -1635,10 +1636,8 @@ static int __devexit max1363_remove(struct i2c_client *client)
|
|||
iio_buffer_unregister(indio_dev);
|
||||
max1363_buffer_cleanup(indio_dev);
|
||||
kfree(indio_dev->available_scan_masks);
|
||||
if (!IS_ERR(st->reg)) {
|
||||
regulator_disable(st->reg);
|
||||
regulator_put(st->reg);
|
||||
}
|
||||
regulator_disable(st->reg);
|
||||
regulator_put(st->reg);
|
||||
iio_map_array_unregister(indio_dev, client->dev.platform_data);
|
||||
iio_device_free(indio_dev);
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ menu "Hid Sensor IIO Common"
|
|||
config HID_SENSOR_IIO_COMMON
|
||||
tristate "Common modules for all HID Sensor IIO drivers"
|
||||
depends on HID_SENSOR_HUB
|
||||
select IIO_TRIGGER if IIO_BUFFER
|
||||
select HID_SENSOR_IIO_TRIGGER if IIO_BUFFER
|
||||
help
|
||||
Say yes here to build support for HID sensor to use
|
||||
HID sensor common processing for attributes and IIO triggers.
|
||||
|
@ -14,6 +14,17 @@ config HID_SENSOR_IIO_COMMON
|
|||
HID sensor drivers, this module contains processing for those
|
||||
attributes.
|
||||
|
||||
config HID_SENSOR_IIO_TRIGGER
|
||||
tristate "Common module (trigger) for all HID Sensor IIO drivers"
|
||||
depends on HID_SENSOR_HUB && HID_SENSOR_IIO_COMMON
|
||||
select IIO_TRIGGER
|
||||
help
|
||||
Say yes here to build trigger support for HID sensors.
|
||||
Triggers will be send if all requested attributes were read.
|
||||
|
||||
If this driver is compiled as a module, it will be named
|
||||
hid-sensor-trigger.
|
||||
|
||||
config HID_SENSOR_ENUM_BASE_QUIRKS
|
||||
bool "ENUM base quirks for HID Sensor IIO drivers"
|
||||
depends on HID_SENSOR_IIO_COMMON
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
#
|
||||
|
||||
obj-$(CONFIG_HID_SENSOR_IIO_COMMON) += hid-sensor-iio-common.o
|
||||
hid-sensor-iio-common-y := hid-sensor-attributes.o hid-sensor-trigger.o
|
||||
obj-$(CONFIG_HID_SENSOR_IIO_TRIGGER) += hid-sensor-trigger.o
|
||||
hid-sensor-iio-common-y := hid-sensor-attributes.o
|
||||
|
|
|
@ -406,7 +406,11 @@ static int __devinit ad5380_probe(struct device *dev, struct regmap *regmap,
|
|||
goto error_free_reg;
|
||||
}
|
||||
|
||||
st->vref = regulator_get_voltage(st->vref_reg);
|
||||
ret = regulator_get_voltage(st->vref_reg);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg;
|
||||
|
||||
st->vref = ret;
|
||||
} else {
|
||||
st->vref = st->chip_info->int_vref;
|
||||
ctrl |= AD5380_CTRL_INT_VREF_EN;
|
||||
|
|
|
@ -226,7 +226,11 @@ static int __devinit ad5446_probe(struct device *dev, const char *name,
|
|||
if (ret)
|
||||
goto error_put_reg;
|
||||
|
||||
voltage_uv = regulator_get_voltage(reg);
|
||||
ret = regulator_get_voltage(reg);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg;
|
||||
|
||||
voltage_uv = ret;
|
||||
}
|
||||
|
||||
indio_dev = iio_device_alloc(sizeof(*st));
|
||||
|
|
|
@ -296,7 +296,11 @@ static int __devinit ad5504_probe(struct spi_device *spi)
|
|||
if (ret)
|
||||
goto error_put_reg;
|
||||
|
||||
voltage_uv = regulator_get_voltage(reg);
|
||||
ret = regulator_get_voltage(reg);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg;
|
||||
|
||||
voltage_uv = ret;
|
||||
}
|
||||
|
||||
spi_set_drvdata(spi, indio_dev);
|
||||
|
|
|
@ -238,7 +238,11 @@ static int __devinit ad5624r_probe(struct spi_device *spi)
|
|||
if (ret)
|
||||
goto error_put_reg;
|
||||
|
||||
voltage_uv = regulator_get_voltage(st->reg);
|
||||
ret = regulator_get_voltage(st->reg);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg;
|
||||
|
||||
voltage_uv = ret;
|
||||
}
|
||||
|
||||
spi_set_drvdata(spi, indio_dev);
|
||||
|
|
|
@ -332,7 +332,11 @@ static int __devinit ad5686_probe(struct spi_device *spi)
|
|||
if (ret)
|
||||
goto error_put_reg;
|
||||
|
||||
voltage_uv = regulator_get_voltage(st->reg);
|
||||
ret = regulator_get_voltage(st->reg);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg;
|
||||
|
||||
voltage_uv = ret;
|
||||
}
|
||||
|
||||
st->chip_info =
|
||||
|
|
|
@ -365,7 +365,11 @@ static int __devinit ad5791_probe(struct spi_device *spi)
|
|||
if (ret)
|
||||
goto error_put_reg_pos;
|
||||
|
||||
pos_voltage_uv = regulator_get_voltage(st->reg_vdd);
|
||||
ret = regulator_get_voltage(st->reg_vdd);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg_pos;
|
||||
|
||||
pos_voltage_uv = ret;
|
||||
}
|
||||
|
||||
st->reg_vss = regulator_get(&spi->dev, "vss");
|
||||
|
@ -374,7 +378,11 @@ static int __devinit ad5791_probe(struct spi_device *spi)
|
|||
if (ret)
|
||||
goto error_put_reg_neg;
|
||||
|
||||
neg_voltage_uv = regulator_get_voltage(st->reg_vss);
|
||||
ret = regulator_get_voltage(st->reg_vss);
|
||||
if (ret < 0)
|
||||
goto error_disable_reg_neg;
|
||||
|
||||
neg_voltage_uv = ret;
|
||||
}
|
||||
|
||||
st->pwr_down = true;
|
||||
|
@ -428,6 +436,7 @@ error_put_reg_neg:
|
|||
if (!IS_ERR(st->reg_vss))
|
||||
regulator_put(st->reg_vss);
|
||||
|
||||
error_disable_reg_pos:
|
||||
if (!IS_ERR(st->reg_vdd))
|
||||
regulator_disable(st->reg_vdd);
|
||||
error_put_reg_pos:
|
||||
|
|
|
@ -173,7 +173,7 @@ static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq)
|
|||
} while ((st->r1_mod > ADF4350_MAX_MODULUS) && r_cnt);
|
||||
} while (r_cnt == 0);
|
||||
|
||||
tmp = freq * (u64)st->r1_mod + (st->fpfd > 1);
|
||||
tmp = freq * (u64)st->r1_mod + (st->fpfd >> 1);
|
||||
do_div(tmp, st->fpfd); /* Div round closest (n + d/2)/d */
|
||||
st->r0_fract = do_div(tmp, st->r1_mod);
|
||||
st->r0_int = tmp;
|
||||
|
|
|
@ -17,6 +17,7 @@ config HID_SENSOR_GYRO_3D
|
|||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Gyroscope 3D"
|
||||
help
|
||||
Say yes here to build support for the HID SENSOR
|
||||
|
|
|
@ -47,6 +47,7 @@ config HID_SENSOR_ALS
|
|||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID ALS"
|
||||
help
|
||||
Say yes here to build support for the HID SENSOR
|
||||
|
|
|
@ -8,6 +8,7 @@ config HID_SENSOR_MAGNETOMETER_3D
|
|||
select IIO_BUFFER
|
||||
select IIO_TRIGGERED_BUFFER
|
||||
select HID_SENSOR_IIO_COMMON
|
||||
select HID_SENSOR_IIO_TRIGGER
|
||||
tristate "HID Magenetometer 3D"
|
||||
help
|
||||
Say yes here to build support for the HID SENSOR
|
||||
|
|
|
@ -27,8 +27,8 @@ config ADIS16130
|
|||
config ADIS16260
|
||||
tristate "Analog Devices ADIS16260 Digital Gyroscope Sensor SPI driver"
|
||||
depends on SPI
|
||||
select IIO_TRIGGER if IIO_BUFFER
|
||||
select IIO_SW_RING if IIO_BUFFER
|
||||
select IIO_ADIS_LIB
|
||||
select IIO_ADIS_LIB_BUFFER if IIO_BUFFER
|
||||
help
|
||||
Say yes here to build support for Analog Devices ADIS16260 ADIS16265
|
||||
ADIS16250 ADIS16255 and ADIS16251 programmable digital gyroscope sensors.
|
||||
|
|
Загрузка…
Ссылка в новой задаче