Home Home > GIT Browse > vanilla
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Thumshirn <jthumshirn@suse.de>2018-08-03 14:48:10 +0200
committerJohannes Thumshirn <jthumshirn@suse.de>2018-08-03 14:48:10 +0200
commit4009d13bfdc7c29afc8875c86559744c95427c1f (patch)
tree07ab4770ae7d27349e1d2c2a625e259b6bd2f819
parent32c18d63fb04c4be1b3e48725e4fc1c10f888d12 (diff)
parent7cea46b99136faafa52b841759e59adbf4c6ea25 (diff)
Merge remote-tracking branch 'origin/SLE15' into SLE12-SP4
Conflicts: series.conf
-rw-r--r--patches.arch/s390-cio-clear-timer-when-terminating-driver-i-o.patch31
-rw-r--r--patches.arch/s390-cio-fix-return-code-after-missing-interrupt.patch73
-rw-r--r--patches.arch/s390-dasd-fix-handling-of-internal-requests.patch88
-rw-r--r--patches.arch/s390-dasd-fix-wrongly-assigned-configuration-data.patch48
-rw-r--r--patches.arch/s390-dasd-prevent-prefix-i-o-error.patch58
-rw-r--r--patches.arch/s390-eadm-fix-config_block-include-dependency.patch36
-rw-r--r--patches.arch/s390-ipl-ensure-loadparm-valid-flag-is-set.patch35
-rw-r--r--patches.arch/s390-pci-do-not-require-ais-facility.patch95
-rw-r--r--patches.arch/s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch62
-rw-r--r--patches.drivers/ALSA-emu10k1-Rate-limit-error-messages-about-page-er52
-rw-r--r--patches.drivers/ALSA-emu10k1-add-error-handling-for-snd_ctl_add38
-rw-r--r--patches.drivers/ALSA-fm801-add-error-handling-for-snd_ctl_add52
-rw-r--r--patches.drivers/ALSA-usb-audio-Apply-rate-limit-to-warning-messages-35
-rw-r--r--patches.drivers/ASoC-dpcm-fix-BE-dai-not-hw_free-and-shutdown51
-rw-r--r--patches.drivers/ASoC-topology-Add-missing-clock-gating-parameter-whe106
-rw-r--r--patches.drivers/ASoC-topology-Fix-bclk-and-fsync-inversion-in-set_li95
-rw-r--r--patches.drivers/Bluetooth-btusb-Add-a-new-Realtek-8723DE-ID-2ff8-b0166
-rw-r--r--patches.drivers/Bluetooth-btusb-add-ID-for-LiteOn-04ca-301a43
-rw-r--r--patches.drivers/Bluetooth-hci_qca-Fix-Sleep-inside-atomic-section-wa44
-rw-r--r--patches.drivers/Input-elan_i2c-add-ACPI-ID-for-lenovo-ideapad-33035
-rw-r--r--patches.drivers/Input-elan_i2c-add-another-ACPI-ID-for-Lenovo-Ideapa36
-rw-r--r--patches.drivers/Input-i8042-add-Lenovo-LaVie-Z-to-the-i8042-reset-li44
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-APL13_WORLD51
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-APL2_FCCA51
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-Bahamas56
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-Bermuda56
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-ETSI8_WORLD51
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-FCC3_ETSIC51
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-Serbia56
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-Tanzania56
-rw-r--r--patches.drivers/ath-Add-regulatory-mapping-for-Uganda56
-rw-r--r--patches.drivers/backlight-pwm_bl-Don-t-use-GPIOF_-with-gpiod_get_dir48
-rw-r--r--patches.drivers/brcmfmac-Add-support-for-bcm43364-wireless-chipset57
-rw-r--r--patches.drivers/drm-Add-DP-PSR2-sink-enable-bit38
-rw-r--r--patches.drivers/drm-amdgpu-Remove-VRAM-from-shared-bo-domains48
-rw-r--r--patches.drivers/drm-atomic-Handling-the-case-when-setting-old-crtc-f45
-rw-r--r--patches.drivers/drm-atomic-helper-Drop-plane-fb-references-only-for-181
-rw-r--r--patches.drivers/drm-dp-mst-Fix-off-by-one-typo-when-dump-payload-tab69
-rw-r--r--patches.drivers/drm-gma500-fix-psb_intel_lvds_mode_valid-s-return-ty53
-rw-r--r--patches.drivers/drm-nouveau-fifo-gk104-poll-for-runlist-update-compl43
-rw-r--r--patches.drivers/drm-radeon-fix-mode_valid-s-return-type74
-rw-r--r--patches.drivers/media-media-device-fix-ioctl-function-types89
-rw-r--r--patches.drivers/media-rcar_jpu-Add-missing-clk_disable_unprepare-on-47
-rw-r--r--patches.drivers/media-saa7164-Fix-driver-name-in-debug-output43
-rw-r--r--patches.drivers/media-si470x-fix-__be16-annotations57
-rw-r--r--patches.drivers/media-siano-get-rid-of-__le32-__le16-cast-warnings112
-rw-r--r--patches.drivers/media-tw686x-Fix-incorrect-vb2_mem_ops-GFP-flags40
-rw-r--r--patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n66
-rw-r--r--series.conf48
49 files changed, 2865 insertions, 0 deletions
diff --git a/patches.arch/s390-cio-clear-timer-when-terminating-driver-i-o.patch b/patches.arch/s390-cio-clear-timer-when-terminating-driver-i-o.patch
new file mode 100644
index 0000000000..f9ea307f7e
--- /dev/null
+++ b/patches.arch/s390-cio-clear-timer-when-terminating-driver-i-o.patch
@@ -0,0 +1,31 @@
+From: Sebastian Ott <sebott@linux.vnet.ibm.com>
+Date: Mon, 12 Feb 2018 12:01:03 +0100
+Subject: s390/cio: clear timer when terminating driver I/O
+Git-commit: 410d5e13e7638bc146321671e223d56495fbf3c7
+Patch-mainline: v4.16-rc5
+References: bsc#1103421
+
+When we terminate driver I/O (because we need to stop using a certain
+channel path) we also need to ensure that a timer (which may have been
+set up using ccw_device_start_timeout) is cleared.
+
+Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/s390/cio/device_fsm.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
+index 384f085698a7..9169af7dbb43 100644
+--- a/drivers/s390/cio/device_fsm.c
++++ b/drivers/s390/cio/device_fsm.c
+@@ -896,6 +896,7 @@ void ccw_device_kill_io(struct ccw_device *cdev)
+ {
+ int ret;
+
++ ccw_device_set_timeout(cdev, 0);
+ cdev->private->iretry = 255;
+ cdev->private->async_kill_io_rc = -EIO;
+ ret = ccw_device_cancel_halt_clear(cdev);
+
diff --git a/patches.arch/s390-cio-fix-return-code-after-missing-interrupt.patch b/patches.arch/s390-cio-fix-return-code-after-missing-interrupt.patch
new file mode 100644
index 0000000000..cc0751306d
--- /dev/null
+++ b/patches.arch/s390-cio-fix-return-code-after-missing-interrupt.patch
@@ -0,0 +1,73 @@
+From: Sebastian Ott <sebott@linux.vnet.ibm.com>
+Date: Wed, 7 Feb 2018 13:18:19 +0100
+Subject: s390/cio: fix return code after missing interrupt
+Git-commit: 770b55c995d171f026a9efb85e71e3b1ea47b93d
+Patch-mainline: v4.16-rc5
+References: bsc#1103421
+
+When a timeout occurs for users of ccw_device_start_timeout
+we will stop the IO and call the drivers int handler with
+the irb pointer set to ERR_PTR(-ETIMEDOUT). Sometimes
+however we'd set the irb pointer to ERR_PTR(-EIO) which is
+not intended. Just set the correct value in all codepaths.
+
+Reported-by: Julian Wiedmann <jwi@linux.vnet.ibm.com>
+Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/s390/cio/device_fsm.c | 6 ++++--
+ drivers/s390/cio/io_sch.h | 1 +
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
+index 1319122e9d12..384f085698a7 100644
+--- a/drivers/s390/cio/device_fsm.c
++++ b/drivers/s390/cio/device_fsm.c
+@@ -795,6 +795,7 @@ ccw_device_online_timeout(struct ccw_device *cdev, enum dev_event dev_event)
+
+ ccw_device_set_timeout(cdev, 0);
+ cdev->private->iretry = 255;
++ cdev->private->async_kill_io_rc = -ETIMEDOUT;
+ ret = ccw_device_cancel_halt_clear(cdev);
+ if (ret == -EBUSY) {
+ ccw_device_set_timeout(cdev, 3*HZ);
+@@ -871,7 +872,7 @@ ccw_device_killing_irq(struct ccw_device *cdev, enum dev_event dev_event)
+ /* OK, i/o is dead now. Call interrupt handler. */
+ if (cdev->handler)
+ cdev->handler(cdev, cdev->private->intparm,
+- ERR_PTR(-EIO));
++ ERR_PTR(cdev->private->async_kill_io_rc));
+ }
+
+ static void
+@@ -888,7 +889,7 @@ ccw_device_killing_timeout(struct ccw_device *cdev, enum dev_event dev_event)
+ ccw_device_online_verify(cdev, 0);
+ if (cdev->handler)
+ cdev->handler(cdev, cdev->private->intparm,
+- ERR_PTR(-EIO));
++ ERR_PTR(cdev->private->async_kill_io_rc));
+ }
+
+ void ccw_device_kill_io(struct ccw_device *cdev)
+@@ -896,6 +897,7 @@ void ccw_device_kill_io(struct ccw_device *cdev)
+ int ret;
+
+ cdev->private->iretry = 255;
++ cdev->private->async_kill_io_rc = -EIO;
+ ret = ccw_device_cancel_halt_clear(cdev);
+ if (ret == -EBUSY) {
+ ccw_device_set_timeout(cdev, 3*HZ);
+diff --git a/drivers/s390/cio/io_sch.h b/drivers/s390/cio/io_sch.h
+index af571d8d6925..90e4e3a7841b 100644
+--- a/drivers/s390/cio/io_sch.h
++++ b/drivers/s390/cio/io_sch.h
+@@ -157,6 +157,7 @@ struct ccw_device_private {
+ unsigned long intparm; /* user interruption parameter */
+ struct qdio_irq *qdio_data;
+ struct irb irb; /* device status */
++ int async_kill_io_rc;
+ struct senseid senseid; /* SenseID info */
+ struct pgid pgid[8]; /* path group IDs per chpid*/
+ struct ccw1 iccws[2]; /* ccws for SNID/SID/SPGID commands */
+
diff --git a/patches.arch/s390-dasd-fix-handling-of-internal-requests.patch b/patches.arch/s390-dasd-fix-handling-of-internal-requests.patch
new file mode 100644
index 0000000000..7ae2232b84
--- /dev/null
+++ b/patches.arch/s390-dasd-fix-handling-of-internal-requests.patch
@@ -0,0 +1,88 @@
+From: Stefan Haberland <sth@linux.vnet.ibm.com>
+Date: Wed, 7 Feb 2018 17:39:14 +0100
+Subject: s390/dasd: fix handling of internal requests
+Git-commit: 9487cfd3430d07366801886bdf185799a2b6f066
+Patch-mainline: v4.16-rc5
+References: bsc#1103421
+
+Internal DASD device driver I/O such as query host access count or
+path verification is started using the _sleep_on() function.
+To mark a request as started or ended the callback_data is set to either
+DASD_SLEEPON_START_TAG or DASD_SLEEPON_END_TAG.
+
+In cases where the request has to be stopped unconditionally the status is
+set to DASD_SLEEPON_END_TAG as well which leads to immediate clearing of
+the request.
+But the request might still be on a device request queue for normal
+operation which might lead to a panic because of a BUG() statement in
+__dasd_device_process_final_queue() or a list corruption of the device
+request queue.
+
+Fix by removing the setting of DASD_SLEEPON_END_TAG in the
+dasd_cancel_req() and dasd_generic_requeue_all_requests() functions and
+ensure that the request is not deleted in the requeue function.
+Trigger the device tasklet in the requeue function and let the normal
+processing cleanup the request.
+
+Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
+Reviewed-by: Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/s390/block/dasd.c | 21 +++++++--------------
+ 1 file changed, 7 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
+index a7c15f0085e2..ecef8e73d40b 100644
+--- a/drivers/s390/block/dasd.c
++++ b/drivers/s390/block/dasd.c
+@@ -2581,8 +2581,6 @@ int dasd_cancel_req(struct dasd_ccw_req *cqr)
+ case DASD_CQR_QUEUED:
+ /* request was not started - just set to cleared */
+ cqr->status = DASD_CQR_CLEARED;
+- if (cqr->callback_data == DASD_SLEEPON_START_TAG)
+- cqr->callback_data = DASD_SLEEPON_END_TAG;
+ break;
+ case DASD_CQR_IN_IO:
+ /* request in IO - terminate IO and release again */
+@@ -3902,9 +3900,12 @@ static int dasd_generic_requeue_all_requests(struct dasd_device *device)
+ wait_event(dasd_flush_wq,
+ (cqr->status != DASD_CQR_CLEAR_PENDING));
+
+- /* mark sleepon requests as ended */
+- if (cqr->callback_data == DASD_SLEEPON_START_TAG)
+- cqr->callback_data = DASD_SLEEPON_END_TAG;
++ /*
++ * requeue requests to blocklayer will only work
++ * for block device requests
++ */
++ if (_dasd_requeue_request(cqr))
++ continue;
+
+ /* remove requests from device and block queue */
+ list_del_init(&cqr->devlist);
+@@ -3917,13 +3918,6 @@ static int dasd_generic_requeue_all_requests(struct dasd_device *device)
+ cqr = refers;
+ }
+
+- /*
+- * requeue requests to blocklayer will only work
+- * for block device requests
+- */
+- if (_dasd_requeue_request(cqr))
+- continue;
+-
+ if (cqr->block)
+ list_del_init(&cqr->blocklist);
+ cqr->block->base->discipline->free_cp(
+@@ -3940,8 +3934,7 @@ static int dasd_generic_requeue_all_requests(struct dasd_device *device)
+ list_splice_tail(&requeue_queue, &device->ccw_queue);
+ spin_unlock_irq(get_ccwdev_lock(device->cdev));
+ }
+- /* wake up generic waitqueue for eventually ended sleepon requests */
+- wake_up(&generic_waitq);
++ dasd_schedule_device_bh(device);
+ return rc;
+ }
+
+
diff --git a/patches.arch/s390-dasd-fix-wrongly-assigned-configuration-data.patch b/patches.arch/s390-dasd-fix-wrongly-assigned-configuration-data.patch
new file mode 100644
index 0000000000..53d07fd5cf
--- /dev/null
+++ b/patches.arch/s390-dasd-fix-wrongly-assigned-configuration-data.patch
@@ -0,0 +1,48 @@
+From: Stefan Haberland <sth@linux.vnet.ibm.com>
+Date: Wed, 6 Dec 2017 10:30:39 +0100
+Subject: s390/dasd: fix wrongly assigned configuration data
+Git-commit: 8a9bd4f8ebc6800bfc0596e28631ff6809a2f615
+Patch-mainline: v4.15-rc7
+References: bsc#1103421
+
+We store per path and per device configuration data to identify the
+path or device correctly. The per path configuration data might get
+mixed up if the original request gets into error recovery and is
+started with a random path mask.
+
+This would lead to a wrong identification of a path in case of a CUIR
+event for example.
+
+Fix by copying the path mask from the original request to the error
+recovery request in case it is a path verification request.
+
+Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
+Reviewed-by: Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/s390/block/dasd_3990_erp.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/s390/block/dasd_3990_erp.c b/drivers/s390/block/dasd_3990_erp.c
+index c94b606e0df8..ee14d8e45c97 100644
+--- a/drivers/s390/block/dasd_3990_erp.c
++++ b/drivers/s390/block/dasd_3990_erp.c
+@@ -2803,6 +2803,16 @@ dasd_3990_erp_action(struct dasd_ccw_req * cqr)
+ erp = dasd_3990_erp_handle_match_erp(cqr, erp);
+ }
+
++
++ /*
++ * For path verification work we need to stick with the path that was
++ * originally chosen so that the per path configuration data is
++ * assigned correctly.
++ */
++ if (test_bit(DASD_CQR_VERIFY_PATH, &erp->flags) && cqr->lpm) {
++ erp->lpm = cqr->lpm;
++ }
++
+ if (device->features & DASD_FEATURE_ERPLOG) {
+ /* print current erp_chain */
+ dev_err(&device->cdev->dev,
+
diff --git a/patches.arch/s390-dasd-prevent-prefix-i-o-error.patch b/patches.arch/s390-dasd-prevent-prefix-i-o-error.patch
new file mode 100644
index 0000000000..a4057c09ef
--- /dev/null
+++ b/patches.arch/s390-dasd-prevent-prefix-i-o-error.patch
@@ -0,0 +1,58 @@
+From: Stefan Haberland <sth@linux.vnet.ibm.com>
+Date: Thu, 26 Oct 2017 14:37:35 +0200
+Subject: s390/dasd: prevent prefix I/O error
+Git-commit: da340f921d3454f1521671c7a5a43ad3331fbe50
+Patch-mainline: v4.15-rc3
+References: bsc#1103421
+
+Prevent that a prefix flag is set based on invalid configuration data.
+The validity.verify_base flag should only be set for alias devices.
+Usually the unit address type is either one of base, PAV alias or
+HyperPAV alias. But in cases where the unit address type is not set or
+any other value the validity.verify_base flag might be set as well.
+This would lead to follow on errors.
+Explicitly check for alias devices and set the validity flag only for
+them.
+
+Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
+Reviewed-by: Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/s390/block/dasd_eckd.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+--- a/drivers/s390/block/dasd_eckd.c
++++ b/drivers/s390/block/dasd_eckd.c
+@@ -521,10 +521,12 @@ static int prefix_LRE(struct ccw1 *ccw,
+ pfxdata->validity.define_extent = 1;
+
+ /* private uid is kept up to date, conf_data may be outdated */
+- if (startpriv->uid.type != UA_BASE_DEVICE) {
++ if (startpriv->uid.type == UA_BASE_PAV_ALIAS)
+ pfxdata->validity.verify_base = 1;
+- if (startpriv->uid.type == UA_HYPER_PAV_ALIAS)
+- pfxdata->validity.hyper_pav = 1;
++
++ if (startpriv->uid.type == UA_HYPER_PAV_ALIAS) {
++ pfxdata->validity.verify_base = 1;
++ pfxdata->validity.hyper_pav = 1;
+ }
+
+ /* define extend data (mostly)*/
+@@ -3488,10 +3490,12 @@ static int prepare_itcw(struct itcw *itc
+ pfxdata.validity.define_extent = 1;
+
+ /* private uid is kept up to date, conf_data may be outdated */
+- if (startpriv->uid.type != UA_BASE_DEVICE) {
++ if (startpriv->uid.type == UA_BASE_PAV_ALIAS)
++ pfxdata.validity.verify_base = 1;
++
++ if (startpriv->uid.type == UA_HYPER_PAV_ALIAS) {
+ pfxdata.validity.verify_base = 1;
+- if (startpriv->uid.type == UA_HYPER_PAV_ALIAS)
+- pfxdata.validity.hyper_pav = 1;
++ pfxdata.validity.hyper_pav = 1;
+ }
+
+ switch (cmd) {
diff --git a/patches.arch/s390-eadm-fix-config_block-include-dependency.patch b/patches.arch/s390-eadm-fix-config_block-include-dependency.patch
new file mode 100644
index 0000000000..6a12de951c
--- /dev/null
+++ b/patches.arch/s390-eadm-fix-config_block-include-dependency.patch
@@ -0,0 +1,36 @@
+From: Sebastian Ott <sebott@linux.vnet.ibm.com>
+Date: Tue, 23 Jan 2018 13:58:05 +0100
+Subject: s390/eadm: fix CONFIG_BLOCK include dependency
+Git-commit: 366b77ae43c5a3bf1a367f15ec8bc16e05035f14
+Patch-mainline: v4.16-rc1
+References: bsc#1103421
+
+Commit 2a842acab109 ("block: introduce new block status code type")
+added blk_status_t usage to the eadm subchannel driver. However
+blk_status_t is unknown when included via <linux/blkdev.h> for CONFIG_BLOCK=n.
+
+Only include <linux/blk_types.h> since this is the only dependency eadm has.
+
+This fixes build failures like below:
+In file included from drivers/s390/cio/eadm_sch.c:24:0:
+./arch/s390/include/asm/eadm.h:111:4: error: unknown type name 'blk_status_t'; did you mean 'si_status'?
+ blk_status_t error);
+
+Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ arch/s390/include/asm/eadm.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/s390/include/asm/eadm.h
++++ b/arch/s390/include/asm/eadm.h
+@@ -4,6 +4,7 @@
+ #include <linux/types.h>
+ #include <linux/device.h>
+ #include <linux/blkdev.h>
++#include <linux/blk_types.h>
+
+ struct arqb {
+ u64 data;
diff --git a/patches.arch/s390-ipl-ensure-loadparm-valid-flag-is-set.patch b/patches.arch/s390-ipl-ensure-loadparm-valid-flag-is-set.patch
new file mode 100644
index 0000000000..dbe9fdda8d
--- /dev/null
+++ b/patches.arch/s390-ipl-ensure-loadparm-valid-flag-is-set.patch
@@ -0,0 +1,35 @@
+From: Vasily Gorbik <gor@linux.ibm.com>
+Date: Tue, 3 Apr 2018 16:02:15 +0200
+Subject: s390/ipl: ensure loadparm valid flag is set
+Git-commit: 15deb080a6087b73089139569558965750e69d67
+Patch-mainline: v4.17-rc1
+References: bsc#1103421
+
+When loadparm is set in reipl parm block, the kernel should also set
+DIAG308_FLAGS_LP_VALID flag.
+
+This fixes loadparm ignoring during z/VM fcp -> ccw reipl and kvm direct
+boot -> ccw reipl.
+
+Cc: <stable@vger.kernel.org>
+Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ arch/s390/kernel/ipl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
+index 34477c1aee6d..502c90525a0e 100644
+--- a/arch/s390/kernel/ipl.c
++++ b/arch/s390/kernel/ipl.c
+@@ -776,6 +776,7 @@ static ssize_t reipl_generic_loadparm_store(struct ipl_parameter_block *ipb,
+ /* copy and convert to ebcdic */
+ memcpy(ipb->hdr.loadparm, buf, lp_len);
+ ASCEBC(ipb->hdr.loadparm, LOADPARM_LEN);
++ ipb->hdr.flags |= DIAG308_FLAGS_LP_VALID;
+ return len;
+ }
+
+
diff --git a/patches.arch/s390-pci-do-not-require-ais-facility.patch b/patches.arch/s390-pci-do-not-require-ais-facility.patch
new file mode 100644
index 0000000000..298f31f179
--- /dev/null
+++ b/patches.arch/s390-pci-do-not-require-ais-facility.patch
@@ -0,0 +1,95 @@
+From: Christian Borntraeger <borntraeger@de.ibm.com>
+Date: Mon, 30 Oct 2017 14:38:58 +0100
+Subject: s390/pci: do not require AIS facility
+Git-commit: 48070c73058be6de9c0d754d441ed7092dfc8f12
+Patch-mainline: v4.15-rc1
+References: bsc#1103421
+
+As of today QEMU does not provide the AIS facility to its guest. This
+prevents Linux guests from using PCI devices as the ais facility is
+checked during init. As this is just a performance optimization, we can
+move the ais check into the code where we need it (calling the SIC
+instruction). This is used at initialization and on interrupt. Both
+places do not require any serialization, so we can simply skip the
+instruction.
+
+Since we will now get all interrupts, we can also avoid the 2nd scan.
+As we can have multiple interrupts in parallel we might trigger spurious
+irqs more often for the non-AIS case but the core code can handle that.
+
+Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
+Reviewed-by: Pierre Morel <pmorel@linux.vnet.ibm.com>
+Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
+Acked-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
+Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ arch/s390/include/asm/pci_insn.h | 2 +-
+ arch/s390/pci/pci.c | 5 +++--
+ arch/s390/pci/pci_insn.c | 6 +++++-
+ 3 files changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/arch/s390/include/asm/pci_insn.h b/arch/s390/include/asm/pci_insn.h
+index 34abcf275799..a74efc02ad2c 100644
+--- a/arch/s390/include/asm/pci_insn.h
++++ b/arch/s390/include/asm/pci_insn.h
+@@ -81,6 +81,6 @@ int zpci_refresh_trans(u64 fn, u64 addr, u64 range);
+ int zpci_load(u64 *data, u64 req, u64 offset);
+ int zpci_store(u64 data, u64 req, u64 offset);
+ int zpci_store_block(const u64 *data, u64 req, u64 offset);
+-void zpci_set_irq_ctrl(u16 ctl, char *unused, u8 isc);
++int zpci_set_irq_ctrl(u16 ctl, char *unused, u8 isc);
+
+ #endif
+diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c
+index a25d95a6612d..0fe649c0d542 100644
+--- a/arch/s390/pci/pci.c
++++ b/arch/s390/pci/pci.c
+@@ -368,7 +368,8 @@ static void zpci_irq_handler(struct airq_struct *airq)
+ /* End of second scan with interrupts on. */
+ break;
+ /* First scan complete, reenable interrupts. */
+- zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, NULL, PCI_ISC);
++ if (zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, NULL, PCI_ISC))
++ break;
+ si = 0;
+ continue;
+ }
+@@ -956,7 +957,7 @@ static int __init pci_base_init(void)
+ if (!s390_pci_probe)
+ return 0;
+
+- if (!test_facility(69) || !test_facility(71) || !test_facility(72))
++ if (!test_facility(69) || !test_facility(71))
+ return 0;
+
+ rc = zpci_debug_init();
+diff --git a/arch/s390/pci/pci_insn.c b/arch/s390/pci/pci_insn.c
+index ea34086c8674..81b840bc6e4e 100644
+--- a/arch/s390/pci/pci_insn.c
++++ b/arch/s390/pci/pci_insn.c
+@@ -7,6 +7,7 @@
+ #include <linux/export.h>
+ #include <linux/errno.h>
+ #include <linux/delay.h>
++#include <asm/facility.h>
+ #include <asm/pci_insn.h>
+ #include <asm/pci_debug.h>
+ #include <asm/processor.h>
+@@ -91,11 +92,14 @@ int zpci_refresh_trans(u64 fn, u64 addr, u64 range)
+ }
+
+ /* Set Interruption Controls */
+-void zpci_set_irq_ctrl(u16 ctl, char *unused, u8 isc)
++int zpci_set_irq_ctrl(u16 ctl, char *unused, u8 isc)
+ {
++ if (!test_facility(72))
++ return -EIO;
+ asm volatile (
+ " .insn rsy,0xeb00000000d1,%[ctl],%[isc],%[u]\n"
+ : : [ctl] "d" (ctl), [isc] "d" (isc << 27), [u] "Q" (*unused));
++ return 0;
+ }
+
+ /* PCI Load */
+
diff --git a/patches.arch/s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch b/patches.arch/s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch
new file mode 100644
index 0000000000..afff85e2fa
--- /dev/null
+++ b/patches.arch/s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch
@@ -0,0 +1,62 @@
+From: Julian Wiedmann <jwi@linux.ibm.com>
+Date: Wed, 2 May 2018 08:28:34 +0200
+Subject: s390/qdio: don't release memory in qdio_setup_irq()
+Git-commit: 2e68adcd2fb21b7188ba449f0fab3bee2910e500
+Patch-mainline: v4.17-rc6
+References: bsc#1103421
+
+Calling qdio_release_memory() on error is just plain wrong. It frees
+the main qdio_irq struct, when following code still uses it.
+
+Also, no other error path in qdio_establish() does this. So trust
+callers to clean up via qdio_free() if some step of the QDIO
+initialization fails.
+
+Fixes: 779e6e1c724d ("[S390] qdio: new qdio driver.")
+Cc: <stable@vger.kernel.org> #v2.6.27+
+Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
+Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
+Acked-by: Johannes Thumshirn <jthumshirn@suse.de>
+---
+ drivers/s390/cio/qdio_setup.c | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+--- a/drivers/s390/cio/qdio_setup.c
++++ b/drivers/s390/cio/qdio_setup.c
+@@ -456,7 +456,6 @@ int qdio_setup_irq(struct qdio_initializ
+ {
+ struct ciw *ciw;
+ struct qdio_irq *irq_ptr = init_data->cdev->private->qdio_data;
+- int rc;
+
+ memset(&irq_ptr->qib, 0, sizeof(irq_ptr->qib));
+ memset(&irq_ptr->siga_flag, 0, sizeof(irq_ptr->siga_flag));
+@@ -493,16 +492,14 @@ int qdio_setup_irq(struct qdio_initializ
+ ciw = ccw_device_get_ciw(init_data->cdev, CIW_TYPE_EQUEUE);
+ if (!ciw) {
+ DBF_ERROR("%4x NO EQ", irq_ptr->schid.sch_no);
+- rc = -EINVAL;
+- goto out_err;
++ return -EINVAL;
+ }
+ irq_ptr->equeue = *ciw;
+
+ ciw = ccw_device_get_ciw(init_data->cdev, CIW_TYPE_AQUEUE);
+ if (!ciw) {
+ DBF_ERROR("%4x NO AQ", irq_ptr->schid.sch_no);
+- rc = -EINVAL;
+- goto out_err;
++ return -EINVAL;
+ }
+ irq_ptr->aqueue = *ciw;
+
+@@ -510,9 +507,6 @@ int qdio_setup_irq(struct qdio_initializ
+ irq_ptr->orig_handler = init_data->cdev->handler;
+ init_data->cdev->handler = qdio_int_handler;
+ return 0;
+-out_err:
+- qdio_release_memory(irq_ptr);
+- return rc;
+ }
+
+ void qdio_print_subchannel_info(struct qdio_irq *irq_ptr,
diff --git a/patches.drivers/ALSA-emu10k1-Rate-limit-error-messages-about-page-er b/patches.drivers/ALSA-emu10k1-Rate-limit-error-messages-about-page-er
new file mode 100644
index 0000000000..97c1f92084
--- /dev/null
+++ b/patches.drivers/ALSA-emu10k1-Rate-limit-error-messages-about-page-er
@@ -0,0 +1,52 @@
+From 11d42c81036324697d367600bfc16f6dd37636fd Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 17 May 2018 20:02:23 +0200
+Subject: [PATCH] ALSA: emu10k1: Rate-limit error messages about page errors
+Git-commit: 11d42c81036324697d367600bfc16f6dd37636fd
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The error messages at sanity checks of memory pages tend to repeat too
+many times once when it hits, and without the rate limit, it may flood
+and become unreadable. Replace such messages with the *_ratelimited()
+variant.
+
+Bugzilla: http://bugzilla.opensuse.org/show_bug.cgi?id=1093027
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/pci/emu10k1/memory.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c
+index 5865f3b90b34..dbc7d8d0e1c4 100644
+--- a/sound/pci/emu10k1/memory.c
++++ b/sound/pci/emu10k1/memory.c
+@@ -248,13 +248,13 @@ search_empty(struct snd_emu10k1 *emu, int size)
+ static int is_valid_page(struct snd_emu10k1 *emu, dma_addr_t addr)
+ {
+ if (addr & ~emu->dma_mask) {
+- dev_err(emu->card->dev,
++ dev_err_ratelimited(emu->card->dev,
+ "max memory size is 0x%lx (addr = 0x%lx)!!\n",
+ emu->dma_mask, (unsigned long)addr);
+ return 0;
+ }
+ if (addr & (EMUPAGESIZE-1)) {
+- dev_err(emu->card->dev, "page is not aligned\n");
++ dev_err_ratelimited(emu->card->dev, "page is not aligned\n");
+ return 0;
+ }
+ return 1;
+@@ -345,7 +345,7 @@ snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *subst
+ else
+ addr = snd_pcm_sgbuf_get_addr(substream, ofs);
+ if (! is_valid_page(emu, addr)) {
+- dev_err(emu->card->dev,
++ dev_err_ratelimited(emu->card->dev,
+ "emu: failure page = %d\n", idx);
+ mutex_unlock(&hdr->block_mutex);
+ return NULL;
+--
+2.18.0
+
diff --git a/patches.drivers/ALSA-emu10k1-add-error-handling-for-snd_ctl_add b/patches.drivers/ALSA-emu10k1-add-error-handling-for-snd_ctl_add
new file mode 100644
index 0000000000..15bab113b8
--- /dev/null
+++ b/patches.drivers/ALSA-emu10k1-add-error-handling-for-snd_ctl_add
@@ -0,0 +1,38 @@
+From 6d531e7b972cb62ded011c2dfcc2d9f72ea6c421 Mon Sep 17 00:00:00 2001
+From: Zhouyang Jia <jiazhouyang09@gmail.com>
+Date: Mon, 11 Jun 2018 16:18:40 +0800
+Subject: [PATCH] ALSA: emu10k1: add error handling for snd_ctl_add
+Git-commit: 6d531e7b972cb62ded011c2dfcc2d9f72ea6c421
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+When snd_ctl_add fails, the lack of error-handling code may
+cause unexpected results.
+
+This patch adds error-handling code after calling snd_ctl_add.
+
+Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/pci/emu10k1/emupcm.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c
+index d39458ab251f..69f9b100bd24 100644
+--- a/sound/pci/emu10k1/emupcm.c
++++ b/sound/pci/emu10k1/emupcm.c
+@@ -1858,7 +1858,9 @@ int snd_emu10k1_pcm_efx(struct snd_emu10k1 *emu, int device)
+ if (!kctl)
+ return -ENOMEM;
+ kctl->id.device = device;
+- snd_ctl_add(emu->card, kctl);
++ err = snd_ctl_add(emu->card, kctl);
++ if (err < 0)
++ return err;
+
+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci), 64*1024, 64*1024);
+
+--
+2.18.0
+
diff --git a/patches.drivers/ALSA-fm801-add-error-handling-for-snd_ctl_add b/patches.drivers/ALSA-fm801-add-error-handling-for-snd_ctl_add
new file mode 100644
index 0000000000..b5b6c3774d
--- /dev/null
+++ b/patches.drivers/ALSA-fm801-add-error-handling-for-snd_ctl_add
@@ -0,0 +1,52 @@
+From ef1ffbe7889e99f5b5cccb41c89e5c94f50f3218 Mon Sep 17 00:00:00 2001
+From: Zhouyang Jia <jiazhouyang09@gmail.com>
+Date: Mon, 11 Jun 2018 16:04:06 +0800
+Subject: [PATCH] ALSA: fm801: add error handling for snd_ctl_add
+Git-commit: ef1ffbe7889e99f5b5cccb41c89e5c94f50f3218
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+When snd_ctl_add fails, the lack of error-handling code may
+cause unexpected results.
+
+This patch adds error-handling code after calling snd_ctl_add.
+
+Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
+Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/pci/fm801.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c
+index 73a67bc3586b..e3fb9c61017c 100644
+--- a/sound/pci/fm801.c
++++ b/sound/pci/fm801.c
+@@ -1068,11 +1068,19 @@ static int snd_fm801_mixer(struct fm801 *chip)
+ if ((err = snd_ac97_mixer(chip->ac97_bus, &ac97, &chip->ac97_sec)) < 0)
+ return err;
+ }
+- for (i = 0; i < FM801_CONTROLS; i++)
+- snd_ctl_add(chip->card, snd_ctl_new1(&snd_fm801_controls[i], chip));
++ for (i = 0; i < FM801_CONTROLS; i++) {
++ err = snd_ctl_add(chip->card,
++ snd_ctl_new1(&snd_fm801_controls[i], chip));
++ if (err < 0)
++ return err;
++ }
+ if (chip->multichannel) {
+- for (i = 0; i < FM801_CONTROLS_MULTI; i++)
+- snd_ctl_add(chip->card, snd_ctl_new1(&snd_fm801_controls_multi[i], chip));
++ for (i = 0; i < FM801_CONTROLS_MULTI; i++) {
++ err = snd_ctl_add(chip->card,
++ snd_ctl_new1(&snd_fm801_controls_multi[i], chip));
++ if (err < 0)
++ return err;
++ }
+ }
+ return 0;
+ }
+--
+2.18.0
+
diff --git a/patches.drivers/ALSA-usb-audio-Apply-rate-limit-to-warning-messages- b/patches.drivers/ALSA-usb-audio-Apply-rate-limit-to-warning-messages-
new file mode 100644
index 0000000000..f186561047
--- /dev/null
+++ b/patches.drivers/ALSA-usb-audio-Apply-rate-limit-to-warning-messages-
@@ -0,0 +1,35 @@
+From 377a879d9832f4ba69bd6a1fc996bb4181b1e504 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Wed, 16 May 2018 20:07:18 +0200
+Subject: [PATCH] ALSA: usb-audio: Apply rate limit to warning messages in URB complete callback
+Git-commit: 377a879d9832f4ba69bd6a1fc996bb4181b1e504
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+retire_capture_urb() may print warning messages when the given URB
+doesn't align, and this may flood the system log easily.
+Put the rate limit to the message for avoiding it.
+
+Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1093485
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/usb/pcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
+index dc2dfec9effd..20bed1c7a312 100644
+--- a/sound/usb/pcm.c
++++ b/sound/usb/pcm.c
+@@ -1303,7 +1303,7 @@ static void retire_capture_urb(struct snd_usb_substream *subs,
+ if (bytes % (runtime->sample_bits >> 3) != 0) {
+ int oldbytes = bytes;
+ bytes = frames * stride;
+- dev_warn(&subs->dev->dev,
++ dev_warn_ratelimited(&subs->dev->dev,
+ "Corrected urb data len. %d->%d\n",
+ oldbytes, bytes);
+ }
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-dpcm-fix-BE-dai-not-hw_free-and-shutdown b/patches.drivers/ASoC-dpcm-fix-BE-dai-not-hw_free-and-shutdown
new file mode 100644
index 0000000000..3807daa8f2
--- /dev/null
+++ b/patches.drivers/ASoC-dpcm-fix-BE-dai-not-hw_free-and-shutdown
@@ -0,0 +1,51 @@
+From 9c0ac70ad24d76b873c1551e27790c7f6a815d5c Mon Sep 17 00:00:00 2001
+From: Kai Chieh Chuang <kaichieh.chuang@mediatek.com>
+Date: Mon, 28 May 2018 10:18:18 +0800
+Subject: [PATCH] ASoC: dpcm: fix BE dai not hw_free and shutdown
+Git-commit: 9c0ac70ad24d76b873c1551e27790c7f6a815d5c
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+In case, one BE is used by two FE1/FE2
+FE1--->BE-->
+ |
+FE2----]
+when FE1/FE2 call dpcm_be_dai_hw_free() together
+the BE users will be 2 (> 1), hence cannot be hw_free
+the be state will leave at, ex. SND_SOC_DPCM_STATE_STOP
+
+later FE1/FE2 call dpcm_be_dai_shutdown(),
+will be skip due to wrong state.
+leaving the BE not being hw_free and shutdown.
+
+The BE dai will be hw_free later when calling
+dpcm_be_dai_shutdown() if still in invalid state.
+
+Signed-off-by: KaiChieh Chuang <kaichieh.chuang@mediatek.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ sound/soc/soc-pcm.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
+index 2df4719a84db..2d846b3dd70c 100644
+--- a/sound/soc/soc-pcm.c
++++ b/sound/soc/soc-pcm.c
+@@ -1866,8 +1866,10 @@ int dpcm_be_dai_shutdown(struct snd_soc_pcm_runtime *fe, int stream)
+ continue;
+
+ if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_FREE) &&
+- (be->dpcm[stream].state != SND_SOC_DPCM_STATE_OPEN))
+- continue;
++ (be->dpcm[stream].state != SND_SOC_DPCM_STATE_OPEN)) {
++ soc_pcm_hw_free(be_substream);
++ be->dpcm[stream].state = SND_SOC_DPCM_STATE_HW_FREE;
++ }
+
+ dev_dbg(be->dev, "ASoC: close BE %s\n",
+ be->dai_link->name);
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-topology-Add-missing-clock-gating-parameter-whe b/patches.drivers/ASoC-topology-Add-missing-clock-gating-parameter-whe
new file mode 100644
index 0000000000..3b8937c98f
--- /dev/null
+++ b/patches.drivers/ASoC-topology-Add-missing-clock-gating-parameter-whe
@@ -0,0 +1,106 @@
+From 933e1c4a667103c4d10ebdc9505a0a6abd8c3fbd Mon Sep 17 00:00:00 2001
+From: Kirill Marinushkin <k.marinushkin@gmail.com>
+Date: Wed, 4 Apr 2018 06:19:38 +0200
+Subject: [PATCH] ASoC: topology: Add missing clock gating parameter when parsing hw_configs
+Git-commit: 933e1c4a667103c4d10ebdc9505a0a6abd8c3fbd
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+Clock gating parameter is a part of `dai_fmt`. It is supported by
+`alsa-lib` when creating a topology binary file, but ignored by kernel
+when loading this topology file.
+
+After applying this commit, the clock gating parameter is not ignored any
+more. This solution is backwards compatible. The existing behaviour is
+not broken, because by default the parameter value is 0 and is ignored.
+
+snd_soc_tplg_hw_config.clock_gated = 0 => no effect
+snd_soc_tplg_hw_config.clock_gated = 1 => SND_SOC_DAIFMT_GATED
+snd_soc_tplg_hw_config.clock_gated = 2 => SND_SOC_DAIFMT_CONT
+
+For example, the following config, based on
+alsa-lib/src/conf/topology/broadwell/broadwell.conf, is now supported:
+
+~~~~
+SectionHWConfig."CodecHWConfig" {
+ id "1"
+ format "I2S" # physical audio format.
+ pm_gate_clocks "true" # clock can be gated
+}
+
+SectionLink."Codec" {
+
+ # used for binding to the physical link
+ id "0"
+
+ hw_configs [
+ "CodecHWConfig"
+ ]
+
+ default_hw_conf_id "1"
+}
+~~~~
+
+Signed-off-by: Kirill Marinushkin <k.marinushkin@gmail.com>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Jaroslav Kysela <perex@perex.cz>
+Cc: Takashi Iwai <tiwai@suse.de>
+Cc: Mark Brown <broonie@kernel.org>
+Cc: Pan Xiuli <xiuli.pan@linux.intel.com>
+Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Cc: linux-kernel@vger.kernel.org
+Cc: alsa-devel@alsa-project.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ include/uapi/sound/asoc.h | 7 ++++++-
+ sound/soc/soc-topology.c | 7 +++++++
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/include/uapi/sound/asoc.h b/include/uapi/sound/asoc.h
+index f0e5e21efa54..f3c4b46e39d8 100644
+--- a/include/uapi/sound/asoc.h
++++ b/include/uapi/sound/asoc.h
+@@ -139,6 +139,11 @@
+ #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS (1 << 1)
+ #define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
+
++/* DAI clock gating */
++#define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED 0
++#define SND_SOC_TPLG_DAI_CLK_GATE_GATED 1
++#define SND_SOC_TPLG_DAI_CLK_GATE_CONT 2
++
+ /* DAI physical PCM data formats.
+ * Add new formats to the end of the list.
+ */
+@@ -324,7 +329,7 @@ struct snd_soc_tplg_hw_config {
+ __le32 size; /* in bytes of this structure */
+ __le32 id; /* unique ID - - used to match */
+ __le32 fmt; /* SND_SOC_DAI_FORMAT_ format value */
+- __u8 clock_gated; /* 1 if clock can be gated to save power */
++ __u8 clock_gated; /* SND_SOC_TPLG_DAI_CLK_GATE_ value */
+ __u8 invert_bclk; /* 1 for inverted BCLK, 0 for normal */
+ __u8 invert_fsync; /* 1 for inverted frame clock, 0 for normal */
+ __u8 bclk_master; /* SND_SOC_TPLG_BCLK_ value */
+diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
+index 1c55252641f3..aab31144f683 100644
+--- a/sound/soc/soc-topology.c
++++ b/sound/soc/soc-topology.c
+@@ -2006,6 +2006,13 @@ static void set_link_hw_format(struct snd_soc_dai_link *link,
+
+ link->dai_fmt = hw_config->fmt & SND_SOC_DAIFMT_FORMAT_MASK;
+
++ /* clock gating */
++ if (hw_config->clock_gated == SND_SOC_TPLG_DAI_CLK_GATE_GATED)
++ link->dai_fmt |= SND_SOC_DAIFMT_GATED;
++ else if (hw_config->clock_gated ==
++ SND_SOC_TPLG_DAI_CLK_GATE_CONT)
++ link->dai_fmt |= SND_SOC_DAIFMT_CONT;
++
+ /* clock signal polarity */
+ invert_bclk = hw_config->invert_bclk;
+ invert_fsync = hw_config->invert_fsync;
+--
+2.18.0
+
diff --git a/patches.drivers/ASoC-topology-Fix-bclk-and-fsync-inversion-in-set_li b/patches.drivers/ASoC-topology-Fix-bclk-and-fsync-inversion-in-set_li
new file mode 100644
index 0000000000..2915188e33
--- /dev/null
+++ b/patches.drivers/ASoC-topology-Fix-bclk-and-fsync-inversion-in-set_li
@@ -0,0 +1,95 @@
+From a941e2fab3207cb0d57dc4ec47b1b12c8ea78b84 Mon Sep 17 00:00:00 2001
+From: Kirill Marinushkin <k.marinushkin@gmail.com>
+Date: Wed, 4 Apr 2018 06:19:37 +0200
+Subject: [PATCH] ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
+Git-commit: a941e2fab3207cb0d57dc4ec47b1b12c8ea78b84
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The values of bclk and fsync are inverted WRT the codec. But the existing
+solution already works for Broadwell, see the alsa-lib config:
+
+`alsa-lib/src/conf/topology/broadwell/broadwell.conf`
+
+This commit provides the backwards-compatible solution to fix this misuse.
+
+Signed-off-by: Kirill Marinushkin <k.marinushkin@gmail.com>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Tested-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Jaroslav Kysela <perex@perex.cz>
+Cc: Takashi Iwai <tiwai@suse.de>
+Cc: Mark Brown <broonie@kernel.org>
+Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Cc: linux-kernel@vger.kernel.org
+Cc: alsa-devel@alsa-project.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ include/uapi/sound/asoc.h | 16 ++++++++++++++--
+ sound/soc/soc-topology.c | 12 +++++++-----
+ 2 files changed, 21 insertions(+), 7 deletions(-)
+
+diff --git a/include/uapi/sound/asoc.h b/include/uapi/sound/asoc.h
+index 69c37ecbff7e..f0e5e21efa54 100644
+--- a/include/uapi/sound/asoc.h
++++ b/include/uapi/sound/asoc.h
+@@ -160,6 +160,18 @@
+ #define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS (1 << 2)
+ #define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP (1 << 3)
+
++/* DAI topology BCLK parameter
++ * For the backwards capability, by default codec is bclk master
++ */
++#define SND_SOC_TPLG_BCLK_CM 0 /* codec is bclk master */
++#define SND_SOC_TPLG_BCLK_CS 1 /* codec is bclk slave */
++
++/* DAI topology FSYNC parameter
++ * For the backwards capability, by default codec is fsync master
++ */
++#define SND_SOC_TPLG_FSYNC_CM 0 /* codec is fsync master */
++#define SND_SOC_TPLG_FSYNC_CS 1 /* codec is fsync slave */
++
+ /*
+ * Block Header.
+ * This header precedes all object and object arrays below.
+@@ -315,8 +327,8 @@ struct snd_soc_tplg_hw_config {
+ __u8 clock_gated; /* 1 if clock can be gated to save power */
+ __u8 invert_bclk; /* 1 for inverted BCLK, 0 for normal */
+ __u8 invert_fsync; /* 1 for inverted frame clock, 0 for normal */
+- __u8 bclk_master; /* 1 for master of BCLK, 0 for slave */
+- __u8 fsync_master; /* 1 for master of FSYNC, 0 for slave */
++ __u8 bclk_master; /* SND_SOC_TPLG_BCLK_ value */
++ __u8 fsync_master; /* SND_SOC_TPLG_FSYNC_ value */
+ __u8 mclk_direction; /* 0 for input, 1 for output */
+ __le16 reserved; /* for 32bit alignment */
+ __le32 mclk_rate; /* MCLK or SYSCLK freqency in Hz */
+diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c
+index 942c6e5eb4b7..1c55252641f3 100644
+--- a/sound/soc/soc-topology.c
++++ b/sound/soc/soc-topology.c
+@@ -2019,13 +2019,15 @@ static void set_link_hw_format(struct snd_soc_dai_link *link,
+ link->dai_fmt |= SND_SOC_DAIFMT_IB_IF;
+
+ /* clock masters */
+- bclk_master = hw_config->bclk_master;
+- fsync_master = hw_config->fsync_master;
+- if (!bclk_master && !fsync_master)
++ bclk_master = (hw_config->bclk_master ==
++ SND_SOC_TPLG_BCLK_CM);
++ fsync_master = (hw_config->fsync_master ==
++ SND_SOC_TPLG_FSYNC_CM);
++ if (bclk_master && fsync_master)
+ link->dai_fmt |= SND_SOC_DAIFMT_CBM_CFM;
+- else if (bclk_master && !fsync_master)
+- link->dai_fmt |= SND_SOC_DAIFMT_CBS_CFM;
+ else if (!bclk_master && fsync_master)
++ link->dai_fmt |= SND_SOC_DAIFMT_CBS_CFM;
++ else if (bclk_master && !fsync_master)
+ link->dai_fmt |= SND_SOC_DAIFMT_CBM_CFS;
+ else
+ link->dai_fmt |= SND_SOC_DAIFMT_CBS_CFS;
+--
+2.18.0
+
diff --git a/patches.drivers/Bluetooth-btusb-Add-a-new-Realtek-8723DE-ID-2ff8-b01 b/patches.drivers/Bluetooth-btusb-Add-a-new-Realtek-8723DE-ID-2ff8-b01
new file mode 100644
index 0000000000..235d543e4f
--- /dev/null
+++ b/patches.drivers/Bluetooth-btusb-Add-a-new-Realtek-8723DE-ID-2ff8-b01
@@ -0,0 +1,66 @@
+From 66d9975c5a7c40aa7e4bb0ec0b0c37ba1f190923 Mon Sep 17 00:00:00 2001
+From: Jian-Hong Pan <jian-hong@endlessm.com>
+Date: Mon, 21 May 2018 18:09:20 +0800
+Subject: [PATCH] Bluetooth: btusb: Add a new Realtek 8723DE ID 2ff8:b011
+Git-commit: 66d9975c5a7c40aa7e4bb0ec0b0c37ba1f190923
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+Without this patch we cannot turn on the Bluethooth adapter on ASUS
+E406MA.
+
+T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
+D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
+P: Vendor=2ff8 ProdID=b011 Rev= 2.00
+S: Manufacturer=Realtek
+S: Product=802.11n WLAN Adapter
+S: SerialNumber=00e04c000001
+C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
+I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
+E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
+E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
+I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
+E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
+I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
+E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
+I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
+E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
+I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
+E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
+I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
+E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
+
+Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/bluetooth/btusb.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
+index 91882f54c7bd..292b1ea066ca 100644
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -373,6 +373,9 @@ static const struct usb_device_id blacklist_table[] = {
+ /* Additional Realtek 8723BU Bluetooth devices */
+ { USB_DEVICE(0x7392, 0xa611), .driver_info = BTUSB_REALTEK },
+
++ /* Additional Realtek 8723DE Bluetooth devices */
++ { USB_DEVICE(0x2ff8, 0xb011), .driver_info = BTUSB_REALTEK },
++
+ /* Additional Realtek 8821AE Bluetooth devices */
+ { USB_DEVICE(0x0b05, 0x17dc), .driver_info = BTUSB_REALTEK },
+ { USB_DEVICE(0x13d3, 0x3414), .driver_info = BTUSB_REALTEK },
+--
+2.18.0
+
diff --git a/patches.drivers/Bluetooth-btusb-add-ID-for-LiteOn-04ca-301a b/patches.drivers/Bluetooth-btusb-add-ID-for-LiteOn-04ca-301a
new file mode 100644
index 0000000000..35bf109e7d
--- /dev/null
+++ b/patches.drivers/Bluetooth-btusb-add-ID-for-LiteOn-04ca-301a
@@ -0,0 +1,43 @@
+From d666fc5479ad76a1bcbe6476d4997cea714bab2d Mon Sep 17 00:00:00 2001
+From: Vic Wei <vwei@codeaurora.org>
+Date: Mon, 23 Apr 2018 15:17:07 -0700
+Subject: [PATCH] Bluetooth: btusb: add ID for LiteOn 04ca:301a
+Git-commit: d666fc5479ad76a1bcbe6476d4997cea714bab2d
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+Contains a QCA6174A chipset, with USB BT. Let's support loading
+firmware on it.
+
+From usb-devices:
+T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
+D: Ver= 2.01 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
+P: Vendor=04ca ProdID=301a Rev= 0.01
+C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
+I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
+
+Signed-off-by: Vic Wei <vwei@codeaurora.org>
+Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/bluetooth/btusb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
+index b937cc1e2c07..a470a2313935 100644
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -276,6 +276,7 @@ static const struct usb_device_id blacklist_table[] = {
+ { USB_DEVICE(0x04ca, 0x3011), .driver_info = BTUSB_QCA_ROME },
+ { USB_DEVICE(0x04ca, 0x3015), .driver_info = BTUSB_QCA_ROME },
+ { USB_DEVICE(0x04ca, 0x3016), .driver_info = BTUSB_QCA_ROME },
++ { USB_DEVICE(0x04ca, 0x301a), .driver_info = BTUSB_QCA_ROME },
+
+ /* Broadcom BCM2035 */
+ { USB_DEVICE(0x0a5c, 0x2009), .driver_info = BTUSB_BCM92035 },
+--
+2.18.0
+
diff --git a/patches.drivers/Bluetooth-hci_qca-Fix-Sleep-inside-atomic-section-wa b/patches.drivers/Bluetooth-hci_qca-Fix-Sleep-inside-atomic-section-wa
new file mode 100644
index 0000000000..cef2c630bb
--- /dev/null
+++ b/patches.drivers/Bluetooth-hci_qca-Fix-Sleep-inside-atomic-section-wa
@@ -0,0 +1,44 @@
+From 9960521c44a5d828f29636ceac0600603ecbddbf Mon Sep 17 00:00:00 2001
+From: Thierry Escande <thierry.escande@linaro.org>
+Date: Tue, 29 May 2018 18:37:16 +0200
+Subject: [PATCH] Bluetooth: hci_qca: Fix "Sleep inside atomic section" warning
+Git-commit: 9960521c44a5d828f29636ceac0600603ecbddbf
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+This patch fixes the following warning during boot:
+
+ do not call blocking ops when !TASK_RUNNING; state=1 set at
+ [<(ptrval)>] qca_setup+0x194/0x750 [hci_uart]
+ WARNING: CPU: 2 PID: 1878 at kernel/sched/core.c:6135
+ __might_sleep+0x7c/0x88
+
+In qca_set_baudrate(), the current task state is set to
+TASK_UNINTERRUPTIBLE before going to sleep for 300ms. It was then
+restored to TASK_INTERRUPTIBLE. This patch sets the current task state
+back to TASK_RUNNING instead.
+
+Signed-off-by: Thierry Escande <thierry.escande@linaro.org>
+Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/bluetooth/hci_qca.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/bluetooth/hci_qca.c b/drivers/bluetooth/hci_qca.c
+index f05382b5a65d..51790dd02afb 100644
+--- a/drivers/bluetooth/hci_qca.c
++++ b/drivers/bluetooth/hci_qca.c
+@@ -910,7 +910,7 @@ static int qca_set_baudrate(struct hci_dev *hdev, uint8_t baudrate)
+ */
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ schedule_timeout(msecs_to_jiffies(BAUDRATE_SETTLE_TIMEOUT_MS));
+- set_current_state(TASK_INTERRUPTIBLE);
++ set_current_state(TASK_RUNNING);
+
+ return 0;
+ }
+--
+2.18.0
+
diff --git a/patches.drivers/Input-elan_i2c-add-ACPI-ID-for-lenovo-ideapad-330 b/patches.drivers/Input-elan_i2c-add-ACPI-ID-for-lenovo-ideapad-330
new file mode 100644
index 0000000000..d1184da002
--- /dev/null
+++ b/patches.drivers/Input-elan_i2c-add-ACPI-ID-for-lenovo-ideapad-330
@@ -0,0 +1,35 @@
+From 938f45008d8bc391593c97508bc798cc95a52b9b Mon Sep 17 00:00:00 2001
+From: Donald Shanty III <dshanty@protonmail.com>
+Date: Wed, 4 Jul 2018 15:50:47 +0000
+Subject: [PATCH] Input: elan_i2c - add ACPI ID for lenovo ideapad 330
+Git-commit: 938f45008d8bc391593c97508bc798cc95a52b9b
+Patch-mainline: v4.18-rc7
+References: bsc#1051510
+
+This allows Elan driver to bind to the touchpad found in Lenovo Ideapad 330
+series laptops.
+
+Signed-off-by: Donald Shanty III <dshanty@protonmail.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/input/mouse/elan_i2c_core.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
+index 1f9cd7d8b7ad..e26d8c7d131d 100644
+--- a/drivers/input/mouse/elan_i2c_core.c
++++ b/drivers/input/mouse/elan_i2c_core.c
+@@ -1346,6 +1346,7 @@ static const struct acpi_device_id elan_acpi_id[] = {
+ { "ELAN0611", 0 },
+ { "ELAN0612", 0 },
+ { "ELAN0618", 0 },
++ { "ELAN061D", 0 },
+ { "ELAN1000", 0 },
+ { }
+ };
+--
+2.18.0
+
diff --git a/patches.drivers/Input-elan_i2c-add-another-ACPI-ID-for-Lenovo-Ideapa b/patches.drivers/Input-elan_i2c-add-another-ACPI-ID-for-Lenovo-Ideapa
new file mode 100644
index 0000000000..bb52e376c3
--- /dev/null
+++ b/patches.drivers/Input-elan_i2c-add-another-ACPI-ID-for-Lenovo-Ideapa
@@ -0,0 +1,36 @@
+From 6f88a6439da5d94de334a341503bc2c7f4a7ea7f Mon Sep 17 00:00:00 2001
+From: KT Liao <kt.liao@emc.com.tw>
+Date: Mon, 16 Jul 2018 12:10:03 +0000
+Subject: [PATCH] Input: elan_i2c - add another ACPI ID for Lenovo Ideapad 330-15AST
+Git-commit: 6f88a6439da5d94de334a341503bc2c7f4a7ea7f
+Patch-mainline: v4.18-rc7
+References: bsc#1051510
+
+Add ELAN0622 to ACPI mapping table to support Elan touchpad found in
+Ideapad 330-15AST.
+
+Signed-off-by: KT Liao <kt.liao@emc.com.tw>
+Reported-by: Anant Shende <anantshende@gmail.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/input/mouse/elan_i2c_core.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c
+index e26d8c7d131d..f5ae24865355 100644
+--- a/drivers/input/mouse/elan_i2c_core.c
++++ b/drivers/input/mouse/elan_i2c_core.c
+@@ -1347,6 +1347,7 @@ static const struct acpi_device_id elan_acpi_id[] = {
+ { "ELAN0612", 0 },
+ { "ELAN0618", 0 },
+ { "ELAN061D", 0 },
++ { "ELAN0622", 0 },
+ { "ELAN1000", 0 },
+ { }
+ };
+--
+2.18.0
+
diff --git a/patches.drivers/Input-i8042-add-Lenovo-LaVie-Z-to-the-i8042-reset-li b/patches.drivers/Input-i8042-add-Lenovo-LaVie-Z-to-the-i8042-reset-li
new file mode 100644
index 0000000000..2cf5c92831
--- /dev/null
+++ b/patches.drivers/Input-i8042-add-Lenovo-LaVie-Z-to-the-i8042-reset-li
@@ -0,0 +1,44 @@
+From 384cf4285b34e08917e3e66603382f2b0c4f6e1b Mon Sep 17 00:00:00 2001
+From: Chen-Yu Tsai <wens@csie.org>
+Date: Wed, 18 Jul 2018 17:24:35 +0000
+Subject: [PATCH] Input: i8042 - add Lenovo LaVie Z to the i8042 reset list
+Git-commit: 384cf4285b34e08917e3e66603382f2b0c4f6e1b
+Patch-mainline: v4.18-rc7
+References: bsc#1051510
+
+The Lenovo LaVie Z laptop requires i8042 to be reset in order to
+consistently detect its Elantech touchpad. The nomux and kbdreset
+quirks are not sufficient.
+
+It's possible the other LaVie Z models from NEC require this as well.
+
+Cc: stable@vger.kernel.org
+Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
+index b353d494ad40..136f6e7bf797 100644
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -527,6 +527,13 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "N24_25BU"),
+ },
+ },
++ {
++ /* Lenovo LaVie Z */
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
++ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo LaVie Z"),
++ },
++ },
+ { }
+ };
+
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-APL13_WORLD b/patches.drivers/ath-Add-regulatory-mapping-for-APL13_WORLD
new file mode 100644
index 0000000000..6fb61a13bc
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-APL13_WORLD
@@ -0,0 +1,51 @@
+From 9ba8df0c52b3e6baa436374b429d3d73bd09a320 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:11:14 +0300
+Subject: [PATCH] ath: Add regulatory mapping for APL13_WORLD
+Git-commit: 9ba8df0c52b3e6baa436374b429d3d73bd09a320
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The regdomain code is used to select the correct the correct conformance
+test limits (CTL) for a country. If the regdomain code isn't available and
+it is still programmed in the EEPROM then it will cause an error and stop
+the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this regdomain code are:
+
+* 2.4GHz: ETSI
+* 5GHz: ETSI
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd_common.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index 969dc12506ee..f3969d05c816 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -68,6 +68,7 @@ enum EnumRd {
+ APL1_ETSIC = 0x55,
+ APL2_ETSIC = 0x56,
+ APL5_WORLD = 0x58,
++ APL13_WORLD = 0x5A,
+ APL6_WORLD = 0x5B,
+ APL7_FCCA = 0x5C,
+ APL8_WORLD = 0x5D,
+@@ -193,6 +194,7 @@ static struct reg_dmn_pair_mapping regDomainPairs[] = {
+ {APL3_WORLD, CTL_FCC, CTL_ETSI},
+ {APL4_WORLD, CTL_FCC, CTL_ETSI},
+ {APL5_WORLD, CTL_FCC, CTL_ETSI},
++ {APL13_WORLD, CTL_ETSI, CTL_ETSI},
+ {APL6_WORLD, CTL_ETSI, CTL_ETSI},
+ {APL8_WORLD, CTL_ETSI, CTL_ETSI},
+ {APL9_WORLD, CTL_ETSI, CTL_ETSI},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-APL2_FCCA b/patches.drivers/ath-Add-regulatory-mapping-for-APL2_FCCA
new file mode 100644
index 0000000000..25201803ab
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-APL2_FCCA
@@ -0,0 +1,51 @@
+From 4f183687e3fad3ce0e06e38976cad81bc4541990 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:11:05 +0300
+Subject: [PATCH] ath: Add regulatory mapping for APL2_FCCA
+Git-commit: 4f183687e3fad3ce0e06e38976cad81bc4541990
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The regdomain code is used to select the correct the correct conformance
+test limits (CTL) for a country. If the regdomain code isn't available and
+it is still programmed in the EEPROM then it will cause an error and stop
+the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this regdomain code are:
+
+* 2.4GHz: FCC
+* 5GHz: FCC
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd_common.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index f7f0efd437b8..969dc12506ee 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -59,6 +59,7 @@ enum EnumRd {
+ MKK1_MKKA1 = 0x4A,
+ MKK1_MKKA2 = 0x4B,
+ MKK1_MKKC = 0x4C,
++ APL2_FCCA = 0x4D,
+
+ APL3_FCCA = 0x50,
+ APL1_WORLD = 0x52,
+@@ -188,6 +189,7 @@ static struct reg_dmn_pair_mapping regDomainPairs[] = {
+ {FCC1_FCCA, CTL_FCC, CTL_FCC},
+ {APL1_WORLD, CTL_FCC, CTL_ETSI},
+ {APL2_WORLD, CTL_FCC, CTL_ETSI},
++ {APL2_FCCA, CTL_FCC, CTL_FCC},
+ {APL3_WORLD, CTL_FCC, CTL_ETSI},
+ {APL4_WORLD, CTL_FCC, CTL_ETSI},
+ {APL5_WORLD, CTL_FCC, CTL_ETSI},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-Bahamas b/patches.drivers/ath-Add-regulatory-mapping-for-Bahamas
new file mode 100644
index 0000000000..47c02f61c6
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-Bahamas
@@ -0,0 +1,56 @@
+From 699e2302c286a14afe7b7394151ce6c4e1790cc1 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:09:53 +0300
+Subject: [PATCH] ath: Add regulatory mapping for Bahamas
+Git-commit: 699e2302c286a14afe7b7394151ce6c4e1790cc1
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
+and to select the correct conformance test limits (CTL) for a country. If
+the country isn't available and it is still programmed in the EEPROM then
+it will cause an error and stop the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this country are:
+
+* 2.4GHz: ETSI
+* 5GHz: FCC
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd.h | 1 +
+ drivers/net/wireless/ath/regd_common.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd.h b/drivers/net/wireless/ath/regd.h
+index 5d80be213fac..f296ff838d2a 100644
+--- a/drivers/net/wireless/ath/regd.h
++++ b/drivers/net/wireless/ath/regd.h
+@@ -68,6 +68,7 @@ enum CountryCode {
+ CTRY_AUSTRALIA = 36,
+ CTRY_AUSTRIA = 40,
+ CTRY_AZERBAIJAN = 31,
++ CTRY_BAHAMAS = 44,
+ CTRY_BAHRAIN = 48,
+ CTRY_BANGLADESH = 50,
+ CTRY_BARBADOS = 52,
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index bdd2b4d61f2f..cde0268cbed6 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -298,6 +298,7 @@ static struct country_code_to_enum_rd allCountries[] = {
+ {CTRY_AUSTRALIA2, FCC6_WORLD, "AU"},
+ {CTRY_AUSTRIA, ETSI1_WORLD, "AT"},
+ {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ"},
++ {CTRY_BAHAMAS, FCC3_WORLD, "BS"},
+ {CTRY_BAHRAIN, APL6_WORLD, "BH"},
+ {CTRY_BANGLADESH, NULL1_WORLD, "BD"},
+ {CTRY_BARBADOS, FCC2_WORLD, "BB"},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-Bermuda b/patches.drivers/ath-Add-regulatory-mapping-for-Bermuda
new file mode 100644
index 0000000000..2be612eb03
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-Bermuda
@@ -0,0 +1,56 @@
+From 9c790f2d234f65697e3b0948adbfdf36dbe63dd7 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:09:59 +0300
+Subject: [PATCH] ath: Add regulatory mapping for Bermuda
+Git-commit: 9c790f2d234f65697e3b0948adbfdf36dbe63dd7
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
+and to select the correct conformance test limits (CTL) for a country. If
+the country isn't available and it is still programmed in the EEPROM then
+it will cause an error and stop the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this country are:
+
+* 2.4GHz: FCC
+* 5GHz: FCC
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd.h | 1 +
+ drivers/net/wireless/ath/regd_common.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd.h b/drivers/net/wireless/ath/regd.h
+index f296ff838d2a..e7b43901d195 100644
+--- a/drivers/net/wireless/ath/regd.h
++++ b/drivers/net/wireless/ath/regd.h
+@@ -75,6 +75,7 @@ enum CountryCode {
+ CTRY_BELARUS = 112,
+ CTRY_BELGIUM = 56,
+ CTRY_BELIZE = 84,
++ CTRY_BERMUDA = 60,
+ CTRY_BOLIVIA = 68,
+ CTRY_BOSNIA_HERZ = 70,
+ CTRY_BRAZIL = 76,
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index cde0268cbed6..a8c7f306fd7b 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -306,6 +306,7 @@ static struct country_code_to_enum_rd allCountries[] = {
+ {CTRY_BELGIUM, ETSI1_WORLD, "BE"},
+ {CTRY_BELGIUM2, ETSI4_WORLD, "BL"},
+ {CTRY_BELIZE, APL1_ETSIC, "BZ"},
++ {CTRY_BERMUDA, FCC3_FCCA, "BM"},
+ {CTRY_BOLIVIA, APL1_ETSIC, "BO"},
+ {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA"},
+ {CTRY_BRAZIL, FCC3_WORLD, "BR"},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-ETSI8_WORLD b/patches.drivers/ath-Add-regulatory-mapping-for-ETSI8_WORLD
new file mode 100644
index 0000000000..c44937c345
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-ETSI8_WORLD
@@ -0,0 +1,51 @@
+From 45faf6e096da8bb80e1ddf8c08a26a9601d9469e Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:11:18 +0300
+Subject: [PATCH] ath: Add regulatory mapping for ETSI8_WORLD
+Git-commit: 45faf6e096da8bb80e1ddf8c08a26a9601d9469e
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The regdomain code is used to select the correct the correct conformance
+test limits (CTL) for a country. If the regdomain code isn't available and
+it is still programmed in the EEPROM then it will cause an error and stop
+the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this regdomain code are:
+
+* 2.4GHz: ETSI
+* 5GHz: ETSI
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd_common.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index f3969d05c816..95a378e6a88b 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -44,6 +44,7 @@ enum EnumRd {
+ ETSI4_ETSIC = 0x38,
+ ETSI5_WORLD = 0x39,
+ ETSI6_WORLD = 0x34,
++ ETSI8_WORLD = 0x3D,
+ ETSI_RESERVED = 0x33,
+
+ MKK1_MKKA = 0x40,
+@@ -181,6 +182,7 @@ static struct reg_dmn_pair_mapping regDomainPairs[] = {
+ {ETSI4_WORLD, CTL_ETSI, CTL_ETSI},
+ {ETSI5_WORLD, CTL_ETSI, CTL_ETSI},
+ {ETSI6_WORLD, CTL_ETSI, CTL_ETSI},
++ {ETSI8_WORLD, CTL_ETSI, CTL_ETSI},
+
+ /* XXX: For ETSI3_ETSIA, Was NO_CTL meant for the 2 GHz band ? */
+ {ETSI3_ETSIA, CTL_ETSI, CTL_ETSI},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-FCC3_ETSIC b/patches.drivers/ath-Add-regulatory-mapping-for-FCC3_ETSIC
new file mode 100644
index 0000000000..a8c0b85267
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-FCC3_ETSIC
@@ -0,0 +1,51 @@
+From 01fb2994a98dc72c8818c274f7b5983d5dd885c7 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:11:30 +0300
+Subject: [PATCH] ath: Add regulatory mapping for FCC3_ETSIC
+Git-commit: 01fb2994a98dc72c8818c274f7b5983d5dd885c7
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The regdomain code is used to select the correct the correct conformance
+test limits (CTL) for a country. If the regdomain code isn't available and
+it is still programmed in the EEPROM then it will cause an error and stop
+the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this regdomain code are:
+
+* 2.4GHz: ETSI
+* 5GHz: FCC
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd_common.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index 66932c55d352..437f5dca015a 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -35,6 +35,7 @@ enum EnumRd {
+ FRANCE_RES = 0x31,
+ FCC3_FCCA = 0x3A,
+ FCC3_WORLD = 0x3B,
++ FCC3_ETSIC = 0x3F,
+
+ ETSI1_WORLD = 0x37,
+ ETSI3_ETSIA = 0x32,
+@@ -172,6 +173,7 @@ static struct reg_dmn_pair_mapping regDomainPairs[] = {
+ {FCC2_ETSIC, CTL_FCC, CTL_ETSI},
+ {FCC3_FCCA, CTL_FCC, CTL_FCC},
+ {FCC3_WORLD, CTL_FCC, CTL_ETSI},
++ {FCC3_ETSIC, CTL_FCC, CTL_ETSI},
+ {FCC4_FCCA, CTL_FCC, CTL_FCC},
+ {FCC5_FCCA, CTL_FCC, CTL_FCC},
+ {FCC6_FCCA, CTL_FCC, CTL_FCC},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-Serbia b/patches.drivers/ath-Add-regulatory-mapping-for-Serbia
new file mode 100644
index 0000000000..391348738b
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-Serbia
@@ -0,0 +1,56 @@
+From 2a3169a54bb53717928392a04fb84deb765b51f1 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:10:43 +0300
+Subject: [PATCH] ath: Add regulatory mapping for Serbia
+Git-commit: 2a3169a54bb53717928392a04fb84deb765b51f1
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
+and to select the correct conformance test limits (CTL) for a country. If
+the country isn't available and it is still programmed in the EEPROM then
+it will cause an error and stop the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this country are:
+
+* 2.4GHz: ETSI
+* 5GHz: ETSI
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd.h | 1 +
+ drivers/net/wireless/ath/regd_common.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd.h b/drivers/net/wireless/ath/regd.h
+index 8edf6d894519..58afd500bdb3 100644
+--- a/drivers/net/wireless/ath/regd.h
++++ b/drivers/net/wireless/ath/regd.h
+@@ -163,6 +163,7 @@ enum CountryCode {
+ CTRY_ROMANIA = 642,
+ CTRY_RUSSIA = 643,
+ CTRY_SAUDI_ARABIA = 682,
++ CTRY_SERBIA = 688,
+ CTRY_SERBIA_MONTENEGRO = 891,
+ CTRY_SINGAPORE = 702,
+ CTRY_SLOVAKIA = 703,
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index ad085c795662..f3764ac9e4e3 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -451,6 +451,7 @@ static struct country_code_to_enum_rd allCountries[] = {
+ {CTRY_ROMANIA, NULL1_WORLD, "RO"},
+ {CTRY_RUSSIA, NULL1_WORLD, "RU"},
+ {CTRY_SAUDI_ARABIA, NULL1_WORLD, "SA"},
++ {CTRY_SERBIA, ETSI1_WORLD, "RS"},
+ {CTRY_SERBIA_MONTENEGRO, ETSI1_WORLD, "CS"},
+ {CTRY_SINGAPORE, APL6_WORLD, "SG"},
+ {CTRY_SLOVAKIA, ETSI1_WORLD, "SK"},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-Tanzania b/patches.drivers/ath-Add-regulatory-mapping-for-Tanzania
new file mode 100644
index 0000000000..b82acdeac6
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-Tanzania
@@ -0,0 +1,56 @@
+From 667ddac5745fb9fddfe8f7fd2523070f50bd4442 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:10:48 +0300
+Subject: [PATCH] ath: Add regulatory mapping for Tanzania
+Git-commit: 667ddac5745fb9fddfe8f7fd2523070f50bd4442
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
+and to select the correct conformance test limits (CTL) for a country. If
+the country isn't available and it is still programmed in the EEPROM then
+it will cause an error and stop the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this country are:
+
+* 2.4GHz: ETSI
+* 5GHz: FCC
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd.h | 1 +
+ drivers/net/wireless/ath/regd_common.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd.h b/drivers/net/wireless/ath/regd.h
+index 58afd500bdb3..894be37344aa 100644
+--- a/drivers/net/wireless/ath/regd.h
++++ b/drivers/net/wireless/ath/regd.h
+@@ -175,6 +175,7 @@ enum CountryCode {
+ CTRY_SWITZERLAND = 756,
+ CTRY_SYRIA = 760,
+ CTRY_TAIWAN = 158,
++ CTRY_TANZANIA = 834,
+ CTRY_THAILAND = 764,
+ CTRY_TRINIDAD_Y_TOBAGO = 780,
+ CTRY_TUNISIA = 788,
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index f3764ac9e4e3..64f004ec0ef2 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -463,6 +463,7 @@ static struct country_code_to_enum_rd allCountries[] = {
+ {CTRY_SWITZERLAND, ETSI1_WORLD, "CH"},
+ {CTRY_SYRIA, NULL1_WORLD, "SY"},
+ {CTRY_TAIWAN, APL3_FCCA, "TW"},
++ {CTRY_TANZANIA, APL1_WORLD, "TZ"},
+ {CTRY_THAILAND, FCC3_WORLD, "TH"},
+ {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT"},
+ {CTRY_TUNISIA, ETSI3_WORLD, "TN"},
+--
+2.18.0
+
diff --git a/patches.drivers/ath-Add-regulatory-mapping-for-Uganda b/patches.drivers/ath-Add-regulatory-mapping-for-Uganda
new file mode 100644
index 0000000000..5533f0229e
--- /dev/null
+++ b/patches.drivers/ath-Add-regulatory-mapping-for-Uganda
@@ -0,0 +1,56 @@
+From 1ea3986ad2bc72081c69f3fbc1e5e0eeb3c44f17 Mon Sep 17 00:00:00 2001
+From: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Date: Wed, 23 May 2018 11:10:54 +0300
+Subject: [PATCH] ath: Add regulatory mapping for Uganda
+Git-commit: 1ea3986ad2bc72081c69f3fbc1e5e0eeb3c44f17
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
+and to select the correct conformance test limits (CTL) for a country. If
+the country isn't available and it is still programmed in the EEPROM then
+it will cause an error and stop the initialization with:
+
+ Invalid EEPROM contents
+
+The current CTL mappings for this country are:
+
+* 2.4GHz: ETSI
+* 5GHz: FCC
+
+Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/ath/regd.h | 1 +
+ drivers/net/wireless/ath/regd_common.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/regd.h b/drivers/net/wireless/ath/regd.h
+index 894be37344aa..d73e45e26547 100644
+--- a/drivers/net/wireless/ath/regd.h
++++ b/drivers/net/wireless/ath/regd.h
+@@ -181,6 +181,7 @@ enum CountryCode {
+ CTRY_TUNISIA = 788,
+ CTRY_TURKEY = 792,
+ CTRY_UAE = 784,
++ CTRY_UGANDA = 800,
+ CTRY_UKRAINE = 804,
+ CTRY_UNITED_KINGDOM = 826,
+ CTRY_UNITED_STATES = 840,
+diff --git a/drivers/net/wireless/ath/regd_common.h b/drivers/net/wireless/ath/regd_common.h
+index 64f004ec0ef2..f7f0efd437b8 100644
+--- a/drivers/net/wireless/ath/regd_common.h
++++ b/drivers/net/wireless/ath/regd_common.h
+@@ -468,6 +468,7 @@ static struct country_code_to_enum_rd allCountries[] = {
+ {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT"},
+ {CTRY_TUNISIA, ETSI3_WORLD, "TN"},
+ {CTRY_TURKEY, ETSI3_WORLD, "TR"},
++ {CTRY_UGANDA, FCC3_WORLD, "UG"},
+ {CTRY_UKRAINE, NULL1_WORLD, "UA"},
+ {CTRY_UAE, NULL1_WORLD, "AE"},
+ {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
+--
+2.18.0
+
diff --git a/patches.drivers/backlight-pwm_bl-Don-t-use-GPIOF_-with-gpiod_get_dir b/patches.drivers/backlight-pwm_bl-Don-t-use-GPIOF_-with-gpiod_get_dir
new file mode 100644
index 0000000000..9478517755
--- /dev/null
+++ b/patches.drivers/backlight-pwm_bl-Don-t-use-GPIOF_-with-gpiod_get_dir
@@ -0,0 +1,48 @@
+From bb084c0f61d659f0e6d371b096e0e57998f191d6 Mon Sep 17 00:00:00 2001
+From: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Date: Sun, 14 Jan 2018 22:07:10 +0100
+Subject: [PATCH] backlight: pwm_bl: Don't use GPIOF_* with gpiod_get_direction
+Git-commit: bb084c0f61d659f0e6d371b096e0e57998f191d6
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The documentation was wrong, gpiod_get_direction() returns 0/1 instead
+of the GPIOF_* flags. The docs were fixed with commit 94fc73094abe47
+("gpio: correct docs about return value of gpiod_get_direction"). Now,
+fix this user (until a better, system-wide solution is in place).
+
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
+Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/video/backlight/pwm_bl.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
+index 8e3f1245f5c5..44ac5bde4e9d 100644
+--- a/drivers/video/backlight/pwm_bl.c
++++ b/drivers/video/backlight/pwm_bl.c
+@@ -321,14 +321,14 @@ static int pwm_backlight_probe(struct platform_device *pdev)
+
+ /*
+ * If the GPIO is not known to be already configured as output, that
+- * is, if gpiod_get_direction returns either GPIOF_DIR_IN or -EINVAL,
+- * change the direction to output and set the GPIO as active.
++ * is, if gpiod_get_direction returns either 1 or -EINVAL, change the
++ * direction to output and set the GPIO as active.
+ * Do not force the GPIO to active when it was already output as it
+ * could cause backlight flickering or we would enable the backlight too
+ * early. Leave the decision of the initial backlight state for later.
+ */
+ if (pb->enable_gpio &&
+- gpiod_get_direction(pb->enable_gpio) != GPIOF_DIR_OUT)
++ gpiod_get_direction(pb->enable_gpio) != 0)
+ gpiod_direction_output(pb->enable_gpio, 1);
+
+ pb->power_supply = devm_regulator_get(&pdev->dev, "power");
+--
+2.18.0
+
diff --git a/patches.drivers/brcmfmac-Add-support-for-bcm43364-wireless-chipset b/patches.drivers/brcmfmac-Add-support-for-bcm43364-wireless-chipset
new file mode 100644
index 0000000000..db4e96410a
--- /dev/null
+++ b/patches.drivers/brcmfmac-Add-support-for-bcm43364-wireless-chipset
@@ -0,0 +1,57 @@
+From 9c4a121e82634aa000a702c98cd6f05b27d6e186 Mon Sep 17 00:00:00 2001
+From: Sean Lanigan <sean@lano.id.au>
+Date: Fri, 4 May 2018 16:48:23 +1000
+Subject: [PATCH] brcmfmac: Add support for bcm43364 wireless chipset
+Git-commit: 9c4a121e82634aa000a702c98cd6f05b27d6e186
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+Add support for the BCM43364 chipset via an SDIO interface, as used in
+e.g. the Murata 1FX module.
+
+The BCM43364 uses the same firmware as the BCM43430 (which is already
+included), the only difference is the omission of Bluetooth.
+
+However, the SDIO_ID for the BCM43364 is 02D0:A9A4, giving it a MODALIAS
+of sdio:c00v02D0dA9A4, which doesn't get recognised and hence doesn't
+load the brcmfmac module. Adding the 'A9A4' ID in the appropriate place
+triggers the brcmfmac driver to load, and then correctly use the
+firmware file 'brcmfmac43430-sdio.bin'.
+
+Signed-off-by: Sean Lanigan <sean@lano.id.au>
+Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 +
+ include/linux/mmc/sdio_ids.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+index 0b68240ec7b4..a1915411c280 100644
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+@@ -963,6 +963,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
+ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43340),
+ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43341),
+ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43362),
++ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43364),
+ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4335_4339),
+ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4339),
+ BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43430),
+diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
+index cdd66a5fbd5e..0a7abe8a407f 100644
+--- a/include/linux/mmc/sdio_ids.h
++++ b/include/linux/mmc/sdio_ids.h
+@@ -35,6 +35,7 @@
+ #define SDIO_DEVICE_ID_BROADCOM_4335_4339 0x4335
+ #define SDIO_DEVICE_ID_BROADCOM_4339 0x4339
+ #define SDIO_DEVICE_ID_BROADCOM_43362 0xa962
++#define SDIO_DEVICE_ID_BROADCOM_43364 0xa9a4
+ #define SDIO_DEVICE_ID_BROADCOM_43430 0xa9a6
+ #define SDIO_DEVICE_ID_BROADCOM_4345 0x4345
+ #define SDIO_DEVICE_ID_BROADCOM_43455 0xa9bf
+--
+2.18.0
+
diff --git a/patches.drivers/drm-Add-DP-PSR2-sink-enable-bit b/patches.drivers/drm-Add-DP-PSR2-sink-enable-bit
new file mode 100644
index 0000000000..365b311478
--- /dev/null
+++ b/patches.drivers/drm-Add-DP-PSR2-sink-enable-bit
@@ -0,0 +1,38 @@
+From 4f212e40468650e220c1770876c7f25b8e0c1ff5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= <jose.souza@intel.com>
+Date: Wed, 28 Mar 2018 15:30:37 -0700
+Subject: [PATCH] drm: Add DP PSR2 sink enable bit
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 4f212e40468650e220c1770876c7f25b8e0c1ff5
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+To comply with eDP1.4a this bit should be set when enabling PSR2.
+
+Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
+Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
+Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20180328223046.16125-1-jose.souza@intel.com
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ include/drm/drm_dp_helper.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
+index 4de97e94ef9d..a62714578b93 100644
+--- a/include/drm/drm_dp_helper.h
++++ b/include/drm/drm_dp_helper.h
+@@ -477,6 +477,7 @@
+ # define DP_PSR_FRAME_CAPTURE (1 << 3)
+ # define DP_PSR_SELECTIVE_UPDATE (1 << 4)
+ # define DP_PSR_IRQ_HPD_WITH_CRC_ERRORS (1 << 5)
++# define DP_PSR_ENABLE_PSR2 (1 << 6) /* eDP 1.4a */
+
+ #define DP_ADAPTER_CTRL 0x1a0
+ # define DP_ADAPTER_CTRL_FORCE_LOAD_SENSE (1 << 0)
+--
+2.18.0
+
diff --git a/patches.drivers/drm-amdgpu-Remove-VRAM-from-shared-bo-domains b/patches.drivers/drm-amdgpu-Remove-VRAM-from-shared-bo-domains
new file mode 100644
index 0000000000..6a453439b3
--- /dev/null
+++ b/patches.drivers/drm-amdgpu-Remove-VRAM-from-shared-bo-domains
@@ -0,0 +1,48 @@
+From 9b3f217faf48603c91d4ca44a18e6ff74c3c1c0c Mon Sep 17 00:00:00 2001
+From: Samuel Li <Samuel.Li@amd.com>
+Date: Wed, 18 Apr 2018 16:26:18 -0400
+Subject: [PATCH] drm/amdgpu: Remove VRAM from shared bo domains.
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 9b3f217faf48603c91d4ca44a18e6ff74c3c1c0c
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+This fixes an issue introduced by change "allow framebuffer in GART
+memory as well" which could lead to a shared buffer ending up
+pinned in vram. Use GTT if it is included in the domain, otherwise
+return an error.
+
+Signed-off-by: Samuel Li <Samuel.Li@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+index feece0a491a3..1985c08413c6 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+@@ -694,8 +694,12 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain,
+ return -EINVAL;
+
+ /* A shared bo cannot be migrated to VRAM */
+- if (bo->prime_shared_count && (domain == AMDGPU_GEM_DOMAIN_VRAM))
+- return -EINVAL;
++ if (bo->prime_shared_count) {
++ if (domain & AMDGPU_GEM_DOMAIN_GTT)
++ domain = AMDGPU_GEM_DOMAIN_GTT;
++ else
++ return -EINVAL;
++ }
+
+ if (bo->pin_count) {
+ uint32_t mem_type = bo->tbo.mem.mem_type;
+--
+2.18.0
+
diff --git a/patches.drivers/drm-atomic-Handling-the-case-when-setting-old-crtc-f b/patches.drivers/drm-atomic-Handling-the-case-when-setting-old-crtc-f
new file mode 100644
index 0000000000..9df79e024e
--- /dev/null
+++ b/patches.drivers/drm-atomic-Handling-the-case-when-setting-old-crtc-f
@@ -0,0 +1,45 @@
+From fc2a69f3903dfd97cd47f593e642b47918c949df Mon Sep 17 00:00:00 2001
+From: Satendra Singh Thakur <satendra.t@samsung.com>
+Date: Thu, 3 May 2018 11:19:32 +0530
+Subject: [PATCH] drm/atomic: Handling the case when setting old crtc for plane
+Git-commit: fc2a69f3903dfd97cd47f593e642b47918c949df
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+In the func drm_atomic_set_crtc_for_plane, with the current code,
+if crtc of the plane_state and crtc passed as argument to the func
+are same, entire func will executed in vein.
+It will get state of crtc and clear and set the bits in plane_mask.
+All these steps are not required for same old crtc.
+Ideally, we should do nothing in this case, this patch handles the same,
+and causes the program to return without doing anything in such scenario.
+
+Signed-off-by: Satendra Singh Thakur <satendra.t@samsung.com>
+Cc: Madhur Verma <madhur.verma@samsung.com>
+Cc: Hemanshu Srivastava <hemanshu.s@samsung.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Link: https://patchwork.freedesktop.org/patch/msgid/1525326572-25854-1-git-send-email-satendra.t@samsung.com
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/drm_atomic.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
+index 9bdd67781917..dc850b4b6e21 100644
+--- a/drivers/gpu/drm/drm_atomic.c
++++ b/drivers/gpu/drm/drm_atomic.c
+@@ -1425,7 +1425,9 @@ drm_atomic_set_crtc_for_plane(struct drm_plane_state *plane_state,
+ {
+ struct drm_plane *plane = plane_state->plane;
+ struct drm_crtc_state *crtc_state;
+-
++ /* Nothing to do for same crtc*/
++ if (plane_state->crtc == crtc)
++ return 0;
+ if (plane_state->crtc) {
+ crtc_state = drm_atomic_get_crtc_state(plane_state->state,
+ plane_state->crtc);
+--
+2.18.0
+
diff --git a/patches.drivers/drm-atomic-helper-Drop-plane-fb-references-only-for- b/patches.drivers/drm-atomic-helper-Drop-plane-fb-references-only-for-
new file mode 100644
index 0000000000..ac0196fa32
--- /dev/null
+++ b/patches.drivers/drm-atomic-helper-Drop-plane-fb-references-only-for-
@@ -0,0 +1,181 @@
+From 5e9cfeba6abb7e1a3f240bd24eb29178f0b83716 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
+Date: Thu, 22 Mar 2018 17:22:51 +0200
+Subject: [PATCH] drm/atomic-helper: Drop plane->fb references only for drm_atomic_helper_shutdown()
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 5e9cfeba6abb7e1a3f240bd24eb29178f0b83716
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+drm_atomic_helper_shutdown() needs to release the reference held by
+plane->fb. Since commit 49d70aeaeca8 ("drm/atomic-helper: Fix leak in
+disable_all") we're doing that by calling drm_atomic_clean_old_fb() in
+drm_atomic_helper_disable_all(). This also leaves plane->fb == NULL
+afterwards. However, since drm_atomic_helper_disable_all() is also
+used by the i915 gpu reset code
+drm_atomic_helper_commit_duplicated_state() then has to undo the
+damage and put the correct plane->fb pointers back in (and also
+adjust the ref counts to match again as well).
+
+That approach doesn't work so well for load detection as nothing
+sets up the plane->old_fb pointers for us. This causes us to
+leak an extra reference for each plane->fb when
+drm_atomic_helper_commit_duplicated_state() calls
+drm_atomic_clean_old_fb() after load detection.
+
+To fix this let's call drm_atomic_clean_old_fb() only for
+drm_atomic_helper_shutdown() as that's the only time we need to
+actually drop the plane->fb references. In all the other cases
+(load detection, gpu reset) we want to leave plane->fb alone.
+
+V2: Don't inflict the clean_old_fbs bool to drivers (Daniel)
+V3: Squash in the revert and rewrite the commit msg (Daniel)
+
+Cc: martin.peres@free.fr
+Cc: chris@chris-wilson.co.uk
+Cc: Dave Airlie <airlied@gmail.com>
+Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
+Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20180322152313.6561-3-ville.syrjala@linux.intel.com
+Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> #pre-squash
+Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/drm_atomic_helper.c | 78 ++++++++++++++---------------
+ 1 file changed, 39 insertions(+), 39 deletions(-)
+
+diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
+index d63c806e7d38..ef4ddfecc4a4 100644
+--- a/drivers/gpu/drm/drm_atomic_helper.c
++++ b/drivers/gpu/drm/drm_atomic_helper.c
+@@ -2892,31 +2892,9 @@ int __drm_atomic_helper_set_config(struct drm_mode_set *set,
+ return 0;
+ }
+
+-/**
+- * drm_atomic_helper_disable_all - disable all currently active outputs
+- * @dev: DRM device
+- * @ctx: lock acquisition context
+- *
+- * Loops through all connectors, finding those that aren't turned off and then
+- * turns them off by setting their DPMS mode to OFF and deactivating the CRTC
+- * that they are connected to.
+- *
+- * This is used for example in suspend/resume to disable all currently active
+- * functions when suspending. If you just want to shut down everything at e.g.
+- * driver unload, look at drm_atomic_helper_shutdown().
+- *
+- * Note that if callers haven't already acquired all modeset locks this might
+- * return -EDEADLK, which must be handled by calling drm_modeset_backoff().
+- *
+- * Returns:
+- * 0 on success or a negative error code on failure.
+- *
+- * See also:
+- * drm_atomic_helper_suspend(), drm_atomic_helper_resume() and
+- * drm_atomic_helper_shutdown().
+- */
+-int drm_atomic_helper_disable_all(struct drm_device *dev,
+- struct drm_modeset_acquire_ctx *ctx)
++static int __drm_atomic_helper_disable_all(struct drm_device *dev,
++ struct drm_modeset_acquire_ctx *ctx,
++ bool clean_old_fbs)
+ {
+ struct drm_atomic_state *state;
+ struct drm_connector_state *conn_state;
+@@ -2968,8 +2946,11 @@ int drm_atomic_helper_disable_all(struct drm_device *dev,
+ goto free;
+
+ drm_atomic_set_fb_for_plane(plane_state, NULL);
+- plane_mask |= BIT(drm_plane_index(plane));
+- plane->old_fb = plane->fb;
++
++ if (clean_old_fbs) {
++ plane->old_fb = plane->fb;
++ plane_mask |= BIT(drm_plane_index(plane));
++ }
+ }
+
+ ret = drm_atomic_commit(state);
+@@ -2980,6 +2961,34 @@ int drm_atomic_helper_disable_all(struct drm_device *dev,
+ return ret;
+ }
+
++/**
++ * drm_atomic_helper_disable_all - disable all currently active outputs
++ * @dev: DRM device
++ * @ctx: lock acquisition context
++ *
++ * Loops through all connectors, finding those that aren't turned off and then
++ * turns them off by setting their DPMS mode to OFF and deactivating the CRTC
++ * that they are connected to.
++ *
++ * This is used for example in suspend/resume to disable all currently active
++ * functions when suspending. If you just want to shut down everything at e.g.
++ * driver unload, look at drm_atomic_helper_shutdown().
++ *
++ * Note that if callers haven't already acquired all modeset locks this might
++ * return -EDEADLK, which must be handled by calling drm_modeset_backoff().
++ *
++ * Returns:
++ * 0 on success or a negative error code on failure.
++ *
++ * See also:
++ * drm_atomic_helper_suspend(), drm_atomic_helper_resume() and
++ * drm_atomic_helper_shutdown().
++ */
++int drm_atomic_helper_disable_all(struct drm_device *dev,
++ struct drm_modeset_acquire_ctx *ctx)
++{
++ return __drm_atomic_helper_disable_all(dev, ctx, false);
++}
+ EXPORT_SYMBOL(drm_atomic_helper_disable_all);
+
+ /**
+@@ -3002,7 +3011,7 @@ void drm_atomic_helper_shutdown(struct drm_device *dev)
+ while (1) {
+ ret = drm_modeset_lock_all_ctx(dev, &ctx);
+ if (!ret)
+- ret = drm_atomic_helper_disable_all(dev, &ctx);
++ ret = __drm_atomic_helper_disable_all(dev, &ctx, true);
+
+ if (ret != -EDEADLK)
+ break;
+@@ -3106,16 +3115,11 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
+ struct drm_connector_state *new_conn_state;
+ struct drm_crtc *crtc;
+ struct drm_crtc_state *new_crtc_state;
+- unsigned plane_mask = 0;
+- struct drm_device *dev = state->dev;
+- int ret;
+
+ state->acquire_ctx = ctx;
+
+- for_each_new_plane_in_state(state, plane, new_plane_state, i) {
+- plane_mask |= BIT(drm_plane_index(plane));
++ for_each_new_plane_in_state(state, plane, new_plane_state, i)
+ state->planes[i].old_state = plane->state;
+- }
+
+ for_each_new_crtc_in_state(state, crtc, new_crtc_state, i)
+ state->crtcs[i].old_state = crtc->state;
+@@ -3123,11 +3127,7 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state,
+ for_each_new_connector_in_state(state, connector, new_conn_state, i)
+ state->connectors[i].old_state = connector->state;
+
+- ret = drm_atomic_commit(state);
+- if (plane_mask)
+- drm_atomic_clean_old_fb(dev, plane_mask, ret);
+-
+- return ret;
++ return drm_atomic_commit(state);
+ }
+ EXPORT_SYMBOL(drm_atomic_helper_commit_duplicated_state);
+
+--
+2.18.0
+
diff --git a/patches.drivers/drm-dp-mst-Fix-off-by-one-typo-when-dump-payload-tab b/patches.drivers/drm-dp-mst-Fix-off-by-one-typo-when-dump-payload-tab
new file mode 100644
index 0000000000..6250a91737
--- /dev/null
+++ b/patches.drivers/drm-dp-mst-Fix-off-by-one-typo-when-dump-payload-tab
@@ -0,0 +1,69 @@
+From 7056a2bccc3b5afc51f9b35b30a46f0d9219968d Mon Sep 17 00:00:00 2001
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Date: Mon, 19 Mar 2018 16:19:32 +0200
+Subject: [PATCH] drm/dp/mst: Fix off-by-one typo when dump payload table
+Git-commit: 7056a2bccc3b5afc51f9b35b30a46f0d9219968d
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+It seems there is a classical off-by-one typo from the beginning
+when commit
+
+ ad7f8a1f9ced ("drm/helper: add Displayport multi-stream helper (v0.6)")
+
+introduced a new helper.
+
+Fix a typo by introducing a macro constant.
+
+Cc: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20180319141932.37290-1-andriy.shevchenko@linux.intel.com
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/drm_dp_mst_topology.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
+index 6fac4129e6a2..658830620ca3 100644
+--- a/drivers/gpu/drm/drm_dp_mst_topology.c
++++ b/drivers/gpu/drm/drm_dp_mst_topology.c
+@@ -2941,12 +2941,14 @@ static void drm_dp_mst_dump_mstb(struct seq_file *m,
+ }
+ }
+
++#define DP_PAYLOAD_TABLE_SIZE 64
++
+ static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
+ char *buf)
+ {
+ int i;
+
+- for (i = 0; i < 64; i += 16) {
++ for (i = 0; i < DP_PAYLOAD_TABLE_SIZE; i += 16) {
+ if (drm_dp_dpcd_read(mgr->aux,
+ DP_PAYLOAD_TABLE_UPDATE_STATUS + i,
+ &buf[i], 16) != 16)
+@@ -3015,7 +3017,7 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
+
+ mutex_lock(&mgr->lock);
+ if (mgr->mst_primary) {
+- u8 buf[64];
++ u8 buf[DP_PAYLOAD_TABLE_SIZE];
+ int ret;
+
+ ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE);
+@@ -3033,8 +3035,7 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
+ seq_printf(m, " revision: hw: %x.%x sw: %x.%x\n",
+ buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
+ if (dump_dp_payload_table(mgr, buf))
+- seq_printf(m, "payload table: %*ph\n", 63, buf);
+-
++ seq_printf(m, "payload table: %*ph\n", DP_PAYLOAD_TABLE_SIZE, buf);
+ }
+
+ mutex_unlock(&mgr->lock);
+--
+2.18.0
+
diff --git a/patches.drivers/drm-gma500-fix-psb_intel_lvds_mode_valid-s-return-ty b/patches.drivers/drm-gma500-fix-psb_intel_lvds_mode_valid-s-return-ty
new file mode 100644
index 0000000000..c9563e47e5
--- /dev/null
+++ b/patches.drivers/drm-gma500-fix-psb_intel_lvds_mode_valid-s-return-ty
@@ -0,0 +1,53 @@
+From 2ea009095c6e7396915a1d0dd480c41f02985f79 Mon Sep 17 00:00:00 2001
+From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
+Date: Tue, 24 Apr 2018 15:14:57 +0200
+Subject: [PATCH] drm/gma500: fix psb_intel_lvds_mode_valid()'s return type
+Git-commit: 2ea009095c6e7396915a1d0dd480c41f02985f79
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The method struct drm_connector_helper_funcs::mode_valid is defined
+as returning an 'enum drm_mode_status' but the driver implementation
+for this method, psb_intel_lvds_mode_valid(), uses an 'int' for it.
+
+Fix this by using 'enum drm_mode_status' for psb_intel_lvds_mode_valid().
+
+Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Link: https://patchwork.freedesktop.org/patch/msgid/20180424131458.2060-1-luc.vanoostenryck@gmail.com
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/gma500/psb_intel_drv.h | 2 +-
+ drivers/gpu/drm/gma500/psb_intel_lvds.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/gma500/psb_intel_drv.h b/drivers/gpu/drm/gma500/psb_intel_drv.h
+index e8e4ea14b12b..e05e5399af2d 100644
+--- a/drivers/gpu/drm/gma500/psb_intel_drv.h
++++ b/drivers/gpu/drm/gma500/psb_intel_drv.h
+@@ -255,7 +255,7 @@ extern int intelfb_remove(struct drm_device *dev,
+ extern bool psb_intel_lvds_mode_fixup(struct drm_encoder *encoder,
+ const struct drm_display_mode *mode,
+ struct drm_display_mode *adjusted_mode);
+-extern int psb_intel_lvds_mode_valid(struct drm_connector *connector,
++extern enum drm_mode_status psb_intel_lvds_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode);
+ extern int psb_intel_lvds_set_property(struct drm_connector *connector,
+ struct drm_property *property,
+diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c
+index be3eefec5152..8baf6325c6e4 100644
+--- a/drivers/gpu/drm/gma500/psb_intel_lvds.c
++++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c
+@@ -343,7 +343,7 @@ static void psb_intel_lvds_restore(struct drm_connector *connector)
+ }
+ }
+
+-int psb_intel_lvds_mode_valid(struct drm_connector *connector,
++enum drm_mode_status psb_intel_lvds_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode)
+ {
+ struct drm_psb_private *dev_priv = connector->dev->dev_private;
+--
+2.18.0
+
diff --git a/patches.drivers/drm-nouveau-fifo-gk104-poll-for-runlist-update-compl b/patches.drivers/drm-nouveau-fifo-gk104-poll-for-runlist-update-compl
new file mode 100644
index 0000000000..16b5976640
--- /dev/null
+++ b/patches.drivers/drm-nouveau-fifo-gk104-poll-for-runlist-update-compl
@@ -0,0 +1,43 @@
+From 4f2fc25c0f8bcc8db1b8a7b21e88c3d7f35c5acb Mon Sep 17 00:00:00 2001
+From: Ben Skeggs <bskeggs@redhat.com>
+Date: Tue, 8 May 2018 20:39:46 +1000
+Subject: [PATCH] drm/nouveau/fifo/gk104-: poll for runlist update completion
+Git-commit: 4f2fc25c0f8bcc8db1b8a7b21e88c3d7f35c5acb
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+Newer HW doesn't appear to send this event, which will cause long delays
+in runlist updates if they don't complete immediately.
+
+RM doesn't use these events anywhere, and an NVGPU commit message notes
+that polling is the preferred method even on HW that supports the event.
+
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
+index afb3ed06ec89..2b8e0d3d2d96 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
++++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c
+@@ -170,10 +170,10 @@ gk104_fifo_runlist_commit(struct gk104_fifo *fifo, int runl)
+ (target << 28));
+ nvkm_wr32(device, 0x002274, (runl << 20) | nr);
+
+- if (wait_event_timeout(fifo->runlist[runl].wait,
+- !(nvkm_rd32(device, 0x002284 + (runl * 0x08))
+- & 0x00100000),
+- msecs_to_jiffies(2000)) == 0)
++ if (nvkm_msec(device, 2000,
++ if (!(nvkm_rd32(device, 0x002284 + (runl * 0x08)) & 0x00100000))
++ break;
++ ) < 0)
+ nvkm_error(subdev, "runlist %d update timeout\n", runl);
+ unlock:
+ mutex_unlock(&subdev->mutex);
+--
+2.18.0
+
diff --git a/patches.drivers/drm-radeon-fix-mode_valid-s-return-type b/patches.drivers/drm-radeon-fix-mode_valid-s-return-type
new file mode 100644
index 0000000000..4f3363b5c5
--- /dev/null
+++ b/patches.drivers/drm-radeon-fix-mode_valid-s-return-type
@@ -0,0 +1,74 @@
+From 7a47f20eb1fb8fa8d7a8fe3a4fd8c721f04c2174 Mon Sep 17 00:00:00 2001
+From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
+Date: Tue, 24 Apr 2018 15:15:13 +0200
+Subject: [PATCH] drm/radeon: fix mode_valid's return type
+Git-commit: 7a47f20eb1fb8fa8d7a8fe3a4fd8c721f04c2174
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The method struct drm_connector_helper_funcs::mode_valid is defined
+as returning an 'enum drm_mode_status' but the driver implementation
+for this method uses an 'int' for it.
+
+Fix this by using 'enum drm_mode_status' in the driver too.
+
+Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/gpu/drm/radeon/radeon_connectors.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
+index df9469a8fdb1..2aea2bdff99b 100644
+--- a/drivers/gpu/drm/radeon/radeon_connectors.c
++++ b/drivers/gpu/drm/radeon/radeon_connectors.c
+@@ -852,7 +852,7 @@ static int radeon_lvds_get_modes(struct drm_connector *connector)
+ return ret;
+ }
+
+-static int radeon_lvds_mode_valid(struct drm_connector *connector,
++static enum drm_mode_status radeon_lvds_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode)
+ {
+ struct drm_encoder *encoder = radeon_best_single_encoder(connector);
+@@ -1012,7 +1012,7 @@ static int radeon_vga_get_modes(struct drm_connector *connector)
+ return ret;
+ }
+
+-static int radeon_vga_mode_valid(struct drm_connector *connector,
++static enum drm_mode_status radeon_vga_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode)
+ {
+ struct drm_device *dev = connector->dev;
+@@ -1156,7 +1156,7 @@ static int radeon_tv_get_modes(struct drm_connector *connector)
+ return 1;
+ }
+
+-static int radeon_tv_mode_valid(struct drm_connector *connector,
++static enum drm_mode_status radeon_tv_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode)
+ {
+ if ((mode->hdisplay > 1024) || (mode->vdisplay > 768))
+@@ -1498,7 +1498,7 @@ static void radeon_dvi_force(struct drm_connector *connector)
+ radeon_connector->use_digital = true;
+ }
+
+-static int radeon_dvi_mode_valid(struct drm_connector *connector,
++static enum drm_mode_status radeon_dvi_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode)
+ {
+ struct drm_device *dev = connector->dev;
+@@ -1800,7 +1800,7 @@ radeon_dp_detect(struct drm_connector *connector, bool force)
+ return ret;
+ }
+
+-static int radeon_dp_mode_valid(struct drm_connector *connector,
++static enum drm_mode_status radeon_dp_mode_valid(struct drm_connector *connector,
+ struct drm_display_mode *mode)
+ {
+ struct drm_device *dev = connector->dev;
+--
+2.18.0
+
diff --git a/patches.drivers/media-media-device-fix-ioctl-function-types b/patches.drivers/media-media-device-fix-ioctl-function-types
new file mode 100644
index 0000000000..df4b060d64
--- /dev/null
+++ b/patches.drivers/media-media-device-fix-ioctl-function-types
@@ -0,0 +1,89 @@
+From daa36370b62428cca6d48d1b2530a8419f631c8c Mon Sep 17 00:00:00 2001
+From: Sami Tolvanen <samitolvanen@google.com>
+Date: Mon, 7 May 2018 14:09:46 -0400
+Subject: [PATCH] media: media-device: fix ioctl function types
+Git-commit: daa36370b62428cca6d48d1b2530a8419f631c8c
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+This change fixes function types for media device ioctls to avoid
+indirect call mismatches with Control-Flow Integrity checking.
+
+Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
+Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/media/media-device.c | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/media/media-device.c b/drivers/media/media-device.c
+index 35e81f7c0d2f..ae59c3177555 100644
+--- a/drivers/media/media-device.c
++++ b/drivers/media/media-device.c
+@@ -54,9 +54,10 @@ static int media_device_close(struct file *filp)
+ return 0;
+ }
+
+-static int media_device_get_info(struct media_device *dev,
+- struct media_device_info *info)
++static long media_device_get_info(struct media_device *dev, void *arg)
+ {
++ struct media_device_info *info = arg;
++
+ memset(info, 0, sizeof(*info));
+
+ if (dev->driver_name[0])
+@@ -93,9 +94,9 @@ static struct media_entity *find_entity(struct media_device *mdev, u32 id)
+ return NULL;
+ }
+
+-static long media_device_enum_entities(struct media_device *mdev,
+- struct media_entity_desc *entd)
++static long media_device_enum_entities(struct media_device *mdev, void *arg)
+ {
++ struct media_entity_desc *entd = arg;
+ struct media_entity *ent;
+
+ ent = find_entity(mdev, entd->id);
+@@ -146,9 +147,9 @@ static void media_device_kpad_to_upad(const struct media_pad *kpad,
+ upad->flags = kpad->flags;
+ }
+
+-static long media_device_enum_links(struct media_device *mdev,
+- struct media_links_enum *links)
++static long media_device_enum_links(struct media_device *mdev, void *arg)
+ {
++ struct media_links_enum *links = arg;
+ struct media_entity *entity;
+
+ entity = find_entity(mdev, links->entity);
+@@ -195,9 +196,9 @@ static long media_device_enum_links(struct media_device *mdev,
+ return 0;
+ }
+
+-static long media_device_setup_link(struct media_device *mdev,
+- struct media_link_desc *linkd)
++static long media_device_setup_link(struct media_device *mdev, void *arg)
+ {
++ struct media_link_desc *linkd = arg;
+ struct media_link *link = NULL;
+ struct media_entity *source;
+ struct media_entity *sink;
+@@ -225,9 +226,9 @@ static long media_device_setup_link(struct media_device *mdev,
+ return __media_entity_setup_link(link, linkd->flags);
+ }
+
+-static long media_device_get_topology(struct media_device *mdev,
+- struct media_v2_topology *topo)
++static long media_device_get_topology(struct media_device *mdev, void *arg)
+ {
++ struct media_v2_topology *topo = arg;
+ struct media_entity *entity;
+ struct media_interface *intf;
+ struct media_pad *pad;
+--
+2.18.0
+
diff --git a/patches.drivers/media-rcar_jpu-Add-missing-clk_disable_unprepare-on- b/patches.drivers/media-rcar_jpu-Add-missing-clk_disable_unprepare-on-
new file mode 100644
index 0000000000..2af19af0d0
--- /dev/null
+++ b/patches.drivers/media-rcar_jpu-Add-missing-clk_disable_unprepare-on-
@@ -0,0 +1,47 @@
+From 43d0d3c52787df0221d1c52494daabd824fe84f1 Mon Sep 17 00:00:00 2001
+From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+Date: Tue, 12 Jul 2016 07:21:46 -0400
+Subject: [PATCH] media: rcar_jpu: Add missing clk_disable_unprepare() on error in jpu_open()
+Git-commit: 43d0d3c52787df0221d1c52494daabd824fe84f1
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+Add the missing clk_disable_unprepare() before return from
+jpu_open() in the software reset error handling case.
+
+Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+Acked-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
+Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
+Signed-off-by: Hans Verkuil <hansverk@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/media/platform/rcar_jpu.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/media/platform/rcar_jpu.c b/drivers/media/platform/rcar_jpu.c
+index f6092ae45912..8b44a849ab41 100644
+--- a/drivers/media/platform/rcar_jpu.c
++++ b/drivers/media/platform/rcar_jpu.c
+@@ -1280,7 +1280,7 @@ static int jpu_open(struct file *file)
+ /* ...issue software reset */
+ ret = jpu_reset(jpu);
+ if (ret)
+- goto device_prepare_rollback;
++ goto jpu_reset_rollback;
+ }
+
+ jpu->ref_count++;
+@@ -1288,6 +1288,8 @@ static int jpu_open(struct file *file)
+ mutex_unlock(&jpu->mutex);
+ return 0;
+
++jpu_reset_rollback:
++ clk_disable_unprepare(jpu->clk);
+ device_prepare_rollback:
+ mutex_unlock(&jpu->mutex);
+ v4l_prepare_rollback:
+--
+2.18.0
+
diff --git a/patches.drivers/media-saa7164-Fix-driver-name-in-debug-output b/patches.drivers/media-saa7164-Fix-driver-name-in-debug-output
new file mode 100644
index 0000000000..c8f949c7b3
--- /dev/null
+++ b/patches.drivers/media-saa7164-Fix-driver-name-in-debug-output
@@ -0,0 +1,43 @@
+From 0cc4655cb57af0b7e105d075c4f83f8046efafe7 Mon Sep 17 00:00:00 2001
+From: Brad Love <brad@nextdimension.cc>
+Date: Fri, 4 May 2018 17:53:35 -0400
+Subject: [PATCH] media: saa7164: Fix driver name in debug output
+Git-commit: 0cc4655cb57af0b7e105d075c4f83f8046efafe7
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+This issue was reported by a user who downloaded a corrupt saa7164
+firmware, then went looking for a valid xc5000 firmware to fix the
+error displayed...but the device in question has no xc5000, thus after
+much effort, the wild goose chase eventually led to a support call.
+
+The xc5000 has nothing to do with saa7164 (as far as I can tell),
+so replace the string with saa7164 as well as give a meaningful
+hint on the firmware mismatch.
+
+Signed-off-by: Brad Love <brad@nextdimension.cc>
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/media/pci/saa7164/saa7164-fw.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/media/pci/saa7164/saa7164-fw.c b/drivers/media/pci/saa7164/saa7164-fw.c
+index ef4906406ebf..a50461861133 100644
+--- a/drivers/media/pci/saa7164/saa7164-fw.c
++++ b/drivers/media/pci/saa7164/saa7164-fw.c
+@@ -426,7 +426,8 @@ int saa7164_downloadfirmware(struct saa7164_dev *dev)
+ __func__, fw->size);
+
+ if (fw->size != fwlength) {
+- printk(KERN_ERR "xc5000: firmware incorrect size\n");
++ printk(KERN_ERR "saa7164: firmware incorrect size %zu != %u\n",
++ fw->size, fwlength);
+ ret = -ENOMEM;
+ goto out;
+ }
+--
+2.18.0
+
diff --git a/patches.drivers/media-si470x-fix-__be16-annotations b/patches.drivers/media-si470x-fix-__be16-annotations
new file mode 100644
index 0000000000..3b366a0333
--- /dev/null
+++ b/patches.drivers/media-si470x-fix-__be16-annotations
@@ -0,0 +1,57 @@
+From 90db5c829692a0a7845e977e45719b4699216bd4 Mon Sep 17 00:00:00 2001
+From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
+Date: Fri, 6 Apr 2018 07:54:51 -0400
+Subject: [PATCH] media: si470x: fix __be16 annotations
+Git-commit: 90db5c829692a0a7845e977e45719b4699216bd4
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+The annotations there are wrong as warned:
+ drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
+ drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
+ drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
+ drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
+ drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: warning: incorrect type in assignment (different base types)
+ drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: expected unsigned short [unsigned] [short] <noident>
+ drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: got restricted __be16 [usertype] <noident>
+ drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
+ drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
+ drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
+ drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
+
+Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/media/radio/si470x/radio-si470x-i2c.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/media/radio/si470x/radio-si470x-i2c.c
++++ b/drivers/media/radio/si470x/radio-si470x-i2c.c
+@@ -92,7 +92,7 @@ MODULE_PARM_DESC(max_rds_errors, "RDS ma
+ */
+ int si470x_get_register(struct si470x_device *radio, int regnr)
+ {
+- u16 buf[READ_REG_NUM];
++ __be16 buf[READ_REG_NUM];
+ struct i2c_msg msgs[1] = {
+ {
+ .addr = radio->client->addr,
+@@ -117,7 +117,7 @@ int si470x_get_register(struct si470x_de
+ int si470x_set_register(struct si470x_device *radio, int regnr)
+ {
+ int i;
+- u16 buf[WRITE_REG_NUM];
++ __be16 buf[WRITE_REG_NUM];
+ struct i2c_msg msgs[1] = {
+ {
+ .addr = radio->client->addr,
+@@ -147,7 +147,7 @@ int si470x_set_register(struct si470x_de
+ static int si470x_get_all_registers(struct si470x_device *radio)
+ {
+ int i;
+- u16 buf[READ_REG_NUM];
++ __be16 buf[READ_REG_NUM];
+ struct i2c_msg msgs[1] = {
+ {
+ .addr = radio->client->addr,
diff --git a/patches.drivers/media-siano-get-rid-of-__le32-__le16-cast-warnings b/patches.drivers/media-siano-get-rid-of-__le32-__le16-cast-warnings
new file mode 100644
index 0000000000..6a7d27061a
--- /dev/null
+++ b/patches.drivers/media-siano-get-rid-of-__le32-__le16-cast-warnings
@@ -0,0 +1,112 @@
+From e1b7f11b37def5f3021c06e8c2b4953e099357aa Mon Sep 17 00:00:00 2001
+From: Mauro Carvalho Chehab <mchehab@s-opensource.com>
+Date: Fri, 20 Apr 2018 08:32:16 -0400
+Subject: [PATCH] media: siano: get rid of __le32/__le16 cast warnings
+Git-commit: e1b7f11b37def5f3021c06e8c2b4953e099357aa
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+Those are all false-positives that appear with smatch when building for
+Arm:
+
+ drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
+ drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
+ drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
+
+Get rid of them by adding explicit forced casts.
+
+Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/media/common/siano/smsendian.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/media/common/siano/smsendian.c b/drivers/media/common/siano/smsendian.c
+index bfe831c10b1c..b95a631f23f9 100644
+--- a/drivers/media/common/siano/smsendian.c
++++ b/drivers/media/common/siano/smsendian.c
+@@ -35,7 +35,7 @@ void smsendian_handle_tx_message(void *buffer)
+ switch (msg->x_msg_header.msg_type) {
+ case MSG_SMS_DATA_DOWNLOAD_REQ:
+ {
+- msg->msg_data[0] = le32_to_cpu(msg->msg_data[0]);
++ msg->msg_data[0] = le32_to_cpu((__force __le32)(msg->msg_data[0]));
+ break;
+ }
+
+@@ -44,7 +44,7 @@ void smsendian_handle_tx_message(void *buffer)
+ sizeof(struct sms_msg_hdr))/4;
+
+ for (i = 0; i < msg_words; i++)
+- msg->msg_data[i] = le32_to_cpu(msg->msg_data[i]);
++ msg->msg_data[i] = le32_to_cpu((__force __le32)msg->msg_data[i]);
+
+ break;
+ }
+@@ -64,7 +64,7 @@ void smsendian_handle_rx_message(void *buffer)
+ {
+ struct sms_version_res *ver =
+ (struct sms_version_res *) msg;
+- ver->chip_model = le16_to_cpu(ver->chip_model);
++ ver->chip_model = le16_to_cpu((__force __le16)ver->chip_model);
+ break;
+ }
+
+@@ -81,7 +81,7 @@ void smsendian_handle_rx_message(void *buffer)
+ sizeof(struct sms_msg_hdr))/4;
+
+ for (i = 0; i < msg_words; i++)
+- msg->msg_data[i] = le32_to_cpu(msg->msg_data[i]);
++ msg->msg_data[i] = le32_to_cpu((__force __le32)msg->msg_data[i]);
+
+ break;
+ }
+@@ -95,9 +95,9 @@ void smsendian_handle_message_header(void *msg)
+ #ifdef __BIG_ENDIAN
+ struct sms_msg_hdr *phdr = (struct sms_msg_hdr *)msg;
+
+- phdr->msg_type = le16_to_cpu(phdr->msg_type);
+- phdr->msg_length = le16_to_cpu(phdr->msg_length);
+- phdr->msg_flags = le16_to_cpu(phdr->msg_flags);
++ phdr->msg_type = le16_to_cpu((__force __le16)phdr->msg_type);
++ phdr->msg_length = le16_to_cpu((__force __le16)phdr->msg_length);
++ phdr->msg_flags = le16_to_cpu((__force __le16)phdr->msg_flags);
+ #endif /* __BIG_ENDIAN */
+ }
+ EXPORT_SYMBOL_GPL(smsendian_handle_message_header);
+--
+2.18.0
+
diff --git a/patches.drivers/media-tw686x-Fix-incorrect-vb2_mem_ops-GFP-flags b/patches.drivers/media-tw686x-Fix-incorrect-vb2_mem_ops-GFP-flags
new file mode 100644
index 0000000000..4d46a70665
--- /dev/null
+++ b/patches.drivers/media-tw686x-Fix-incorrect-vb2_mem_ops-GFP-flags
@@ -0,0 +1,40 @@
+From 636757ab6c93e19e2f58d3b3af1312e34eaffbab Mon Sep 17 00:00:00 2001
+From: Ezequiel Garcia <ezequiel@collabora.com>
+Date: Fri, 18 May 2018 17:07:48 -0400
+Subject: [PATCH] media: tw686x: Fix incorrect vb2_mem_ops GFP flags
+Git-commit: 636757ab6c93e19e2f58d3b3af1312e34eaffbab
+Patch-mainline: v4.18-rc1
+References: bsc#1051510
+
+When the driver is configured in the "memcpy" dma-mode,
+it uses vb2_vmalloc_memops, which is backed by a SLAB
+allocator and so shouldn't be using GFP_DMA32.
+
+Fix it.
+
+Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
+Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
+Acked-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ drivers/media/pci/tw686x/tw686x-video.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/media/pci/tw686x/tw686x-video.c b/drivers/media/pci/tw686x/tw686x-video.c
+index c3fafa97b2d0..0ea8dd44026c 100644
+--- a/drivers/media/pci/tw686x/tw686x-video.c
++++ b/drivers/media/pci/tw686x/tw686x-video.c
+@@ -1228,7 +1228,8 @@ int tw686x_video_init(struct tw686x_dev *dev)
+ vc->vidq.timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
+ vc->vidq.min_buffers_needed = 2;
+ vc->vidq.lock = &vc->vb_mutex;
+- vc->vidq.gfp_flags = GFP_DMA32;
++ vc->vidq.gfp_flags = dev->dma_mode != TW686X_DMA_MODE_MEMCPY ?
++ GFP_DMA32 : 0;
+ vc->vidq.dev = &dev->pci_dev->dev;
+
+ err = vb2_queue_init(&vc->vidq);
+--
+2.18.0
+
diff --git a/patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n b/patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n
new file mode 100644
index 0000000000..3253b65a10
--- /dev/null
+++ b/patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n
@@ -0,0 +1,66 @@
+From: Takashi Iwai <tiwai@suse.de>
+Subject: [PATCH] Revert "drm/nouveau/drm/therm/fan: add a fallback if no fan control is specified in the vbios"
+References: bsc#1103356
+Patch-mainline: Never, a temporary workaround
+
+This reverts commit 800efb4c2857ec543fdc33585bbcb1fd5ef28337.
+Since it is confirmed to be rather harmful, just revert it until the
+problem gets addressed properly in the upstream.
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+---
+ .../gpu/drm/nouveau/nvkm/subdev/therm/base.c | 22 +++----------------
+ 1 file changed, 3 insertions(+), 19 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
+index 3695cde669f8..699dad03bc5d 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.c
+@@ -65,9 +65,10 @@ nvkm_therm_update_trip(struct nvkm_therm *therm)
+ }
+
+ static int
+-nvkm_therm_compute_linear_duty(struct nvkm_therm *therm, u8 linear_min_temp,
+- u8 linear_max_temp)
++nvkm_therm_update_linear(struct nvkm_therm *therm)
+ {
++ u8 linear_min_temp = therm->fan->bios.linear_min_temp;
++ u8 linear_max_temp = therm->fan->bios.linear_max_temp;
+ u8 temp = therm->func->temp_get(therm);
+ u16 duty;
+
+@@ -85,21 +86,6 @@ nvkm_therm_compute_linear_duty(struct nvkm_therm *therm, u8 linear_min_temp,
+ return duty;
+ }
+
+-static int
+-nvkm_therm_update_linear(struct nvkm_therm *therm)
+-{
+- u8 min = therm->fan->bios.linear_min_temp;
+- u8 max = therm->fan->bios.linear_max_temp;
+- return nvkm_therm_compute_linear_duty(therm, min, max);
+-}
+-
+-static int
+-nvkm_therm_update_linear_fallback(struct nvkm_therm *therm)
+-{
+- u8 max = therm->bios_sensor.thrs_fan_boost.temp;
+- return nvkm_therm_compute_linear_duty(therm, 30, max);
+-}
+-
+ static void
+ nvkm_therm_update(struct nvkm_therm *therm, int mode)
+ {
+@@ -134,8 +120,6 @@ nvkm_therm_update(struct nvkm_therm *therm, int mode)
+ case NVBIOS_THERM_FAN_OTHER:
+ if (therm->cstate)
+ duty = therm->cstate;
+- else
+- duty = nvkm_therm_update_linear_fallback(therm);
+ poll = false;
+ break;
+ }
+--
+2.18.0
+
diff --git a/series.conf b/series.conf
index 8526286542..15b3187a5f 100644
--- a/series.conf
+++ b/series.conf
@@ -7646,6 +7646,7 @@
patches.arch/s390-zcrypt-enable-special-header-file-flag-for-au-cprp.patch
patches.arch/s390-zcrypt-introduce-qact-support-for-ap-bus-devices.patch
patches.arch/s390-cpum_cf-add-hardware-counter-support-for-ibm-z14.patch
+ patches.arch/s390-pci-do-not-require-ais-facility.patch
patches.arch/s390-archrandom-reconsider-s390-arch-random-implementation.patch
patches.fixes/s390-bpf-take-advantage-of-stack_depth-tracking.patch
patches.arch/s390-sles15-02-02-te-ctl.patch
@@ -10060,6 +10061,7 @@
patches.arch/0001-arm64-fpsimd-Prevent-registers-leaking-from-dead-tas.patch
patches.suse/0020-arm64-SW-PAN-Point-saved-ttbr0-at-the-zero-page-when.patch
patches.suse/0021-arm64-SW-PAN-Update-saved-ttbr0-value-on-enter_lazy_.patch
+ patches.arch/s390-dasd-prevent-prefix-i-o-error.patch
patches.arch/powerpc-perf-Fix-oops-when-grouping-different-pmu-ev.patch
patches.arch/powerpc-64s-Initialize-ISAv3-MMU-registers-before-se.patch
patches.drivers/virtio_net-fix-return-value-check-in-receive_mergeab.patch
@@ -10539,6 +10541,7 @@
patches.drivers/crypto-n2-cure-use-after-free
patches.fixes/crypto-pcrypt-fix-freeing-pcrypt-instances
patches.arch/s390-sles15-02-06-pci-handle-insufficient-resources-during-dma-tl.patch
+ patches.arch/s390-dasd-fix-wrongly-assigned-configuration-data.patch
patches.fixes/x86-efi-fix-kernel-param-add_efi_memmap-regression.patch
patches.arch/07-x86-mm-set-modules_end-to-0xffffffffff000000.patch
patches.arch/08-x86-mm-map-cpu_entry_area-at-the-same-place-on-4-5-level.patch
@@ -12519,6 +12522,7 @@
patches.drivers/ACPI-scan-Use-acpi_bus_get_status-to-initialize-ACPI
patches.drivers/ACPI-processor_perflib-Do-not-send-_PPC-change-notif
patches.drivers/0007-ACPI-CPPC-Use-64-bit-arithmetic-instead-of-32-bit.patch
+ patches.arch/s390-eadm-fix-config_block-include-dependency.patch
patches.arch/s390-cpum_cf-correct-counter-number-of-last_host_translations.patch
patches.arch/s390-sles15-05-03-scrub-registers.patch
patches.arch/s390-sles15-05-04-array-nospec.patch
@@ -13007,7 +13011,10 @@
patches.suse/0001-scsi-core-return-BLK_STS_OK-for-DID_OK-in-__scsi_err.patch
patches.drivers/scsi-qla2xxx-Fix-FC-NVMe-LUN-discovery.patch
patches.drivers/scsi-qedi-fix-kernel-crash-during-port-toggle
+ patches.arch/s390-dasd-fix-handling-of-internal-requests.patch
patches.arch/s390-sles15-05-07-expoline-is-enabled.patch
+ patches.arch/s390-cio-fix-return-code-after-missing-interrupt.patch
+ patches.arch/s390-cio-clear-timer-when-terminating-driver-i-o.patch
patches.arch/s390-sles15-05-08-critical-section-bpenter.patch
patches.arch/s390-sles15-05-09-svc-zero-r0.patch
patches.drivers/Input-mms114-fix-license-module-information
@@ -14171,6 +14178,7 @@
patches.drivers/drm-amdgpu-Fix-PCIe-lane-width-calculation
patches.drivers/drm-radeon-add-PX-quirk-for-Asus-K73TK
patches.arch/s390-crypto-Adjust-s390-aes-and-paes-cipher-prioriti.patch
+ patches.arch/s390-ipl-ensure-loadparm-valid-flag-is-set.patch
patches.arch/s390-zcrypt-support-up-to-256-crypto-adapters.patch
patches.arch/s390-correct-nospec-auto-detection-init-order.patch
patches.drivers/i2c-i801-Save-register-SMBSLVCMD-value-only-once
@@ -14568,6 +14576,7 @@
patches.arch/s390-use-expoline-thunks-in-the-bpf-jit.patch
patches.arch/s390-cpum_sf-ensure-sample-frequency-of-perf-event-attributes-is-non-zero.patch
patches.arch/s390-qdio-fix-access-to-uninitialized-qdio_q-fields.patch
+ patches.arch/s390-qdio-don-t-release-memory-in-qdio_setup_irq.patch
patches.drivers/ALSA-control-fix-a-redundant-copy-issue
patches.drivers/ALSA-hda-Add-Lenovo-C50-All-in-one-to-the-power_save
patches.drivers/ALSA-usb-mixer-volume-quirk-for-CM102-A-102S
@@ -14778,13 +14787,21 @@
patches.drivers/serial-8250-omap-Fix-idling-of-clocks-for-unused-uar
patches.drivers/libata-zpodd-small-read-overflow-in-eject_tray
patches.drivers/libata-Drop-SanDisk-SD7UB3Q-G1001-NOLPM-quirk
+ patches.drivers/drm-dp-mst-Fix-off-by-one-typo-when-dump-payload-tab
+ patches.drivers/drm-atomic-helper-Drop-plane-fb-references-only-for-
patches.drivers/drm-i915-Restore-planes-after-load-detection
+ patches.drivers/drm-gma500-fix-psb_intel_lvds_mode_valid-s-return-ty
+ patches.drivers/drm-Add-DP-PSR2-sink-enable-bit
patches.drivers/drm-i915-dp-Send-DPCD-ON-for-MST-before-phy_up
patches.drivers/drm-i915-psr-Chase-psr.enabled-only-under-the-psr.lo
patches.drivers/drm-exynos-Allow-DRM_EXYNOS-on-s5pv210
+ patches.drivers/drm-atomic-Handling-the-case-when-setting-old-crtc-f
patches.drivers/drm-i915-Don-t-request-a-bug-report-for-unsafe-modul
patches.drivers/drm-amdgpu-Add-APU-support-in-vi_set_uvd_clocks
patches.drivers/drm-amdgpu-Add-APU-support-in-vi_set_vce_clocks
+ patches.drivers/drm-amdgpu-Remove-VRAM-from-shared-bo-domains
+ patches.drivers/drm-radeon-fix-mode_valid-s-return-type
+ patches.drivers/drm-nouveau-fifo-gk104-poll-for-runlist-update-compl
patches.drivers/0001-drm-tegra-Acquire-a-reference-to-the-IOVA-cache.patch
patches.drivers/0001-gpu-host1x-Acquire-a-reference-to-the-IOVA-cache.patch
patches.drivers/drm-exynos-dsi-mask-frame-done-interrupt
@@ -14817,6 +14834,8 @@
patches.drivers/ALSA-hda-ca0132-constify-read-only-members-of-string
patches.drivers/ALSA-hda-ca0132-merge-strings-just-for-printk
patches.drivers/ALSA-hda-ca0132-constify-parameter-table-for-effects
+ patches.drivers/ALSA-usb-audio-Apply-rate-limit-to-warning-messages-
+ patches.drivers/ALSA-emu10k1-Rate-limit-error-messages-about-page-er
patches.drivers/ALSA-hda-conexant-Add-fixup-for-HP-Z2-G4-workstation
patches.drivers/ALSA-hda-conexant-Add-hp-mic-fix-model-string
patches.drivers/ALSA-hda-Add-Intel-NUC7i3BNB-to-the-power_save-black
@@ -14829,10 +14848,13 @@
patches.drivers/ALSA-hda-realtek-Fixup-for-HP-x360-laptops-with-B-O-
patches.drivers/ALSA-hda-realtek-Enable-mic-mute-hotkey-for-several-
patches.drivers/ALSA-hda-Handle-kzalloc-failure-in-snd_hda_attach_pc
+ patches.drivers/ASoC-topology-Fix-bclk-and-fsync-inversion-in-set_li
+ patches.drivers/ASoC-topology-Add-missing-clock-gating-parameter-whe
patches.drivers/ASoC-omap-Remove-OMAP_MUX-dependency-from-Nokia-N810
patches.drivers/ASoC-mediatek-preallocate-pages-use-platform-device
patches.drivers/ASoC-cirrus-i2s-Fix-LRCLK-configuration
patches.drivers/ASoC-cirrus-i2s-Fix-TX-RX-LinCtrlData-setup
+ patches.drivers/ASoC-dpcm-fix-BE-dai-not-hw_free-and-shutdown
patches.drivers/ASoC-dapm-delete-dapm_kcontrol_data-paths-list-befor
patches.drivers/ASoC-cs35l35-Add-use_single_rw-to-regmap-config
patches.fixes/kconfig-Avoid-format-overflow-warning-from-GCC-8.1
@@ -14934,6 +14956,7 @@
patches.drivers/ath10k-correct-target-assert-problem-due-to-CE5-stuc
patches.drivers/ath10k-search-all-IEs-for-variant-before-falling-bac
patches.drivers/iwlwifi-fw-harden-page-loading-code
+ patches.drivers/brcmfmac-Add-support-for-bcm43364-wireless-chipset
patches.drivers/net-smc-init-conn-tx_work-conn-send_lock-sooner.patch
patches.drivers/ixgbe-ixgbevf-Free-IRQ-when-PCI-error-recovery-remov.patch
patches.drivers/ixgbe-force-VF-to-grab-new-MAC-on-driver-reload.patch
@@ -14953,6 +14976,7 @@
patches.drivers/net-smc-restructure-client-and-server-code-in-af_smc.patch
patches.drivers/cxgb4-collect-SGE-PF-VF-queue-map.patch
patches.drivers/Bluetooth-hci_qca-Avoid-missing-rampatch-failure-wit
+ patches.drivers/Bluetooth-btusb-add-ID-for-LiteOn-04ca-301a
patches.drivers/cxgb4-copy-the-length-of-cpl_tx_pkt_core-to-fw_wr.patch
patches.drivers/i40e-free-skb-after-clearing-lock-in-ptp_stop.patch
patches.drivers/i40e-always-return-VEB-stat-strings.patch
@@ -15005,12 +15029,23 @@
patches.drivers/iwlwifi-mvm-honor-the-max_amsdu_subframes-limit
patches.drivers/iwlwifi-mvm-fix-race-in-queue-notification-wait
patches.drivers/iwlwifi-fix-non_shared_ant-for-9000-devices
+ patches.drivers/ath-Add-regulatory-mapping-for-Bahamas
+ patches.drivers/ath-Add-regulatory-mapping-for-Bermuda
+ patches.drivers/ath-Add-regulatory-mapping-for-Serbia
+ patches.drivers/ath-Add-regulatory-mapping-for-Tanzania
+ patches.drivers/ath-Add-regulatory-mapping-for-Uganda
+ patches.drivers/ath-Add-regulatory-mapping-for-APL2_FCCA
+ patches.drivers/ath-Add-regulatory-mapping-for-APL13_WORLD
+ patches.drivers/ath-Add-regulatory-mapping-for-ETSI8_WORLD
+ patches.drivers/ath-Add-regulatory-mapping-for-FCC3_ETSIC
patches.drivers/qed-Fix-shared-memory-inconsistency-between-driver-a.patch
patches.drivers/qed-Fix-use-of-incorrect-shmem-address.patch
patches.suse/vrf-check-the-original-netdevice-for-generating-redi.patch
patches.suse/net-packet-refine-check-for-priv-area-size.patch
patches.fixes/ipv6-omit-traffic-class-when-calculating-flow-hash.patch
+ patches.drivers/Bluetooth-btusb-Add-a-new-Realtek-8723DE-ID-2ff8-b01
patches.drivers/Bluetooth-btusb-Apply-QCA-Rome-patches-for-some-ATH3
+ patches.drivers/Bluetooth-hci_qca-Fix-Sleep-inside-atomic-section-wa
patches.suse/team-use-netdev_features_t-instead-of-u32.patch
patches.fixes/e1000e-Ignore-TSYNCRXCTL-when-getting-I219-clock-att.patch
patches.drivers/ixgbevf-fix-possible-race-in-the-reset-subtask.patch
@@ -15065,12 +15100,18 @@
patches.arch/powerpc-pkeys-Detach-execute_only-key-on-PROT_EXEC.patch
patches.fixes/cpuidle-powernv-Fix-promotion-from-snooze-if-next-st.patch
patches.drivers/media-omap3isp-isp-remove-an-unused-static-var
+ patches.drivers/media-si470x-fix-__be16-annotations
patches.drivers/media-dvb_frontend-fix-locking-issues-at-dvb_fronten
patches.drivers/media-v4l2-compat-ioctl32-prevent-go-past-max-size
patches.drivers/media-cx231xx-Add-support-for-AverMedia-DVD-EZMaker-
+ patches.drivers/media-siano-get-rid-of-__le32-__le16-cast-warnings
patches.drivers/media-cx88-Get-rid-of-spurious-call-to-cx8800_start_
+ patches.drivers/media-saa7164-Fix-driver-name-in-debug-output
+ patches.drivers/media-media-device-fix-ioctl-function-types
+ patches.drivers/media-rcar_jpu-Add-missing-clk_disable_unprepare-on-
patches.suse/0001-media-smiapp-fix-timeout-checking-in-smiapp_read_nvm.patch
patches.drivers/media-vivid-potential-integer-overflow-in-vidioc_g_e
+ patches.drivers/media-tw686x-Fix-incorrect-vb2_mem_ops-GFP-flags
patches.drivers/media-uvcvideo-Support-realtek-s-UVC-1.5-device
patches.drivers/PCI-ibmphp-Fix-use-before-set-in-get_max_bus_speed
patches.drivers/PCI-pciehp-Clear-Presence-Detect-and-Data-Link-Layer
@@ -15189,6 +15230,7 @@
patches.drivers/mfd-tps65911-comparator-Fix-an-off-by-one-bug
patches.drivers/mfd-intel-lpss-Program-REMAP-register-in-PIO-mode
patches.drivers/mfd-intel-lpss-Fix-Intel-Cannon-Lake-LPSS-I2C-input-
+ patches.drivers/backlight-pwm_bl-Don-t-use-GPIOF_-with-gpiod_get_dir
patches.drivers/backlight-as3711_bl-Fix-Device-Tree-node-lookup
patches.drivers/backlight-max8925_bl-Fix-Device-Tree-node-lookup
patches.drivers/backlight-tps65217_bl-Fix-Device-Tree-node-lookup
@@ -15223,6 +15265,8 @@
patches.fixes/ceph-fix-alignment-of-rasize.patch
patches.fixes/rbd-flush-rbd_dev-watch_dwork-after-watch-is-unregistered.patch
patches.suse/mremap-Remove-LATENCY_LIMIT-from-mremap-to-reduce-the-number-of-TLB-shootdowns.patch
+ patches.drivers/ALSA-fm801-add-error-handling-for-snd_ctl_add
+ patches.drivers/ALSA-emu10k1-add-error-handling-for-snd_ctl_add
patches.drivers/ALSA-hda-add-dock-and-led-support-for-HP-EliteBook-830
patches.drivers/ALSA-hda-add-dock-and-led-support-for-HP-ProBook-640-G4
patches.drivers/ALSA-usb-audio-Disable-the-quirk-for-Nura-headset
@@ -15440,6 +15484,9 @@
patches.drivers/usb-gadget-f_uac2-fix-endianness-of-struct-cntrl_-_l.patch
patches.drivers/usb-gadget-f_fs-Only-return-delayed-status-when-len-.patch
patches.drivers/usb-core-handle-hub-C_PORT_OVER_CURRENT-condition.patch
+ patches.drivers/Input-elan_i2c-add-ACPI-ID-for-lenovo-ideapad-330
+ patches.drivers/Input-elan_i2c-add-another-ACPI-ID-for-Lenovo-Ideapa
+ patches.drivers/Input-i8042-add-Lenovo-LaVie-Z-to-the-i8042-reset-li
patches.drivers/nvmet-fc-fix-target-sgl-list-on-large-transfers.patch
patches.fixes/nvme-if_ready-checks-to-fail-io-to-deleting-controll.patch
@@ -15879,6 +15926,7 @@
patches.arch/drm-hibmc-Use-set_busid-function-from-drm-core.patch
patches.drivers/drm-hibmc-initialize-the-hibmc_bo_driver_io_mem_pfn.patch
+ patches.suse/Revert-drm-nouveau-drm-therm-fan-add-a-fallback-if-n
########################################################
# Out-of-tree networking