]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Oct 2014 17:06:49 +0000 (10:06 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Oct 2014 17:06:49 +0000 (10:06 -0700)
added patches:
asoc-davinci-mcasp-correct-rx-format-unit-configuration.patch
iio-accel-bma180-fix-indio_dev-trig-assignment.patch
iio-adc-ad_sigma_delta-fix-indio_dev-trig-assignment.patch
iio-gyro-itg3200-fix-indio_dev-trig-assignment.patch
iio-hid_sensor_hub-fix-indio_dev-trig-assignment.patch
iio-inkern-fix-overwritten-eprobe_defer-in-of_iio_channel_get_by_name.patch
iio-inv_mpu6050-fix-indio_dev-trig-assignment.patch
iio-magnetometer-bugfix-magnetometers-gain-values.patch
iio-meter-ade7758-fix-indio_dev-trig-assignment.patch
iio-st_sensors-fix-indio_dev-trig-assignment.patch
iio-trigger-modify-return-value-for-iio_trigger_get.patch
smb3-fix-oops-when-creating-symlinks-on-smb3.patch

13 files changed:
queue-3.14/asoc-davinci-mcasp-correct-rx-format-unit-configuration.patch [new file with mode: 0644]
queue-3.14/iio-accel-bma180-fix-indio_dev-trig-assignment.patch [new file with mode: 0644]
queue-3.14/iio-adc-ad_sigma_delta-fix-indio_dev-trig-assignment.patch [new file with mode: 0644]
queue-3.14/iio-gyro-itg3200-fix-indio_dev-trig-assignment.patch [new file with mode: 0644]
queue-3.14/iio-hid_sensor_hub-fix-indio_dev-trig-assignment.patch [new file with mode: 0644]
queue-3.14/iio-inkern-fix-overwritten-eprobe_defer-in-of_iio_channel_get_by_name.patch [new file with mode: 0644]
queue-3.14/iio-inv_mpu6050-fix-indio_dev-trig-assignment.patch [new file with mode: 0644]
queue-3.14/iio-magnetometer-bugfix-magnetometers-gain-values.patch [new file with mode: 0644]
queue-3.14/iio-meter-ade7758-fix-indio_dev-trig-assignment.patch [new file with mode: 0644]
queue-3.14/iio-st_sensors-fix-indio_dev-trig-assignment.patch [new file with mode: 0644]
queue-3.14/iio-trigger-modify-return-value-for-iio_trigger_get.patch [new file with mode: 0644]
queue-3.14/series
queue-3.14/smb3-fix-oops-when-creating-symlinks-on-smb3.patch [new file with mode: 0644]

diff --git a/queue-3.14/asoc-davinci-mcasp-correct-rx-format-unit-configuration.patch b/queue-3.14/asoc-davinci-mcasp-correct-rx-format-unit-configuration.patch
new file mode 100644 (file)
index 0000000..39b0775
--- /dev/null
@@ -0,0 +1,49 @@
+From fe0a29e163a5d045c73faab682a8dac71c2f8012 Mon Sep 17 00:00:00 2001
+From: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Date: Thu, 4 Sep 2014 10:52:53 +0300
+Subject: ASoC: davinci-mcasp: Correct rx format unit configuration
+
+From: Peter Ujfalusi <peter.ujfalusi@ti.com>
+
+commit fe0a29e163a5d045c73faab682a8dac71c2f8012 upstream.
+
+In case of capture we should not use rotation. The reverse and mask is
+enough to get the data align correctly from the bus to MCU:
+Format   data from bus    after reverse (XRBUF)
+S16_LE:  |LSB|MSB|xxx|xxx|  |xxx|xxx|MSB|LSB|
+S24_3LE: |LSB|DAT|MSB|xxx|  |xxx|MSB|DAT|LSB|
+S24_LE:  |LSB|DAT|MSB|xxx|  |xxx|MSB|DAT|LSB|
+S32_LE:  |LSB|DAT|DAT|MSB|  |MSB|DAT|DAT|LSB|
+
+With this patch all supported formats will work for playback and capture.
+
+Reported-by: Jyri Sarha <jsarha@ti.com> (broken S24_3LE capture)
+Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/davinci/davinci-mcasp.c |   11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+--- a/sound/soc/davinci/davinci-mcasp.c
++++ b/sound/soc/davinci/davinci-mcasp.c
+@@ -418,8 +418,17 @@ static int davinci_config_channel_size(s
+ {
+       u32 fmt;
+       u32 tx_rotate = (word_length / 4) & 0x7;
+-      u32 rx_rotate = (32 - word_length) / 4;
+       u32 mask = (1ULL << word_length) - 1;
++      /*
++       * For captured data we should not rotate, inversion and masking is
++       * enoguh to get the data to the right position:
++       * Format         data from bus         after reverse (XRBUF)
++       * S16_LE:      |LSB|MSB|xxx|xxx|       |xxx|xxx|MSB|LSB|
++       * S24_3LE:     |LSB|DAT|MSB|xxx|       |xxx|MSB|DAT|LSB|
++       * S24_LE:      |LSB|DAT|MSB|xxx|       |xxx|MSB|DAT|LSB|
++       * S32_LE:      |LSB|DAT|DAT|MSB|       |MSB|DAT|DAT|LSB|
++       */
++      u32 rx_rotate = 0;
+       /*
+        * if s BCLK-to-LRCLK ratio has been configured via the set_clkdiv()
diff --git a/queue-3.14/iio-accel-bma180-fix-indio_dev-trig-assignment.patch b/queue-3.14/iio-accel-bma180-fix-indio_dev-trig-assignment.patch
new file mode 100644 (file)
index 0000000..6faf991
--- /dev/null
@@ -0,0 +1,33 @@
+From 0668a4e4d297328ce08b44d91d160537596115e2 Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio: accel: bma180: Fix indio_dev->trig assignment
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit 0668a4e4d297328ce08b44d91d160537596115e2 upstream.
+
+This can result in wrong reference count for trigger device, call
+iio_trigger_get to increment reference.
+Refer to http://www.spinics.net/lists/linux-iio/msg13669.html for discussion
+with Jonathan.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/accel/bma180.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/iio/accel/bma180.c
++++ b/drivers/iio/accel/bma180.c
+@@ -571,7 +571,7 @@ static int bma180_probe(struct i2c_clien
+       trig->ops = &bma180_trigger_ops;
+       iio_trigger_set_drvdata(trig, indio_dev);
+       data->trig = trig;
+-      indio_dev->trig = trig;
++      indio_dev->trig = iio_trigger_get(trig);
+       ret = iio_trigger_register(trig);
+       if (ret)
diff --git a/queue-3.14/iio-adc-ad_sigma_delta-fix-indio_dev-trig-assignment.patch b/queue-3.14/iio-adc-ad_sigma_delta-fix-indio_dev-trig-assignment.patch
new file mode 100644 (file)
index 0000000..1b847d2
--- /dev/null
@@ -0,0 +1,34 @@
+From 9e5846be33277802c0c76e5c12825d0e4d27f639 Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio: adc: ad_sigma_delta: Fix indio_dev->trig assignment
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit 9e5846be33277802c0c76e5c12825d0e4d27f639 upstream.
+
+This can result in wrong reference count for trigger device, call
+iio_trigger_get to increment reference.
+Refer to http://www.spinics.net/lists/linux-iio/msg13669.html for discussion
+with Jonathan.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Acked-by: Lars-Peter Clausen <lars@metafoo.de>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/adc/ad_sigma_delta.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/iio/adc/ad_sigma_delta.c
++++ b/drivers/iio/adc/ad_sigma_delta.c
+@@ -472,7 +472,7 @@ static int ad_sd_probe_trigger(struct ii
+               goto error_free_irq;
+       /* select default trigger */
+-      indio_dev->trig = sigma_delta->trig;
++      indio_dev->trig = iio_trigger_get(sigma_delta->trig);
+       return 0;
diff --git a/queue-3.14/iio-gyro-itg3200-fix-indio_dev-trig-assignment.patch b/queue-3.14/iio-gyro-itg3200-fix-indio_dev-trig-assignment.patch
new file mode 100644 (file)
index 0000000..d0549ff
--- /dev/null
@@ -0,0 +1,33 @@
+From 0b4dce2ee694a991ef38203ec5ff91a738518cb3 Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio: gyro: itg3200: Fix indio_dev->trig assignment
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit 0b4dce2ee694a991ef38203ec5ff91a738518cb3 upstream.
+
+This can result in wrong reference count for trigger device, call
+iio_trigger_get to increment reference.
+Refer to http://www.spinics.net/lists/linux-iio/msg13669.html for discussion
+with Jonathan.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/gyro/itg3200_buffer.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/iio/gyro/itg3200_buffer.c
++++ b/drivers/iio/gyro/itg3200_buffer.c
+@@ -132,7 +132,7 @@ int itg3200_probe_trigger(struct iio_dev
+               goto error_free_irq;
+       /* select default trigger */
+-      indio_dev->trig = st->trig;
++      indio_dev->trig = iio_trigger_get(st->trig);
+       return 0;
diff --git a/queue-3.14/iio-hid_sensor_hub-fix-indio_dev-trig-assignment.patch b/queue-3.14/iio-hid_sensor_hub-fix-indio_dev-trig-assignment.patch
new file mode 100644 (file)
index 0000000..0aaba8d
--- /dev/null
@@ -0,0 +1,34 @@
+From 55a6f9ddfdea0d2d343cd1b39baf8aa752664b6e Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio: hid_sensor_hub: Fix indio_dev->trig assignment
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit 55a6f9ddfdea0d2d343cd1b39baf8aa752664b6e upstream.
+
+This can result in wrong reference count for trigger device, call
+iio_trigger_get to increment reference.
+Refer to http://www.spinics.net/lists/linux-iio/msg13669.html for discussion
+with Jonathan.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/common/hid-sensors/hid-sensor-trigger.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
++++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
+@@ -99,7 +99,8 @@ int hid_sensor_setup_trigger(struct iio_
+               dev_err(&indio_dev->dev, "Trigger Register Failed\n");
+               goto error_free_trig;
+       }
+-      indio_dev->trig = attrb->trigger = trig;
++      attrb->trigger = trig;
++      indio_dev->trig = iio_trigger_get(trig);
+       return ret;
diff --git a/queue-3.14/iio-inkern-fix-overwritten-eprobe_defer-in-of_iio_channel_get_by_name.patch b/queue-3.14/iio-inkern-fix-overwritten-eprobe_defer-in-of_iio_channel_get_by_name.patch
new file mode 100644 (file)
index 0000000..12f5efb
--- /dev/null
@@ -0,0 +1,34 @@
+From 872687f626e033b4ddfaec1e410057cfc6636d77 Mon Sep 17 00:00:00 2001
+From: Johannes Pointner <johannes.pointner@gmail.com>
+Date: Mon, 25 Aug 2014 09:04:00 +0100
+Subject: iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name
+
+From: Johannes Pointner <johannes.pointner@gmail.com>
+
+commit 872687f626e033b4ddfaec1e410057cfc6636d77 upstream.
+
+Fixes: a2c12493ed7e ('iio: of_iio_channel_get_by_name() returns non-null pointers for error legs')
+
+which improperly assumes that of_iio_channel_get_by_name must always
+return NULL and thus now hides -EPROBE_DEFER.
+
+Signed-off-by: Johannes Pointner <johannes.pointner@br-automation.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/inkern.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/iio/inkern.c
++++ b/drivers/iio/inkern.c
+@@ -178,7 +178,7 @@ static struct iio_channel *of_iio_channe
+                       index = of_property_match_string(np, "io-channel-names",
+                                                        name);
+               chan = of_iio_channel_get(np, index);
+-              if (!IS_ERR(chan))
++              if (!IS_ERR(chan) || PTR_ERR(chan) == -EPROBE_DEFER)
+                       break;
+               else if (name && index >= 0) {
+                       pr_err("ERROR: could not get IIO channel %s:%s(%i)\n",
diff --git a/queue-3.14/iio-inv_mpu6050-fix-indio_dev-trig-assignment.patch b/queue-3.14/iio-inv_mpu6050-fix-indio_dev-trig-assignment.patch
new file mode 100644 (file)
index 0000000..62dd999
--- /dev/null
@@ -0,0 +1,33 @@
+From b07e3b3850b2e1f09c19f54d3ed7210d9f529e2c Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio: inv_mpu6050: Fix indio_dev->trig assignment
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit b07e3b3850b2e1f09c19f54d3ed7210d9f529e2c upstream.
+
+This can result in wrong reference count for trigger device, call
+iio_trigger_get to increment reference.
+Refer to http://www.spinics.net/lists/linux-iio/msg13669.html for discussion
+with Jonathan.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
++++ b/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
+@@ -135,7 +135,7 @@ int inv_mpu6050_probe_trigger(struct iio
+       ret = iio_trigger_register(st->trig);
+       if (ret)
+               goto error_free_irq;
+-      indio_dev->trig = st->trig;
++      indio_dev->trig = iio_trigger_get(st->trig);
+       return 0;
diff --git a/queue-3.14/iio-magnetometer-bugfix-magnetometers-gain-values.patch b/queue-3.14/iio-magnetometer-bugfix-magnetometers-gain-values.patch
new file mode 100644 (file)
index 0000000..cd5ca75
--- /dev/null
@@ -0,0 +1,102 @@
+From a31d0928999fbf33b3a6042e8bcb7b7f7e07d094 Mon Sep 17 00:00:00 2001
+From: Denis CIOCCA <denis.ciocca@st.com>
+Date: Thu, 9 Oct 2014 13:55:00 +0100
+Subject: iio:magnetometer: bugfix magnetometers gain values
+
+From: Denis CIOCCA <denis.ciocca@st.com>
+
+commit a31d0928999fbf33b3a6042e8bcb7b7f7e07d094 upstream.
+
+This patch fix gains values. The first driver was designed using
+engineering samples, in mass production the values are changed.
+
+Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/magnetometer/st_magn_core.c |   52 ++++++++++++++++++--------------
+ 1 file changed, 30 insertions(+), 22 deletions(-)
+
+--- a/drivers/iio/magnetometer/st_magn_core.c
++++ b/drivers/iio/magnetometer/st_magn_core.c
+@@ -42,7 +42,8 @@
+ #define ST_MAGN_FS_AVL_5600MG                 5600
+ #define ST_MAGN_FS_AVL_8000MG                 8000
+ #define ST_MAGN_FS_AVL_8100MG                 8100
+-#define ST_MAGN_FS_AVL_10000MG                        10000
++#define ST_MAGN_FS_AVL_12000MG                        12000
++#define ST_MAGN_FS_AVL_16000MG                        16000
+ /* CUSTOM VALUES FOR SENSOR 1 */
+ #define ST_MAGN_1_WAI_EXP                     0x3c
+@@ -69,20 +70,20 @@
+ #define ST_MAGN_1_FS_AVL_4700_VAL             0x05
+ #define ST_MAGN_1_FS_AVL_5600_VAL             0x06
+ #define ST_MAGN_1_FS_AVL_8100_VAL             0x07
+-#define ST_MAGN_1_FS_AVL_1300_GAIN_XY         1100
+-#define ST_MAGN_1_FS_AVL_1900_GAIN_XY         855
+-#define ST_MAGN_1_FS_AVL_2500_GAIN_XY         670
+-#define ST_MAGN_1_FS_AVL_4000_GAIN_XY         450
+-#define ST_MAGN_1_FS_AVL_4700_GAIN_XY         400
+-#define ST_MAGN_1_FS_AVL_5600_GAIN_XY         330
+-#define ST_MAGN_1_FS_AVL_8100_GAIN_XY         230
+-#define ST_MAGN_1_FS_AVL_1300_GAIN_Z          980
+-#define ST_MAGN_1_FS_AVL_1900_GAIN_Z          760
+-#define ST_MAGN_1_FS_AVL_2500_GAIN_Z          600
+-#define ST_MAGN_1_FS_AVL_4000_GAIN_Z          400
+-#define ST_MAGN_1_FS_AVL_4700_GAIN_Z          355
+-#define ST_MAGN_1_FS_AVL_5600_GAIN_Z          295
+-#define ST_MAGN_1_FS_AVL_8100_GAIN_Z          205
++#define ST_MAGN_1_FS_AVL_1300_GAIN_XY         909
++#define ST_MAGN_1_FS_AVL_1900_GAIN_XY         1169
++#define ST_MAGN_1_FS_AVL_2500_GAIN_XY         1492
++#define ST_MAGN_1_FS_AVL_4000_GAIN_XY         2222
++#define ST_MAGN_1_FS_AVL_4700_GAIN_XY         2500
++#define ST_MAGN_1_FS_AVL_5600_GAIN_XY         3030
++#define ST_MAGN_1_FS_AVL_8100_GAIN_XY         4347
++#define ST_MAGN_1_FS_AVL_1300_GAIN_Z          1020
++#define ST_MAGN_1_FS_AVL_1900_GAIN_Z          1315
++#define ST_MAGN_1_FS_AVL_2500_GAIN_Z          1666
++#define ST_MAGN_1_FS_AVL_4000_GAIN_Z          2500
++#define ST_MAGN_1_FS_AVL_4700_GAIN_Z          2816
++#define ST_MAGN_1_FS_AVL_5600_GAIN_Z          3389
++#define ST_MAGN_1_FS_AVL_8100_GAIN_Z          4878
+ #define ST_MAGN_1_MULTIREAD_BIT                       false
+ /* CUSTOM VALUES FOR SENSOR 2 */
+@@ -105,10 +106,12 @@
+ #define ST_MAGN_2_FS_MASK                     0x60
+ #define ST_MAGN_2_FS_AVL_4000_VAL             0x00
+ #define ST_MAGN_2_FS_AVL_8000_VAL             0x01
+-#define ST_MAGN_2_FS_AVL_10000_VAL            0x02
+-#define ST_MAGN_2_FS_AVL_4000_GAIN            430
+-#define ST_MAGN_2_FS_AVL_8000_GAIN            230
+-#define ST_MAGN_2_FS_AVL_10000_GAIN           230
++#define ST_MAGN_2_FS_AVL_12000_VAL            0x02
++#define ST_MAGN_2_FS_AVL_16000_VAL            0x03
++#define ST_MAGN_2_FS_AVL_4000_GAIN            146
++#define ST_MAGN_2_FS_AVL_8000_GAIN            292
++#define ST_MAGN_2_FS_AVL_12000_GAIN           438
++#define ST_MAGN_2_FS_AVL_16000_GAIN           584
+ #define ST_MAGN_2_MULTIREAD_BIT                       false
+ #define ST_MAGN_2_OUT_X_L_ADDR                        0x28
+ #define ST_MAGN_2_OUT_Y_L_ADDR                        0x2a
+@@ -266,9 +269,14 @@ static const struct st_sensors st_magn_s
+                                       .gain = ST_MAGN_2_FS_AVL_8000_GAIN,
+                               },
+                               [2] = {
+-                                      .num = ST_MAGN_FS_AVL_10000MG,
+-                                      .value = ST_MAGN_2_FS_AVL_10000_VAL,
+-                                      .gain = ST_MAGN_2_FS_AVL_10000_GAIN,
++                                      .num = ST_MAGN_FS_AVL_12000MG,
++                                      .value = ST_MAGN_2_FS_AVL_12000_VAL,
++                                      .gain = ST_MAGN_2_FS_AVL_12000_GAIN,
++                              },
++                              [3] = {
++                                      .num = ST_MAGN_FS_AVL_16000MG,
++                                      .value = ST_MAGN_2_FS_AVL_16000_VAL,
++                                      .gain = ST_MAGN_2_FS_AVL_16000_GAIN,
+                               },
+                       },
+               },
diff --git a/queue-3.14/iio-meter-ade7758-fix-indio_dev-trig-assignment.patch b/queue-3.14/iio-meter-ade7758-fix-indio_dev-trig-assignment.patch
new file mode 100644 (file)
index 0000000..65d1a77
--- /dev/null
@@ -0,0 +1,34 @@
+From 0495081179212b758775df752e657ea71dcae020 Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio: meter: ade7758: Fix indio_dev->trig assignment
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit 0495081179212b758775df752e657ea71dcae020 upstream.
+
+This can result in wrong reference count for trigger device, call
+iio_trigger_get to increment reference.
+Refer to http://www.spinics.net/lists/linux-iio/msg13669.html for discussion
+with Jonathan.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Acked-by: Lars-Peter Clausen <lars@metafoo.de>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/staging/iio/meter/ade7758_trigger.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/staging/iio/meter/ade7758_trigger.c
++++ b/drivers/staging/iio/meter/ade7758_trigger.c
+@@ -85,7 +85,7 @@ int ade7758_probe_trigger(struct iio_dev
+       ret = iio_trigger_register(st->trig);
+       /* select default trigger */
+-      indio_dev->trig = st->trig;
++      indio_dev->trig = iio_trigger_get(st->trig);
+       if (ret)
+               goto error_free_irq;
diff --git a/queue-3.14/iio-st_sensors-fix-indio_dev-trig-assignment.patch b/queue-3.14/iio-st_sensors-fix-indio_dev-trig-assignment.patch
new file mode 100644 (file)
index 0000000..4429a48
--- /dev/null
@@ -0,0 +1,33 @@
+From f0e84acd7056e6d7ade551c6439531606ae30a46 Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio: st_sensors: Fix indio_dev->trig assignment
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit f0e84acd7056e6d7ade551c6439531606ae30a46 upstream.
+
+This can result in wrong reference count for trigger device, call
+iio_trigger_get to increment reference.
+Refer to http://www.spinics.net/lists/linux-iio/msg13669.html for discussion
+with Jonathan.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/iio/common/st_sensors/st_sensors_trigger.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
++++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
+@@ -49,7 +49,7 @@ int st_sensors_allocate_trigger(struct i
+               dev_err(&indio_dev->dev, "failed to register iio trigger.\n");
+               goto iio_trigger_register_error;
+       }
+-      indio_dev->trig = sdata->trig;
++      indio_dev->trig = iio_trigger_get(sdata->trig);
+       return 0;
diff --git a/queue-3.14/iio-trigger-modify-return-value-for-iio_trigger_get.patch b/queue-3.14/iio-trigger-modify-return-value-for-iio_trigger_get.patch
new file mode 100644 (file)
index 0000000..7b1bb38
--- /dev/null
@@ -0,0 +1,38 @@
+From f153566570fb9e32c2f59182883f4f66048788fb Mon Sep 17 00:00:00 2001
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Date: Fri, 22 Aug 2014 21:48:00 +0100
+Subject: iio:trigger: modify return value for iio_trigger_get
+
+From: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+
+commit f153566570fb9e32c2f59182883f4f66048788fb upstream.
+
+Instead of a void function, return the trigger pointer.
+
+Whilst not in of itself a fix, this makes the following set of
+7 fixes cleaner than they would otherwise be.
+
+Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
+Signed-off-by: Jonathan Cameron <jic23@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/iio/trigger.h |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/include/linux/iio/trigger.h
++++ b/include/linux/iio/trigger.h
+@@ -84,10 +84,12 @@ static inline void iio_trigger_put(struc
+       put_device(&trig->dev);
+ }
+-static inline void iio_trigger_get(struct iio_trigger *trig)
++static inline struct iio_trigger *iio_trigger_get(struct iio_trigger *trig)
+ {
+       get_device(&trig->dev);
+       __module_get(trig->ops->owner);
++
++      return trig;
+ }
+ /**
index e983b498381b90e7a3964ea267ec2e3aa69a32e7..971f828124ca69995f9bcb8e51efa22e0587604e 100644 (file)
@@ -130,3 +130,15 @@ x86-xen-don-t-copy-bogus-duplicate-entries-into-kernel-page-tables.patch
 x86-early_ioremap-increase-fix_btmaps_slots-to-8.patch
 x86-kaslr-avoid-the-setup_data-area-when-picking-location.patch
 shmem-fix-nlink-for-rename-overwrite-directory.patch
+asoc-davinci-mcasp-correct-rx-format-unit-configuration.patch
+smb3-fix-oops-when-creating-symlinks-on-smb3.patch
+iio-trigger-modify-return-value-for-iio_trigger_get.patch
+iio-accel-bma180-fix-indio_dev-trig-assignment.patch
+iio-hid_sensor_hub-fix-indio_dev-trig-assignment.patch
+iio-gyro-itg3200-fix-indio_dev-trig-assignment.patch
+iio-inv_mpu6050-fix-indio_dev-trig-assignment.patch
+iio-meter-ade7758-fix-indio_dev-trig-assignment.patch
+iio-st_sensors-fix-indio_dev-trig-assignment.patch
+iio-adc-ad_sigma_delta-fix-indio_dev-trig-assignment.patch
+iio-magnetometer-bugfix-magnetometers-gain-values.patch
+iio-inkern-fix-overwritten-eprobe_defer-in-of_iio_channel_get_by_name.patch
diff --git a/queue-3.14/smb3-fix-oops-when-creating-symlinks-on-smb3.patch b/queue-3.14/smb3-fix-oops-when-creating-symlinks-on-smb3.patch
new file mode 100644 (file)
index 0000000..4291bc1
--- /dev/null
@@ -0,0 +1,38 @@
+From da80659d4aa758dc6935b10ec64513f0b67bc969 Mon Sep 17 00:00:00 2001
+From: Steve French <smfrench@gmail.com>
+Date: Sun, 14 Sep 2014 23:27:09 -0500
+Subject: SMB3: Fix oops when creating symlinks on smb3
+
+From: Steve French <smfrench@gmail.com>
+
+commit da80659d4aa758dc6935b10ec64513f0b67bc969 upstream.
+
+We were not checking for symlink support properly for SMB2/SMB3
+mounts so could oops when mounted with mfsymlinks when try
+to create symlink when mfsymlinks on smb2/smb3 mounts
+
+Signed-off-by: Steve French <smfrench@gmail.com>
+CC: Sachin Prabhu <sprabhu@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/cifs/link.c |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/fs/cifs/link.c
++++ b/fs/cifs/link.c
+@@ -213,8 +213,12 @@ create_mf_symlink(const unsigned int xid
+       if (rc)
+               goto out;
+-      rc = tcon->ses->server->ops->create_mf_symlink(xid, tcon, cifs_sb,
+-                                      fromName, buf, &bytes_written);
++      if (tcon->ses->server->ops->create_mf_symlink)
++              rc = tcon->ses->server->ops->create_mf_symlink(xid, tcon,
++                                      cifs_sb, fromName, buf, &bytes_written);
++      else
++              rc = -EOPNOTSUPP;
++
+       if (rc)
+               goto out;