summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorshadoukun2017-11-24 18:35:14 -0500
committershadoukun2017-11-24 18:35:14 -0500
commita0eb6bf18d3c2e387d2096c0e4216e39fe6678a3 (patch)
tree070bc8d93f7e579934a6f993650c39ca08cad6b7
parenta1888e9546f9f56419fd797cfacd8d5d8d5aaa44 (diff)
downloadaur-a0eb6bf18d3c2e387d2096c0e4216e39fe6678a3.tar.gz
update to 4.14.2. Multitouch/pen fixed.
-rw-r--r--.SRCINFO53
-rw-r--r--0001-ipts.patch (renamed from 0002-ipts.patch)517
-rw-r--r--0002-hid.patch315
-rw-r--r--0003-wifi.patch288
-rw-r--r--0004-usb.patch (renamed from 0004-sd.patch)12
-rw-r--r--0005-camera.patch145
-rw-r--r--0005-hid.patch156
-rw-r--r--60-linux.hook12
-rw-r--r--90-linux.hook2
-rw-r--r--99-ipts.rules20
-rw-r--r--PKGBUILD340
-rw-r--r--bonding-ratelimit-failed-speed-duplex-update-warning.patch47
-rw-r--r--bonding-require-speed-duplex-only-for-802.3ad-alb-an.patch68
-rw-r--r--config (renamed from config.x86_64)854
-rw-r--r--ipts_fw_config.binbin708 -> 0 bytes
-rw-r--r--mm-Revert-x86_64-and-arm64-ELF_ET_DYN_BASE-base.patch35
16 files changed, 1623 insertions, 1241 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 113858ab94a..0168b8c0906 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,50 +1,41 @@
pkgbase = linux-surface4
- pkgver = 4.12.8
- pkgrel = 2
+ pkgver = 4.14.2
+ pkgrel = 1
url = https://www.kernel.org/
arch = x86_64
license = GPL2
makedepends = xmlto
- makedepends = docbook-xsl
makedepends = kmod
makedepends = inetutils
makedepends = bc
makedepends = libelf
options = !strip
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.12.tar.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.12.tar.sign
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.12.8.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.12.8.sign
- source = bonding-require-speed-duplex-only-for-802.3ad-alb-an.patch
- source = bonding-ratelimit-failed-speed-duplex-update-warning.patch
- source = mm-Revert-x86_64-and-arm64-ELF_ET_DYN_BASE-base.patch
- source = 0002-ipts.patch
- source = 0003-wifi.patch
- source = 0004-sd.patch
- source = 0005-hid.patch
- source = 99-ipts.rules
- source = ipts_fw_config.bin
- source = config.x86_64
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.2.tar.xz
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.14.2.tar.sign
+ source = config
+ source = 60-linux.hook
source = 90-linux.hook
source = linux.preset
+ source = 0001-ipts.patch
+ source = 0002-hid.patch
+ source = 0003-wifi.patch
+ source = 0004-usb.patch
+ source = 0005-camera.patch
+ source = 99-ipts.rules
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
- sha256sums = a45c3becd4d08ce411c14628a949d08e2433d8cdeca92036c7013980e93858ab
- sha256sums = SKIP
- sha256sums = 32b860911a3bafd5cd5bc813a427c90fad6eafdf607fa64e1b763b16ab605636
+ sha256sums = e92690620a4e4811c6b37b2f1b6c9b32a1dde40aa12be6527c8dc215fb27464c
sha256sums = SKIP
- sha256sums = 48e0505438bb4ccc7a0e050a896122b490e8f1b1446aa3833841a9d4d7853d68
- sha256sums = fc606711a922638d5cc4358f47f69f554d9e6eab1cec91f0b49f00911f399722
- sha256sums = b830ce777543c0edd20a77d70f204c095f2429bb37151cd4a8c9dfae2af8d51a
- sha256sums = cbd508d55e446ad5e00a7534490a8b6faa8987dc22dab139fa8ac42b90735cf3
- sha256sums = d748010776aa4016e920b46f6ef6847e52d4214e9b6afe752c340c5a9644870f
- sha256sums = 311857771c63ed5145effedae55830b3c7fdc8865e145e94d54b9aa2e094779e
- sha256sums = 065fa8cb24062afee3c0aa8140e65560c2ebfb08f714222a3e0b3b12e764097b
- sha256sums = 59c8bb30e749a1e05cbb3a5ca7bf995afe8a957961d635356c85875136812922
- sha256sums = eed5c04a5f8841d52292fbb321990c79316ce98cd21324c71226cdc95cc20d09
- sha256sums = 90fffe84ea442756fb168d22d9b6b9f2d8d7bc631b81188836caaa33a9f92554
- sha256sums = 834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0
+ sha256sums = efd4cd1ec319e9eed73f67b66de5a761a8365b9b227479f073f9115550cb157c
+ sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21
+ sha256sums = 75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919
sha256sums = ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65
+ sha256sums = 260859d91e9c77c8231d9ba9f86ab1c970be21da2134efd6b4df139321b80b1d
+ sha256sums = c57e13c8a15d06e4e04cda4ae95c7920cbd8b8b40a17252f2413c8b57da952f3
+ sha256sums = 8d724a67ebb52b5130c855907c17a050a3224ec2fdc11f1544723b5025a36c17
+ sha256sums = 835ff847328db11f31d2eb954f45a6067527626dbf984793c44982ef5f60863e
+ sha256sums = 985141fe1d694b95bc78a4b0f3dafcc2cbddabcf2c44eda8feb92847bf9f9c68
+ sha256sums = 82d0fa48947aff93cbbc9a0f0f3020bf95e860d604549b20f7ef8e1634798bd8
pkgname = linux-surface4
pkgdesc = The Linux-surface4 kernel and modules
diff --git a/0002-ipts.patch b/0001-ipts.patch
index aabaeb8a9a3..661249ccf8b 100644
--- a/0002-ipts.patch
+++ b/0001-ipts.patch
@@ -1,11 +1,11 @@
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
-index 2cf04504..3359204d 100644
+index 2e034ef..635b8c6 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
-@@ -116,6 +116,9 @@ i915-y += dvo_ch7017.o \
+@@ -120,6 +120,9 @@ i915-y += dvo_ch7017.o \
intel_sdvo.o \
intel_tv.o
-
+
+# intel precise touch & stylus
+i915-y += intel_ipts.o
+
@@ -13,7 +13,7 @@ index 2cf04504..3359204d 100644
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
i915-$(CONFIG_DRM_I915_SELFTEST) += \
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
-index 6ac8d37e..d867a1b8 100644
+index 9f45cfe..34ec3cc 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -51,6 +51,7 @@
@@ -21,52 +21,64 @@ index 6ac8d37e..d867a1b8 100644
#include "intel_drv.h"
#include "intel_uc.h"
+#include "intel_ipts.h"
-
+
static struct drm_driver driver;
-
-@@ -626,6 +627,10 @@ static int i915_load_modeset_init(struct drm_device *dev)
-
+
+@@ -679,6 +680,9 @@ static int i915_load_modeset_init(struct drm_device *dev)
+
drm_kms_helper_poll_init(dev);
-
-+pr_info(">> let init ipts\n");
+
+ if (INTEL_GEN(dev_priv) >= 9 && i915.enable_guc_submission)
-+ intel_ipts_init(dev);
++ intel_ipts_init(dev);
+
return 0;
-
+
cleanup_gem:
-@@ -1316,6 +1321,9 @@ void i915_driver_unload(struct drm_device *dev)
+@@ -1373,6 +1377,9 @@ void i915_driver_unload(struct drm_device *dev)
struct drm_i915_private *dev_priv = to_i915(dev);
struct pci_dev *pdev = dev_priv->drm.pdev;
-
+
+ if (INTEL_GEN(dev_priv) >= 9 && i915.enable_guc_submission)
+ intel_ipts_cleanup(dev);
+
- intel_fbdev_fini(dev);
-
+ i915_driver_unregister(dev_priv);
+
if (i915_gem_suspend(dev_priv))
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 2c453a4e..a7f70e00 100644
+index 18d9da5..12d86d1 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -3500,6 +3500,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
+@@ -3658,6 +3658,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
void i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj,
struct sg_table *pages);
-
+
+struct i915_gem_context *
+i915_gem_context_create_ipts(struct drm_device *dev);
+
static inline struct i915_gem_context *
- i915_gem_context_lookup(struct drm_i915_file_private *file_priv, u32 id)
+ __i915_gem_context_lookup_rcu(struct drm_i915_file_private *file_priv, u32 id)
{
+diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
+index dc1faa4..a558aab 100644
+--- a/drivers/gpu/drm/i915/i915_gem.c
++++ b/drivers/gpu/drm/i915/i915_gem.c
+@@ -179,7 +179,7 @@ i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
+ * the alignment of the buddy allocation will naturally match.
+ */
+ phys = drm_pci_alloc(obj->base.dev,
+- obj->base.size,
++ roundup_pow_of_two(obj->base.size),
+ roundup_pow_of_two(obj->base.size));
+ if (!phys)
+ return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
-index 8bd0c496..e12b8de5 100644
+index 8afd2ce..00871aa 100644
--- a/drivers/gpu/drm/i915/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
-@@ -422,6 +422,18 @@ out:
+@@ -418,6 +418,18 @@ out:
return ctx;
}
-
+
+struct i915_gem_context *i915_gem_context_create_ipts(struct drm_device *dev)
+{
+ struct drm_i915_private *dev_priv = dev->dev_private;
@@ -79,17 +91,17 @@ index 8bd0c496..e12b8de5 100644
+ return ctx;
+}
+
- int i915_gem_context_init(struct drm_i915_private *dev_priv)
+ int i915_gem_contexts_init(struct drm_i915_private *dev_priv)
{
struct i915_gem_context *ctx;
diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c
-index ab5140ba..55748795 100644
+index 48a1e93..505fdd8 100644
--- a/drivers/gpu/drm/i915/i915_guc_submission.c
+++ b/drivers/gpu/drm/i915/i915_guc_submission.c
@@ -331,7 +331,14 @@ static void guc_stage_desc_init(struct intel_guc *guc,
desc = __get_stage_desc(client);
memset(desc, 0, sizeof(*desc));
-
+
- desc->attribute = GUC_STAGE_DESC_ATTR_ACTIVE | GUC_STAGE_DESC_ATTR_KERNEL;
+ desc->attribute = GUC_STAGE_DESC_ATTR_ACTIVE;
+ if ((client->priority == GUC_CLIENT_PRIORITY_KMD_NORMAL) ||
@@ -102,9 +114,9 @@ index ab5140ba..55748795 100644
desc->stage_id = client->stage_id;
desc->priority = client->priority;
desc->db_id = client->doorbell_id;
-@@ -1143,7 +1150,8 @@ static void guc_interrupts_capture(struct drm_i915_private *dev_priv)
+@@ -1159,7 +1166,8 @@ static void guc_interrupts_capture(struct drm_i915_private *dev_priv)
I915_WRITE(RING_MODE_GEN7(engine), irqs);
-
+
/* route USER_INTERRUPT to Host, all others are sent to GuC. */
- irqs = GT_RENDER_USER_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
+ irqs = (GT_RENDER_USER_INTERRUPT | GT_RENDER_PIPECTL_NOTIFY_INTERRUPT)
@@ -112,8 +124,8 @@ index ab5140ba..55748795 100644
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT;
/* These three registers have the same bit definitions */
I915_WRITE(GUC_BCS_RCS_IER, ~irqs);
-@@ -1324,3 +1332,47 @@ int intel_guc_resume(struct drm_i915_private *dev_priv)
-
+@@ -1340,3 +1348,47 @@ int intel_guc_resume(struct drm_i915_private *dev_priv)
+
return intel_guc_send(guc, data, ARRAY_SIZE(data));
}
+
@@ -126,7 +138,7 @@ index ab5140ba..55748795 100644
+ /* client for execbuf submission */
+ client = guc_client_alloc(dev_priv,
+ INTEL_INFO(dev_priv)->ring_mask,
-+ GUC_CLIENT_PRIORITY_KMD_NORMAL,
++ GUC_CLIENT_PRIORITY_NORMAL,
+ ctx);
+ if (!client) {
+ DRM_ERROR("Failed to create normal GuC client!\n");
@@ -155,13 +167,13 @@ index ab5140ba..55748795 100644
+{
+ struct intel_guc *guc = &dev_priv->guc;
+
-+ int err = __guc_allocate_doorbell(guc, guc->ipts_client);
++ int err = __guc_allocate_doorbell(guc, guc->ipts_client->stage_id);
+
+ if (err)
+ DRM_ERROR("Not able to reacquire IPTS doorbell\n");
+}
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index 190f6aa5..b3834524 100644
+index b63893e..5a0313b 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -36,6 +36,7 @@
@@ -169,20 +181,20 @@ index 190f6aa5..b3834524 100644
#include "i915_trace.h"
#include "intel_drv.h"
+#include "intel_ipts.h"
-
+
/**
* DOC: interrupt handling
-@@ -1368,6 +1369,9 @@ gen8_cs_irq_handler(struct intel_engine_cs *engine, u32 iir, int test_shift)
+@@ -1319,6 +1320,9 @@ gen8_cs_irq_handler(struct intel_engine_cs *engine, u32 iir, int test_shift)
tasklet |= i915.enable_guc_submission;
}
-
+
+ if (iir & (GT_RENDER_PIPECTL_NOTIFY_INTERRUPT << test_shift))
+ intel_ipts_notify_complete();
+
if (tasklet)
tasklet_hi_schedule(&engine->irq_tasklet);
}
-@@ -3423,7 +3427,8 @@ static void gen8_gt_irq_postinstall(struct drm_i915_private *dev_priv)
+@@ -3391,7 +3395,8 @@ static void gen8_gt_irq_postinstall(struct drm_i915_private *dev_priv)
{
/* These are interrupts we'll toggle with the ring mask register */
uint32_t gt_interrupts[] = {
@@ -192,12 +204,42 @@ index 190f6aa5..b3834524 100644
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT |
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT,
-diff --git a/drivers/gpu/drm/i915/intel_ipts.c b/drivers/gpu/drm/i915/intel_ipts.c
+diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
+index 8ab003d..db55910 100644
+--- a/drivers/gpu/drm/i915/i915_params.c
++++ b/drivers/gpu/drm/i915/i915_params.c
+@@ -56,8 +56,8 @@ struct i915_params i915 __read_mostly = {
+ .verbose_state_checks = 1,
+ .nuclear_pageflip = 0,
+ .edp_vswing = 0,
+- .enable_guc_loading = 0,
+- .enable_guc_submission = 0,
++ .enable_guc_loading = 1,
++ .enable_guc_submission = 1,
+ .guc_log_level = -1,
+ .guc_firmware_path = NULL,
+ .huc_firmware_path = NULL,
+@@ -225,12 +225,12 @@ MODULE_PARM_DESC(edp_vswing,
+ module_param_named_unsafe(enable_guc_loading, i915.enable_guc_loading, int, 0400);
+ MODULE_PARM_DESC(enable_guc_loading,
+ "Enable GuC firmware loading "
+- "(-1=auto, 0=never [default], 1=if available, 2=required)");
++ "(-1=auto, 0=never, 1=if available [default], 2=required)");
+
+ module_param_named_unsafe(enable_guc_submission, i915.enable_guc_submission, int, 0400);
+ MODULE_PARM_DESC(enable_guc_submission,
+ "Enable GuC submission "
+- "(-1=auto, 0=never [default], 1=if available, 2=required)");
++ "(-1=auto, 0=never, 1=if available [default], 2=required)");
+
+ module_param_named(guc_log_level, i915.guc_log_level, int, 0400);
+ MODULE_PARM_DESC(guc_log_level,
+diff --git b/drivers/gpu/drm/i915/intel_ipts.c b/drivers/gpu/drm/i915/intel_ipts.c
new file mode 100644
-index 00000000..3ab9b502
+index 0000000..f5fa111
--- /dev/null
+++ b/drivers/gpu/drm/i915/intel_ipts.c
-@@ -0,0 +1,623 @@
+@@ -0,0 +1,626 @@
+/*
+ * Copyright 2016 Intel Corporation
+ *
@@ -269,7 +311,7 @@ index 00000000..3ab9b502
+
+static intel_ipts_object_t *ipts_object_create(size_t size, u32 flags)
+{
-+ struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
++ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
+ intel_ipts_object_t *obj = NULL;
+ struct drm_i915_gem_object *gem_obj = NULL;
+ int ret = 0;
@@ -332,7 +374,7 @@ index 00000000..3ab9b502
+{
+ struct i915_address_space *vm = NULL;
+ struct i915_vma *vma = NULL;
-+ struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
++ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
+ int ret = 0;
+
+ if (ipts_ctx->ppgtt) {
@@ -372,7 +414,8 @@ index 00000000..3ab9b502
+static int create_ipts_context(void)
+{
+ struct i915_gem_context *ipts_ctx = NULL;
-+ struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
++ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
++ struct intel_ring *pin_ret;
+ int ret = 0;
+
+ /* Initialize the context right away.*/
@@ -396,9 +439,9 @@ index 00000000..3ab9b502
+ goto err_ctx;
+ }
+
-+ ret = execlists_context_pin(dev_priv->engine[RCS], ipts_ctx);
-+ if (ret) {
-+ DRM_DEBUG("lr context pinning failed : %d\n", ret);
++ pin_ret = execlists_context_pin(dev_priv->engine[RCS], ipts_ctx);
++ if (IS_ERR(pin_ret)) {
++ DRM_DEBUG("lr context pinning failed : %ld\n", PTR_ERR(pin_ret));
+ goto err_ctx;
+ }
+
@@ -425,7 +468,7 @@ index 00000000..3ab9b502
+static void destroy_ipts_context(void)
+{
+ struct i915_gem_context *ipts_ctx = NULL;
-+ struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
++ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
+ int ret = 0;
+
+ ipts_ctx = intel_ipts.ipts_context;
@@ -508,7 +551,7 @@ index 00000000..3ab9b502
+
+static int set_wq_info(void)
+{
-+ struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
++ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
+ struct intel_guc *guc = &dev_priv->guc;
+ struct i915_guc_client *client;
+ struct guc_process_desc *desc;
@@ -602,7 +645,7 @@ index 00000000..3ab9b502
+{
+ intel_ipts_object_t* obj;
+ struct i915_gem_context *ipts_ctx = NULL;
-+ struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
++ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
+ struct i915_address_space *vm = NULL;
+ struct i915_vma *vma = NULL;
+ int ret = 0;
@@ -682,7 +725,7 @@ index 00000000..3ab9b502
+
+int intel_ipts_connect(intel_ipts_connect_t *ipts_connect)
+{
-+ struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
++ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
+ int ret = 0;
+
+ if (!intel_ipts.initialized)
@@ -784,6 +827,8 @@ index 00000000..3ab9b502
+{
+ int ret = 0;
+
++ pr_info("ipts: initializing ipts\n");
++
+ intel_ipts.dev = dev;
+ INIT_DELAYED_WORK(&intel_ipts.reacquire_db_work, reacquire_db_work_func);
+
@@ -821,9 +866,9 @@ index 00000000..3ab9b502
+ cancel_delayed_work(&intel_ipts.reacquire_db_work);
+ }
+}
-diff --git a/drivers/gpu/drm/i915/intel_ipts.h b/drivers/gpu/drm/i915/intel_ipts.h
+diff --git b/drivers/gpu/drm/i915/intel_ipts.h b/drivers/gpu/drm/i915/intel_ipts.h
new file mode 100644
-index 00000000..a6965d10
+index 0000000..a6965d1
--- /dev/null
+++ b/drivers/gpu/drm/i915/intel_ipts.h
@@ -0,0 +1,34 @@
@@ -862,76 +907,74 @@ index 00000000..a6965d10
+
+#endif //_INTEL_IPTS_H_
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
-index 62f44d3e..2204b793 100644
+index 6f972e6..f25a439 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
-@@ -214,7 +214,7 @@
-
+@@ -211,8 +211,6 @@
+
#define WA_TAIL_DWORDS 2
-
+
-static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
-+int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
- struct intel_engine_cs *engine);
+- struct intel_engine_cs *engine);
static void execlists_init_reg_state(u32 *reg_state,
struct i915_gem_context *ctx,
-@@ -735,7 +735,7 @@ static void execlists_schedule(struct drm_i915_gem_request *request, int prio)
+ struct intel_engine_cs *engine,
+@@ -819,7 +817,7 @@ static void execlists_schedule(struct drm_i915_gem_request *request, int prio)
/* XXX Do we need to preempt to make room for us and our deps? */
}
-
--static int execlists_context_pin(struct intel_engine_cs *engine,
-+int execlists_context_pin(struct intel_engine_cs *engine,
- struct i915_gem_context *ctx)
+
+-static struct intel_ring *
++struct intel_ring *
+ execlists_context_pin(struct intel_engine_cs *engine,
+ struct i915_gem_context *ctx)
{
- struct intel_context *ce = &ctx->engine[engine->id];
-@@ -794,7 +794,7 @@ err:
- return ret;
+@@ -880,7 +878,7 @@ err:
+ return ERR_PTR(ret);
}
-
+
-static void execlists_context_unpin(struct intel_engine_cs *engine,
+void execlists_context_unpin(struct intel_engine_cs *engine,
struct i915_gem_context *ctx)
{
struct intel_context *ce = &ctx->engine[engine->id];
-@@ -1683,7 +1683,8 @@ int logical_render_ring_init(struct intel_engine_cs *engine)
- int ret;
-
+@@ -1810,6 +1808,9 @@ int logical_render_ring_init(struct intel_engine_cs *engine)
+
logical_ring_setup(engine);
--
+
+ engine->irq_keep_mask |= GT_RENDER_PIPECTL_NOTIFY_INTERRUPT
+ << GEN8_RCS_IRQ_SHIFT;
++
if (HAS_L3_DPF(dev_priv))
engine->irq_keep_mask |= GT_RENDER_L3_PARITY_ERROR_INTERRUPT;
-
-@@ -1944,7 +1945,7 @@ uint32_t intel_lr_context_size(struct intel_engine_cs *engine)
- return ret;
+
+@@ -2038,7 +2039,7 @@ populate_lr_context(struct i915_gem_context *ctx,
+ return 0;
}
-
+
-static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
+int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
struct intel_engine_cs *engine)
{
struct drm_i915_gem_object *ctx_obj;
diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
-index e8015e7b..92e113c1 100644
+index 57ef583..aec97c3 100644
--- a/drivers/gpu/drm/i915/intel_lrc.h
+++ b/drivers/gpu/drm/i915/intel_lrc.h
-@@ -78,8 +78,13 @@ int logical_xcs_ring_init(struct intel_engine_cs *engine);
- struct drm_i915_private;
- struct i915_gem_context;
-
-+int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
-+ struct intel_engine_cs *engine);
-+int execlists_context_pin(struct intel_engine_cs *engine,
-+ struct i915_gem_context *ctx);
+@@ -85,4 +85,12 @@ uint64_t intel_lr_context_descriptor(struct i915_gem_context *ctx,
+ int intel_sanitize_enable_execlists(struct drm_i915_private *dev_priv,
+ int enable_execlists);
+
++struct intel_ring *
++execlists_context_pin(struct intel_engine_cs *engine,
++ struct i915_gem_context *ctx);
+void execlists_context_unpin(struct intel_engine_cs *engine,
+ struct i915_gem_context *ctx);
- uint32_t intel_lr_context_size(struct intel_engine_cs *engine);
--
- void intel_lr_context_resume(struct drm_i915_private *dev_priv);
- uint64_t intel_lr_context_descriptor(struct i915_gem_context *ctx,
- struct intel_engine_cs *engine);
++int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
++ struct intel_engine_cs *engine);
++
+ #endif /* _INTEL_LRC_H_ */
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
-index cb50c527..48a0300d 100644
+index 3b1c5d7..98b64e3 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -34,6 +34,7 @@
@@ -939,98 +982,56 @@ index cb50c527..48a0300d 100644
#include <linux/pwm.h>
#include "intel_drv.h"
+#include "intel_ipts.h"
-
+
#define CRC_PMIC_PWM_PERIOD_NS 21333
-
-@@ -712,6 +713,9 @@ static void lpt_disable_backlight(struct intel_connector *connector)
+
+@@ -719,6 +720,9 @@ static void lpt_disable_backlight(const struct drm_connector_state *old_conn_sta
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
u32 tmp;
-
+
+ if (INTEL_GEN(dev_priv) >= 9 && i915.enable_guc_submission)
+ intel_ipts_notify_backlight_status(false);
+
- intel_panel_actually_set_backlight(connector, 0);
-
+ intel_panel_actually_set_backlight(old_conn_state, 0);
+
/*
-@@ -881,6 +885,9 @@ static void lpt_enable_backlight(struct intel_connector *connector)
-
+@@ -906,6 +910,9 @@ static void lpt_enable_backlight(const struct intel_crtc_state *crtc_state,
+
/* This won't stick until the above enable. */
- intel_panel_actually_set_backlight(connector, panel->backlight.level);
+ intel_panel_actually_set_backlight(conn_state, panel->backlight.level);
+
+ if (INTEL_GEN(dev_priv) >= 9 && i915.enable_guc_submission)
+ intel_ipts_notify_backlight_status(true);
}
-
- static void pch_enable_backlight(struct intel_connector *connector)
+
+ static void pch_enable_backlight(const struct intel_crtc_state *crtc_state,
diff --git a/drivers/gpu/drm/i915/intel_uc.h b/drivers/gpu/drm/i915/intel_uc.h
-index f8411526..7108714a 100644
+index 22ae52b..c7765f9 100644
--- a/drivers/gpu/drm/i915/intel_uc.h
+++ b/drivers/gpu/drm/i915/intel_uc.h
-@@ -189,6 +189,7 @@ struct intel_guc {
+@@ -191,6 +191,7 @@ struct intel_guc {
struct ida stage_ids;
-
+
struct i915_guc_client *execbuf_client;
+ struct i915_guc_client *ipts_client;
-
+
DECLARE_BITMAP(doorbell_bitmap, GUC_NUM_DOORBELLS);
uint32_t db_cacheline; /* Cyclic counter mod pagesize */
-@@ -267,4 +268,9 @@ void intel_huc_select_fw(struct intel_huc *huc);
- int intel_huc_init_hw(struct intel_huc *huc);
+@@ -276,4 +277,9 @@ void intel_huc_select_fw(struct intel_huc *huc);
+ void intel_huc_init_hw(struct intel_huc *huc);
void intel_guc_auth_huc(struct drm_i915_private *dev_priv);
-
+
+int i915_guc_ipts_submission_enable(struct drm_i915_private *dev_priv,
+ struct i915_gem_context *ctx);
+void i915_guc_ipts_submission_disable(struct drm_i915_private *dev_priv);
+void i915_guc_ipts_reacquire_doorbell(struct drm_i915_private *dev_priv);
+
#endif
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index be5bea15..937a7084 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -558,8 +558,12 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
- if (field->index >= field->report->maxfield ||
- usage->usage_index >= field->report_count)
- return 1;
-- td->cc_index = field->index;
-- td->cc_value_index = usage->usage_index;
-+
-+ if (td->cc_index < 0) {
-+ td->cc_index = field->index;
-+ td->cc_value_index = usage->usage_index;
-+ }
-+
- return 1;
- case HID_DG_CONTACTMAX:
- /* we don't set td->last_slot_field as contactcount and
-@@ -857,8 +861,10 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
- field->application != HID_DG_TOUCHSCREEN &&
- field->application != HID_DG_PEN &&
- field->application != HID_DG_TOUCHPAD &&
-+ field->application != HID_GD_MOUSE &&
- field->application != HID_GD_KEYBOARD &&
-- field->application != HID_CP_CONSUMER_CONTROL)
-+ field->application != HID_CP_CONSUMER_CONTROL &&
-+ field->logical != HID_DG_TOUCHSCREEN)
- return -1;
-
- /*
-@@ -1041,6 +1047,10 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
- suffix = "Pen";
- /* force BTN_STYLUS to allow tablet matching in udev */
- __set_bit(BTN_STYLUS, hi->input->keybit);
-+ } else if (hi->report->field[0]->logical == HID_DG_TOUCHSCREEN) {
-+ suffix = "SingleTouch";
-+ /* force BTN_STYLUS to allow tablet matching in udev */
-+ __set_bit(BTN_STYLUS, hi->input->keybit);
- } else {
- switch (field->application) {
- case HID_GD_KEYBOARD:
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
-index 07bbd4cc..3029917a 100644
+index 8136dc7..3cff7be 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
-@@ -505,6 +505,7 @@ source "drivers/misc/ti-st/Kconfig"
+@@ -513,6 +513,7 @@ source "drivers/misc/ti-st/Kconfig"
source "drivers/misc/lis3lv02d/Kconfig"
source "drivers/misc/altera-stapl/Kconfig"
source "drivers/misc/mei/Kconfig"
@@ -1039,10 +1040,10 @@ index 07bbd4cc..3029917a 100644
source "drivers/misc/mic/Kconfig"
source "drivers/misc/genwqe/Kconfig"
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
-index 81ef3e67..da6710df 100644
+index ad0e64f..a574554 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
-@@ -43,6 +43,7 @@ obj-y += lis3lv02d/
+@@ -44,6 +44,7 @@ obj-y += lis3lv02d/
obj-$(CONFIG_USB_SWITCH_FSA9480) += fsa9480.o
obj-$(CONFIG_ALTERA_STAPL) +=altera-stapl/
obj-$(CONFIG_INTEL_MEI) += mei/
@@ -1050,9 +1051,9 @@ index 81ef3e67..da6710df 100644
obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/
obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o
obj-$(CONFIG_SRAM) += sram.o
-diff --git a/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
+diff --git b/drivers/misc/ipts/Kconfig b/drivers/misc/ipts/Kconfig
new file mode 100644
-index 00000000..360ed386
+index 0000000..360ed38
--- /dev/null
+++ b/drivers/misc/ipts/Kconfig
@@ -0,0 +1,9 @@
@@ -1065,9 +1066,9 @@ index 00000000..360ed386
+ Supported SoCs:
+ Intel Skylake
+ Intel Kabylake
-diff --git a/drivers/misc/ipts/Makefile b/drivers/misc/ipts/Makefile
+diff --git b/drivers/misc/ipts/Makefile b/drivers/misc/ipts/Makefile
new file mode 100644
-index 00000000..1783e9cf
+index 0000000..1783e9c
--- /dev/null
+++ b/drivers/misc/ipts/Makefile
@@ -0,0 +1,13 @@
@@ -1084,9 +1085,9 @@ index 00000000..1783e9cf
+intel-ipts-objs += ipts-resource.o
+intel-ipts-objs += ipts-gfx.o
+intel-ipts-$(CONFIG_DEBUG_FS) += ipts-dbgfs.o
-diff --git a/drivers/misc/ipts/ipts-binary-spec.h b/drivers/misc/ipts/ipts-binary-spec.h
+diff --git b/drivers/misc/ipts/ipts-binary-spec.h b/drivers/misc/ipts/ipts-binary-spec.h
new file mode 100644
-index 00000000..87d4bc41
+index 0000000..87d4bc4
--- /dev/null
+++ b/drivers/misc/ipts/ipts-binary-spec.h
@@ -0,0 +1,118 @@
@@ -1208,9 +1209,9 @@ index 00000000..87d4bc41
+#pragma pack()
+
+#endif /* _IPTS_BINARY_SPEC_H */
-diff --git a/drivers/misc/ipts/ipts-dbgfs.c b/drivers/misc/ipts/ipts-dbgfs.c
+diff --git b/drivers/misc/ipts/ipts-dbgfs.c b/drivers/misc/ipts/ipts-dbgfs.c
new file mode 100644
-index 00000000..1c5c92f7
+index 0000000..1c5c92f
--- /dev/null
+++ b/drivers/misc/ipts/ipts-dbgfs.c
@@ -0,0 +1,152 @@
@@ -1366,12 +1367,12 @@ index 00000000..1c5c92f7
+ ipts_dbgfs_deregister(ipts);
+ return -ENODEV;
+}
-diff --git a/drivers/misc/ipts/ipts-gfx.c b/drivers/misc/ipts/ipts-gfx.c
+diff --git b/drivers/misc/ipts/ipts-gfx.c b/drivers/misc/ipts/ipts-gfx.c
new file mode 100644
-index 00000000..ff435650
+index 0000000..5172777
--- /dev/null
+++ b/drivers/misc/ipts/ipts-gfx.c
-@@ -0,0 +1,186 @@
+@@ -0,0 +1,184 @@
+/*
+ *
+ * Intel Integrated Touch Gfx Interface Layer
@@ -1441,8 +1442,6 @@ index 00000000..ff435650
+ intel_ipts_disconnect(ipts->gfx_info.gfx_handle);
+}
+
-+#define RUN_DBG_THREAD
-+
+#ifdef RUN_DBG_THREAD
+#include "../mei/mei_dev.h"
+
@@ -1558,9 +1557,9 @@ index 00000000..ff435650
+
+ devm_kfree(&ipts->cldev->dev, buf);
+}
-diff --git a/drivers/misc/ipts/ipts-gfx.h b/drivers/misc/ipts/ipts-gfx.h
+diff --git b/drivers/misc/ipts/ipts-gfx.h b/drivers/misc/ipts/ipts-gfx.h
new file mode 100644
-index 00000000..03a5f355
+index 0000000..03a5f35
--- /dev/null
+++ b/drivers/misc/ipts/ipts-gfx.h
@@ -0,0 +1,24 @@
@@ -1588,9 +1587,9 @@ index 00000000..03a5f355
+void ipts_unmap_buffer(ipts_info_t *ipts, intel_ipts_mapbuffer_t *buf);
+
+#endif // _IPTS_GFX_H_
-diff --git a/drivers/misc/ipts/ipts-hid.c b/drivers/misc/ipts/ipts-hid.c
+diff --git b/drivers/misc/ipts/ipts-hid.c b/drivers/misc/ipts/ipts-hid.c
new file mode 100644
-index 00000000..3b3be617
+index 0000000..3b3be61
--- /dev/null
+++ b/drivers/misc/ipts/ipts-hid.c
@@ -0,0 +1,456 @@
@@ -2002,7 +2001,7 @@ index 00000000..3b3be617
+ err_payload->code[2],
+ err_payload->code[3],
+ err_payload->string);
-+
++
+ break;
+ }
+ default:
@@ -2050,9 +2049,9 @@ index 00000000..3b3be617
+
+ return ret;
+}
-diff --git a/drivers/misc/ipts/ipts-hid.h b/drivers/misc/ipts/ipts-hid.h
+diff --git b/drivers/misc/ipts/ipts-hid.h b/drivers/misc/ipts/ipts-hid.h
new file mode 100644
-index 00000000..f1b22c91
+index 0000000..f1b22c9
--- /dev/null
+++ b/drivers/misc/ipts/ipts-hid.h
@@ -0,0 +1,34 @@
@@ -2090,9 +2089,9 @@ index 00000000..f1b22c91
+ touch_sensor_hid_ready_for_data_rsp_data_t *hid_rsp);
+
+#endif /* _IPTS_HID_H_ */
-diff --git a/drivers/misc/ipts/ipts-kernel.c b/drivers/misc/ipts/ipts-kernel.c
+diff --git b/drivers/misc/ipts/ipts-kernel.c b/drivers/misc/ipts/ipts-kernel.c
new file mode 100644
-index 00000000..ca5e24ce
+index 0000000..ca5e24c
--- /dev/null
+++ b/drivers/misc/ipts/ipts-kernel.c
@@ -0,0 +1,1050 @@
@@ -2370,7 +2369,7 @@ index 00000000..ca5e24ce
+ return -EINVAL;
+
+ ipts_dbg(ipts, "cmd buf size = %d\n", cmd->size);
-+
++
+ num_of_parallels = ipts_get_num_of_parallel_buffers(ipts);
+ /* command buffers are located after the other allocations */
+ cmdbuf_idx = num_of_parallels * alloc_info->num_of_allocations;
@@ -2442,7 +2441,7 @@ index 00000000..ca5e24ce
+ int buf_idx, num_of_alloc;
+ u32 buf_size, flags, io_buf_type;
+ bool initialize;
-+
++
+ parsed = parse_info->parsed;
+ size = parse_info->size;
+ bin_data = parse_info->data;
@@ -2455,7 +2454,7 @@ index 00000000..ca5e24ce
+
+ ipts_dbg(ipts, "number of resources %u\n", res_list->num);
+ for (i = 0; i < res_list->num; i++) {
-+ initialize = false;
++ initialize = false;
+ io_buf_type = 0;
+ flags = 0;
+
@@ -2636,7 +2635,7 @@ index 00000000..ca5e24ce
+ if(alloc_info->buffs[buf_idx].buf != NULL) {
+ gtt_offset = (u32)(u64)
+ alloc_info->buffs[buf_idx].buf->gfx_addr;
-+ }
++ }
+ gtt_offset += patch[i].alloc_offset;
+
+ batch += patch[i].patch_offset;
@@ -2660,7 +2659,7 @@ index 00000000..ca5e24ce
+ u8 *wi_data;
+ int size, parsed, hdr_size, wi_size;
+ int i, batch_offset;
-+
++
+ parsed = parse_info->parsed;
+ size = parse_info->size;
+ bin_guc_wq = (ipts_bin_guc_wq_info_t *)&parse_info->data[parsed];
@@ -2705,7 +2704,7 @@ index 00000000..ca5e24ce
+ bin_buffer_t *bin_buf;
+ int wq_size, wi_size, parallel_idx, cmd_idx, k_idx, iter_size;
+ int i, num_of_parallels, batch_offset, k_num, total_workload;
-+
++
+ wq_addr = (u8*)ipts->resource.wq_info.wq_addr;
+ wq_size = ipts->resource.wq_info.wq_size;
+ num_of_parallels = ipts_get_num_of_parallel_buffers(ipts);
@@ -2729,7 +2728,7 @@ index 00000000..ca5e24ce
+ batch_offset = kernel->guc_wq_item->batch_offset;
+ wi_size = kernel->guc_wq_item->size;
+ wi_data = &kernel->guc_wq_item->data[0];
-+
++
+ cmd_idx = wl[parallel_idx].cmdbuf_index;
+ bin_buf = &alloc_info->buffs[cmd_idx];
+
@@ -3042,7 +3041,7 @@ index 00000000..ca5e24ce
+ }
+
+ ipts_set_wq_item_size(ipts, total_workload);
-+
++
+ ret = bin_setup_guc_workqueue(ipts, kernel_list);
+ if (ret) {
+ ipts_dbg(ipts, "error setup_guc_workqueue\n");
@@ -3094,7 +3093,7 @@ index 00000000..ca5e24ce
+ for (k_idx = 0; k_idx < k_num; k_idx++) {
+ unload_kernel(ipts, kernel);
+ kernel++;
-+ }
++ }
+
+ ipts_unmap_buffer(ipts, kernel_list->bufid_buf);
+
@@ -3146,9 +3145,9 @@ index 00000000..ca5e24ce
+ release_kernel(ipts);
+ ipts_close_gpu(ipts);
+}
-diff --git a/drivers/misc/ipts/ipts-kernel.h b/drivers/misc/ipts/ipts-kernel.h
+diff --git b/drivers/misc/ipts/ipts-kernel.h b/drivers/misc/ipts/ipts-kernel.h
new file mode 100644
-index 00000000..0e7f1393
+index 0000000..0e7f139
--- /dev/null
+++ b/drivers/misc/ipts/ipts-kernel.h
@@ -0,0 +1,23 @@
@@ -3175,9 +3174,9 @@ index 00000000..0e7f1393
+void ipts_release_kernels(ipts_info_t *ipts);
+
+#endif
-diff --git a/drivers/misc/ipts/ipts-mei-msgs.h b/drivers/misc/ipts/ipts-mei-msgs.h
+diff --git b/drivers/misc/ipts/ipts-mei-msgs.h b/drivers/misc/ipts/ipts-mei-msgs.h
new file mode 100644
-index 00000000..8ca14680
+index 0000000..8ca1468
--- /dev/null
+++ b/drivers/misc/ipts/ipts-mei-msgs.h
@@ -0,0 +1,585 @@
@@ -3766,9 +3765,9 @@ index 00000000..8ca14680
+#pragma pack()
+
+#endif // _IPTS_MEI_MSGS_H_
-diff --git a/drivers/misc/ipts/ipts-mei.c b/drivers/misc/ipts/ipts-mei.c
+diff --git b/drivers/misc/ipts/ipts-mei.c b/drivers/misc/ipts/ipts-mei.c
new file mode 100644
-index 00000000..39667e75
+index 0000000..39667e7
--- /dev/null
+++ b/drivers/misc/ipts/ipts-mei.c
@@ -0,0 +1,282 @@
@@ -3996,7 +3995,7 @@ index 00000000..39667e75
+
+disable_mei :
+ mei_cldev_disable(cldev);
-+
++
+ return ret;
+}
+
@@ -4054,12 +4053,12 @@ index 00000000..39667e75
+ ("Intel(R) Management Engine Interface Client Driver for "\
+ "Intel Precision Touch and Sylus");
+MODULE_LICENSE("GPL");
-diff --git a/drivers/misc/ipts/ipts-msg-handler.c b/drivers/misc/ipts/ipts-msg-handler.c
+diff --git b/drivers/misc/ipts/ipts-msg-handler.c b/drivers/misc/ipts/ipts-msg-handler.c
new file mode 100644
-index 00000000..b53f668d
+index 0000000..ef2d71f
--- /dev/null
+++ b/drivers/misc/ipts/ipts-msg-handler.c
-@@ -0,0 +1,433 @@
+@@ -0,0 +1,431 @@
+#include <linux/mei_cl_bus.h>
+
+#include "ipts.h"
@@ -4199,9 +4198,7 @@ index 00000000..b53f668d
+ ipts_set_state(ipts, IPTS_STA_INIT);
+ ipts->num_of_parallel_data_buffers = TOUCH_SENSOR_MAX_DATA_BUFFERS;
+
-+#ifdef ENABLE_IPTS_DEBUG
-+ ipts->sensor_mode = TOUCH_SENSOR_MODE_HID; /* start with HID */
-+#endif
++ ipts->sensor_mode = TOUCH_SENSOR_MODE_RAW_DATA; /* start with RAW_DATA */
+
+ ret = ipts_handle_cmd(ipts, TOUCH_SENSOR_NOTIFY_DEV_READY_CMD, NULL, 0);
+
@@ -4236,7 +4233,7 @@ index 00000000..b53f668d
+ ipts_stop(ipts);
+
+ ipts->retry++;
-+ if (ipts->retry == IPTS_MAX_RETRY &&
++ if (ipts->retry == IPTS_MAX_RETRY &&
+ ipts->sensor_mode == TOUCH_SENSOR_MODE_RAW_DATA) {
+ /* try with HID mode */
+ ipts->sensor_mode = TOUCH_SENSOR_MODE_HID;
@@ -4493,9 +4490,9 @@ index 00000000..b53f668d
+
+ return ret;
+}
-diff --git a/drivers/misc/ipts/ipts-msg-handler.h b/drivers/misc/ipts/ipts-msg-handler.h
+diff --git b/drivers/misc/ipts/ipts-msg-handler.h b/drivers/misc/ipts/ipts-msg-handler.h
new file mode 100644
-index 00000000..b8e27d30
+index 0000000..b8e27d3
--- /dev/null
+++ b/drivers/misc/ipts/ipts-msg-handler.h
@@ -0,0 +1,32 @@
@@ -4531,9 +4528,9 @@ index 00000000..b8e27d30
+int ipts_send_sensor_clear_mem_window_cmd(ipts_info_t *ipts);
+
+#endif /* _IPTS_MSG_HANDLER_H */
-diff --git a/drivers/misc/ipts/ipts-resource.c b/drivers/misc/ipts/ipts-resource.c
+diff --git b/drivers/misc/ipts/ipts-resource.c b/drivers/misc/ipts/ipts-resource.c
new file mode 100644
-index 00000000..c353b815
+index 0000000..47607ef
--- /dev/null
+++ b/drivers/misc/ipts/ipts-resource.c
@@ -0,0 +1,277 @@
@@ -4594,7 +4591,7 @@ index 00000000..c353b815
+ addr = dmam_alloc_coherent(&ipts->cldev->dev,
+ buffer_size,
+ &dma_addr,
-+ GFP_ATOMIC|GFP_DMA32);
++ GFP_ATOMIC|__GFP_ZERO);
+ if (addr == NULL)
+ return -ENOMEM;
+
@@ -4615,7 +4612,7 @@ index 00000000..c353b815
+ feedback_buffer[i].addr = dmam_alloc_coherent(&ipts->cldev->dev,
+ ipts->device_info.feedback_size,
+ &feedback_buffer[i].dma_addr,
-+ GFP_ATOMIC|GFP_DMA32);
++ GFP_ATOMIC|__GFP_ZERO);
+
+ if (feedback_buffer[i].addr == NULL) {
+ ret = -ENOMEM;
@@ -4649,7 +4646,7 @@ index 00000000..c353b815
+ buffer_hid->addr = dmam_alloc_coherent(&ipts->cldev->dev,
+ ipts->device_info.frame_size,
+ &buffer_hid->dma_addr,
-+ GFP_ATOMIC|GFP_DMA32);
++ GFP_ATOMIC|__GFP_ZERO);
+ if (buffer_hid->addr == NULL) {
+ return -ENOMEM;
+ }
@@ -4814,9 +4811,9 @@ index 00000000..c353b815
+ output_buf->dma_addr = dma_addr;
+ output_buf->addr = cpu_addr;
+}
-diff --git a/drivers/misc/ipts/ipts-resource.h b/drivers/misc/ipts/ipts-resource.h
+diff --git b/drivers/misc/ipts/ipts-resource.h b/drivers/misc/ipts/ipts-resource.h
new file mode 100644
-index 00000000..7d66ac72
+index 0000000..7d66ac7
--- /dev/null
+++ b/drivers/misc/ipts/ipts-resource.h
@@ -0,0 +1,30 @@
@@ -4850,9 +4847,9 @@ index 00000000..7d66ac72
+ u8* cpu_addr, u64 dma_addr);
+
+#endif // _IPTS_RESOURCE_H_
-diff --git a/drivers/misc/ipts/ipts-sensor-regs.h b/drivers/misc/ipts/ipts-sensor-regs.h
+diff --git b/drivers/misc/ipts/ipts-sensor-regs.h b/drivers/misc/ipts/ipts-sensor-regs.h
new file mode 100644
-index 00000000..96812b0e
+index 0000000..96812b0
--- /dev/null
+++ b/drivers/misc/ipts/ipts-sensor-regs.h
@@ -0,0 +1,700 @@
@@ -5556,9 +5553,9 @@ index 00000000..96812b0e
+#pragma pack()
+
+#endif // _TOUCH_SENSOR_REGS_H
-diff --git a/drivers/misc/ipts/ipts-state.h b/drivers/misc/ipts/ipts-state.h
+diff --git b/drivers/misc/ipts/ipts-state.h b/drivers/misc/ipts/ipts-state.h
new file mode 100644
-index 00000000..39a2eaf5
+index 0000000..39a2eaf
--- /dev/null
+++ b/drivers/misc/ipts/ipts-state.h
@@ -0,0 +1,29 @@
@@ -5591,9 +5588,9 @@ index 00000000..39a2eaf5
+} ipts_state_t;
+
+#endif // _IPTS_STATE_H_
-diff --git a/drivers/misc/ipts/ipts.h b/drivers/misc/ipts/ipts.h
+diff --git b/drivers/misc/ipts/ipts.h b/drivers/misc/ipts/ipts.h
new file mode 100644
-index 00000000..397b70ae
+index 0000000..9c34b55
--- /dev/null
+++ b/drivers/misc/ipts/ipts.h
@@ -0,0 +1,200 @@
@@ -5625,7 +5622,7 @@ index 00000000..397b70ae
+#include "ipts-state.h"
+#include "ipts-binary-spec.h"
+
-+#define ENABLE_IPTS_DEBUG /* enable IPTS debug */
++//#define ENABLE_IPTS_DEBUG /* enable IPTS debug */
+
+#ifdef ENABLE_IPTS_DEBUG
+
@@ -5637,7 +5634,7 @@ index 00000000..397b70ae
+ dev_info(&ipts->cldev->dev, format, ##arg);\
+} while (0)
+
-+#define RUN_DBG_THREAD
++//#define RUN_DBG_THREAD
+
+#else
+
@@ -5798,44 +5795,32 @@ index 00000000..397b70ae
+
+#endif // _IPTS_H_
diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
-index c8307e8b..cde23f9a 100644
+index 0ccccba..c29f128 100644
--- a/drivers/misc/mei/hw-me-regs.h
+++ b/drivers/misc/mei/hw-me-regs.h
@@ -119,6 +119,7 @@
-
+
#define MEI_DEV_ID_SPT 0x9D3A /* Sunrise Point */
#define MEI_DEV_ID_SPT_2 0x9D3B /* Sunrise Point 2 */
+#define MEI_DEV_ID_SPT_4 0x9D3E /* Sunrise Point 4 */
#define MEI_DEV_ID_SPT_H 0xA13A /* Sunrise Point H */
#define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
-
+
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
-index 8621a198..79485fd7 100644
+index 78b3172..e5b6b3b 100644
--- a/drivers/misc/mei/pci-me.c
+++ b/drivers/misc/mei/pci-me.c
-@@ -85,6 +85,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
-
- {MEI_PCI_DEVICE(MEI_DEV_ID_SPT, mei_me_pch8_cfg)},
- {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, mei_me_pch8_cfg)},
-+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, mei_me_pch8_cfg)},
- {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, mei_me_pch8_sps_cfg)},
- {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, mei_me_pch8_sps_cfg)},
- {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, mei_me_pch8_cfg)},
-diff --git a/firmware/Makefile b/firmware/Makefile
-index fa3e81c2..dc98092f 100644
---- a/firmware/Makefile
-+++ b/firmware/Makefile
-@@ -135,6 +135,7 @@ fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw
- fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw
- fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin
- fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin
-+fw-shipped-$(CONFIG_INTEL_IPTS) += intel/ipts/ipts_fw_config.bin
-
- fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-)
-
-diff --git a/include/linux/intel_ipts_if.h b/include/linux/intel_ipts_if.h
+@@ -86,6 +86,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
+
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
++ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
+ {MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
+ {MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH8_CFG)},
+diff --git b/include/linux/intel_ipts_if.h b/include/linux/intel_ipts_if.h
new file mode 100644
-index 00000000..f329bbfb
+index 0000000..f329bbf
--- /dev/null
+++ b/include/linux/intel_ipts_if.h
@@ -0,0 +1,75 @@
@@ -5914,51 +5899,3 @@ index 00000000..f329bbfb
+void intel_ipts_disconnect(uint64_t gfx_handle);
+
+#endif // INTEL_IPTS_IF_H
-diff --git a/drivers//hid/hid-multitouch.c b/drivers//hid/hid-multitouch.c
-index 09f1cd60..3edf5685 100644
---- a/drivers//hid/hid-multitouch.c
-+++ b/drivers//hid/hid-multitouch.c
-@@ -131,6 +131,7 @@ struct mt_device {
-
- static void mt_post_parse_default_settings(struct mt_device *td);
- static void mt_post_parse(struct mt_device *td);
-+static int contact_count_seen;
-
- /* classes of device behavior */
- #define MT_CLS_DEFAULT 0x0001
-@@ -559,9 +560,10 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
- usage->usage_index >= field->report_count)
- return 1;
-
-- if (td->cc_index < 0) {
-+ if (contact_count_seen != 1) {
- td->cc_index = field->index;
- td->cc_value_index = usage->usage_index;
-+ contact_count_seen++;
- }
-
- return 1;
-@@ -1047,10 +1049,6 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
- suffix = "Pen";
- /* force BTN_STYLUS to allow tablet matching in udev */
- __set_bit(BTN_STYLUS, hi->input->keybit);
-- } else if (hi->report->field[0]->logical == HID_DG_TOUCHSCREEN) {
-- suffix = "SingleTouch";
-- /* force BTN_STYLUS to allow tablet matching in udev */
-- __set_bit(BTN_STYLUS, hi->input->keybit);
- } else {
- switch (field->application) {
- case HID_GD_KEYBOARD:
-diff --git a/drivers//misc/ipts/ipts-gfx.c b/drivers//misc/ipts/ipts-gfx.c
-index ff435650..51727770 100644
---- a/drivers//misc/ipts/ipts-gfx.c
-+++ b/drivers//misc/ipts/ipts-gfx.c
-@@ -67,8 +67,6 @@ static void disconnect_gfx(ipts_info_t *ipts)
- intel_ipts_disconnect(ipts->gfx_info.gfx_handle);
- }
-
--#define RUN_DBG_THREAD
--
- #ifdef RUN_DBG_THREAD
- #include "../mei/mei_dev.h"
-
diff --git a/0002-hid.patch b/0002-hid.patch
new file mode 100644
index 00000000000..467e920b324
--- /dev/null
+++ b/0002-hid.patch
@@ -0,0 +1,315 @@
+diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
+index 330ca98..fd75182 100644
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -723,7 +723,8 @@ static void hid_scan_collection(struct hid_parser *parser, unsigned type)
+ hid->group = HID_GROUP_SENSOR_HUB;
+
+ if (hid->vendor == USB_VENDOR_ID_MICROSOFT &&
+- hid->product == USB_DEVICE_ID_MS_POWER_COVER &&
++ (hid->product == USB_DEVICE_ID_MS_SURFACE_LAPTOP ||
++ hid->product == USB_DEVICE_ID_MS_POWER_COVER) &&
+ hid->group == HID_GROUP_MULTITOUCH)
+ hid->group = HID_GROUP_GENERIC;
+
+@@ -2179,6 +2180,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_7K) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_600) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1) },
++ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_LAPTOP) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER) },
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT) },
+ #endif
+diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
+index be2e005..e011419 100644
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -757,11 +757,20 @@
+ #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1 0x0732
+ #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_600 0x0750
+ #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 0x076c
+-#define USB_DEVICE_ID_MS_COMFORT_KEYBOARD 0x00e3
+-#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799
+-#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7
+-#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9
+-#define USB_DEVICE_ID_MS_POWER_COVER 0x07da
++#define USB_DEVICE_ID_MS_COMFORT_KEYBOARD 0x00e3
++#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799
++#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7
++#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9
++#define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07de
++#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 0x07dc
++#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_1 0x07de
++#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2 0x07e2
++#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP 0x07dd
++#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 0x07e8
++#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1 0x07e4
++#define USB_DEVICE_ID_MS_SURFACE_BOOK 0x07cd
++#define USB_DEVICE_ID_MS_SURFACE_LAPTOP 0xf001
++#define USB_DEVICE_ID_MS_POWER_COVER 0x07da
+
+ #define USB_VENDOR_ID_MOJO 0x8282
+ #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201
+diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
+index 96e7d32..9127164 100644
+--- a/drivers/hid/hid-microsoft.c
++++ b/drivers/hid/hid-microsoft.c
+@@ -274,6 +274,8 @@ static const struct hid_device_id ms_devices[] = {
+ .driver_data = MS_NOGET },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_MOUSE_4500),
+ .driver_data = MS_DUPLICATE_USAGES },
++ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_LAPTOP),
++ .driver_data = MS_HIDINPUT },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER),
+ .driver_data = MS_HIDINPUT },
+ { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_KEYBOARD),
+diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
+index 9e8c4d2..53cf903 100644
+--- a/drivers/hid/hid-multitouch.c
++++ b/drivers/hid/hid-multitouch.c
+@@ -140,6 +140,7 @@ struct mt_device {
+
+ static void mt_post_parse_default_settings(struct mt_device *td);
+ static void mt_post_parse(struct mt_device *td);
++static int cc_seen = 0;
+
+ /* classes of device behavior */
+ #define MT_CLS_DEFAULT 0x0001
+@@ -588,8 +589,12 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
+ if (field->index >= field->report->maxfield ||
+ usage->usage_index >= field->report_count)
+ return 1;
+- td->cc_index = field->index;
+- td->cc_value_index = usage->usage_index;
++
++ if(cc_seen != 1) {
++ td->cc_index = field->index;
++ td->cc_value_index = usage->usage_index;
++ cc_seen++;
++ }
+ return 1;
+ case HID_DG_CONTACTMAX:
+ /* we don't set td->last_slot_field as contactcount and
+@@ -626,6 +631,16 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
+ return 0;
+ }
+
++static int mt_touch_input_mapped(struct hid_device *hdev, struct hid_input *hi,
++ struct hid_field *field, struct hid_usage *usage,
++ unsigned long **bit, int *max)
++{
++ if (usage->type == EV_KEY || usage->type == EV_ABS)
++ set_bit(usage->type, hi->input->evbit);
++
++ return -1;
++}
++
+ static int mt_compute_slot(struct mt_device *td, struct input_dev *input)
+ {
+ __s32 quirks = td->mtclass.quirks;
+@@ -929,9 +944,11 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
+ field->application != HID_DG_TOUCHSCREEN &&
+ field->application != HID_DG_PEN &&
+ field->application != HID_DG_TOUCHPAD &&
++ field->application != HID_GD_MOUSE &&
+ field->application != HID_GD_KEYBOARD &&
+ field->application != HID_GD_SYSTEM_CONTROL &&
+ field->application != HID_CP_CONSUMER_CONTROL &&
++ field->logical != HID_DG_TOUCHSCREEN &&
+ field->application != HID_GD_WIRELESS_RADIO_CTLS &&
+ !(field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
+ td->mtclass.quirks & MT_QUIRK_ASUS_CUSTOM_UP))
+@@ -994,10 +1011,8 @@ static int mt_input_mapped(struct hid_device *hdev, struct hid_input *hi,
+ return 0;
+
+ if (field->application == HID_DG_TOUCHSCREEN ||
+- field->application == HID_DG_TOUCHPAD) {
+- /* We own these mappings, tell hid-input to ignore them */
+- return -1;
+- }
++ field->application == HID_DG_TOUCHPAD)
++ return mt_touch_input_mapped(hdev, hi, field, usage, bit, max);
+
+ /* let hid-core decide for the others */
+ return 0;
+@@ -1140,6 +1155,7 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
+ suffix = "Pen";
+ /* force BTN_STYLUS to allow tablet matching in udev */
+ __set_bit(BTN_STYLUS, hi->input->keybit);
++ __set_bit(INPUT_PROP_DIRECT, hi->input->propbit);
+ } else {
+ switch (field->application) {
+ case HID_GD_KEYBOARD:
+@@ -1155,9 +1171,10 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
+ suffix = "Pen";
+ /* force BTN_STYLUS to allow tablet matching in udev */
+ __set_bit(BTN_STYLUS, hi->input->keybit);
++ __set_bit(INPUT_PROP_DIRECT, hi->input->propbit);
+ break;
+ case HID_DG_TOUCHSCREEN:
+- /* we do not set suffix = "Touchscreen" */
++ suffix = "Touchscreen";
+ break;
+ case HID_DG_TOUCHPAD:
+ suffix = "Touchpad";
+@@ -1286,6 +1303,7 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
+ td->inputmode_value = MT_INPUTMODE_TOUCHSCREEN;
+ td->cc_index = -1;
+ td->mt_report_id = -1;
++ cc_seen = 0;
+ hid_set_drvdata(hdev, td);
+
+ td->fields = devm_kzalloc(&hdev->dev, sizeof(struct mt_fields),
+@@ -1332,7 +1350,6 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
+ hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
+
+ setup_timer(&td->release_timer, mt_expired_timeout, (long)hdev);
+-
+ ret = hid_parse(hdev);
+ if (ret != 0)
+ return ret;
+@@ -1594,6 +1611,47 @@ static const struct hid_device_id mt_devices[] = {
+ HID_USB_DEVICE(USB_VENDOR_ID_LG,
+ USB_DEVICE_ID_LG_MELFAS_MT) },
+
++ /* Microsoft Touch Cover */
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TOUCH_COVER_2) },
++
++ /* Microsoft Type Cover */
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_2) },
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_3) },
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3) },
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_1) },
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2) },
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP) },
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_PRO_4) },
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1) },
++
++ /* Microsoft Surface Book */
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_SURFACE_BOOK) },
++
++ /* Microsoft Power Cover */
++ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
++ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
++ USB_DEVICE_ID_MS_POWER_COVER) },
++
+ /* MosArt panels */
+ { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
+ MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
+diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
+index 9145c21..71dbae5 100644
+--- a/drivers/hid/i2c-hid/i2c-hid.c
++++ b/drivers/hid/i2c-hid/i2c-hid.c
+@@ -929,11 +929,6 @@ static int i2c_hid_of_probe(struct i2c_client *client,
+ }
+ pdata->hid_descriptor_address = val;
+
+- ret = of_property_read_u32(dev->of_node, "post-power-on-delay-ms",
+- &val);
+- if (!ret)
+- pdata->post_power_delay_ms = val;
+-
+ return 0;
+ }
+
+@@ -950,6 +945,16 @@ static inline int i2c_hid_of_probe(struct i2c_client *client,
+ }
+ #endif
+
++static void i2c_hid_fwnode_probe(struct i2c_client *client,
++ struct i2c_hid_platform_data *pdata)
++{
++ u32 val;
++
++ if (!device_property_read_u32(&client->dev, "post-power-on-delay-ms",
++ &val))
++ pdata->post_power_delay_ms = val;
++}
++
+ static int i2c_hid_probe(struct i2c_client *client,
+ const struct i2c_device_id *dev_id)
+ {
+@@ -993,6 +998,9 @@ static int i2c_hid_probe(struct i2c_client *client,
+ ihid->pdata = *platform_data;
+ }
+
++ /* Parse platform agnostic common properties from ACPI / device tree */
++ i2c_hid_fwnode_probe(client, &ihid->pdata);
++
+ ihid->pdata.supply = devm_regulator_get(&client->dev, "vdd");
+ if (IS_ERR(ihid->pdata.supply)) {
+ ret = PTR_ERR(ihid->pdata.supply);
+diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
+index f489a5c..7b48120 100644
+--- a/drivers/hid/usbhid/hid-quirks.c
++++ b/drivers/hid/usbhid/hid-quirks.c
+@@ -108,8 +108,17 @@ static const struct hid_blacklist {
+ { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C06A, HID_QUIRK_ALWAYS_POLL },
+ { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_PRO_2, HID_QUIRK_NO_INIT_REPORTS },
+- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TOUCH_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_1, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_BOOK, HID_QUIRK_NO_INIT_REPORTS },
++ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_LAPTOP, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
+ { USB_VENDOR_ID_NEXIO, USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750, HID_QUIRK_NO_INIT_REPORTS },
+diff --git a/drivers/platform/x86/surfacepro3_button.c b/drivers/platform/x86/surfacepro3_button.c
+index 6505c97..2d89a42 100644
+--- a/drivers/platform/x86/surfacepro3_button.c
++++ b/drivers/platform/x86/surfacepro3_button.c
+@@ -1,6 +1,6 @@
+ /*
+ * power/home/volume button support for
+- * Microsoft Surface Pro 3/4 tablet.
++ * Microsoft Surface Pro 3/4/2017 tablet.
+ *
+ * Copyright (c) 2015 Intel Corporation.
+ * All rights reserved.
+@@ -21,8 +21,9 @@
+
+ #define SURFACE_PRO3_BUTTON_HID "MSHW0028"
+ #define SURFACE_PRO4_BUTTON_HID "MSHW0040"
++#define SURFACE_PRO2017_BUTTON_HID "MSHW0040"
+ #define SURFACE_BUTTON_OBJ_NAME "VGBI"
+-#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3/4 Buttons"
++#define SURFACE_BUTTON_DEVICE_NAME "Surface Pro 3/4/2017 Buttons"
+
+ #define SURFACE_BUTTON_NOTIFY_TABLET_MODE 0xc8
+
+@@ -59,6 +60,7 @@ MODULE_LICENSE("GPL v2");
+ static const struct acpi_device_id surface_button_device_ids[] = {
+ {SURFACE_PRO3_BUTTON_HID, 0},
+ {SURFACE_PRO4_BUTTON_HID, 0},
++ {SURFACE_PRO2017_BUTTON_HID, 0},
+ {"", 0},
+ };
+ MODULE_DEVICE_TABLE(acpi, surface_button_device_ids);
diff --git a/0003-wifi.patch b/0003-wifi.patch
index e81ecef3727..587d799ea14 100644
--- a/0003-wifi.patch
+++ b/0003-wifi.patch
@@ -1,60 +1,98 @@
-diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
-index 025bc06a..07bdf271 100644
---- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
-+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
-@@ -418,6 +418,9 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
-
- ps_mode = enabled;
-
-+ mwifiex_dbg(priv->adapter, ERROR, "overriding ps_mode to false\n");
-+ ps_mode = 0;
-+
- return mwifiex_drv_set_power(priv, &ps_mode);
- }
-
-diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
-index 83916c14..b47def60 100644
---- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
-+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
-@@ -2308,7 +2308,7 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
- if (ret)
- return -1;
-
-- if (priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
-+ if (0 && priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
- /* Enable IEEE PS by default */
- priv->adapter->ps_mode = MWIFIEX_802_11_POWER_MODE_PSP;
- ret = mwifiex_send_cmd(priv,
-@@ -2364,7 +2364,7 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
- if (ret)
- return -1;
-
-- if (!disable_auto_ds && first_sta &&
-+ if (0 && !disable_auto_ds && first_sta &&
- priv->bss_type != MWIFIEX_BSS_TYPE_UAP) {
- /* Enable auto deep sleep */
- auto_ds.auto_ds = DEEP_SLEEP_ON;
+diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
+index 05dca3e..59c2fcc 100644
+--- a/drivers/net/usb/cdc_ether.c
++++ b/drivers/net/usb/cdc_ether.c
+@@ -807,13 +807,6 @@ static const struct usb_device_id products[] = {
+ .driver_info = 0,
+ },
+
+-/* Microsoft Surface 3 dock (based on Realtek RTL8153) */
+-{
+- USB_DEVICE_AND_INTERFACE_INFO(MICROSOFT_VENDOR_ID, 0x07c6, USB_CLASS_COMM,
+- USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
+- .driver_info = 0,
+-},
+-
+ /* TP-LINK UE300 USB 3.0 Ethernet Adapters (based on Realtek RTL8153) */
+ {
+ USB_DEVICE_AND_INTERFACE_INFO(TPLINK_VENDOR_ID, 0x0601, USB_CLASS_COMM,
+diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
+index d51d9ab..b94ebe9 100644
+--- a/drivers/net/usb/r8152.c
++++ b/drivers/net/usb/r8152.c
+@@ -5310,7 +5310,6 @@ static const struct usb_device_id rtl8152_table[] = {
+ {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8152)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_REALTEK, 0x8153)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07ab)},
+- {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x07c6)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3062)},
diff --git a/drivers/net/wireless/marvell/mwifiex/11n_aggr.c b/drivers/net/wireless/marvell/mwifiex/11n_aggr.c
-index a75013ac..448ba72d 100644
+index 042a1d0..fc9041f 100644
--- a/drivers/net/wireless/marvell/mwifiex/11n_aggr.c
+++ b/drivers/net/wireless/marvell/mwifiex/11n_aggr.c
@@ -200,8 +200,7 @@ mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv,
-
+
do {
/* Check if AMSDU can accommodate this MSDU */
- if ((skb_aggr->len + skb_src->len + LLC_SNAP_LEN) >
- adapter->tx_buf_size)
+ if (skb_tailroom(skb_aggr) < (skb_src->len + LLC_SNAP_LEN))
break;
-
+
skb_src = skb_dequeue(&pra_list->skb_head);
+diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+index 32c5074..33a7325 100644
+--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
++++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+@@ -2503,6 +2503,7 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
+ struct ieee80211_channel *chan;
+ struct ieee_types_header *ie;
+ struct mwifiex_user_scan_cfg *user_scan_cfg;
++ u8 mac_addr[ETH_ALEN];
+
+ mwifiex_dbg(priv->adapter, CMD,
+ "info: received scan request on %s\n", dev->name);
+@@ -2529,15 +2530,10 @@ mwifiex_cfg80211_scan(struct wiphy *wiphy,
+ priv->scan_request = request;
+
+ if (request->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) {
+- ether_addr_copy(priv->random_mac, request->mac_addr);
+- for (i = 0; i < ETH_ALEN; i++) {
+- priv->random_mac[i] &= request->mac_addr_mask[i];
+- priv->random_mac[i] |= get_random_int() &
+- ~(request->mac_addr_mask[i]);
+- }
+- ether_addr_copy(user_scan_cfg->random_mac, priv->random_mac);
+- } else {
+- eth_zero_addr(priv->random_mac);
++ get_random_mask_addr(mac_addr, request->mac_addr,
++ request->mac_addr_mask);
++ ether_addr_copy(request->mac_addr, mac_addr);
++ ether_addr_copy(user_scan_cfg->random_mac, mac_addr);
+ }
+
+ user_scan_cfg->num_ssids = request->n_ssids;
+diff --git a/drivers/net/wireless/marvell/mwifiex/main.h b/drivers/net/wireless/marvell/mwifiex/main.h
+index a76bd79..a34de85 100644
+--- a/drivers/net/wireless/marvell/mwifiex/main.h
++++ b/drivers/net/wireless/marvell/mwifiex/main.h
+@@ -680,7 +680,6 @@ struct mwifiex_private {
+ struct mwifiex_user_scan_chan hidden_chan[MWIFIEX_USER_SCAN_CHAN_MAX];
+ u8 assoc_resp_ht_param;
+ bool ht_param_present;
+- u8 random_mac[ETH_ALEN];
+ };
+
+
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
-index ac62bce5..293607e6 100644
+index cd31494..3f2a881 100644
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
-@@ -1716,6 +1716,16 @@ static int mwifiex_pcie_process_cmd_complete(struct mwifiex_adapter *adapter)
+@@ -1729,6 +1729,16 @@ static int mwifiex_pcie_process_cmd_complete(struct mwifiex_adapter *adapter)
}
-
+
rx_len = get_unaligned_le16(skb->data);
+
+
@@ -68,4 +106,168 @@ index ac62bce5..293607e6 100644
+
skb_put(skb, MWIFIEX_UPLD_SIZE - skb->len);
skb_trim(skb, rx_len);
-
+
+diff --git a/drivers/net/wireless/marvell/mwifiex/scan.c b/drivers/net/wireless/marvell/mwifiex/scan.c
+index c9d41ed..cddf412 100644
+--- a/drivers/net/wireless/marvell/mwifiex/scan.c
++++ b/drivers/net/wireless/marvell/mwifiex/scan.c
+@@ -1948,7 +1948,8 @@ mwifiex_active_scan_req_for_passive_chan(struct mwifiex_private *priv)
+
+ adapter->active_scan_triggered = true;
+ if (priv->scan_request->flags & NL80211_SCAN_FLAG_RANDOM_ADDR)
+- ether_addr_copy(user_scan_cfg->random_mac, priv->random_mac);
++ ether_addr_copy(user_scan_cfg->random_mac,
++ priv->scan_request->mac_addr);
+ user_scan_cfg->num_ssids = priv->scan_request->n_ssids;
+ user_scan_cfg->ssid_list = priv->scan_request->ssids;
+
+diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+index fb09014..db03c6b 100644
+--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
++++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+@@ -2336,8 +2336,8 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
+ return -1;
+ }
+
+- mwifiex_send_cmd(priv, HostCmd_CMD_CHAN_REGION_CFG,
+- HostCmd_ACT_GEN_GET, 0, NULL, true);
++ //mwifiex_send_cmd(priv, HostCmd_CMD_CHAN_REGION_CFG,
++ // HostCmd_ACT_GEN_GET, 0, NULL, true);
+ }
+
+ /* get tx rate */
+diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
+index 0fba5b1..4e1687f 100644
+--- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
++++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
+@@ -48,9 +48,14 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
+ struct host_cmd_ds_802_11_ps_mode_enh *pm;
+ unsigned long flags;
+
+- mwifiex_dbg(adapter, ERROR,
+- "CMD_RESP: cmd %#x error, result=%#x\n",
+- resp->command, resp->result);
++ if (resp->command == 271 && resp->result == 2){
++ // ignore this command as the firmware does not support it
++ }
++ else {
++ mwifiex_dbg(adapter, ERROR,
++ "CMD_RESP: cmd %#x error, result=%#x\n",
++ resp->command, resp->result);
++ }
+
+ if (adapter->curr_cmd->wait_q_enabled)
+ adapter->cmd_wait_q.status = -1;
+diff --git a/net/wireless/sme.c b/net/wireless/sme.c
+index 3dd05a0..ab32ef1 100644
+--- a/net/wireless/sme.c
++++ b/net/wireless/sme.c
+@@ -690,6 +690,11 @@ void __cfg80211_connect_result(struct net_device *dev,
+ return;
+ }
+
++ if (WARN_ON(!wdev->ssid_len)) {
++ cfg80211_put_bss(wdev->wiphy, cr->bss);
++ return;
++ }
++
+ nl80211_send_connect_result(wiphy_to_rdev(wdev->wiphy), dev, cr,
+ GFP_KERNEL);
+
+@@ -1062,7 +1067,7 @@ int cfg80211_connect(struct cfg80211_registered_device *rdev,
+ /*
+ * If we have an ssid_len, we're trying to connect or are
+ * already connected, so reject a new SSID unless it's the
+- * same (which is the case for re-association.)
++ * same (which is the case for Re-Association.
+ */
+ if (wdev->ssid_len &&
+ (wdev->ssid_len != connect->ssid_len ||
+diff --git b/net/wireless/sme.c.rej b/net/wireless/sme.c.rej
+new file mode 100644
+index 0000000..e78d68c
+--- /dev/null
++++ b/net/wireless/sme.c.rej
+@@ -0,0 +1,82 @@
++--- net/wireless/sme.c
+++++ net/wireless/sme.c
++@@ -522,11 +522,6 @@ static int cfg80211_sme_connect(struct wireless_dev *wdev,
++ return -EOPNOTSUPP;
++
++ if (wdev->current_bss) {
++- if (!prev_bssid)
++- return -EALREADY;
++- if (prev_bssid &&
++- !ether_addr_equal(prev_bssid, wdev->current_bss->pub.bssid))
++- return -ENOTCONN;
++ cfg80211_unhold_bss(wdev->current_bss);
++ cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub);
++ wdev->current_bss = NULL;
++@@ -1063,11 +1058,35 @@ int cfg80211_connect(struct cfg80211_registered_device *rdev,
++
++ ASSERT_WDEV_LOCK(wdev);
++
++- if (WARN_ON(wdev->connect_keys)) {
++- kzfree(wdev->connect_keys);
++- wdev->connect_keys = NULL;
+++ /*
+++ * If we have an ssid_len, we're trying to connect or are
+++ * already connected, so reject a new SSID unless it's the
+++ * same (which is the case for re-association.)
+++ */
+++ if (wdev->ssid_len &&
+++ (wdev->ssid_len != connect->ssid_len ||
+++ memcmp(wdev->ssid, connect->ssid, wdev->ssid_len)))
+++ return -EALREADY;
+++
+++ /*
+++ * If connected, reject (re-)association unless prev_bssid
+++ * matches the current BSSID.
+++ */
+++ if (wdev->current_bss) {
+++ if (!prev_bssid)
+++ return -EALREADY;
+++ if (!ether_addr_equal(prev_bssid, wdev->current_bss->pub.bssid))
+++ return -ENOTCONN;
++ }
++
+++ /*
+++ * Reject if we're in the process of connecting with WEP,
+++ * this case isn't very interesting and trying to handle
+++ * it would make the code much more complex.
+++ */
+++ if (wdev->connect_keys)
+++ return -EINPROGRESS;
+++
++ cfg80211_oper_and_ht_capa(&connect->ht_capa_mask,
++ rdev->wiphy.ht_capa_mod_mask);
++
++@@ -1118,7 +1137,12 @@ int cfg80211_connect(struct cfg80211_registered_device *rdev,
++
++ if (err) {
++ wdev->connect_keys = NULL;
++- wdev->ssid_len = 0;
+++ /*
+++ * This could be reassoc getting refused, don't clear
+++ * ssid_len in that case.
+++ */
+++ if (!wdev->current_bss)
+++ wdev->ssid_len = 0;
++ return err;
++ }
++
++@@ -1145,6 +1169,14 @@ int cfg80211_disconnect(struct cfg80211_registered_device *rdev,
++ else if (wdev->ssid_len)
++ err = rdev_disconnect(rdev, dev, reason);
++
+++ /*
+++ * Clear ssid_len unless we actually were fully connected,
+++ * in which case cfg80211_disconnected() will take care of
+++ * this later.
+++ */
+++ if (!wdev->current_bss)
+++ wdev->ssid_len = 0;
+++
++ return err;
++ }
++
diff --git a/0004-sd.patch b/0004-usb.patch
index 96028febda4..90f3002c2dd 100644
--- a/0004-sd.patch
+++ b/0004-usb.patch
@@ -1,8 +1,8 @@
-diff --git a/drivers//usb/core/hub.c b/drivers//usb/core/hub.c
-index 0881a3e8..e6f05033 100644
---- a/kernel/drivers/usb/core/hub.c
-+++ b/drivers//usb/core/hub.c
-@@ -4049,7 +4049,8 @@ void usb_enable_lpm(struct usb_device *udev)
+diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
+index 41eaf0b52..ba95f10c6 100644
+--- a/drivers/usb/core/hub.c
++++ b/drivers/usb/core/hub.c
+@@ -4044,7 +4044,8 @@ void usb_enable_lpm(struct usb_device *udev)
if (!udev || !udev->parent ||
udev->speed < USB_SPEED_SUPER ||
!udev->lpm_capable ||
@@ -10,5 +10,5 @@ index 0881a3e8..e6f05033 100644
+ udev->state < USB_STATE_DEFAULT ||
+ !udev->bos || !udev->bos->ss_cap)
return;
-
+
udev->lpm_disable_count--;
diff --git a/0005-camera.patch b/0005-camera.patch
new file mode 100644
index 00000000000..87d72a2a83e
--- /dev/null
+++ b/0005-camera.patch
@@ -0,0 +1,145 @@
+diff --git a/drivers/staging/media/atomisp/i2c/ov5693/Kconfig b/drivers/staging/media/atomisp/i2c/ov5693/Kconfig
+index 9fb1bff..3954b8c 100644
+--- a/drivers/staging/media/atomisp/i2c/ov5693/Kconfig
++++ b/drivers/staging/media/atomisp/i2c/ov5693/Kconfig
+@@ -1,6 +1,6 @@
+ config VIDEO_OV5693
+ tristate "Omnivision ov5693 sensor support"
+- depends on I2C && VIDEO_V4L2
++ depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER
+ ---help---
+ This is a Video4Linux2 sensor-level driver for the Micron
+ ov5693 5 Mpixel camera.
+diff --git a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c
+index 1236425..37986f5 100644
+--- a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c
++++ b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.c
+@@ -1332,7 +1332,7 @@ static int power_ctrl(struct v4l2_subdev *sd, bool flag)
+
+ static int gpio_ctrl(struct v4l2_subdev *sd, bool flag)
+ {
+- int ret;
++ int ret = 0;
+ struct ov5693_device *dev = to_ov5693_sensor(sd);
+
+ if (!dev || !dev->platform_data)
+@@ -1342,7 +1342,8 @@ static int gpio_ctrl(struct v4l2_subdev *sd, bool flag)
+ if (dev->platform_data->gpio_ctrl)
+ return dev->platform_data->gpio_ctrl(sd, flag);
+
+- ret = dev->platform_data->gpio0_ctrl(sd, flag);
++ if (dev->platform_data->gpio0_ctrl)
++ ret = dev->platform_data->gpio0_ctrl(sd, flag);
+
+ return ret;
+ }
+@@ -1709,7 +1710,7 @@ static int ov5693_detect(struct i2c_client *client)
+ OV5693_SC_CMMN_CHIP_ID_L, &low);
+ id = ((((u16) high) << 8) | (u16) low);
+
+- if (id != OV5693_ID) {
++ if (id != OV5690_ID && id != OV5693_ID) {
+ dev_err(&client->dev, "sensor ID error 0x%x\n", id);
+ return -ENODEV;
+ }
+diff --git a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
+index 8c2e679..a657f94 100644
+--- a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
++++ b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
+@@ -33,7 +33,7 @@
+ #include <linux/v4l2-mediabus.h>
+ #include <media/media-entity.h>
+
+-#include "../../include/linux/atomisp_platform.h"
++#include "../../include/linux/atomisp_gmin_platform.h"
+
+ #define OV5693_NAME "ov5693"
+
+@@ -78,7 +78,8 @@
+ * bits 7-0: min f-number denominator
+ */
+ #define OV5693_F_NUMBER_RANGE 0x180a180a
+-#define OV5693_ID 0x5690
++#define OV5690_ID 0x5690
++#define OV5693_ID 0x5693
+
+ #define OV5693_FINE_INTG_TIME_MIN 0
+ #define OV5693_FINE_INTG_TIME_MAX_MARGIN 0
+diff --git a/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c b/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
+index edaae93..ca59c4f 100644
+--- a/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
++++ b/drivers/staging/media/atomisp/platform/intel-mid/atomisp_gmin_platform.c
+@@ -296,11 +296,13 @@ static const struct gmin_cfg_var ecs7_vars[] = {
+ {"INT33BE:00_CsiFmt", "13"},
+ {"INT33BE:00_CsiBayer", "2"},
+ {"INT33BE:00_CamClk", "0"},
++ {"INT33BE:00_ClkSrc", "1"},
+ {"INT33F0:00_CsiPort", "0"},
+ {"INT33F0:00_CsiLanes", "1"},
+ {"INT33F0:00_CsiFmt", "13"},
+ {"INT33F0:00_CsiBayer", "0"},
+ {"INT33F0:00_CamClk", "1"},
++ {"INT33BE:00_I2CAddr", "-1"},
+ {"gmin_V2P8GPIO", "402"},
+ {},
+ };
+@@ -325,6 +327,8 @@ static const struct {
+ { "MRD7", mrd7_vars },
+ { "ST70408", ecs7_vars },
+ { "VTA0803", i8880_vars },
++ { "Surface Book" , ecs7_vars } ,
++ { "Surface Pro 4" , ecs7_vars } ,
+ };
+
+
+diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
+index 6d22b22..b72b782 100644
+--- a/drivers/media/usb/uvc/uvc_driver.c
++++ b/drivers/media/usb/uvc/uvc_driver.c
+@@ -2277,6 +2277,46 @@ MODULE_PARM_DESC(timeout, "Streaming control requests timeout");
+ * though they are compliant.
+ */
+ static const struct usb_device_id uvc_ids[] = {
++ /* Microsoft Surface Pro 3 Front */
++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
++ | USB_DEVICE_ID_MATCH_INT_INFO,
++ .idVendor = 0x045e,
++ .idProduct = 0x07be,
++ .bInterfaceClass = USB_CLASS_VIDEO,
++ .bInterfaceSubClass = 1,
++ .bInterfaceProtocol = 1 },
++ /* Microsoft Surface Pro 3 Rear */
++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
++ | USB_DEVICE_ID_MATCH_INT_INFO,
++ .idVendor = 0x045e,
++ .idProduct = 0x07bf,
++ .bInterfaceClass = USB_CLASS_VIDEO,
++ .bInterfaceSubClass = 1,
++ .bInterfaceProtocol = 1 },
++ /* Microsoft Surface Pro 4 Cam */
++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
++ | USB_DEVICE_ID_MATCH_INT_INFO,
++ .idVendor = 0x045e,
++ .idProduct = 0x090c,
++ .bInterfaceClass = USB_CLASS_VIDEO,
++ .bInterfaceSubClass = 1,
++ .bInterfaceProtocol = 1 },
++ /* Microsoft Surface Book Cam 1 */
++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
++ | USB_DEVICE_ID_MATCH_INT_INFO,
++ .idVendor = 0x045e,
++ .idProduct = 0x090b,
++ .bInterfaceClass = USB_CLASS_VIDEO,
++ .bInterfaceSubClass = 1,
++ .bInterfaceProtocol = 1 },
++ /* Microsoft Surface Book Cam 2 */
++ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
++ | USB_DEVICE_ID_MATCH_INT_INFO,
++ .idVendor = 0x045e,
++ .idProduct = 0x091a,
++ .bInterfaceClass = USB_CLASS_VIDEO,
++ .bInterfaceSubClass = 1,
++ .bInterfaceProtocol = 1 },
+ /* LogiLink Wireless Webcam */
+ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE
+ | USB_DEVICE_ID_MATCH_INT_INFO,
diff --git a/0005-hid.patch b/0005-hid.patch
deleted file mode 100644
index 89187711288..00000000000
--- a/0005-hid.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-diff --git a/drivers//hid/hid-ids.h b/drivers//hid/hid-ids.h
-index 4f9a3938..07a0be0d 100644
---- a/drivers//hid/hid-ids.h
-+++ b/drivers//hid/hid-ids.h
-@@ -741,11 +741,19 @@
- #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_3KV1 0x0732
- #define USB_DEVICE_ID_MS_DIGITAL_MEDIA_600 0x0750
- #define USB_DEVICE_ID_MS_COMFORT_MOUSE_4500 0x076c
--#define USB_DEVICE_ID_MS_COMFORT_KEYBOARD 0x00e3
--#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799
--#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7
--#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9
--#define USB_DEVICE_ID_MS_POWER_COVER 0x07da
-+#define USB_DEVICE_ID_MS_COMFORT_KEYBOARD 0x00e3
-+#define USB_DEVICE_ID_MS_SURFACE_PRO_2 0x0799
-+#define USB_DEVICE_ID_MS_TOUCH_COVER_2 0x07a7
-+#define USB_DEVICE_ID_MS_TYPE_COVER_2 0x07a9
-+#define USB_DEVICE_ID_MS_TYPE_COVER_3 0x07de
-+#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3 0x07dc
-+#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_1 0x07de
-+#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2 0x07e2
-+#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP 0x07dd
-+#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 0x07e8
-+#define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1 0x07e4
-+#define USB_DEVICE_ID_MS_SURFACE_BOOK 0x07cd
-+#define USB_DEVICE_ID_MS_POWER_COVER 0x07da
-
- #define USB_VENDOR_ID_MOJO 0x8282
- #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201
-diff --git a/drivers//hid/hid-multitouch.c b/drivers//hid/hid-multitouch.c
-index 937a7084..6af8baf3 100644
---- a/drivers//hid/hid-multitouch.c
-+++ b/drivers//hid/hid-multitouch.c
-@@ -1454,6 +1454,47 @@ static const struct hid_device_id mt_devices[] = {
- HID_USB_DEVICE(USB_VENDOR_ID_LG,
- USB_DEVICE_ID_LG_MELFAS_MT) },
-
-+ /* Microsoft Touch Cover */
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TOUCH_COVER_2) },
-+
-+ /* Microsoft Type Cover */
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_2) },
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_3) },
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3) },
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_1) },
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2) },
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP) },
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_PRO_4) },
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1) },
-+
-+ /* Microsoft Surface Book */
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_SURFACE_BOOK) },
-+
-+ /* Microsoft Power Cover */
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_POWER_COVER) },
-+
- /* MosArt panels */
- { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
- MT_USB_DEVICE(USB_VENDOR_ID_ASUS,
-diff --git a/drivers//hid/usbhid/hid-quirks.c b/drivers//hid/usbhid/hid-quirks.c
-index a88e7c7b..1e1e3d97 100644
---- a/drivers//hid/usbhid/hid-quirks.c
-+++ b/drivers//hid/usbhid/hid-quirks.c
-@@ -106,8 +106,16 @@ static const struct hid_blacklist {
- { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C06A, HID_QUIRK_ALWAYS_POLL },
- { USB_VENDOR_ID_MGE, USB_DEVICE_ID_MGE_UPS, HID_QUIRK_NOGET },
- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_PRO_2, HID_QUIRK_NO_INIT_REPORTS },
-- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TOUCH_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_2, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_3, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_1, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_2, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_3_JP, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_BOOK, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_NEXIO, USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750, HID_QUIRK_NO_INIT_REPORTS },
-diff --git a/drivers//hid/hid-ids.h b/drivers//hid/hid-ids.h
-index 07a0be0d..a58844b7 100644
---- a/drivers//hid/hid-ids.h
-+++ b/drivers//hid/hid-ids.h
-@@ -753,6 +753,7 @@
- #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 0x07e8
- #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1 0x07e4
- #define USB_DEVICE_ID_MS_SURFACE_BOOK 0x07cd
-+#define USB_DEVICE_ID_MS_SURFACE_LAPTOP 0x07f8
- #define USB_DEVICE_ID_MS_POWER_COVER 0x07da
-
- #define USB_VENDOR_ID_MOJO 0x8282
-diff --git a/drivers//hid/hid-multitouch.c b/drivers//hid/hid-multitouch.c
-index 6af8baf3..09f1cd60 100644
---- a/drivers//hid/hid-multitouch.c
-+++ b/drivers//hid/hid-multitouch.c
-@@ -1490,6 +1490,11 @@ static const struct hid_device_id mt_devices[] = {
- MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
- USB_DEVICE_ID_MS_SURFACE_BOOK) },
-
-+ /* Microsoft Surface Laptop */
-+ { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
-+ MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-+ USB_DEVICE_ID_MS_SURFACE_LAPTOP) },
-+
- /* Microsoft Power Cover */
- { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
- MT_USB_DEVICE(USB_VENDOR_ID_MICROSOFT,
-diff --git a/drivers//hid/usbhid/hid-quirks.c b/drivers//hid/usbhid/hid-quirks.c
-index 1e1e3d97..925ec6a4 100644
---- a/drivers//hid/usbhid/hid-quirks.c
-+++ b/drivers//hid/usbhid/hid-quirks.c
-@@ -116,6 +116,7 @@ static const struct hid_blacklist {
- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_BOOK, HID_QUIRK_NO_INIT_REPORTS },
-+ { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE_LAPTOP, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_MSI, USB_DEVICE_ID_MSI_GT683R_LED_PANEL, HID_QUIRK_NO_INIT_REPORTS },
- { USB_VENDOR_ID_NEXIO, USB_DEVICE_ID_NEXIO_MULTITOUCH_PTI0750, HID_QUIRK_NO_INIT_REPORTS },
-diff --git a/drivers//hid/hid-ids.h b/drivers//hid/hid-ids.h
-index a58844b7..2cecb040 100644
---- a/drivers//hid/hid-ids.h
-+++ b/drivers//hid/hid-ids.h
-@@ -753,7 +753,7 @@
- #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4 0x07e8
- #define USB_DEVICE_ID_MS_TYPE_COVER_PRO_4_1 0x07e4
- #define USB_DEVICE_ID_MS_SURFACE_BOOK 0x07cd
--#define USB_DEVICE_ID_MS_SURFACE_LAPTOP 0x07f8
-+#define USB_DEVICE_ID_MS_SURFACE_LAPTOP 0xf001
- #define USB_DEVICE_ID_MS_POWER_COVER 0x07da
-
- #define USB_VENDOR_ID_MOJO 0x8282
diff --git a/60-linux.hook b/60-linux.hook
new file mode 100644
index 00000000000..b33873c854f
--- /dev/null
+++ b/60-linux.hook
@@ -0,0 +1,12 @@
+[Trigger]
+Type = File
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = usr/lib/modules/%KERNVER%/*
+Target = usr/lib/modules/%EXTRAMODULES%/*
+
+[Action]
+Description = Updating %PKGBASE% module dependencies...
+When = PostTransaction
+Exec = /usr/bin/depmod %KERNVER%
diff --git a/90-linux.hook b/90-linux.hook
index 9851151995b..be0d886539f 100644
--- a/90-linux.hook
+++ b/90-linux.hook
@@ -6,6 +6,6 @@ Target = boot/vmlinuz-%PKGBASE%
Target = usr/lib/initcpio/*
[Action]
-Description = Updating %PKGBASE% initcpios
+Description = Updating %PKGBASE% initcpios...
When = PostTransaction
Exec = /usr/bin/mkinitcpio -p %PKGBASE%
diff --git a/99-ipts.rules b/99-ipts.rules
index 4f7d41a224e..eb3b4869a94 100644
--- a/99-ipts.rules
+++ b/99-ipts.rules
@@ -1,17 +1,23 @@
# IPTS Touchscreen (SP4)
-SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:006A SingleTouch", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
+SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:006A Touchscreen", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
# IPTS Pen (SP4)
SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:006A Pen", SYMLINK+="input/pen"
+# IPTS Touchscreen (SP2017)
+SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:001F Touchscreen", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
+
+# IPTS Pen (SP2017)
+SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:001F Pen", SYMLINK+="input/pen"
+
# IPTS Touchscreen (SB)
-SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:005E SingleTouch", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
+SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:005E Touchscreen", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
# IPTS Pen (SB)
SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:005E Pen", SYMLINK+="input/pen"
-#
-# IPTS Touchscreen (SP2017)
-SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:001F SingleTouch", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
-# IPTS Pen (SP2017)
-SUBSYSTEMS=="input", ATTRS{name}=="ipts 1B96:001F Pen", SYMLINK+="input/pen"
+# IPTS Touchscreen (SB2)
+SUBSYSTEMS=="input", ATTRS{name}=="ipts 045E:0020 Touchscreen", ENV{ID_INPUT_TOUCHSCREEN}="1", SYMLINK+="input/touchscreen"
+
+# IPTS Pen (SB2)
+SUBSYSTEMS=="input", ATTRS{name}=="ipts 045E:0020 Pen", SYMLINK+="input/pen"
diff --git a/PKGBUILD b/PKGBUILD
index 4405982115d..9e0997578af 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,93 +3,73 @@
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Maintainer: Thomas Baechler <thomas@archlinux.org>
-#pkgbase=linux # Build stock -ARCH kernel
-pkgbase=linux-surface4 # Build kernel with a different name
-_srcname=linux-4.12
-pkgver=4.12.8
-pkgrel=2
+#pkgbase=linux # Build stock -ARCH kernel
+pkgbase=linux-surface4 # Build kernel with a different name
+_srcname=linux-4.14.2
+pkgver=4.14.2
+pkgrel=1
arch=('x86_64')
url="https://www.kernel.org/"
license=('GPL2')
-makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'libelf')
+makedepends=('xmlto' 'kmod' 'inetutils' 'bc' 'libelf')
options=('!strip')
-source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
- "https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.sign"
- "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz"
- "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.sign"
- 'bonding-require-speed-duplex-only-for-802.3ad-alb-an.patch'
- 'bonding-ratelimit-failed-speed-duplex-update-warning.patch'
- 'mm-Revert-x86_64-and-arm64-ELF_ET_DYN_BASE-base.patch'
- # surface patches
- '0002-ipts.patch'
- '0003-wifi.patch'
- '0004-sd.patch'
- '0005-hid.patch'
- # touchscreen udev rules
- '99-ipts.rules'
- # IPTS firmware config.
- 'ipts_fw_config.bin'
- # the main kernel config files
- 'config.x86_64'
- # pacman hook for initramfs regeneration
- '90-linux.hook'
- # standard config files for mkinitcpio ramdisk
- 'linux.preset')
-
-sha256sums=('a45c3becd4d08ce411c14628a949d08e2433d8cdeca92036c7013980e93858ab'
- 'SKIP'
- '32b860911a3bafd5cd5bc813a427c90fad6eafdf607fa64e1b763b16ab605636'
- 'SKIP'
- '48e0505438bb4ccc7a0e050a896122b490e8f1b1446aa3833841a9d4d7853d68'
- 'fc606711a922638d5cc4358f47f69f554d9e6eab1cec91f0b49f00911f399722'
- 'b830ce777543c0edd20a77d70f204c095f2429bb37151cd4a8c9dfae2af8d51a'
- 'cbd508d55e446ad5e00a7534490a8b6faa8987dc22dab139fa8ac42b90735cf3'
- 'd748010776aa4016e920b46f6ef6847e52d4214e9b6afe752c340c5a9644870f'
- '311857771c63ed5145effedae55830b3c7fdc8865e145e94d54b9aa2e094779e'
- '065fa8cb24062afee3c0aa8140e65560c2ebfb08f714222a3e0b3b12e764097b'
- '59c8bb30e749a1e05cbb3a5ca7bf995afe8a957961d635356c85875136812922'
- 'eed5c04a5f8841d52292fbb321990c79316ce98cd21324c71226cdc95cc20d09'
- '90fffe84ea442756fb168d22d9b6b9f2d8d7bc631b81188836caaa33a9f92554'
- '834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0'
- 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65')
+source=(
+ "https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
+ "https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.sign"
+ #"https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz"
+ #"https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.sign"
+ 'config' # the main kernel config file
+ '60-linux.hook' # pacman hook for depmod
+ '90-linux.hook' # pacman hook for initramfs regeneration
+ 'linux.preset' # standard config files for mkinitcpio ramdisk
+ '0001-ipts.patch'
+ '0002-hid.patch'
+ '0003-wifi.patch'
+ '0004-usb.patch'
+ '0005-camera.patch'
+ '99-ipts.rules'
+)
validpgpkeys=(
- 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
- '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
- )
+ 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
+ '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
+)
+sha256sums=('e92690620a4e4811c6b37b2f1b6c9b32a1dde40aa12be6527c8dc215fb27464c'
+ 'SKIP'
+ 'efd4cd1ec319e9eed73f67b66de5a761a8365b9b227479f073f9115550cb157c'
+ 'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
+ '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
+ 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
+ '260859d91e9c77c8231d9ba9f86ab1c970be21da2134efd6b4df139321b80b1d'
+ 'c57e13c8a15d06e4e04cda4ae95c7920cbd8b8b40a17252f2413c8b57da952f3'
+ '8d724a67ebb52b5130c855907c17a050a3224ec2fdc11f1544723b5025a36c17'
+ '835ff847328db11f31d2eb954f45a6067527626dbf984793c44982ef5f60863e'
+ '985141fe1d694b95bc78a4b0f3dafcc2cbddabcf2c44eda8feb92847bf9f9c68'
+ '82d0fa48947aff93cbbc9a0f0f3020bf95e860d604549b20f7ef8e1634798bd8')
_kernelname=${pkgbase#linux}
prepare() {
- cd "${srcdir}/${_srcname}"
+ cd ${_srcname}
# add upstream patch
- patch -p1 -i "${srcdir}/patch-${pkgver}"
-
- # surface Patches
- patch -Np1 -i "${srcdir}/0002-ipts.patch"
- patch -Np1 -i "${srcdir}/0003-wifi.patch"
- patch -Np1 -i "${srcdir}/0004-sd.patch"
- patch -Np1 -i "${srcdir}/0005-hid.patch"
-
- mkdir -p "firmware/intel/ipts"
- cp "${srcdir}/ipts_fw_config.bin" "firmware/intel/ipts/"
+ #patch -p1 -i ../patch-${pkgver}
# security patches
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
- # https://bugzilla.kernel.org/show_bug.cgi?id=196547
- patch -Np1 -i ../bonding-ratelimit-failed-speed-duplex-update-warning.patch
- patch -Np1 -i ../bonding-require-speed-duplex-only-for-802.3ad-alb-an.patch
+ # https://bugs.archlinux.org/task/56207
+ # patch -Np1 -i ../0001-platform-x86-hp-wmi-Fix-tablet-mode-detection-for-co.patch
- # https://github.com/google/sanitizers/issues/837
- # https://patchwork.kernel.org/patch/9886105/
- patch -Np1 -i ../mm-Revert-x86_64-and-arm64-ELF_ET_DYN_BASE-base.patch
-
-
+ # surface Patches
+ patch -Np1 -i "${srcdir}/0001-ipts.patch"
+ patch -Np1 -i "${srcdir}/0002-hid.patch"
+ patch -Np1 -i "${srcdir}/0003-wifi.patch"
+ patch -Np1 -i "${srcdir}/0004-usb.patch"
+ patch -Np1 -i "${srcdir}/0005-camera.patch"
- cat "${srcdir}/config.${CARCH}" > ./.config
+ cp -Tf ../config .config
if [ "${_kernelname}" != "" ]; then
sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
@@ -118,7 +98,7 @@ prepare() {
}
build() {
- cd "${srcdir}/${_srcname}"
+ cd ${_srcname}
make ${MAKEFLAGS} LOCALVERSION= bzImage modules
}
@@ -131,196 +111,144 @@ _package() {
backup=("etc/mkinitcpio.d/${pkgbase}.preset")
install=linux.install
- cd "${srcdir}/${_srcname}"
-
- KARCH=x86
+ cd ${_srcname}
# get kernel version
_kernver="$(make LOCALVERSION= kernelrelease)"
_basekernel=${_kernver%%-*}
_basekernel=${_basekernel%.*}
- mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot}
+ mkdir -p "${pkgdir}"/{boot,lib/{modules,firmware},usr}
make LOCALVERSION= INSTALL_MOD_PATH="${pkgdir}" modules_install
- cp arch/$KARCH/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
-
- # set correct depmod command for install
- sed -e "s|%PKGBASE%|${pkgbase}|g;s|%KERNVER%|${_kernver}|g" \
- "${startdir}/${install}" > "${startdir}/${install}.pkg"
- true && install=${install}.pkg
+ cp arch/x86/boot/bzImage "${pkgdir}/boot/vmlinuz-${pkgbase}"
- # install mkinitcpio preset file for kernel
- sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux.preset" |
- install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
+ # make room for external modules
+ local _extramodules="extramodules-${_basekernel}${_kernelname:--ARCH}"
+ ln -s "../${_extramodules}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
- # install pacman hook for initramfs regeneration
- sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/90-linux.hook" |
- install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
+ # add real version for building modules and running depmod from hook
+ echo "${_kernver}" |
+ install -Dm644 /dev/stdin "${pkgdir}/lib/modules/${_extramodules}/version"
# remove build and source links
- rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
+ rm "${pkgdir}"/lib/modules/${_kernver}/{source,build}
+
# remove the firmware
- rm -rf "${pkgdir}/lib/firmware"
- # make room for external modules
- ln -s "../extramodules-${_basekernel}${_kernelname:--ARCH}" "${pkgdir}/lib/modules/${_kernver}/extramodules"
- # add real version for building modules and running depmod from post_install/upgrade
- mkdir -p "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}"
- echo "${_kernver}" > "${pkgdir}/lib/modules/extramodules-${_basekernel}${_kernelname:--ARCH}/version"
+ rm -r "${pkgdir}/lib/firmware"
- # Now we call depmod...
+ # now we call depmod...
depmod -b "${pkgdir}" -F System.map "${_kernver}"
- # move module tree /lib -> /usr/lib
- mkdir -p "${pkgdir}/usr"
- mv "${pkgdir}/lib" "${pkgdir}/usr/"
-
# add vmlinux
- install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
+ install -Dt "${pkgdir}/lib/modules/${_kernver}/build" -m644 vmlinux
- # install surface touchscreen udev rules
- install -D -C -m644 "${srcdir}/99-ipts.rules" "${pkgdir}/usr/lib/udev/rules.d/99-ipts.rules"
-}
-
-_package-headers() {
- pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
+ # move module tree /lib -> /usr/lib
+ mv -t "${pkgdir}/usr" "${pkgdir}/lib"
- install -dm755 "${pkgdir}/usr/lib/modules/${_kernver}"
+ # sed expression for following substitutions
+ local _subst="
+ s|%PKGBASE%|${pkgbase}|g
+ s|%KERNVER%|${_kernver}|g
+ s|%EXTRAMODULES%|${_extramodules}|g
+ "
- cd "${srcdir}/${_srcname}"
- install -D -m644 Makefile \
- "${pkgdir}/usr/lib/modules/${_kernver}/build/Makefile"
- install -D -m644 kernel/Makefile \
- "${pkgdir}/usr/lib/modules/${_kernver}/build/kernel/Makefile"
- install -D -m644 .config \
- "${pkgdir}/usr/lib/modules/${_kernver}/build/.config"
+ # hack to allow specifying an initially nonexisting install file
+ sed "${_subst}" "${startdir}/${install}" > "${startdir}/${install}.pkg"
+ true && install=${install}.pkg
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
+ # install mkinitcpio preset file
+ sed "${_subst}" ../linux.preset |
+ install -Dm644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
- for i in acpi asm-generic config crypto drm generated keys linux math-emu \
- media net pcmcia rdma scsi soc sound trace uapi video xen; do
- cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
- done
+ # install pacman hooks
+ sed "${_subst}" ../60-linux.hook |
+ install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/60-${pkgbase}.hook"
+ sed "${_subst}" ../90-linux.hook |
+ install -Dm644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
- # copy arch includes for external modules
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86"
- cp -a arch/x86/include "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/x86/"
-
- # copy files necessary for later builds, like nvidia and vmware
- cp Module.symvers "${pkgdir}/usr/lib/modules/${_kernver}/build"
- cp -a scripts "${pkgdir}/usr/lib/modules/${_kernver}/build"
+ install -D -C -m644 "${srcdir}/99-ipts.rules" "${pkgdir}/usr/lib/udev/rules.d/99-ipts.rules"
- # fix permissions on scripts dir
- chmod og-w -R "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/.tmp_versions"
+}
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel"
+_package-headers() {
+ pkgdesc="Header files and scripts for building modules for ${pkgbase/linux/Linux} kernel"
- cp arch/${KARCH}/Makefile "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
+ cd ${_srcname}
+ local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
- if [ "${CARCH}" = "i686" ]; then
- cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/"
- fi
+ install -Dt "${_builddir}" -m644 Makefile .config Module.symvers
+ install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
- cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/lib/modules/${_kernver}/build/arch/${KARCH}/kernel/"
+ mkdir "${_builddir}/.tmp_versions"
- # add docbook makefile
- install -D -m644 Documentation/DocBook/Makefile \
- "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
+ cp -t "${_builddir}" -a include scripts
- # add dm headers
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
- cp drivers/md/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/md"
+ install -Dt "${_builddir}/arch/x86" -m644 arch/x86/Makefile
+ install -Dt "${_builddir}/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
- # add inotify.h
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux"
- cp include/linux/inotify.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/linux/"
+ cp -t "${_builddir}/arch/x86" -a arch/x86/include
- # add wireless headers
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
- cp net/mac80211/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/net/mac80211/"
+ install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h
+ install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h
- # add dvb headers for external modules
- # in reference to:
# http://bugs.archlinux.org/task/9912
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core"
- cp drivers/media/dvb-core/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-core/"
- # and...
- # http://bugs.archlinux.org/task/11194
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
- cp include/config/dvb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/include/config/dvb/"
-
- # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
- # in reference to:
+ install -Dt "${_builddir}/drivers/media/dvb-core" -m644 drivers/media/dvb-core/*.h
+
# http://bugs.archlinux.org/task/13146
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
- cp drivers/media/dvb-frontends/lgdt330x.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
- cp drivers/media/i2c/msp3400-driver.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/i2c/"
+ install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/lgdt330x.h
+ install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
- # add dvb headers
- # in reference to:
# http://bugs.archlinux.org/task/20402
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb"
- cp drivers/media/usb/dvb-usb/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/usb/dvb-usb/"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends"
- cp drivers/media/dvb-frontends/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/dvb-frontends/"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners"
- cp drivers/media/tuners/*.h "${pkgdir}/usr/lib/modules/${_kernver}/build/drivers/media/tuners/"
+ install -Dt "${_builddir}/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
+ install -Dt "${_builddir}/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
+ install -Dt "${_builddir}/drivers/media/tuners" -m644 drivers/media/tuners/*.h
# add xfs and shmem for aufs building
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
- # removed in 3.17 series
- # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
+ mkdir -p "${_builddir}"/{fs/xfs,mm}
# copy in Kconfig files
- for i in $(find . -name "Kconfig*"); do
- mkdir -p "${pkgdir}"/usr/lib/modules/${_kernver}/build/`echo ${i} | sed 's|/Kconfig.*||'`
- cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
- done
+ find . -name Kconfig\* -exec install -Dm644 {} "${_builddir}/{}" \;
# add objtool for external module building and enabled VALIDATION_STACK option
- if [ -f tools/objtool/objtool ]; then
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool"
- cp -a tools/objtool/objtool ${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool/
- fi
-
- chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
- find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
+ install -Dt "${_builddir}/tools/objtool" tools/objtool/objtool
- # strip scripts directory
- find "${pkgdir}/usr/lib/modules/${_kernver}/build/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do
- case "$(file -bi "${binary}")" in
- *application/x-sharedlib*) # Libraries (.so)
- /usr/bin/strip ${STRIP_SHARED} "${binary}";;
- *application/x-archive*) # Libraries (.a)
- /usr/bin/strip ${STRIP_STATIC} "${binary}";;
- *application/x-executable*) # Binaries
- /usr/bin/strip ${STRIP_BINARIES} "${binary}";;
- esac
+ # remove unneeded architectures
+ local _arch
+ for _arch in "${_builddir}"/arch/*/; do
+ [[ ${_arch} == */x86/ ]] && continue
+ rm -r "${_arch}"
done
- # remove unneeded architectures
- rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
+ # remove files already in linux-docs package
+ rm -r "${_builddir}/Documentation"
+
+ # Fix permissions
+ chmod -R u=rwX,go=rX "${_builddir}"
- # remove a files already in linux-docs package
- rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-01"
- rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-02"
- rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.select-break"
+ # strip scripts directory
+ local _binary _strip
+ while read -rd '' _binary; do
+ case "$(file -bi "${_binary}")" in
+ *application/x-sharedlib*) _strip="${STRIP_SHARED}" ;; # Libraries (.so)
+ *application/x-archive*) _strip="${STRIP_STATIC}" ;; # Libraries (.a)
+ *application/x-executable*) _strip="${STRIP_BINARIES}" ;; # Binaries
+ *) continue ;;
+ esac
+ /usr/bin/strip ${_strip} "${_binary}"
+ done < <(find "${_builddir}/scripts" -type f -perm -u+w -print0 2>/dev/null)
}
_package-docs() {
pkgdesc="Kernel hackers manual - HTML documentation that comes with the ${pkgbase/linux/Linux} kernel"
- cd "${srcdir}/${_srcname}"
+ cd ${_srcname}
+ local _builddir="${pkgdir}/usr/lib/modules/${_kernver}/build"
- mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build"
- cp -al Documentation "${pkgdir}/usr/lib/modules/${_kernver}/build"
- find "${pkgdir}" -type f -exec chmod 444 {} \;
- find "${pkgdir}" -type d -exec chmod 755 {} \;
+ mkdir -p "${_builddir}"
+ cp -t "${_builddir}" -a Documentation
- # remove a file already in linux package
- rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/DocBook/Makefile"
+ # Fix permissions
+ chmod -R u=rwX,go=rX "${_builddir}"
}
pkgname=("${pkgbase}" "${pkgbase}-headers" "${pkgbase}-docs")
diff --git a/bonding-ratelimit-failed-speed-duplex-update-warning.patch b/bonding-ratelimit-failed-speed-duplex-update-warning.patch
deleted file mode 100644
index c1a8bc5b47e..00000000000
--- a/bonding-ratelimit-failed-speed-duplex-update-warning.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 11e9d7829dd08dbafb24517fe922f11c3a8a9dc2 Mon Sep 17 00:00:00 2001
-From: Andreas Born <futur.andy@googlemail.com>
-Date: Sat, 12 Aug 2017 00:36:55 +0200
-Subject: [PATCH] bonding: ratelimit failed speed/duplex update warning
-
-bond_miimon_commit() handles the UP transition for each slave of a bond
-in the case of MII. It is triggered 10 times per second for the default
-MII Polling interval of 100ms. For device drivers that do not implement
-__ethtool_get_link_ksettings() the call to bond_update_speed_duplex()
-fails persistently while the MII status could remain UP. That is, in
-this and other cases where the speed/duplex update keeps failing over a
-longer period of time while the MII state is UP, a warning is printed
-every MII polling interval.
-
-To address these excessive warnings net_ratelimit() should be used.
-Printing a warning once would not be sufficient since the call to
-bond_update_speed_duplex() could recover to succeed and fail again
-later. In that case there would be no new indication what went wrong.
-
-Fixes: b5bf0f5b16b9c (bonding: correctly update link status during mii-commit phase)
-Signed-off-by: Andreas Born <futur.andy@googlemail.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/bonding/bond_main.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
-index 85bb272d2a34..fc63992ab0e0 100644
---- a/drivers/net/bonding/bond_main.c
-+++ b/drivers/net/bonding/bond_main.c
-@@ -2144,9 +2144,10 @@ static void bond_miimon_commit(struct bonding *bond)
- if (bond_update_speed_duplex(slave) &&
- bond_needs_speed_duplex(bond)) {
- slave->link = BOND_LINK_DOWN;
-- netdev_warn(bond->dev,
-- "failed to get link speed/duplex for %s\n",
-- slave->dev->name);
-+ if (net_ratelimit())
-+ netdev_warn(bond->dev,
-+ "failed to get link speed/duplex for %s\n",
-+ slave->dev->name);
- continue;
- }
- bond_set_slave_link_state(slave, BOND_LINK_UP,
---
-2.14.1
-
diff --git a/bonding-require-speed-duplex-only-for-802.3ad-alb-an.patch b/bonding-require-speed-duplex-only-for-802.3ad-alb-an.patch
deleted file mode 100644
index 09028515b84..00000000000
--- a/bonding-require-speed-duplex-only-for-802.3ad-alb-an.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From ad729bc9acfb7c47112964b4877ef5404578ed13 Mon Sep 17 00:00:00 2001
-From: Andreas Born <futur.andy@googlemail.com>
-Date: Thu, 10 Aug 2017 06:41:44 +0200
-Subject: [PATCH] bonding: require speed/duplex only for 802.3ad, alb and tlb
-
-The patch c4adfc822bf5 ("bonding: make speed, duplex setting consistent
-with link state") puts the link state to down if
-bond_update_speed_duplex() cannot retrieve speed and duplex settings.
-Assumably the patch was written with 802.3ad mode in mind which relies
-on link speed/duplex settings. For other modes like active-backup these
-settings are not required. Thus, only for these other modes, this patch
-reintroduces support for slaves that do not support reporting speed or
-duplex such as wireless devices. This fixes the regression reported in
-bug 196547 (https://bugzilla.kernel.org/show_bug.cgi?id=196547).
-
-Fixes: c4adfc822bf5 ("bonding: make speed, duplex setting consistent
-with link state")
-Signed-off-by: Andreas Born <futur.andy@googlemail.com>
-Acked-by: Mahesh Bandewar <maheshb@google.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/bonding/bond_main.c | 6 ++++--
- include/net/bonding.h | 5 +++++
- 2 files changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
-index 9bee6c1c70cc..85bb272d2a34 100644
---- a/drivers/net/bonding/bond_main.c
-+++ b/drivers/net/bonding/bond_main.c
-@@ -1569,7 +1569,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
- new_slave->delay = 0;
- new_slave->link_failure_count = 0;
-
-- if (bond_update_speed_duplex(new_slave))
-+ if (bond_update_speed_duplex(new_slave) &&
-+ bond_needs_speed_duplex(bond))
- new_slave->link = BOND_LINK_DOWN;
-
- new_slave->last_rx = jiffies -
-@@ -2140,7 +2141,8 @@ static void bond_miimon_commit(struct bonding *bond)
- continue;
-
- case BOND_LINK_UP:
-- if (bond_update_speed_duplex(slave)) {
-+ if (bond_update_speed_duplex(slave) &&
-+ bond_needs_speed_duplex(bond)) {
- slave->link = BOND_LINK_DOWN;
- netdev_warn(bond->dev,
- "failed to get link speed/duplex for %s\n",
-diff --git a/include/net/bonding.h b/include/net/bonding.h
-index b00508d22e0a..b2e68657a216 100644
---- a/include/net/bonding.h
-+++ b/include/net/bonding.h
-@@ -277,6 +277,11 @@ static inline bool bond_is_lb(const struct bonding *bond)
- BOND_MODE(bond) == BOND_MODE_ALB;
- }
-
-+static inline bool bond_needs_speed_duplex(const struct bonding *bond)
-+{
-+ return BOND_MODE(bond) == BOND_MODE_8023AD || bond_is_lb(bond);
-+}
-+
- static inline bool bond_is_nondyn_tlb(const struct bonding *bond)
- {
- return (BOND_MODE(bond) == BOND_MODE_TLB) &&
---
-2.14.1
-
diff --git a/config.x86_64 b/config
index a7180202153..728fa774147 100644
--- a/config.x86_64
+++ b/config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.12.0-1 Kernel Configuration
+# Linux/x86 4.14.0-1 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -84,7 +84,9 @@ CONFIG_HAVE_ARCH_AUDITSYSCALL=y
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
@@ -92,6 +94,7 @@ CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
@@ -109,7 +112,7 @@ CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
-# CONFIG_NO_HZ is not set
+CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
#
@@ -135,7 +138,6 @@ CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU=y
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_NEED_SEGCBLIST=y
-# CONFIG_TREE_RCU_TRACE is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
@@ -216,6 +218,7 @@ CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
@@ -242,7 +245,9 @@ CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
CONFIG_PROFILING=y
@@ -272,6 +277,7 @@ CONFIG_HAVE_NMI=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
CONFIG_ARCH_HAS_SET_MEMORY=y
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
@@ -281,9 +287,11 @@ CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_RCU_TABLE_FREE=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
@@ -299,6 +307,7 @@ CONFIG_CC_STACKPROTECTOR=y
# CONFIG_CC_STACKPROTECTOR_NONE is not set
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
CONFIG_CC_STACKPROTECTOR_STRONG=y
+CONFIG_THIN_ARCHIVES=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
CONFIG_HAVE_CONTEXT_TRACKING=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
@@ -307,6 +316,7 @@ CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y
CONFIG_HAVE_ARCH_HUGE_VMAP=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
@@ -318,7 +328,6 @@ CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y
CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_HAVE_STACK_VALIDATION=y
-CONFIG_HAVE_RELIABLE_STACKTRACE=y
# CONFIG_HAVE_ARCH_HASH is not set
# CONFIG_ISA_BUS_API is not set
CONFIG_OLD_SIGSUSPEND3=y
@@ -332,6 +341,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
CONFIG_STRICT_KERNEL_RWX=y
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_REFCOUNT_FULL is not set
#
# GCOV-based kernel profiling
@@ -395,6 +405,7 @@ CONFIG_EFI_PARTITION=y
CONFIG_BLOCK_COMPAT=y
CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_MQ_VIRTIO=y
+CONFIG_BLK_MQ_RDMA=y
#
# IO Schedulers
@@ -413,8 +424,12 @@ CONFIG_IOSCHED_BFQ=y
CONFIG_BFQ_GROUP_IOSCHED=y
CONFIG_PREEMPT_NOTIFIERS=y
CONFIG_PADATA=y
-CONFIG_ASN1=m
-CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ASN1=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
CONFIG_MUTEX_SPIN_ON_OWNER=y
CONFIG_RWSEM_SPIN_ON_OWNER=y
@@ -435,7 +450,7 @@ CONFIG_X86_FAST_FEATURE_TESTS=y
CONFIG_X86_X2APIC=y
CONFIG_X86_MPPARSE=y
# CONFIG_GOLDFISH is not set
-CONFIG_INTEL_RDT_A=y
+CONFIG_INTEL_RDT=y
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_X86_INTEL_LPSS=y
CONFIG_X86_AMD_PLATFORM_DEVICE=y
@@ -503,6 +518,7 @@ CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
#
@@ -523,9 +539,14 @@ CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
+# CONFIG_X86_5LEVEL is not set
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_X86_DIRECT_GBPAGES=y
+CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_AMD_MEM_ENCRYPT=y
+# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
@@ -549,9 +570,9 @@ CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_HAVE_GENERIC_GUP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
CONFIG_MEMORY_ISOLATION=y
-# CONFIG_MOVABLE_NODE is not set
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_SPARSE=y
@@ -564,6 +585,7 @@ CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
+CONFIG_ARCH_ENABLE_THP_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
@@ -576,10 +598,15 @@ CONFIG_HWPOISON_INJECT=m
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_THP_SWAP=y
CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
CONFIG_CLEANCACHE=y
CONFIG_FRONTSWAP=y
-# CONFIG_CMA is not set
+CONFIG_CMA=y
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+CONFIG_CMA_AREAS=7
CONFIG_ZSWAP=y
CONFIG_ZPOOL=y
CONFIG_ZBUD=y
@@ -591,10 +618,18 @@ CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ARCH_HAS_ZONE_DEVICE=y
CONFIG_ZONE_DEVICE=y
+CONFIG_ARCH_HAS_HMM=y
+CONFIG_MIGRATE_VMA_HELPER=y
+CONFIG_HMM=y
+CONFIG_HMM_MIRROR=y
+CONFIG_DEVICE_PRIVATE=y
+CONFIG_DEVICE_PUBLIC=y
CONFIG_FRAME_VECTOR=y
CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
CONFIG_ARCH_HAS_PKEYS=y
+# CONFIG_PERCPU_STATS is not set
CONFIG_X86_PMEM_LEGACY_DEVICE=y
CONFIG_X86_PMEM_LEGACY=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -642,6 +677,7 @@ CONFIG_LEGACY_VSYSCALL_EMULATE=y
# CONFIG_CMDLINE_BOOL is not set
CONFIG_MODIFY_LDT_SYSCALL=y
CONFIG_HAVE_LIVEPATCH=y
+CONFIG_ARCH_HAS_ADD_PAGES=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
CONFIG_USE_PERCPU_NUMA_NODE_ID=y
@@ -657,7 +693,7 @@ CONFIG_HIBERNATION=y
CONFIG_PM_STD_PARTITION=""
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_AUTOSLEEP=y
+# CONFIG_PM_AUTOSLEEP is not set
CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=100
CONFIG_PM_WAKELOCKS_GC=y
@@ -668,6 +704,7 @@ CONFIG_PM_ADVANCED_DEBUG=y
CONFIG_PM_SLEEP_DEBUG=y
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
+CONFIG_PM_OPP=y
CONFIG_PM_CLK=y
CONFIG_PM_GENERIC_DOMAINS=y
CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
@@ -727,6 +764,7 @@ CONFIG_PMIC_OPREGION=y
CONFIG_CRC_PMIC_OPREGION=y
CONFIG_XPOWER_PMIC_OPREGION=y
CONFIG_BXT_WC_PMIC_OPREGION=y
+CONFIG_CHT_WC_PMIC_OPREGION=y
CONFIG_ACPI_CONFIGFS=m
CONFIG_SFI=y
@@ -807,6 +845,7 @@ CONFIG_PCI_STUB=m
CONFIG_XEN_PCIDEV_FRONTEND=m
CONFIG_HT_IRQ=y
CONFIG_PCI_ATS=y
+CONFIG_PCI_LOCKLESS_CONFIG=y
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
@@ -892,6 +931,7 @@ CONFIG_PACKET=y
CONFIG_PACKET_DIAG=m
CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
+CONFIG_TLS=m
CONFIG_XFRM=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_ALGO=m
@@ -964,7 +1004,7 @@ CONFIG_TCP_MD5SIG=y
CONFIG_IPV6=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_ESP_OFFLOAD=m
@@ -991,14 +1031,12 @@ CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
-# CONFIG_IPV6_SEG6_INLINE is not set
CONFIG_IPV6_SEG6_HMAC=y
CONFIG_NETLABEL=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NET_PTP_CLASSIFY=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=m
@@ -1081,6 +1119,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NF_DUP_NETDEV=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
+CONFIG_NFT_FIB_NETDEV=m
CONFIG_NETFILTER_XTABLES=m
#
@@ -1388,10 +1427,10 @@ CONFIG_HAVE_NET_DSA=y
CONFIG_NET_DSA=m
CONFIG_NET_DSA_TAG_DSA=y
CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_DSA_TAG_LAN9303=y
+CONFIG_NET_DSA_TAG_MTK=y
CONFIG_NET_DSA_TAG_TRAILER=y
CONFIG_NET_DSA_TAG_QCA=y
-CONFIG_NET_DSA_TAG_MTK=y
-CONFIG_NET_DSA_TAG_LAN9303=y
CONFIG_VLAN_8021Q=m
# CONFIG_VLAN_8021Q_GVRP is not set
CONFIG_VLAN_8021Q_MVRP=y
@@ -1530,11 +1569,13 @@ CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
+CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=m
CONFIG_MPLS=y
CONFIG_NET_MPLS_GSO=m
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
+CONFIG_NET_NSH=m
CONFIG_HSR=m
CONFIG_NET_SWITCHDEV=y
CONFIG_NET_L3_MASTER_DEV=y
@@ -1547,6 +1588,7 @@ CONFIG_CGROUP_NET_CLASSID=y
CONFIG_NET_RX_BUSY_POLL=y
CONFIG_BQL=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_STREAM_PARSER=y
CONFIG_NET_FLOW_LIMIT=y
#
@@ -1628,62 +1670,6 @@ CONFIG_CAN_PEAK_USB=m
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_DEBUG_DEVICES is not set
-CONFIG_IRDA=m
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-# CONFIG_IRDA_DEBUG is not set
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=m
-
-#
-# Dongle support
-#
-CONFIG_DONGLE=y
-CONFIG_ESI_DONGLE=m
-CONFIG_ACTISYS_DONGLE=m
-CONFIG_TEKRAM_DONGLE=m
-CONFIG_TOIM3232_DONGLE=m
-CONFIG_LITELINK_DONGLE=m
-CONFIG_MA600_DONGLE=m
-CONFIG_GIRBIL_DONGLE=m
-CONFIG_MCP2120_DONGLE=m
-CONFIG_OLD_BELKIN_DONGLE=m
-CONFIG_ACT200L_DONGLE=m
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-
-#
-# FIR device drivers
-#
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_NSC_FIR=m
-CONFIG_WINBOND_FIR=m
-CONFIG_SMC_IRCC_FIR=m
-CONFIG_ALI_FIR=m
-CONFIG_VLSI_FIR=m
-CONFIG_VIA_FIR=m
-CONFIG_MCS_FIR=m
CONFIG_BT=m
CONFIG_BT_BREDR=y
CONFIG_BT_RFCOMM=m
@@ -1742,7 +1728,7 @@ CONFIG_AF_RXRPC_IPV6=y
# CONFIG_AF_RXRPC_DEBUG is not set
CONFIG_RXKAD=y
CONFIG_AF_KCM=m
-CONFIG_STREAM_PARSER=m
+CONFIG_STREAM_PARSER=y
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
@@ -1753,8 +1739,9 @@ CONFIG_WEXT_PRIV=y
CONFIG_CFG80211=m
# CONFIG_NL80211_TESTMODE is not set
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
# CONFIG_CFG80211_DEFAULT_PS is not set
-# CONFIG_CFG80211_DEBUGFS is not set
+CONFIG_CFG80211_DEBUGFS=y
# CONFIG_CFG80211_INTERNAL_REGDB is not set
CONFIG_CFG80211_CRDA_SUPPORT=y
CONFIG_CFG80211_WEXT=y
@@ -1806,7 +1793,7 @@ CONFIG_NFC_HCI=m
#
# Near Field Communication (NFC) devices
#
-CONFIG_NFC_TRF7970A=m
+# CONFIG_NFC_TRF7970A is not set
CONFIG_NFC_MEI_PHY=m
CONFIG_NFC_SIM=m
CONFIG_NFC_PORT100=m
@@ -1851,7 +1838,7 @@ CONFIG_DEVTMPFS=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
-# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_FW_LOADER_USER_HELPER=y
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
@@ -1872,6 +1859,7 @@ CONFIG_REGMAP_MMIO=y
CONFIG_REGMAP_IRQ=y
CONFIG_DMA_SHARED_BUFFER=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_CMA is not set
#
# Bus devices
@@ -1888,6 +1876,10 @@ CONFIG_MTD_CMDLINE_PARTS=m
CONFIG_MTD_AR7_PARTS=m
#
+# Partition parsers
+#
+
+#
# User Modules And Translation Layers
#
CONFIG_MTD_BLKDEVS=m
@@ -1957,6 +1949,7 @@ CONFIG_MTD_PMC551=m
# CONFIG_MTD_PMC551_BUGFIX is not set
# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_MCHP23K256 is not set
# CONFIG_MTD_SST25L is not set
CONFIG_MTD_SLRAM=m
CONFIG_MTD_PHRAM=m
@@ -1997,7 +1990,7 @@ CONFIG_PARPORT_AX88796=m
CONFIG_PARPORT_1284=y
CONFIG_PARPORT_NOT_PC=y
CONFIG_PNP=y
-# CONFIG_PNP_DEBUG_MESSAGES is not set
+CONFIG_PNP_DEBUG_MESSAGES=y
#
# Protocols
@@ -2009,8 +2002,7 @@ CONFIG_BLK_DEV_FD=m
# CONFIG_PARIDE is not set
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
-CONFIG_BLK_CPQ_CISS_DA=m
-CONFIG_CISS_SCSI_TAPE=y
+CONFIG_ZRAM_WRITEBACK=y
CONFIG_BLK_DEV_DAC960=m
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -2037,7 +2029,6 @@ CONFIG_BLK_DEV_RBD=m
CONFIG_BLK_DEV_RSXX=m
CONFIG_NVME_CORE=m
CONFIG_BLK_DEV_NVME=m
-# CONFIG_BLK_DEV_NVME_SCSI is not set
CONFIG_NVME_FABRICS=m
CONFIG_NVME_RDMA=m
CONFIG_NVME_FC=m
@@ -2107,7 +2098,7 @@ CONFIG_ALTERA_STAPL=m
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=m
CONFIG_INTEL_MEI_TXE=m
-CONFIG_INTEL_IPTS=y
+CONFIG_INTEL_IPTS=m
CONFIG_VMWARE_VMCI=m
#
@@ -2155,6 +2146,7 @@ CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
CONFIG_ECHO=m
# CONFIG_CXL_BASE is not set
# CONFIG_CXL_AFU_DRIVER_OPS is not set
+# CONFIG_CXL_LIB is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -2212,19 +2204,19 @@ CONFIG_SCSI_AACRAID=m
CONFIG_SCSI_AIC7XXX=m
CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
CONFIG_AIC7XXX_DEBUG_MASK=0
CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC79XX=m
CONFIG_AIC79XX_CMDS_PER_DEVICE=32
CONFIG_AIC79XX_RESET_DELAY_MS=15000
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_ENABLE=y
CONFIG_AIC79XX_DEBUG_MASK=0
CONFIG_AIC79XX_REG_PRETTY_PRINT=y
CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_AIC94XX_DEBUG=y
CONFIG_SCSI_MVSAS=m
-# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_DEBUG=y
CONFIG_SCSI_MVSAS_TASKLET=y
CONFIG_SCSI_MVUMI=m
CONFIG_SCSI_DPT_I2O=m
@@ -2280,8 +2272,8 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
CONFIG_SCSI_IPR=m
-# CONFIG_SCSI_IPR_TRACE is not set
-# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_IPR_TRACE=y
+CONFIG_SCSI_IPR_DUMP=y
CONFIG_SCSI_QLOGIC_1280=m
CONFIG_SCSI_QLA_FC=m
CONFIG_TCM_QLA2XXX=m
@@ -2452,6 +2444,7 @@ CONFIG_DM_VERITY_FEC=y
CONFIG_DM_SWITCH=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_INTEGRITY=m
+CONFIG_DM_ZONED=m
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
@@ -2559,17 +2552,18 @@ CONFIG_CAIF_VIRTIO=m
#
# Distributed Switch Architecture drivers
#
-CONFIG_NET_DSA_MV88E6060=m
CONFIG_B53=m
-CONFIG_B53_SPI_DRIVER=m
+# CONFIG_B53_SPI_DRIVER is not set
CONFIG_B53_MDIO_DRIVER=m
CONFIG_B53_MMAP_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
+# CONFIG_NET_DSA_LOOP is not set
+CONFIG_NET_DSA_MT7530=m
+CONFIG_NET_DSA_MV88E6060=m
+# CONFIG_MICROCHIP_KSZ is not set
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_QCA8K=m
-# CONFIG_NET_DSA_LOOP is not set
-CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_SMSC_LAN9303=m
CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
@@ -2610,13 +2604,13 @@ CONFIG_NET_VENDOR_AURORA=y
CONFIG_AURORA_NB8800=m
CONFIG_NET_CADENCE=y
CONFIG_MACB=m
+CONFIG_MACB_USE_HWSTAMP=y
CONFIG_MACB_PCI=m
CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI=y
-CONFIG_BCMGENET=m
CONFIG_BNX2=m
CONFIG_CNIC=m
CONFIG_TIGON3=m
@@ -2625,6 +2619,7 @@ CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
CONFIG_BNXT=m
CONFIG_BNXT_SRIOV=y
+CONFIG_BNXT_FLOWER_OFFLOAD=y
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
# CONFIG_NET_VENDOR_CAVIUM is not set
@@ -2668,6 +2663,8 @@ CONFIG_NET_VENDOR_FUJITSU=y
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_NET_VENDOR_HP=y
CONFIG_HP100=m
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_HINIC=m
CONFIG_NET_VENDOR_INTEL=y
CONFIG_E100=m
CONFIG_E1000=m
@@ -2699,8 +2696,13 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_MLX5_CORE=m
+CONFIG_MLX5_ACCEL=y
+CONFIG_MLX5_FPGA=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_ESWITCH=y
CONFIG_MLX5_CORE_IPOIB=y
+CONFIG_MLX5_EN_IPSEC=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2710,15 +2712,15 @@ CONFIG_MLXSW_SWITCHIB=m
CONFIG_MLXSW_SWITCHX2=m
CONFIG_MLXSW_SPECTRUM=m
CONFIG_MLXSW_MINIMAL=m
+CONFIG_MLXFW=m
CONFIG_NET_VENDOR_MICREL=y
CONFIG_KS8842=m
-CONFIG_KS8851=m
+# CONFIG_KS8851 is not set
CONFIG_KS8851_MLL=m
CONFIG_KSZ884X_PCI=m
CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_ENCX24J600=m
+# CONFIG_ENC28J60 is not set
+# CONFIG_ENCX24J600 is not set
CONFIG_NET_VENDOR_MYRI=y
CONFIG_MYRI10GE=m
CONFIG_MYRI10GE_DCA=y
@@ -2728,6 +2730,7 @@ CONFIG_NATSEMI=m
CONFIG_NS83820=m
CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NFP=m
+CONFIG_NFP_APP_FLOWER=y
# CONFIG_NFP_DEBUG is not set
CONFIG_NET_VENDOR_8390=y
CONFIG_PCMCIA_AXNET=m
@@ -2755,6 +2758,7 @@ CONFIG_QED_ISCSI=y
CONFIG_QED_FCOE=y
CONFIG_NET_VENDOR_QUALCOMM=y
CONFIG_QCOM_EMAC=m
+CONFIG_RMNET=m
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_ATP=m
CONFIG_8139CP=m
@@ -2815,7 +2819,7 @@ CONFIG_WIZNET_W5300=m
# CONFIG_WIZNET_BUS_DIRECT is not set
# CONFIG_WIZNET_BUS_INDIRECT is not set
CONFIG_WIZNET_BUS_ANY=y
-CONFIG_WIZNET_W5100_SPI=m
+# CONFIG_WIZNET_W5100_SPI is not set
CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_NET_VENDOR_SYNOPSYS=y
@@ -2825,6 +2829,7 @@ CONFIG_DWC_XLGMAC_PCI=m
# CONFIG_HIPPI is not set
CONFIG_NET_SB1000=m
CONFIG_MDIO_DEVICE=m
+CONFIG_MDIO_BUS=m
CONFIG_MDIO_BITBANG=m
# CONFIG_MDIO_GPIO is not set
# CONFIG_MDIO_THUNDER is not set
@@ -2843,6 +2848,7 @@ CONFIG_BCM87XX_PHY=m
CONFIG_BCM_NET_PHYLIB=m
CONFIG_BROADCOM_PHY=m
CONFIG_CICADA_PHY=m
+CONFIG_CORTINA_PHY=m
CONFIG_DAVICOM_PHY=m
CONFIG_DP83848_PHY=m
CONFIG_DP83867_PHY=m
@@ -2852,12 +2858,14 @@ CONFIG_INTEL_XWAY_PHY=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LXT_PHY=m
CONFIG_MARVELL_PHY=m
+CONFIG_MARVELL_10G_PHY=m
CONFIG_MICREL_PHY=m
CONFIG_MICROCHIP_PHY=m
CONFIG_MICROSEMI_PHY=m
CONFIG_NATIONAL_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_REALTEK_PHY=m
+CONFIG_ROCKCHIP_PHY=m
CONFIG_SMSC_PHY=m
CONFIG_STE10XP=m
CONFIG_TERANETICS_PHY=m
@@ -2970,9 +2978,12 @@ CONFIG_ATH6KL_USB=m
CONFIG_AR5523=m
CONFIG_WIL6210=m
CONFIG_WIL6210_ISR_COR=y
-# CONFIG_WIL6210_TRACING is not set
+CONFIG_WIL6210_TRACING=y
+CONFIG_WIL6210_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_SDIO=m
+CONFIG_ATH10K_USB=m
# CONFIG_ATH10K_DEBUG is not set
CONFIG_ATH10K_DEBUGFS=y
# CONFIG_ATH10K_TRACING is not set
@@ -3007,7 +3018,7 @@ CONFIG_B43LEGACY_PCI_AUTOSELECT=y
CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
CONFIG_B43LEGACY_LEDS=y
CONFIG_B43LEGACY_HWRNG=y
-# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DEBUG=y
CONFIG_B43LEGACY_DMA=y
CONFIG_B43LEGACY_PIO=y
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
@@ -3080,8 +3091,7 @@ CONFIG_ORINOCO_USB=m
CONFIG_P54_COMMON=m
CONFIG_P54_USB=m
CONFIG_P54_PCI=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
+# CONFIG_P54_SPI is not set
CONFIG_P54_LEDS=y
CONFIG_PRISM54=m
CONFIG_WLAN_VENDOR_MARVELL=y
@@ -3089,7 +3099,7 @@ CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_CS=m
CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_SPI is not set
# CONFIG_LIBERTAS_DEBUG is not set
CONFIG_LIBERTAS_MESH=y
CONFIG_LIBERTAS_THINFIRM=m
@@ -3149,7 +3159,7 @@ CONFIG_RTL8192CU=m
CONFIG_RTLWIFI=m
CONFIG_RTLWIFI_PCI=m
CONFIG_RTLWIFI_USB=m
-# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTLWIFI_DEBUG=y
CONFIG_RTL8192C_COMMON=m
CONFIG_RTL8723_COMMON=m
CONFIG_RTLBTCOEXIST=m
@@ -3157,13 +3167,13 @@ CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
CONFIG_WLAN_VENDOR_RSI=y
CONFIG_RSI_91X=m
-# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_DEBUGFS=y
CONFIG_RSI_SDIO=m
CONFIG_RSI_USB=m
CONFIG_WLAN_VENDOR_ST=y
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
+# CONFIG_CW1200_WLAN_SPI is not set
CONFIG_WLAN_VENDOR_TI=y
CONFIG_WL1251=m
# CONFIG_WL1251_SPI is not set
@@ -3177,6 +3187,9 @@ CONFIG_WLAN_VENDOR_ZYDAS=y
CONFIG_USB_ZD1201=m
CONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+CONFIG_QTNFMAC=m
+CONFIG_QTNFMAC_PEARL_PCIE=m
CONFIG_PCMCIA_RAYCS=m
CONFIG_PCMCIA_WL3501=m
# CONFIG_MAC80211_HWSIM is not set
@@ -3356,28 +3369,29 @@ CONFIG_INPUT_EVDEV=m
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADC is not set
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
CONFIG_KEYBOARD_ATKBD=m
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
# CONFIG_KEYBOARD_LKKBD is not set
CONFIG_KEYBOARD_GPIO=m
# CONFIG_KEYBOARD_GPIO_POLLED is not set
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_TCA8418=m
-CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
# CONFIG_KEYBOARD_LM8323 is not set
-CONFIG_KEYBOARD_LM8333=m
+# CONFIG_KEYBOARD_LM8333 is not set
# CONFIG_KEYBOARD_MAX7359 is not set
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_SAMSUNG is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
-CONFIG_KEYBOARD_TM2_TOUCHKEY=m
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_CROS_EC is not set
CONFIG_INPUT_MOUSE=y
@@ -3404,7 +3418,7 @@ CONFIG_MOUSE_ELAN_I2C=m
CONFIG_MOUSE_ELAN_I2C_I2C=y
CONFIG_MOUSE_ELAN_I2C_SMBUS=y
CONFIG_MOUSE_VSXXXAA=m
-# CONFIG_MOUSE_GPIO is not set
+CONFIG_MOUSE_GPIO=m
CONFIG_MOUSE_SYNAPTICS_I2C=m
CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_INPUT_JOYSTICK=y
@@ -3465,7 +3479,7 @@ CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
# CONFIG_TOUCHSCREEN_CYTTSP_SPI is not set
CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m
CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m
-CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
+# CONFIG_TOUCHSCREEN_CYTTSP4_SPI is not set
CONFIG_TOUCHSCREEN_DYNAPRO=m
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
CONFIG_TOUCHSCREEN_EETI=m
@@ -3529,8 +3543,9 @@ CONFIG_TOUCHSCREEN_RM_TS=m
CONFIG_TOUCHSCREEN_SILEAD=m
CONFIG_TOUCHSCREEN_SIS_I2C=m
CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_STMFTS=m
CONFIG_TOUCHSCREEN_SUR40=m
-CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
+# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
# CONFIG_TOUCHSCREEN_SX8654 is not set
CONFIG_TOUCHSCREEN_TPS6507X=m
CONFIG_TOUCHSCREEN_ZET6223=m
@@ -3548,9 +3563,9 @@ CONFIG_INPUT_MC13783_PWRBUTTON=m
CONFIG_INPUT_MMA8450=m
CONFIG_INPUT_APANEL=m
CONFIG_INPUT_GP2A=m
-# CONFIG_INPUT_GPIO_BEEPER is not set
-# CONFIG_INPUT_GPIO_TILT_POLLED is not set
-# CONFIG_INPUT_GPIO_DECODER is not set
+CONFIG_INPUT_GPIO_BEEPER=m
+CONFIG_INPUT_GPIO_TILT_POLLED=m
+CONFIG_INPUT_GPIO_DECODER=m
CONFIG_INPUT_ATLAS_BTNS=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_KEYSPAN_REMOTE=m
@@ -3599,15 +3614,16 @@ CONFIG_SERIO=m
CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y
CONFIG_SERIO_I8042=m
CONFIG_SERIO_SERPORT=m
-CONFIG_SERIO_CT82C710=m
+# CONFIG_SERIO_CT82C710 is not set
CONFIG_SERIO_PARKBD=m
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=m
CONFIG_SERIO_RAW=m
-CONFIG_SERIO_ALTERA_PS2=m
-CONFIG_SERIO_PS2MULT=m
-CONFIG_SERIO_ARC_PS2=m
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
CONFIG_HYPERV_KEYBOARD=m
+CONFIG_SERIO_GPIO_PS2=m
# CONFIG_USERIO is not set
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_NS558=m
@@ -3707,6 +3723,7 @@ CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_DMI_DECODE=y
# CONFIG_IPMI_PANIC_EVENT is not set
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SI=m
@@ -3775,7 +3792,6 @@ CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
-# CONFIG_I2C_MUX_PINCTRL is not set
# CONFIG_I2C_MUX_REG is not set
# CONFIG_I2C_MUX_MLXCPLD is not set
CONFIG_I2C_HELPER_AUTO=y
@@ -3800,6 +3816,7 @@ CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_PIIX4=m
+CONFIG_I2C_CHT_WC=m
CONFIG_I2C_NFORCE2=m
CONFIG_I2C_NFORCE2_S4985=m
CONFIG_I2C_SIS5595=m
@@ -3817,8 +3834,9 @@ CONFIG_I2C_SCMI=m
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_CBUS_GPIO is not set
-CONFIG_I2C_DESIGNWARE_CORE=m
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_SLAVE is not set
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
# CONFIG_I2C_EMEV2 is not set
@@ -3858,38 +3876,32 @@ CONFIG_SPI_MASTER=y
#
# SPI Master Controller Drivers
#
-CONFIG_SPI_ALTERA=m
+# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
-CONFIG_SPI_BITBANG=m
-CONFIG_SPI_BUTTERFLY=m
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_BUTTERFLY is not set
# CONFIG_SPI_CADENCE is not set
-CONFIG_SPI_DESIGNWARE=m
-CONFIG_SPI_DW_PCI=m
-# CONFIG_SPI_DW_MID_DMA is not set
-CONFIG_SPI_DW_MMIO=m
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_LM70_LLP=m
-CONFIG_SPI_OC_TINY=m
+# CONFIG_SPI_DESIGNWARE is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_LM70_LLP is not set
+# CONFIG_SPI_OC_TINY is not set
CONFIG_SPI_PXA2XX=m
CONFIG_SPI_PXA2XX_PCI=m
-CONFIG_SPI_ROCKCHIP=m
-CONFIG_SPI_SC18IS602=m
-CONFIG_SPI_XCOMM=m
-CONFIG_SPI_XILINX=m
-CONFIG_SPI_ZYNQMP_GQSPI=m
+# CONFIG_SPI_ROCKCHIP is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
#
# SPI Protocol Masters
#
-CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_LOOPBACK_TEST is not set
-CONFIG_SPI_TLE62X0=m
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
CONFIG_SPMI=m
# CONFIG_HSI is not set
-
-#
-# PPS support
-#
CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
@@ -3921,13 +3933,17 @@ CONFIG_PINCONF=y
CONFIG_GENERIC_PINCONF=y
# CONFIG_DEBUG_PINCTRL is not set
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
# CONFIG_PINCTRL_SX150X is not set
CONFIG_PINCTRL_BAYTRAIL=y
-CONFIG_PINCTRL_CHERRYVIEW=y
-CONFIG_PINCTRL_INTEL=y
-CONFIG_PINCTRL_BROXTON=y
-# CONFIG_PINCTRL_GEMINILAKE is not set
-CONFIG_PINCTRL_SUNRISEPOINT=y
+CONFIG_PINCTRL_CHERRYVIEW=m
+CONFIG_PINCTRL_INTEL=m
+CONFIG_PINCTRL_BROXTON=m
+CONFIG_PINCTRL_CANNONLAKE=m
+CONFIG_PINCTRL_DENVERTON=m
+CONFIG_PINCTRL_GEMINILAKE=m
+CONFIG_PINCTRL_LEWISBURG=m
+CONFIG_PINCTRL_SUNRISEPOINT=m
CONFIG_GPIOLIB=y
CONFIG_GPIO_ACPI=y
CONFIG_GPIOLIB_IRQCHIP=y
@@ -3973,6 +3989,7 @@ CONFIG_GPIO_SCH311X=m
CONFIG_GPIO_CRYSTAL_COVE=y
# CONFIG_GPIO_LP3943 is not set
# CONFIG_GPIO_TPS65218 is not set
+# CONFIG_GPIO_TPS68470 is not set
# CONFIG_GPIO_UCB1400 is not set
CONFIG_GPIO_WHISKEY_COVE=m
@@ -3990,10 +4007,7 @@ CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_PISOSR is not set
-
-#
-# SPI or I2C GPIO expanders
-#
+# CONFIG_GPIO_XRA1403 is not set
#
# USB GPIO expanders
@@ -4026,6 +4040,7 @@ CONFIG_BATTERY_MAX17042=m
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
CONFIG_CHARGER_GPIO=m
+CONFIG_CHARGER_LTC3651=m
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_BQ24190 is not set
# CONFIG_CHARGER_BQ24257 is not set
@@ -4045,7 +4060,7 @@ CONFIG_HWMON_VID=m
#
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
-CONFIG_SENSORS_AD7314=m
+# CONFIG_SENSORS_AD7314 is not set
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
CONFIG_SENSORS_ADM1021=m
@@ -4055,7 +4070,7 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADT7X10=m
-CONFIG_SENSORS_ADT7310=m
+# CONFIG_SENSORS_ADT7310 is not set
CONFIG_SENSORS_ADT7410=m
CONFIG_SENSORS_ADT7411=m
CONFIG_SENSORS_ADT7462=m
@@ -4102,12 +4117,12 @@ CONFIG_SENSORS_LTC4222=m
CONFIG_SENSORS_LTC4245=m
CONFIG_SENSORS_LTC4260=m
CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_MAX1111=m
+# CONFIG_SENSORS_MAX1111 is not set
CONFIG_SENSORS_MAX16065=m
CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX197=m
-CONFIG_SENSORS_MAX31722=m
+# CONFIG_SENSORS_MAX31722 is not set
CONFIG_SENSORS_MAX6639=m
CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
@@ -4115,9 +4130,9 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX31790=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_TC654=m
-CONFIG_SENSORS_ADCXX=m
+# CONFIG_SENSORS_ADCXX is not set
CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
+# CONFIG_SENSORS_LM70 is not set
CONFIG_SENSORS_LM73=m
CONFIG_SENSORS_LM75=m
CONFIG_SENSORS_LM77=m
@@ -4143,6 +4158,8 @@ CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_PMBUS=m
CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_IBM_CFFPS=m
+CONFIG_SENSORS_IR35221=m
CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_LTC3815=m
@@ -4151,6 +4168,7 @@ CONFIG_SENSORS_MAX20751=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_TPS40422=m
+CONFIG_SENSORS_TPS53679=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
CONFIG_SENSORS_ZL6100=m
@@ -4174,7 +4192,7 @@ CONFIG_SENSORS_SMM665=m
CONFIG_SENSORS_ADC128D818=m
CONFIG_SENSORS_ADS1015=m
CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
+# CONFIG_SENSORS_ADS7871 is not set
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
@@ -4219,8 +4237,10 @@ CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_STEP_WISE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
-# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
-# CONFIG_THERMAL_EMULATION is not set
+CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y
+CONFIG_CLOCK_THERMAL=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
CONFIG_INTEL_POWERCLAMP=m
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
@@ -4238,6 +4258,7 @@ CONFIG_GENERIC_ADC_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
CONFIG_WATCHDOG_SYSFS=y
#
@@ -4329,10 +4350,6 @@ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y
CONFIG_SSB_DRIVER_GPIO=y
CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
CONFIG_BCMA=m
CONFIG_BCMA_BLOCKIO=y
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
@@ -4351,11 +4368,12 @@ CONFIG_MFD_CORE=y
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_AAT2870_CORE is not set
CONFIG_MFD_BCM590XX=m
+# CONFIG_MFD_BD9571MWV is not set
CONFIG_MFD_AXP20X=m
CONFIG_MFD_AXP20X_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_I2C=m
-CONFIG_MFD_CROS_EC_SPI=m
+# CONFIG_MFD_CROS_EC_SPI is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_MFD_DA9052_SPI is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -4374,6 +4392,7 @@ CONFIG_LPC_ICH=m
CONFIG_LPC_SCH=m
CONFIG_INTEL_SOC_PMIC=y
CONFIG_INTEL_SOC_PMIC_BXTWC=m
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
CONFIG_MFD_INTEL_LPSS=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@@ -4423,6 +4442,7 @@ CONFIG_TPS6507X=m
# CONFIG_MFD_TPS65086 is not set
# CONFIG_MFD_TPS65090 is not set
CONFIG_MFD_TPS65217=m
+CONFIG_MFD_TPS68470=y
# CONFIG_MFD_TI_LP873X is not set
CONFIG_MFD_TPS65218=m
# CONFIG_MFD_TPS6586X is not set
@@ -4451,6 +4471,42 @@ CONFIG_MFD_WM5110=y
# CONFIG_MFD_WM8994 is not set
# CONFIG_REGULATOR is not set
CONFIG_CEC_CORE=m
+CONFIG_RC_CORE=m
+CONFIG_RC_MAP=m
+CONFIG_RC_DECODERS=y
+CONFIG_LIRC=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_RC_DEVICES=y
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_ENE=m
+CONFIG_IR_HIX5HD2=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+# CONFIG_IR_SPI is not set
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
+CONFIG_IR_TTUSBIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_IR_GPIO_CIR=m
+CONFIG_IR_GPIO_TX=m
+CONFIG_IR_SERIAL=m
+CONFIG_IR_SERIAL_TRANSMITTER=y
+CONFIG_IR_SIR=m
CONFIG_MEDIA_SUPPORT=m
#
@@ -4461,7 +4517,6 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_SDR_SUPPORT=y
-CONFIG_MEDIA_RC_SUPPORT=y
CONFIG_MEDIA_CEC_SUPPORT=y
CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CONTROLLER=y
@@ -4475,6 +4530,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_TUNER=m
CONFIG_V4L2_MEM2MEM_DEV=m
# CONFIG_V4L2_FLASH_LED_CLASS is not set
+CONFIG_V4L2_FWNODE=m
CONFIG_VIDEOBUF_GEN=m
CONFIG_VIDEOBUF_DMA_SG=m
CONFIG_VIDEOBUF_VMALLOC=m
@@ -4495,41 +4551,6 @@ CONFIG_DVB_MAX_ADAPTERS=16
#
# Media drivers
#
-CONFIG_RC_CORE=m
-CONFIG_RC_MAP=m
-CONFIG_RC_DECODERS=y
-CONFIG_LIRC=m
-CONFIG_IR_LIRC_CODEC=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_SANYO_DECODER=m
-CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_XMP_DECODER=m
-CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_ENE=m
-CONFIG_IR_HIX5HD2=m
-CONFIG_IR_IMON=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
-CONFIG_IR_NUVOTON=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_SPI=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_IR_TTUSBIR=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_GPIO_CIR=m
-CONFIG_IR_SERIAL=m
-CONFIG_IR_SERIAL_TRANSMITTER=y
-CONFIG_IR_SIR=m
CONFIG_MEDIA_USB_SUPPORT=y
#
@@ -4692,7 +4713,7 @@ CONFIG_VIDEO_EM28XX_RC=m
#
CONFIG_USB_AIRSPY=m
CONFIG_USB_HACKRF=m
-CONFIG_USB_MSI2500=m
+# CONFIG_USB_MSI2500 is not set
#
# USB HDMI CEC adapters
@@ -4778,11 +4799,11 @@ CONFIG_DVB_MANTIS=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_NGENE=m
CONFIG_DVB_DDBRIDGE=m
+# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set
CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
+# CONFIG_DVB_NETUP_UNIDVB is not set
CONFIG_V4L_PLATFORM_DRIVERS=y
# CONFIG_VIDEO_CAFE_CCIC is not set
-# CONFIG_VIDEO_VIA_CAMERA is not set
# CONFIG_SOC_CAMERA is not set
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
@@ -4793,6 +4814,7 @@ CONFIG_VIDEO_VIMC=m
# CONFIG_VIDEO_VIM2M is not set
CONFIG_DVB_PLATFORM_DRIVERS=y
CONFIG_CEC_PLATFORM_DRIVERS=y
+CONFIG_SDR_PLATFORM_DRIVERS=y
#
# Supported MMC/SDIO adapters
@@ -4845,6 +4867,7 @@ CONFIG_VIDEO_SAA7146_VV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
# CONFIG_SMS_SIANO_DEBUGFS is not set
+CONFIG_VIDEO_V4L2_TPG=m
#
# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
@@ -4931,6 +4954,10 @@ CONFIG_VIDEO_UPD64083=m
CONFIG_VIDEO_SAA6752HS=m
#
+# SDR tuner chips
+#
+
+#
# Miscellaneous helper chips
#
CONFIG_VIDEO_M52790=m
@@ -4946,7 +4973,6 @@ CONFIG_MEDIA_TUNER_TDA18271=m
CONFIG_MEDIA_TUNER_TDA9887=m
CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MSI001=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_MT2060=m
CONFIG_MEDIA_TUNER_MT2063=m
@@ -4981,7 +5007,10 @@ CONFIG_MEDIA_TUNER_QM1D1C0042=m
CONFIG_DVB_STB0899=m
CONFIG_DVB_STB6100=m
CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV0910=m
CONFIG_DVB_STV6110x=m
+CONFIG_DVB_STV6111=m
+CONFIG_DVB_MXL5XX=m
CONFIG_DVB_M88DS3103=m
#
@@ -5117,9 +5146,6 @@ CONFIG_DVB_TDA665x=m
CONFIG_DVB_IX2505V=m
CONFIG_DVB_M88RS2000=m
CONFIG_DVB_AF9033=m
-CONFIG_DVB_HORUS3A=m
-CONFIG_DVB_ASCOT2E=m
-CONFIG_DVB_HELENE=m
#
# Tools to develop new frontends
@@ -5129,7 +5155,7 @@ CONFIG_DVB_HELENE=m
#
# Graphics support
#
-CONFIG_AGP=y
+CONFIG_AGP=m
CONFIG_AGP_AMD64=m
CONFIG_AGP_INTEL=m
CONFIG_AGP_SIS=m
@@ -5198,6 +5224,7 @@ CONFIG_DRM_PANEL=y
# Display Panels
#
CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
#
# Display Interface Bridges
@@ -5250,7 +5277,7 @@ CONFIG_FB_VESA=y
CONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
-CONFIG_FB_OPENCORES=m
+# CONFIG_FB_OPENCORES is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
@@ -5263,13 +5290,11 @@ CONFIG_FB_OPENCORES=m
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
-CONFIG_FB_VIA=m
-CONFIG_FB_VIA_DIRECT_PROCFS=y
-CONFIG_FB_VIA_X_COMPATIBILITY=y
+# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
-CONFIG_FB_VOODOO1=m
+# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
@@ -5279,7 +5304,7 @@ CONFIG_FB_VOODOO1=m
# CONFIG_FB_SMSCUFX is not set
CONFIG_FB_UDL=m
# CONFIG_FB_IBM_GXT4500 is not set
-CONFIG_FB_VIRTUAL=m
+# CONFIG_FB_VIRTUAL is not set
CONFIG_XEN_FBDEV_FRONTEND=m
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
@@ -5305,13 +5330,13 @@ CONFIG_LCD_PLATFORM=m
# CONFIG_LCD_HX8357 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_LM3533=m
+# CONFIG_BACKLIGHT_LM3533 is not set
CONFIG_BACKLIGHT_APPLE=m
# CONFIG_BACKLIGHT_PM8941_WLED is not set
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
-CONFIG_BACKLIGHT_PCF50633=m
+# CONFIG_BACKLIGHT_PCF50633 is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_TPS65217 is not set
# CONFIG_BACKLIGHT_GPIO is not set
@@ -5345,20 +5370,17 @@ CONFIG_SND_PCM_ELD=y
CONFIG_SND_PCM_IEC958=y
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_HWDEP=m
+CONFIG_SND_SEQ_DEVICE=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_COMPRESS_OFFLOAD=m
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_PCM_TIMER=y
-CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
# CONFIG_SND_SUPPORT_OLD_API is not set
@@ -5368,13 +5390,18 @@ CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
-CONFIG_SND_RAWMIDI_SEQ=m
-CONFIG_SND_OPL3_LIB_SEQ=m
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_SEQUENCER_OSS=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SEQ_MIDI_EVENT=m
+CONFIG_SND_SEQ_MIDI=m
+CONFIG_SND_SEQ_MIDI_EMUL=m
+CONFIG_SND_SEQ_VIRMIDI=m
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
@@ -5428,6 +5455,7 @@ CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
@@ -5572,11 +5600,18 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
CONFIG_SND_SOC_XTFPGA_I2S=m
CONFIG_ZX_TDM=m
CONFIG_SND_SOC_I2C_AND_SPI=m
@@ -5590,9 +5625,9 @@ CONFIG_SND_SOC_ADAU1701=m
CONFIG_SND_SOC_ADAU17X1=m
CONFIG_SND_SOC_ADAU1761=m
CONFIG_SND_SOC_ADAU1761_I2C=m
-CONFIG_SND_SOC_ADAU1761_SPI=m
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
CONFIG_SND_SOC_ADAU7002=m
-CONFIG_SND_SOC_AK4104=m
+# CONFIG_SND_SOC_AK4104 is not set
CONFIG_SND_SOC_AK4554=m
CONFIG_SND_SOC_AK4613=m
CONFIG_SND_SOC_AK4642=m
@@ -5613,9 +5648,10 @@ CONFIG_SND_SOC_CS4265=m
CONFIG_SND_SOC_CS4270=m
CONFIG_SND_SOC_CS4271=m
CONFIG_SND_SOC_CS4271_I2C=m
-CONFIG_SND_SOC_CS4271_SPI=m
+# CONFIG_SND_SOC_CS4271_SPI is not set
CONFIG_SND_SOC_CS42XX8=m
CONFIG_SND_SOC_CS42XX8_I2C=m
+CONFIG_SND_SOC_CS43130=m
CONFIG_SND_SOC_CS4349=m
CONFIG_SND_SOC_CS53L30=m
CONFIG_SND_SOC_DA7213=m
@@ -5624,9 +5660,10 @@ CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_ES7134=m
+CONFIG_SND_SOC_ES8316=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_I2C=m
-CONFIG_SND_SOC_ES8328_SPI=m
+# CONFIG_SND_SOC_ES8328_SPI is not set
CONFIG_SND_SOC_GTM601=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_INNO_RK3036=m
@@ -5640,22 +5677,25 @@ CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
CONFIG_SND_SOC_PCM1681=m
CONFIG_SND_SOC_PCM179X=m
CONFIG_SND_SOC_PCM179X_I2C=m
-CONFIG_SND_SOC_PCM179X_SPI=m
+# CONFIG_SND_SOC_PCM179X_SPI is not set
CONFIG_SND_SOC_PCM3168A=m
CONFIG_SND_SOC_PCM3168A_I2C=m
-CONFIG_SND_SOC_PCM3168A_SPI=m
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_I2C=m
-CONFIG_SND_SOC_PCM512x_SPI=m
+# CONFIG_SND_SOC_PCM512x_SPI is not set
CONFIG_SND_SOC_RL6231=m
CONFIG_SND_SOC_RL6347A=m
CONFIG_SND_SOC_RT286=m
CONFIG_SND_SOC_RT298=m
+CONFIG_SND_SOC_RT5514=m
+CONFIG_SND_SOC_RT5514_SPI=m
CONFIG_SND_SOC_RT5616=m
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5640=m
CONFIG_SND_SOC_RT5645=m
CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5663=m
CONFIG_SND_SOC_RT5670=m
CONFIG_SND_SOC_RT5677=m
CONFIG_SND_SOC_RT5677_SPI=m
@@ -5667,7 +5707,7 @@ CONFIG_SND_SOC_SIGMADSP_REGMAP=m
CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_SSM2602=m
-CONFIG_SND_SOC_SSM2602_SPI=m
+# CONFIG_SND_SOC_SSM2602_SPI is not set
CONFIG_SND_SOC_SSM2602_I2C=m
CONFIG_SND_SOC_SSM4567=m
CONFIG_SND_SOC_STA32X=m
@@ -5680,12 +5720,13 @@ CONFIG_SND_SOC_TAS5720=m
CONFIG_SND_SOC_TFA9879=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_I2C=m
-CONFIG_SND_SOC_TLV320AIC23_SPI=m
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
CONFIG_SND_SOC_TLV320AIC31XX=m
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_WM8510=m
CONFIG_SND_SOC_WM8523=m
+CONFIG_SND_SOC_WM8524=m
CONFIG_SND_SOC_WM8580=m
CONFIG_SND_SOC_WM8711=m
CONFIG_SND_SOC_WM8728=m
@@ -5694,17 +5735,18 @@ CONFIG_SND_SOC_WM8737=m
CONFIG_SND_SOC_WM8741=m
CONFIG_SND_SOC_WM8750=m
CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8770=m
+# CONFIG_SND_SOC_WM8770 is not set
CONFIG_SND_SOC_WM8776=m
CONFIG_SND_SOC_WM8804=m
CONFIG_SND_SOC_WM8804_I2C=m
-CONFIG_SND_SOC_WM8804_SPI=m
+# CONFIG_SND_SOC_WM8804_SPI is not set
CONFIG_SND_SOC_WM8903=m
CONFIG_SND_SOC_WM8960=m
CONFIG_SND_SOC_WM8962=m
CONFIG_SND_SOC_WM8974=m
CONFIG_SND_SOC_WM8978=m
CONFIG_SND_SOC_WM8985=m
+CONFIG_SND_SOC_ZX_AUD96P22=m
CONFIG_SND_SOC_NAU8540=m
CONFIG_SND_SOC_NAU8810=m
CONFIG_SND_SOC_NAU8824=m
@@ -5714,6 +5756,7 @@ CONFIG_SND_SIMPLE_CARD_UTILS=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_X86=y
CONFIG_HDMI_LPE_AUDIO=m
+CONFIG_SND_SYNTH_EMUX=m
CONFIG_AC97_BUS=m
#
@@ -5762,6 +5805,7 @@ CONFIG_HID_UCLOGIC=m
CONFIG_HID_WALTOP=m
CONFIG_HID_GYRATION=m
CONFIG_HID_ICADE=m
+CONFIG_HID_ITE=m
CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
@@ -5794,6 +5838,7 @@ CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PICOLCD_CIR=y
CONFIG_HID_PLANTRONICS=m
CONFIG_HID_PRIMAX=m
+CONFIG_HID_RETRODE=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_SAITEK=m
CONFIG_HID_SAMSUNG=m
@@ -5877,7 +5922,7 @@ CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_ISP1362_HCD=m
# CONFIG_USB_FOTG210_HCD is not set
-CONFIG_USB_MAX3421_HCD=m
+# CONFIG_USB_MAX3421_HCD is not set
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PCI=m
# CONFIG_USB_OHCI_HCD_SSB is not set
@@ -5983,6 +6028,18 @@ CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_IUU=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
CONFIG_USB_SERIAL_KEYSPAN=m
+# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
+# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
@@ -6045,7 +6102,6 @@ CONFIG_USB_HSIC_USB3503=m
CONFIG_USB_HSIC_USB4604=m
CONFIG_USB_LINK_LAYER_TEST=m
CONFIG_USB_CHAOSKEY=m
-CONFIG_UCSI=m
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
@@ -6068,6 +6124,8 @@ CONFIG_USB_ISP1301=m
#
CONFIG_TYPEC=m
CONFIG_TYPEC_WCOVE=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_UCSI_ACPI=m
CONFIG_USB_LED_TRIG=y
# CONFIG_USB_ULPI_BUS is not set
CONFIG_UWB=m
@@ -6075,16 +6133,15 @@ CONFIG_UWB_HWA=m
CONFIG_UWB_WHCI=m
CONFIG_UWB_I1480U=m
CONFIG_MMC=m
-# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_SDIO_UART=m
# CONFIG_MMC_TEST is not set
#
# MMC/SD/SDIO Host Controller Drivers
#
+# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_RICOH_MMC=y
@@ -6092,7 +6149,7 @@ CONFIG_MMC_SDHCI_ACPI=m
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SPI=m
+# CONFIG_MMC_SPI is not set
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_CB710=m
CONFIG_MMC_VIA_SDMMC=m
@@ -6130,6 +6187,7 @@ CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
#
# LED drivers
#
+CONFIG_LEDS_AS3645A=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3533=m
CONFIG_LEDS_LM3642=m
@@ -6145,8 +6203,9 @@ CONFIG_LEDS_LP3952=m
CONFIG_LEDS_LP8860=m
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_PCA955X_GPIO=y
CONFIG_LEDS_PCA963X=m
-CONFIG_LEDS_DAC124S085=m
+# CONFIG_LEDS_DAC124S085 is not set
CONFIG_LEDS_BD2802=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
@@ -6188,6 +6247,7 @@ CONFIG_A11Y_BRAILLE_CONSOLE=y
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
+# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set
CONFIG_INFINIBAND_USER_MEM=y
CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -6195,7 +6255,7 @@ CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
CONFIG_INFINIBAND_QIB=m
-# CONFIG_INFINIBAND_QIB_DCA is not set
+CONFIG_INFINIBAND_QIB_DCA=y
CONFIG_INFINIBAND_CXGB3=m
# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_CXGB4=m
@@ -6220,7 +6280,6 @@ CONFIG_INFINIBAND_RDMAVT=m
CONFIG_RDMA_RXE=m
CONFIG_INFINIBAND_HFI1=m
# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
-CONFIG_HFI1_VERBS_31BIT_PSN=y
# CONFIG_SDMA_VERBOSITY is not set
# CONFIG_INFINIBAND_QEDR is not set
CONFIG_EDAC_ATOMIC_SCRUB=y
@@ -6254,6 +6313,7 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
#
# RTC interfaces
@@ -6262,37 +6322,33 @@ CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-CONFIG_RTC_DRV_TEST=m
+# CONFIG_RTC_DRV_TEST is not set
#
# I2C RTC drivers
#
# CONFIG_RTC_DRV_ABB5ZES3 is not set
-CONFIG_RTC_DRV_ABX80X=m
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1307_HWMON=y
-# CONFIG_RTC_DRV_DS1307_CENTURY is not set
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1374_WDT=y
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF85063=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8010=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
+# CONFIG_RTC_DRV_ABX80X is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8523 is not set
+# CONFIG_RTC_DRV_PCF85063 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV8803 is not set
#
@@ -6305,7 +6361,7 @@ CONFIG_RTC_DRV_EM3027=m
# CONFIG_RTC_DRV_DS1343 is not set
# CONFIG_RTC_DRV_DS1347 is not set
# CONFIG_RTC_DRV_DS1390 is not set
-CONFIG_RTC_DRV_MAX6916=m
+# CONFIG_RTC_DRV_MAX6916 is not set
# CONFIG_RTC_DRV_R9701 is not set
# CONFIG_RTC_DRV_RX4581 is not set
# CONFIG_RTC_DRV_RX6110 is not set
@@ -6318,42 +6374,35 @@ CONFIG_RTC_I2C_AND_SPI=y
#
# SPI and I2C RTC drivers
#
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_PCF2127=m
-CONFIG_RTC_DRV_RV3029C2=m
-CONFIG_RTC_DRV_RV3029_HWMON=y
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1685_FAMILY=m
-CONFIG_RTC_DRV_DS1685=y
-# CONFIG_RTC_DRV_DS1689 is not set
-# CONFIG_RTC_DRV_DS17285 is not set
-# CONFIG_RTC_DRV_DS17485 is not set
-# CONFIG_RTC_DRV_DS17885 is not set
-# CONFIG_RTC_DS1685_PROC_REGS is not set
-CONFIG_RTC_DS1685_SYSFS_REGS=y
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_PCF50633=m
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_PCF50633 is not set
#
# on-CPU RTC drivers
#
-CONFIG_RTC_DRV_MC13XXX=m
+# CONFIG_RTC_DRV_FTRTC010 is not set
+# CONFIG_RTC_DRV_MC13XXX is not set
#
# HID Sensor RTC drivers
@@ -6368,6 +6417,7 @@ CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DMA_ACPI=y
+CONFIG_ALTERA_MSGDMA=m
CONFIG_INTEL_IDMA64=m
CONFIG_INTEL_IOATDMA=m
CONFIG_INTEL_MIC_X100_DMA=m
@@ -6463,6 +6513,7 @@ CONFIG_XEN_GRANT_DEV_ALLOC=m
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_TMEM=m
CONFIG_XEN_PCIDEV_BACKEND=m
+# CONFIG_XEN_PVCALLS_BACKEND is not set
CONFIG_XEN_SCSI_BACKEND=m
CONFIG_XEN_PRIVCMD=m
CONFIG_XEN_ACPI_PROCESSOR=m
@@ -6474,6 +6525,62 @@ CONFIG_XEN_ACPI=y
CONFIG_XEN_SYMS=y
CONFIG_XEN_HAVE_VPMU=y
CONFIG_STAGING=y
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
CONFIG_PRISM2_USB=m
CONFIG_COMEDI=m
# CONFIG_COMEDI_DEBUG is not set
@@ -6576,6 +6683,10 @@ CONFIG_RTL8723BS=m
CONFIG_R8712U=m
CONFIG_R8188EU=m
CONFIG_88EU_AP_MODE=y
+CONFIG_R8822BE=m
+CONFIG_RTLHALMAC_ST=m
+CONFIG_RTLPHYDM_ST=m
+CONFIG_RTLWIFI_DEBUG_ST=y
CONFIG_RTS5208=m
CONFIG_VT6655=m
CONFIG_VT6656=m
@@ -6632,7 +6743,6 @@ CONFIG_VT6656=m
#
# Light sensors
#
-# CONFIG_SENSORS_ISL29028 is not set
# CONFIG_TSL2x7x is not set
#
@@ -6673,7 +6783,7 @@ CONFIG_SPEAKUP_SYNTH_SPKOUT=m
CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_SPEAKUP_SYNTH_DUMMY=m
CONFIG_STAGING_MEDIA=y
-# CONFIG_INTEL_ATOMISP is not set
+CONFIG_INTEL_ATOMISP=y
CONFIG_VIDEO_ATOMISP=m
CONFIG_VIDEO_OV5693=m
CONFIG_VIDEO_IMX=m
@@ -6703,7 +6813,6 @@ CONFIG_LNET_MAX_PAYLOAD=1048576
CONFIG_LNET_SELFTEST=m
CONFIG_LNET_XPRT_IB=m
CONFIG_LUSTRE_FS=m
-CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
CONFIG_DGNC=m
CONFIG_GS_FPGABOOT=m
@@ -6722,6 +6831,8 @@ CONFIG_GS_FPGABOOT=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC_FUSB302=m
+CONFIG_DRM_VBOXVIDEO=m
+# CONFIG_PI433 is not set
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -6735,7 +6846,6 @@ CONFIG_DELL_WMI_LED=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_RBTN=m
CONFIG_FUJITSU_LAPTOP=m
-# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
CONFIG_FUJITSU_TABLET=m
CONFIG_AMILO_RFKILL=m
CONFIG_HP_ACCEL=m
@@ -6763,7 +6873,9 @@ CONFIG_ASUS_NB_WMI=m
CONFIG_EEEPC_WMI=m
CONFIG_ASUS_WIRELESS=m
CONFIG_ACPI_WMI=m
+CONFIG_WMI_BMOF=m
CONFIG_MSI_WMI=m
+CONFIG_PEAQ_WMI=m
CONFIG_TOPSTAR_LAPTOP=m
CONFIG_ACPI_TOSHIBA=m
CONFIG_TOSHIBA_BT_RFKILL=m
@@ -6771,6 +6883,7 @@ CONFIG_TOSHIBA_HAPS=m
CONFIG_TOSHIBA_WMI=m
CONFIG_ACPI_CMPC=m
CONFIG_INTEL_CHT_INT33FE=m
+CONFIG_INTEL_INT0002_VGPIO=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_IPS=m
@@ -6800,6 +6913,7 @@ CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_LPC=m
+# CONFIG_CROS_EC_LPC_MEC is not set
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_KBD_LED_BACKLIGHT=m
CONFIG_CLKDEV_LOOKUP=y
@@ -6815,10 +6929,7 @@ CONFIG_COMMON_CLK=y
# CONFIG_COMMON_CLK_NXP is not set
# CONFIG_COMMON_CLK_PXA is not set
# CONFIG_COMMON_CLK_PIC32 is not set
-
-#
-# Hardware Spinlock drivers
-#
+CONFIG_HWSPINLOCK=m
#
# Clock Source drivers
@@ -6858,21 +6969,29 @@ CONFIG_REMOTEPROC=m
#
# Rpmsg drivers
#
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
#
# SOC (System On Chip) specific Drivers
#
#
+# Amlogic SoC drivers
+#
+
+#
# Broadcom SoC drivers
#
#
# i.MX SoC drivers
#
+
+#
+# Qualcomm SoC drivers
+#
# CONFIG_SUNXI_SRAM is not set
# CONFIG_SOC_TI is not set
-# CONFIG_SOC_ZTE is not set
CONFIG_PM_DEVFREQ=y
#
@@ -6888,7 +7007,7 @@ CONFIG_DEVFREQ_GOV_PASSIVE=m
# DEVFREQ Drivers
#
# CONFIG_PM_DEVFREQ_EVENT is not set
-CONFIG_EXTCON=m
+CONFIG_EXTCON=y
#
# Extcon Device Drivers
@@ -6898,11 +7017,12 @@ CONFIG_EXTCON_ARIZONA=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
CONFIG_EXTCON_INTEL_INT3496=m
+CONFIG_EXTCON_INTEL_CHT_WC=m
CONFIG_EXTCON_MAX3355=m
-CONFIG_EXTCON_QCOM_SPMI_MISC=m
CONFIG_EXTCON_RT8973A=m
CONFIG_EXTCON_SM5502=m
CONFIG_EXTCON_USB_GPIO=m
+CONFIG_EXTCON_USBC_CROS_EC=m
CONFIG_MEMORY=y
CONFIG_IIO=m
CONFIG_IIO_BUFFER=y
@@ -6962,6 +7082,7 @@ CONFIG_AXP288_ADC=m
# CONFIG_HI8435 is not set
# CONFIG_HX711 is not set
# CONFIG_INA2XX_ADC is not set
+# CONFIG_LTC2471 is not set
# CONFIG_LTC2485 is not set
# CONFIG_LTC2497 is not set
# CONFIG_MAX1027 is not set
@@ -6976,7 +7097,9 @@ CONFIG_AXP288_ADC=m
# CONFIG_QCOM_SPMI_VADC is not set
# CONFIG_TI_ADC081C is not set
# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC084S021 is not set
# CONFIG_TI_ADC12138 is not set
+# CONFIG_TI_ADC108S102 is not set
# CONFIG_TI_ADC128S052 is not set
# CONFIG_TI_ADC161S626 is not set
# CONFIG_TI_ADS1015 is not set
@@ -6994,6 +7117,7 @@ CONFIG_AXP288_ADC=m
# Chemical Sensors
#
# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_CCS811 is not set
# CONFIG_IAQCORE is not set
# CONFIG_VZ89X is not set
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
@@ -7128,7 +7252,8 @@ CONFIG_ACPI_ALS=m
# CONFIG_CM36651 is not set
# CONFIG_IIO_CROS_EC_LIGHT_PROX is not set
# CONFIG_GP2AP020A00F is not set
-# CONFIG_SENSORS_ISL29018 is not set
+CONFIG_SENSORS_ISL29018=m
+# CONFIG_SENSORS_ISL29028 is not set
# CONFIG_ISL29125 is not set
CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_PROX=m
@@ -7166,6 +7291,10 @@ CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_SENSORS_HMC5843_SPI is not set
#
+# Multiplexers
+#
+
+#
# Inclinometer sensors
#
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
@@ -7244,13 +7373,14 @@ CONFIG_RESET_CONTROLLER=y
# CONFIG_RESET_ATH79 is not set
# CONFIG_RESET_BERLIN is not set
# CONFIG_RESET_IMX7 is not set
+# CONFIG_RESET_LANTIQ is not set
# CONFIG_RESET_LPC18XX is not set
# CONFIG_RESET_MESON is not set
# CONFIG_RESET_PISTACHIO is not set
# CONFIG_RESET_SOCFPGA is not set
# CONFIG_RESET_STM32 is not set
# CONFIG_RESET_SUNXI is not set
-# CONFIG_TI_SYSCON_RESET is not set
+# CONFIG_RESET_TI_SYSCON is not set
# CONFIG_RESET_ZYNQ is not set
# CONFIG_RESET_TEGRA_BPMP is not set
CONFIG_FMC=m
@@ -7263,9 +7393,10 @@ CONFIG_FMC_CHARDEV=m
# PHY Subsystem
#
CONFIG_GENERIC_PHY=y
+CONFIG_BCM_KONA_USB2_PHY=m
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
-CONFIG_BCM_KONA_USB2_PHY=m
+# CONFIG_PHY_CPCAP_USB is not set
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
# CONFIG_MCB is not set
@@ -7274,7 +7405,6 @@ CONFIG_INTEL_RAPL=m
# Performance monitor support
#
CONFIG_RAS=y
-# CONFIG_MCE_AMD_INJ is not set
CONFIG_RAS_CEC=y
CONFIG_THUNDERBOLT=m
@@ -7294,7 +7424,7 @@ CONFIG_NVDIMM_DAX=y
CONFIG_DAX=m
CONFIG_DEV_DAX=m
CONFIG_DEV_DAX_PMEM=m
-CONFIG_NVMEM=m
+CONFIG_NVMEM=y
CONFIG_STM=m
# CONFIG_STM_DUMMY is not set
CONFIG_STM_SOURCE_CONSOLE=m
@@ -7307,16 +7437,15 @@ CONFIG_INTEL_TH_STH=m
CONFIG_INTEL_TH_MSU=m
CONFIG_INTEL_TH_PTI=m
# CONFIG_INTEL_TH_DEBUG is not set
-
-#
-# FPGA Configuration Support
-#
# CONFIG_FPGA is not set
#
# FSI support
#
CONFIG_FSI=m
+CONFIG_FSI_MASTER_GPIO=m
+CONFIG_FSI_MASTER_HUB=m
+CONFIG_FSI_SCOM=m
#
# Firmware Drivers
@@ -7338,14 +7467,18 @@ CONFIG_FW_CFG_SYSFS=m
#
# EFI (Extensible Firmware Interface) Support
#
-# CONFIG_EFI_VARS is not set
+CONFIG_EFI_VARS=y
CONFIG_EFI_ESRT=y
+CONFIG_EFI_VARS_PSTORE=m
+# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
CONFIG_EFI_RUNTIME_MAP=y
# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_BOOTLOADER_CONTROL=m
CONFIG_EFI_CAPSULE_LOADER=m
# CONFIG_EFI_TEST is not set
CONFIG_APPLE_PROPERTIES=y
+CONFIG_RESET_ATTACK_MITIGATION=y
CONFIG_UEFI_CPER=y
CONFIG_EFI_DEV_PATH_PARSER=y
@@ -7393,7 +7526,7 @@ CONFIG_OCFS2_FS=m
CONFIG_OCFS2_FS_O2CB=m
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
CONFIG_OCFS2_FS_STATS=y
-# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+CONFIG_OCFS2_DEBUG_MASKLOG=y
# CONFIG_OCFS2_DEBUG_FS is not set
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
@@ -7437,6 +7570,7 @@ CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=m
CONFIG_OVERLAY_FS_REDIRECT_DIR=y
+CONFIG_OVERLAY_FS_INDEX=y
#
# Caches
@@ -7534,6 +7668,7 @@ CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
@@ -7616,9 +7751,10 @@ CONFIG_CIFS_UPCALL=y
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_ACL=y
-# CONFIG_CIFS_DEBUG is not set
+CONFIG_CIFS_DEBUG=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DEBUG_DUMP_KEYS is not set
CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_SMB2=y
CONFIG_CIFS_SMB311=y
CONFIG_CIFS_FSCACHE=y
# CONFIG_NCP_FS is not set
@@ -7713,8 +7849,6 @@ CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
CONFIG_STACK_VALIDATION=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
CONFIG_MAGIC_SYSRQ=y
@@ -7754,6 +7888,9 @@ CONFIG_ARCH_HAS_KCOV=y
# Debug Lockups and Hangs
#
CONFIG_LOCKUP_DETECTOR=y
+CONFIG_SOFTLOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR_PERF=y
+CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y
CONFIG_HARDLOCKUP_DETECTOR=y
# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
@@ -7789,6 +7926,7 @@ CONFIG_SCHEDSTATS=y
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_LIST is not set
@@ -7801,7 +7939,6 @@ CONFIG_DEBUG_BUGVERBOSE=y
# RCU Debugging
#
# CONFIG_PROVE_RCU is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_TORTURE_TEST is not set
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
@@ -7863,8 +8000,10 @@ CONFIG_MMIOTRACE=y
# CONFIG_TRACEPOINT_BENCHMARK is not set
CONFIG_RING_BUFFER_BENCHMARK=m
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
-# CONFIG_TRACE_ENUM_MAP_FILE is not set
-# CONFIG_TRACING_EVENTS_GPIO is not set
+# CONFIG_TRACE_EVAL_MAP_FILE is not set
+CONFIG_TRACING_EVENTS_GPIO=y
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_DMA_API_DEBUG is not set
#
# Runtime Testing
@@ -7888,15 +8027,15 @@ CONFIG_TEST_KSTRTOX=m
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_HASH is not set
# CONFIG_TEST_PARMAN is not set
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_DMA_API_DEBUG is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_USER_COPY is not set
# CONFIG_TEST_BPF is not set
# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_SYSCTL is not set
# CONFIG_TEST_UDELAY is not set
-# CONFIG_MEMTEST is not set
# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_MEMTEST is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
@@ -7938,6 +8077,8 @@ CONFIG_OPTIMIZE_INLINING=y
# CONFIG_DEBUG_NMI_SELFTEST is not set
# CONFIG_X86_DEBUG_FPU is not set
# CONFIG_PUNIT_ATOM_DEBUG is not set
+# CONFIG_FRAME_POINTER_UNWINDER is not set
+CONFIG_ORC_UNWINDER=y
#
# Security options
@@ -7945,6 +8086,7 @@ CONFIG_OPTIMIZE_INLINING=y
CONFIG_KEYS=y
CONFIG_KEYS_COMPAT=y
CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_BIG_KEYS=y
CONFIG_TRUSTED_KEYS=m
CONFIG_ENCRYPTED_KEYS=m
CONFIG_KEY_DH_OPERATIONS=y
@@ -7953,10 +8095,12 @@ CONFIG_SECURITY=y
# CONFIG_SECURITY_WRITABLE_HOOKS is not set
CONFIG_SECURITYFS=y
# CONFIG_SECURITY_NETWORK is not set
+CONFIG_SECURITY_INFINIBAND=y
CONFIG_SECURITY_PATH=y
# CONFIG_INTEL_TXT is not set
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
CONFIG_HARDENED_USERCOPY=y
+CONFIG_FORTIFY_SOURCE=y
# CONFIG_STATIC_USERMODEHELPER is not set
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
@@ -7982,15 +8126,15 @@ CONFIG_CRYPTO=y
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=m
+CONFIG_CRYPTO_RNG_DEFAULT=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=m
CONFIG_CRYPTO_KPP2=y
@@ -8003,8 +8147,8 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_WORKQUEUE=y
@@ -8021,16 +8165,16 @@ CONFIG_CRYPTO_ENGINE=m
# Authenticated Encryption with Associated Data
#
CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GCM=y
CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_SEQIV=y
CONFIG_CRYPTO_ECHAINIV=m
#
# Block modes
#
CONFIG_CRYPTO_CBC=m
-CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_LRW=m
@@ -8055,7 +8199,7 @@ CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
-CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_GHASH=y
CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_POLY1305_X86_64=m
CONFIG_CRYPTO_MD4=m
@@ -8133,12 +8277,12 @@ CONFIG_CRYPTO_LZ4HC=m
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=m
+CONFIG_CRYPTO_DRBG_MENU=y
CONFIG_CRYPTO_DRBG_HMAC=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
-CONFIG_CRYPTO_DRBG=m
-CONFIG_CRYPTO_JITTERENTROPY=m
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
CONFIG_CRYPTO_USER_API=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
@@ -8152,6 +8296,7 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set
CONFIG_CRYPTO_DEV_CCP=y
CONFIG_CRYPTO_DEV_CCP_DD=m
+CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_QAT=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
@@ -8160,6 +8305,8 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+CONFIG_CRYPTO_DEV_NITROX=m
+CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_ASYMMETRIC_KEY_TYPE=y
@@ -8227,9 +8374,11 @@ CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
+CONFIG_CRC4=m
CONFIG_CRC7=m
CONFIG_LIBCRC32C=m
CONFIG_CRC8=m
+CONFIG_XXHASH=m
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_842_COMPRESS=m
@@ -8241,6 +8390,8 @@ CONFIG_LZO_DECOMPRESS=y
CONFIG_LZ4_COMPRESS=m
CONFIG_LZ4HC_COMPRESS=m
CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMPRESS=m
+CONFIG_ZSTD_DECOMPRESS=m
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
@@ -8305,6 +8456,7 @@ CONFIG_FONT_AUTOSELECT=y
CONFIG_SG_POOL=y
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_PMEM_API=y
-CONFIG_ARCH_HAS_MMIO_FLUSH=y
+CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
CONFIG_SBITMAP=y
CONFIG_PARMAN=m
+# CONFIG_STRING_SELFTEST is not set
diff --git a/ipts_fw_config.bin b/ipts_fw_config.bin
deleted file mode 100644
index 2522e8f97bc..00000000000
--- a/ipts_fw_config.bin
+++ /dev/null
Binary files differ
diff --git a/mm-Revert-x86_64-and-arm64-ELF_ET_DYN_BASE-base.patch b/mm-Revert-x86_64-and-arm64-ELF_ET_DYN_BASE-base.patch
deleted file mode 100644
index bf089e08adc..00000000000
--- a/mm-Revert-x86_64-and-arm64-ELF_ET_DYN_BASE-base.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h
-index acae781f7359..3288c2b36731 100644
---- a/arch/arm64/include/asm/elf.h
-+++ b/arch/arm64/include/asm/elf.h
-@@ -114,10 +114,10 @@
-
- /*
- * This is the base location for PIE (ET_DYN with INTERP) loads. On
-- * 64-bit, this is raised to 4GB to leave the entire 32-bit address
-+ * 64-bit, this is above 4GB to leave the entire 32-bit address
- * space open for things that want to use the area for 32-bit pointers.
- */
--#define ELF_ET_DYN_BASE 0x100000000UL
-+#define ELF_ET_DYN_BASE (2 * TASK_SIZE_64 / 3)
-
- #ifndef __ASSEMBLY__
-
-diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
-index 1c18d83d3f09..9aeb91935ce0 100644
---- a/arch/x86/include/asm/elf.h
-+++ b/arch/x86/include/asm/elf.h
-@@ -247,11 +247,11 @@ extern int force_personality32;
-
- /*
- * This is the base location for PIE (ET_DYN with INTERP) loads. On
-- * 64-bit, this is raised to 4GB to leave the entire 32-bit address
-+ * 64-bit, this is above 4GB to leave the entire 32-bit address
- * space open for things that want to use the area for 32-bit pointers.
- */
- #define ELF_ET_DYN_BASE (mmap_is_ia32() ? 0x000400000UL : \
-- 0x100000000UL)
-+ (TASK_SIZE / 3 * 2))
-
- /* This yields a mask that user programs can use to figure out what
- instruction set this CPU supports. This could be done in user space,