diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-01 15:35:07 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2018-08-01 15:35:07 -0400 |
commit | 8c1f80c8da01ea1ee5f18a93ce8e3ce8000eb461 (patch) | |
tree | a55b5f9d76d1648b6c746db8a12eed9b6cbd32ab | |
parent | 325e75f1ef2f384e6922c2267659886e27e8bc6c (diff) | |
download | longterm-queue-4.12-8c1f80c8da01ea1ee5f18a93ce8e3ce8000eb461.tar.gz |
iio: drop patch n/a for 4.12.x
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/iio-st_sensors-add-register-mask-for-status-register.patch | 311 | ||||
-rw-r--r-- | queue/series | 1 |
2 files changed, 0 insertions, 312 deletions
diff --git a/queue/iio-st_sensors-add-register-mask-for-status-register.patch b/queue/iio-st_sensors-add-register-mask-for-status-register.patch deleted file mode 100644 index 3ca800d..0000000 --- a/queue/iio-st_sensors-add-register-mask-for-status-register.patch +++ /dev/null @@ -1,311 +0,0 @@ -From e72a060151e5bb673af24993665e270fc4f674a7 Mon Sep 17 00:00:00 2001 -From: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> -Date: Wed, 30 Aug 2017 13:50:39 +0200 -Subject: [PATCH] iio: st_sensors: add register mask for status register - -commit e72a060151e5bb673af24993665e270fc4f674a7 upstream. - -Introduce register mask for data-ready status register since -pressure sensors (e.g. LPS22HB) export just two channels -(BIT(0) and BIT(1)) and BIT(2) is marked reserved while in -st_sensors_new_samples_available() value read from status register -is masked using 0x7. -Moreover do not mask status register using active_scan_mask since -now status value is properly masked and if the result is not zero the -interrupt has to be consumed by the driver. This fix an issue on LPS25H -and LPS331AP where channel definition is swapped respect to status -register. -Furthermore that change allows to properly support new devices -(e.g LIS2DW12) that report just ZYXDA (data-ready) field in status register -to figure out if the interrupt has been generated by the device. - -Fixes: 97865fe41322 (iio: st_sensors: verify interrupt event to status) -Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com> -Reviewed-by: Linus Walleij <linus.walleij@linaro.org> -Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> - -diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c -index 1a2e54ff473a..140ba26f6131 100644 ---- a/drivers/iio/accel/st_accel_core.c -+++ b/drivers/iio/accel/st_accel_core.c -@@ -164,7 +164,10 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = { - .mask_int2 = 0x00, - .addr_ihl = 0x25, - .mask_ihl = 0x02, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .sim = { - .addr = 0x23, -@@ -236,7 +239,10 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = { - .mask_ihl = 0x80, - .addr_od = 0x22, - .mask_od = 0x40, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .sim = { - .addr = 0x23, -@@ -318,7 +324,10 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = { - .mask_int2 = 0x00, - .addr_ihl = 0x23, - .mask_ihl = 0x40, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - .ig1 = { - .en_addr = 0x23, - .en_mask = 0x08, -@@ -389,7 +398,10 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = { - .drdy_irq = { - .addr = 0x21, - .mask_int1 = 0x04, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .sim = { - .addr = 0x21, -@@ -451,7 +463,10 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = { - .mask_ihl = 0x80, - .addr_od = 0x22, - .mask_od = 0x40, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .sim = { - .addr = 0x21, -@@ -569,7 +584,10 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = { - .drdy_irq = { - .addr = 0x21, - .mask_int1 = 0x04, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .sim = { - .addr = 0x21, -@@ -640,7 +658,10 @@ static const struct st_sensor_settings st_accel_sensors_settings[] = { - .mask_int2 = 0x00, - .addr_ihl = 0x25, - .mask_ihl = 0x02, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .sim = { - .addr = 0x23, -diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c -index 02e833b14db0..34115f05d5c4 100644 ---- a/drivers/iio/common/st_sensors/st_sensors_core.c -+++ b/drivers/iio/common/st_sensors/st_sensors_core.c -@@ -470,7 +470,7 @@ int st_sensors_set_dataready_irq(struct iio_dev *indio_dev, bool enable) - * different one. Take into account irq status register - * to understand if irq trigger can be properly supported - */ -- if (sdata->sensor_settings->drdy_irq.addr_stat_drdy) -+ if (sdata->sensor_settings->drdy_irq.stat_drdy.addr) - sdata->hw_irq_trigger = enable; - return 0; - } -diff --git a/drivers/iio/common/st_sensors/st_sensors_trigger.c b/drivers/iio/common/st_sensors/st_sensors_trigger.c -index fa73e6795359..fdcc5a891958 100644 ---- a/drivers/iio/common/st_sensors/st_sensors_trigger.c -+++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c -@@ -31,7 +31,7 @@ static int st_sensors_new_samples_available(struct iio_dev *indio_dev, - int ret; - - /* How would I know if I can't check it? */ -- if (!sdata->sensor_settings->drdy_irq.addr_stat_drdy) -+ if (!sdata->sensor_settings->drdy_irq.stat_drdy.addr) - return -EINVAL; - - /* No scan mask, no interrupt */ -@@ -39,23 +39,15 @@ static int st_sensors_new_samples_available(struct iio_dev *indio_dev, - return 0; - - ret = sdata->tf->read_byte(&sdata->tb, sdata->dev, -- sdata->sensor_settings->drdy_irq.addr_stat_drdy, -+ sdata->sensor_settings->drdy_irq.stat_drdy.addr, - &status); - if (ret < 0) { - dev_err(sdata->dev, - "error checking samples available\n"); - return ret; - } -- /* -- * the lower bits of .active_scan_mask[0] is directly mapped -- * to the channels on the sensor: either bit 0 for -- * one-dimensional sensors, or e.g. x,y,z for accelerometers, -- * gyroscopes or magnetometers. No sensor use more than 3 -- * channels, so cut the other status bits here. -- */ -- status &= 0x07; - -- if (status & (u8)indio_dev->active_scan_mask[0]) -+ if (status & sdata->sensor_settings->drdy_irq.stat_drdy.mask) - return 1; - - return 0; -@@ -212,7 +204,7 @@ int st_sensors_allocate_trigger(struct iio_dev *indio_dev, - * it was "our" interrupt. - */ - if (sdata->int_pin_open_drain && -- sdata->sensor_settings->drdy_irq.addr_stat_drdy) -+ sdata->sensor_settings->drdy_irq.stat_drdy.addr) - irq_trig |= IRQF_SHARED; - - err = request_threaded_irq(sdata->get_irq_data_ready(indio_dev), -diff --git a/drivers/iio/gyro/st_gyro_core.c b/drivers/iio/gyro/st_gyro_core.c -index 4cf85aa01dde..22c0c1732996 100644 ---- a/drivers/iio/gyro/st_gyro_core.c -+++ b/drivers/iio/gyro/st_gyro_core.c -@@ -118,7 +118,10 @@ static const struct st_sensor_settings st_gyro_sensors_settings[] = { - * drain settings, but only for INT1 and not - * for the DRDY line on INT2. - */ -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .multi_read_bit = true, - .bootime = 2, -@@ -188,7 +191,10 @@ static const struct st_sensor_settings st_gyro_sensors_settings[] = { - * drain settings, but only for INT1 and not - * for the DRDY line on INT2. - */ -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .multi_read_bit = true, - .bootime = 2, -@@ -253,7 +259,10 @@ static const struct st_sensor_settings st_gyro_sensors_settings[] = { - * drain settings, but only for INT1 and not - * for the DRDY line on INT2. - */ -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .multi_read_bit = true, - .bootime = 2, -diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c -index 703de313c418..ace72c57f53c 100644 ---- a/drivers/iio/magnetometer/st_magn_core.c -+++ b/drivers/iio/magnetometer/st_magn_core.c -@@ -317,7 +317,10 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = { - }, - .drdy_irq = { - /* drdy line is routed drdy pin */ -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x07, -+ }, - }, - .multi_read_bit = true, - .bootime = 2, -@@ -361,7 +364,10 @@ static const struct st_sensor_settings st_magn_sensors_settings[] = { - .drdy_irq = { - .addr = 0x62, - .mask_int1 = 0x01, -- .addr_stat_drdy = 0x67, -+ .stat_drdy = { -+ .addr = 0x67, -+ .mask = 0x07, -+ }, - }, - .multi_read_bit = false, - .bootime = 2, -diff --git a/drivers/iio/pressure/st_pressure_core.c b/drivers/iio/pressure/st_pressure_core.c -index 86120715913b..5f8358e23f5b 100644 ---- a/drivers/iio/pressure/st_pressure_core.c -+++ b/drivers/iio/pressure/st_pressure_core.c -@@ -287,7 +287,10 @@ static const struct st_sensor_settings st_press_sensors_settings[] = { - .mask_ihl = 0x80, - .addr_od = 0x22, - .mask_od = 0x40, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x03, -+ }, - }, - .multi_read_bit = true, - .bootime = 2, -@@ -395,7 +398,10 @@ static const struct st_sensor_settings st_press_sensors_settings[] = { - .mask_ihl = 0x80, - .addr_od = 0x22, - .mask_od = 0x40, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x03, -+ }, - }, - .multi_read_bit = true, - .bootime = 2, -@@ -456,7 +462,10 @@ static const struct st_sensor_settings st_press_sensors_settings[] = { - .mask_ihl = 0x80, - .addr_od = 0x12, - .mask_od = 0x40, -- .addr_stat_drdy = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .stat_drdy = { -+ .addr = ST_SENSORS_DEFAULT_STAT_ADDR, -+ .mask = 0x03, -+ }, - }, - .multi_read_bit = false, - .bootime = 2, -diff --git a/include/linux/iio/common/st_sensors.h b/include/linux/iio/common/st_sensors.h -index 7b0fa8b5c120..ce0ef1c0a30a 100644 ---- a/include/linux/iio/common/st_sensors.h -+++ b/include/linux/iio/common/st_sensors.h -@@ -139,7 +139,7 @@ struct st_sensor_das { - * @mask_ihl: mask to enable/disable active low on the INT lines. - * @addr_od: address to enable/disable Open Drain on the INT lines. - * @mask_od: mask to enable/disable Open Drain on the INT lines. -- * @addr_stat_drdy: address to read status of DRDY (data ready) interrupt -+ * struct stat_drdy - status register of DRDY (data ready) interrupt. - * struct ig1 - represents the Interrupt Generator 1 of sensors. - * @en_addr: address of the enable ig1 register. - * @en_mask: mask to write the on/off value for enable. -@@ -152,7 +152,10 @@ struct st_sensor_data_ready_irq { - u8 mask_ihl; - u8 addr_od; - u8 mask_od; -- u8 addr_stat_drdy; -+ struct { -+ u8 addr; -+ u8 mask; -+ } stat_drdy; - struct { - u8 en_addr; - u8 en_mask; --- -2.15.0 - diff --git a/queue/series b/queue/series index d021abf..6d124b1 100644 --- a/queue/series +++ b/queue/series @@ -16,7 +16,6 @@ PCI-Create-SR-IOV-virtfn-physfn-links-before-attachi.patch PM-OPP-Move-error-message-to-debug-level.patch igb-check-memory-allocation-failure.patch i40e-use-the-safe-hash-table-iterator-when-deleting-.patch -iio-st_sensors-add-register-mask-for-status-register.patch ixgbe-fix-use-of-uninitialized-padding.patch IB-rxe-check-for-allocation-failure-on-elem.patch block-bfq-Disable-writeback-throttling.patch |