]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.18-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Sep 2018 12:30:55 +0000 (14:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Sep 2018 12:30:55 +0000 (14:30 +0200)
added patches:
i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch

queue-3.18/i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch [new file with mode: 0644]
queue-3.18/series
queue-4.14/series [new file with mode: 0644]
queue-4.18/series [new file with mode: 0644]
queue-4.4/series [new file with mode: 0644]
queue-4.9/series [new file with mode: 0644]

diff --git a/queue-3.18/i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch b/queue-3.18/i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch
new file mode 100644 (file)
index 0000000..6a754e3
--- /dev/null
@@ -0,0 +1,59 @@
+From ae7304c3ea28a3ba47a7a8312c76c654ef24967e Mon Sep 17 00:00:00 2001
+From: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
+Date: Mon, 3 Sep 2018 15:11:11 +0530
+Subject: i2c: xiic: Make the start and the byte count write atomic
+
+From: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
+
+commit ae7304c3ea28a3ba47a7a8312c76c654ef24967e upstream.
+
+Disable interrupts while configuring the transfer and enable them back.
+
+We have below as the programming sequence
+1. start and slave address
+2. byte count and stop
+
+In some customer platform there was a lot of interrupts between 1 and 2
+and after slave address (around 7 clock cyles) if 2 is not executed
+then the transaction is nacked.
+
+To fix this case make the 2 writes atomic.
+
+Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+[wsa: added a newline for better readability]
+Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
+Cc: stable@kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/i2c/busses/i2c-xiic.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/i2c/busses/i2c-xiic.c
++++ b/drivers/i2c/busses/i2c-xiic.c
+@@ -500,6 +500,7 @@ static void xiic_start_recv(struct xiic_
+ {
+       u8 rx_watermark;
+       struct i2c_msg *msg = i2c->rx_msg = i2c->tx_msg;
++      unsigned long flags;
+       /* Clear and enable Rx full interrupt. */
+       xiic_irq_clr_en(i2c, XIIC_INTR_RX_FULL_MASK | XIIC_INTR_TX_ERROR_MASK);
+@@ -515,6 +516,7 @@ static void xiic_start_recv(struct xiic_
+               rx_watermark = IIC_RX_FIFO_DEPTH;
+       xiic_setreg8(i2c, XIIC_RFD_REG_OFFSET, rx_watermark - 1);
++      local_irq_save(flags);
+       if (!(msg->flags & I2C_M_NOSTART))
+               /* write the address */
+               xiic_setreg16(i2c, XIIC_DTR_REG_OFFSET,
+@@ -525,6 +527,8 @@ static void xiic_start_recv(struct xiic_
+       xiic_setreg16(i2c, XIIC_DTR_REG_OFFSET,
+               msg->len | ((i2c->nmsgs == 1) ? XIIC_TX_DYN_STOP_MASK : 0));
++      local_irq_restore(flags);
++
+       if (i2c->nmsgs == 1)
+               /* very last, enable bus not busy as well */
+               xiic_irq_clr_en(i2c, XIIC_INTR_BNB_MASK);
index 680af568d58f95edbf611baf7597c292d4b3223e..f17ce1d4aa47e6f97752c205fd219fe9dfc12954 100644 (file)
@@ -30,3 +30,4 @@ irda-only-insert-new-objects-into-the-global-database-via-setsockopt.patch
 enic-do-not-call-enic_change_mtu-in-enic_probe.patch
 fixes-commit-86af955d02bb-mm-numa-avoid-waiting-on-freed-migrated-pages.patch
 asoc-wm8994-fix-missing-break-in-switch.patch
+i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch
diff --git a/queue-4.14/series b/queue-4.14/series
new file mode 100644 (file)
index 0000000..1e503f6
--- /dev/null
@@ -0,0 +1,10 @@
+i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch
+i2c-i801-fix-dnv-s-smbctrl-register-offset.patch
+scsi-lpfc-correct-mds-diag-and-nvmet-configuration.patch
+nbd-don-t-allow-invalid-blocksize-settings.patch
+block-bfq-swap-puts-in-bfqg_and_blkg_put.patch
+android-binder-fix-the-race-mmap-and-alloc_new_buf_locked.patch
+mips-vdso-match-data-page-cache-colouring-when-d-aliases.patch
+smb3-backup-intent-flag-missing-for-directory-opens-with-backupuid-mounts.patch
+smb3-check-for-and-properly-advertise-directory-lease-support.patch
+btrfs-fix-data-corruption-when-deduplicating-between-different-files.patch
diff --git a/queue-4.18/series b/queue-4.18/series
new file mode 100644 (file)
index 0000000..e8decc4
--- /dev/null
@@ -0,0 +1,20 @@
+i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch
+i2c-i801-fix-dnv-s-smbctrl-register-offset.patch
+hid-multitouch-fix-elan-panels-with-2-input-modes-declaration.patch
+hid-core-fix-grouping-by-application.patch
+hid-i2c-hid-fix-flooded-incomplete-report-after-s3-on-rayd-touchscreen.patch
+hid-input-fix-leaking-custom-input-node-name.patch
+mm-hugetlb-filter-out-hugetlb-pages-if-hugepage-migration-is-not-supported.patch
+memory_hotplug-fix-kernel_panic-on-offline-page-processing.patch
+mac80211-don-t-update-the-pm-state-of-a-peer-upon-a-multicast-frame.patch
+scsi-lpfc-correct-mds-diag-and-nvmet-configuration.patch
+nbd-don-t-allow-invalid-blocksize-settings.patch
+block-don-t-warn-when-doing-fsync-on-read-only-devices.patch
+block-bfq-swap-puts-in-bfqg_and_blkg_put.patch
+android-binder-fix-the-race-mmap-and-alloc_new_buf_locked.patch
+mips-vdso-match-data-page-cache-colouring-when-d-aliases.patch
+smb3-backup-intent-flag-missing-for-directory-opens-with-backupuid-mounts.patch
+smb3-check-for-and-properly-advertise-directory-lease-support.patch
+cifs-connect-to-servername-instead-of-ip-for-ipc-share.patch
+btrfs-fix-qgroup_free-wrong-num_bytes-in-btrfs_subvolume_reserve_metadata.patch
+btrfs-fix-data-corruption-when-deduplicating-between-different-files.patch
diff --git a/queue-4.4/series b/queue-4.4/series
new file mode 100644 (file)
index 0000000..cf00181
--- /dev/null
@@ -0,0 +1,2 @@
+i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch
+i2c-i801-fix-dnv-s-smbctrl-register-offset.patch
diff --git a/queue-4.9/series b/queue-4.9/series
new file mode 100644 (file)
index 0000000..cf00181
--- /dev/null
@@ -0,0 +1,2 @@
+i2c-xiic-make-the-start-and-the-byte-count-write-atomic.patch
+i2c-i801-fix-dnv-s-smbctrl-register-offset.patch