summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2019-02-12 23:26:22 +0100
committerThorsten Leemhuis <fedora@leemhuis.info>2019-02-12 23:26:22 +0100
commit2bd905ca3f989c638cc1006d0d7b36d51c36fc78 (patch)
tree4c33214710e5496a83a81e5f194d0de6e50d33d7
parentaf9193624cf0e07c6c671f94c5995e193cb7f327 (diff)
parent9a04caa115e4adc84dbbc6996c66aa7e67455b51 (diff)
downloadkernel-2bd905ca3f989c638cc1006d0d7b36d51c36fc78.tar.gz
kernel-2bd905ca3f989c638cc1006d0d7b36d51c36fc78.tar.xz
kernel-2bd905ca3f989c638cc1006d0d7b36d51c36fc78.zip
Merge remote-tracking branch 'origin/f29' into f29-user-thl-vanilla-fedora
-rw-r--r--.gitignore3
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_8457191
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARMV8_DEPRECATED1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_COMPAT2
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_CP15_BARRIER_EMULATION1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_DEBUG_WX1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_SETEND_EMULATION1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_SWP_EMULATION1
-rw-r--r--drm-enable-uncached-DMA-optimization-for-ARM-and-arm64.patch196
-rw-r--r--kernel-aarch64-debug.config7
-rw-r--r--kernel-aarch64.config7
-rw-r--r--kernel.spec9
-rw-r--r--wlcore-sdio-Fixup-power-on-off-sequence.patch161
13 files changed, 386 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 0139918a6..2b65c79ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,10 +1,11 @@
clog
*.xz
*.bz2
+*.gz
*.rpm
*.orig
*.sign
-kernel-[234].*/
+kernel-[45].*/
perf-man-*.tar.gz
kernel-headers/
kernel-tools/
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_845719 b/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_845719
new file mode 100644
index 000000000..c223b74d7
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_845719
@@ -0,0 +1 @@
+CONFIG_ARM64_ERRATUM_845719=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARMV8_DEPRECATED b/configs/fedora/generic/arm/aarch64/CONFIG_ARMV8_DEPRECATED
new file mode 100644
index 000000000..7ebf3c87e
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_ARMV8_DEPRECATED
@@ -0,0 +1 @@
+CONFIG_ARMV8_DEPRECATED=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_COMPAT b/configs/fedora/generic/arm/aarch64/CONFIG_COMPAT
index 3e041f1b6..9b072bae7 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_COMPAT
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_COMPAT
@@ -1 +1 @@
-# CONFIG_COMPAT is not set
+CONFIG_COMPAT=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_CP15_BARRIER_EMULATION b/configs/fedora/generic/arm/aarch64/CONFIG_CP15_BARRIER_EMULATION
new file mode 100644
index 000000000..e084b1441
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_CP15_BARRIER_EMULATION
@@ -0,0 +1 @@
+CONFIG_CP15_BARRIER_EMULATION=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_DEBUG_WX b/configs/fedora/generic/arm/aarch64/CONFIG_DEBUG_WX
deleted file mode 100644
index 95e08f44b..000000000
--- a/configs/fedora/generic/arm/aarch64/CONFIG_DEBUG_WX
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DEBUG_WX=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_SETEND_EMULATION b/configs/fedora/generic/arm/aarch64/CONFIG_SETEND_EMULATION
new file mode 100644
index 000000000..73fd5c40b
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_SETEND_EMULATION
@@ -0,0 +1 @@
+CONFIG_SETEND_EMULATION=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_SWP_EMULATION b/configs/fedora/generic/arm/aarch64/CONFIG_SWP_EMULATION
new file mode 100644
index 000000000..a99b5006f
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_SWP_EMULATION
@@ -0,0 +1 @@
+CONFIG_SWP_EMULATION=y
diff --git a/drm-enable-uncached-DMA-optimization-for-ARM-and-arm64.patch b/drm-enable-uncached-DMA-optimization-for-ARM-and-arm64.patch
new file mode 100644
index 000000000..5e151ce57
--- /dev/null
+++ b/drm-enable-uncached-DMA-optimization-for-ARM-and-arm64.patch
@@ -0,0 +1,196 @@
+From patchwork Thu Jan 24 12:06:58 2019
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+X-Patchwork-Id: 10778815
+Return-Path:
+ <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+ by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B27A191E
+ for <patchwork-linux-arm@patchwork.kernel.org>;
+ Thu, 24 Jan 2019 12:07:20 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+ by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DFBE72EC6C
+ for <patchwork-linux-arm@patchwork.kernel.org>;
+ Thu, 24 Jan 2019 12:07:17 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+ id D30BC2ECE2; Thu, 24 Jan 2019 12:07:17 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ pdx-wl-mail.web.codeaurora.org
+X-Spam-Level:
+X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1
+Received: from bombadil.infradead.org (bombadil.infradead.org
+ [198.137.202.133])
+ (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits))
+ (No client certificate requested)
+ by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C03122EC6C
+ for <patchwork-linux-arm@patchwork.kernel.org>;
+ Thu, 24 Jan 2019 12:07:16 +0000 (UTC)
+DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
+ d=lists.infradead.org; s=bombadil.20170209; h=Sender:
+ Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:
+ List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To
+ :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:
+ Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:
+ List-Owner; bh=xo5AgoUtS0FBdf9ZXAO75L7eu+GEGqebznBMcwnNXS0=; b=EUK2XskaTLLGNd
+ PLBm/AVgfZr2j3GzaOOAh6rJqVHuQ4k98saArkFu8aSFtVkvkSPF3PKCDKnV+7mZibl17Kqiup2Cv
+ HsRzfxwZzeksoNjDcZMYK82pttYA+iizpIYq16Wp+SXMzm6HRuku9XhW7tygG9zNr+cUVzaN6QU6b
+ mO5CAPgeGsluExNwC+4i4fRNqtN4z7rTMPuHkZ6jSy6tTy/OyKUApjhrgphDWEjtelAKeqn8Jwg+i
+ YnZQMi8l6B4Ffn7IlU2wHVKU7/yk9hO46AC+uKKYTV5RmcC0xFqKNK0TnBQzum5FdK2/h7h/3f0CA
+ GflIczkPfOItaFoJvs3g==;
+Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
+ by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux))
+ id 1gmdmr-0000p2-1K; Thu, 24 Jan 2019 12:07:13 +0000
+Received: from mail-wm1-x341.google.com ([2a00:1450:4864:20::341])
+ by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux))
+ id 1gmdmm-0000oP-Sk
+ for linux-arm-kernel@lists.infradead.org; Thu, 24 Jan 2019 12:07:11 +0000
+Received: by mail-wm1-x341.google.com with SMTP id b11so2875125wmj.1
+ for <linux-arm-kernel@lists.infradead.org>;
+ Thu, 24 Jan 2019 04:07:07 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;
+ h=from:to:cc:subject:date:message-id:mime-version
+ :content-transfer-encoding;
+ bh=GsPSU83pbk1uWSobF359Hmb25tSiPCSXYSiAdhiX2K0=;
+ b=MVHv9eioSsA83BVb2J9fi21oGdNAhe8L5mYX67nd+XBNW59IxbYWyPCjLtaUXXFxQx
+ C8eDCimc2jtV5LiHYUHkJKhoQYN40/4u2K6EOoUunE10yy3C+J6aGY9JX5gh7mgstcNp
+ Dvdm9CHYXs35/N3s4bzP1fUHVnLbpVKVammw0=
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20161025;
+ h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
+ :content-transfer-encoding;
+ bh=GsPSU83pbk1uWSobF359Hmb25tSiPCSXYSiAdhiX2K0=;
+ b=DtNKUeOnwDAjpgolmP7hnQugxkX3XqgSxg6WUAlVeQyxIk+8QlEAWLNFtKPL57EnLP
+ G9R1qiTnF1TI4PM8DFH+URNkVNcI9hvhGKtO4fya+BjPd6dqPJVwct1+KZWM8lTJfDX+
+ pMKL1ZiDeYMlHAMkd2CfCckaEptq5FjtvwJ8pyPbdN5qNxVJ6CEPIl9HORWWMuwrsxaj
+ xo5MK/UpOqhomOXRe5WxGor2JPNit68hT1PvHQwqNXCoRRTtCUANoV7s1nJ2Ad+pkhV7
+ FW5IV/JnVetKbeCIhe2I/m6VlJ+6x3wPOpiWN/Fd8z5tYX0zI0vjKqdjdfr/QJCNF69Z
+ +cuw==
+X-Gm-Message-State: AJcUukcCDAeH11orvgS33hS4OKLhp1Vglp0ChrGS5Ol91KaBPDqURaLX
+ WKQRIEAwB4phU3pS/I/nkTBzdQ==
+X-Google-Smtp-Source:
+ ALg8bN55gm82WRKfoWS5g8dy3rATbR8W4MaKwupN1EALKBkI9t9KdMSE60V2HSnI4wy7yU44++cGoA==
+X-Received: by 2002:a1c:bdc5:: with SMTP id n188mr2530824wmf.69.1548331626262;
+ Thu, 24 Jan 2019 04:07:06 -0800 (PST)
+Received: from localhost.localdomain
+ (laubervilliers-657-1-83-120.w92-154.abo.wanadoo.fr. [92.154.90.120])
+ by smtp.gmail.com with ESMTPSA id t12sm98842348wrr.65.2019.01.24.04.07.04
+ (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
+ Thu, 24 Jan 2019 04:07:05 -0800 (PST)
+From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+To: linux-kernel@vger.kernel.org
+Subject: [PATCH] drm: enable uncached DMA optimization for ARM and arm64
+Date: Thu, 24 Jan 2019 13:06:58 +0100
+Message-Id: <20190124120658.30288-1-ard.biesheuvel@linaro.org>
+X-Mailer: git-send-email 2.20.1
+MIME-Version: 1.0
+X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
+X-CRM114-CacheID: sfid-20190124_040708_952827_D4810358
+X-CRM114-Status: GOOD ( 13.64 )
+X-BeenThere: linux-arm-kernel@lists.infradead.org
+X-Mailman-Version: 2.1.21
+Precedence: list
+List-Id: <linux-arm-kernel.lists.infradead.org>
+List-Unsubscribe:
+ <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
+ <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
+List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
+List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
+List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
+List-Subscribe:
+ <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
+ <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
+Cc: David Zhou <David1.Zhou@amd.com>,
+ Maxime Ripard <maxime.ripard@bootlin.com>,
+ Benjamin Herrenschmidt <benh@kernel.crashing.org>,
+ Carsten Haitzler <Carsten.Haitzler@arm.com>,
+ Ard Biesheuvel <ard.biesheuvel@linaro.org>, David Airlie <airlied@linux.ie>,
+ Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
+ dri-devel <dri-devel@lists.freedesktop.org>,
+ Michel Daenzer <michel.daenzer@amd.com>, Robin Murphy <robin.murphy@arm.com>,
+ Will Deacon <will.deacon@arm.com>, Christoph Hellwig <hch@infradead.org>,
+ Junwei Zhang <Jerry.Zhang@amd.com>, Huang Rui <ray.huang@amd.com>,
+ amd-gfx list <amd-gfx@lists.freedesktop.org>,
+ Daniel Vetter <daniel@ffwll.ch>,
+ Michael Ellerman <mpe@ellerman.id.au>,
+ Alex Deucher <alexander.deucher@amd.com>, Sean Paul <sean@poorly.run>,
+ Christian Koenig <christian.koenig@amd.com>,
+ linux-arm-kernel@lists.infradead.org
+Content-Type: text/plain; charset="us-ascii"
+Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
+Errors-To:
+ linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+The DRM driver stack is designed to work with cache coherent devices
+only, but permits an optimization to be enabled in some cases, where
+for some buffers, both the CPU and the GPU use uncached mappings,
+removing the need for DMA snooping and allocation in the CPU caches.
+
+The use of uncached GPU mappings relies on the correct implementation
+of the PCIe NoSnoop TLP attribute by the platform, otherwise the GPU
+will use cached mappings nonetheless. On x86 platforms, this does not
+seem to matter, as uncached CPU mappings will snoop the caches in any
+case. However, on ARM and arm64, enabling this optimization on a
+platform where NoSnoop is ignored results in loss of coherency, which
+breaks correct operation of the device. Since we have no way of
+detecting whether NoSnoop works or not, just disable this
+optimization entirely for ARM and arm64.
+
+Cc: Christian Koenig <christian.koenig@amd.com>
+Cc: Alex Deucher <alexander.deucher@amd.com>
+Cc: David Zhou <David1.Zhou@amd.com>
+Cc: Huang Rui <ray.huang@amd.com>
+Cc: Junwei Zhang <Jerry.Zhang@amd.com>
+Cc: Michel Daenzer <michel.daenzer@amd.com>
+Cc: David Airlie <airlied@linux.ie>
+Cc: Daniel Vetter <daniel@ffwll.ch>
+Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
+Cc: Maxime Ripard <maxime.ripard@bootlin.com>
+Cc: Sean Paul <sean@poorly.run>
+Cc: Michael Ellerman <mpe@ellerman.id.au>
+Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Cc: Will Deacon <will.deacon@arm.com>
+Cc: Christoph Hellwig <hch@infradead.org>
+Cc: Robin Murphy <robin.murphy@arm.com>
+Cc: amd-gfx list <amd-gfx@lists.freedesktop.org>
+Cc: dri-devel <dri-devel@lists.freedesktop.org>
+Reported-by: Carsten Haitzler <Carsten.Haitzler@arm.com>
+Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ include/drm/drm_cache.h | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/include/drm/drm_cache.h b/include/drm/drm_cache.h
+index bfe1639df02d..97fc498dc767 100644
+--- a/include/drm/drm_cache.h
++++ b/include/drm/drm_cache.h
+@@ -47,6 +47,24 @@ static inline bool drm_arch_can_wc_memory(void)
+ return false;
+ #elif defined(CONFIG_MIPS) && defined(CONFIG_CPU_LOONGSON3)
+ return false;
++#elif defined(CONFIG_ARM) || defined(CONFIG_ARM64)
++ /*
++ * The DRM driver stack is designed to work with cache coherent devices
++ * only, but permits an optimization to be enabled in some cases, where
++ * for some buffers, both the CPU and the GPU use uncached mappings,
++ * removing the need for DMA snooping and allocation in the CPU caches.
++ *
++ * The use of uncached GPU mappings relies on the correct implementation
++ * of the PCIe NoSnoop TLP attribute by the platform, otherwise the GPU
++ * will use cached mappings nonetheless. On x86 platforms, this does not
++ * seem to matter, as uncached CPU mappings will snoop the caches in any
++ * case. However, on ARM and arm64, enabling this optimization on a
++ * platform where NoSnoop is ignored results in loss of coherency, which
++ * breaks correct operation of the device. Since we have no way of
++ * detecting whether NoSnoop works or not, just disable this
++ * optimization entirely for ARM and arm64.
++ */
++ return false;
+ #else
+ return true;
+ #endif
diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config
index 7affa7000..6274f1801 100644
--- a/kernel-aarch64-debug.config
+++ b/kernel-aarch64-debug.config
@@ -292,6 +292,7 @@ CONFIG_ARM64_ERRATUM_827319=y
CONFIG_ARM64_ERRATUM_832075=y
CONFIG_ARM64_ERRATUM_834220=y
CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_845719=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
@@ -360,6 +361,7 @@ CONFIG_ARM_TEGRA186_CPUFREQ=m
# CONFIG_ARM_TEGRA20_CPUFREQ is not set
CONFIG_ARM_TEGRA_DEVFREQ=m
CONFIG_ARM_TIMER_SP804=y
+CONFIG_ARMV8_DEPRECATED=y
# CONFIG_AS3935 is not set
# CONFIG_ASIX_PHY is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
@@ -993,7 +995,7 @@ CONFIG_COMMON_CLK_ZYNQMP=y
CONFIG_COMMON_RESET_HI6220=m
CONFIG_COMPACTION=y
# CONFIG_COMPAT_BRK is not set
-# CONFIG_COMPAT is not set
+CONFIG_COMPAT=y
# CONFIG_COMPILE_TEST is not set
CONFIG_CONFIGFS_FS=y
CONFIG_CONNECTOR=y
@@ -1005,6 +1007,7 @@ CONFIG_CORDIC=m
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
# CONFIG_CORESIGHT is not set
CONFIG_CORTINA_PHY=m
+CONFIG_CP15_BARRIER_EMULATION=y
# CONFIG_CPU5_WDT is not set
# CONFIG_CPU_BIG_ENDIAN is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
@@ -5417,6 +5420,7 @@ CONFIG_SERIO_RAW=m
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_SUN4I_PS2 is not set
CONFIG_SERIO=y
+CONFIG_SETEND_EMULATION=y
CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
@@ -5983,6 +5987,7 @@ CONFIG_SUNXI_WATCHDOG=m
# CONFIG_SURFACE_3_BUTTON is not set
CONFIG_SUSPEND=y
CONFIG_SWAP=y
+CONFIG_SWP_EMULATION=y
# CONFIG_SW_SYNC is not set
# CONFIG_SX9500 is not set
CONFIG_SYNC_FILE=y
diff --git a/kernel-aarch64.config b/kernel-aarch64.config
index 25f04384a..f5e9a66dc 100644
--- a/kernel-aarch64.config
+++ b/kernel-aarch64.config
@@ -292,6 +292,7 @@ CONFIG_ARM64_ERRATUM_827319=y
CONFIG_ARM64_ERRATUM_832075=y
CONFIG_ARM64_ERRATUM_834220=y
CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_845719=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
@@ -360,6 +361,7 @@ CONFIG_ARM_TEGRA186_CPUFREQ=m
# CONFIG_ARM_TEGRA20_CPUFREQ is not set
CONFIG_ARM_TEGRA_DEVFREQ=m
CONFIG_ARM_TIMER_SP804=y
+CONFIG_ARMV8_DEPRECATED=y
# CONFIG_AS3935 is not set
# CONFIG_ASIX_PHY is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
@@ -993,7 +995,7 @@ CONFIG_COMMON_CLK_ZYNQMP=y
CONFIG_COMMON_RESET_HI6220=m
CONFIG_COMPACTION=y
# CONFIG_COMPAT_BRK is not set
-# CONFIG_COMPAT is not set
+CONFIG_COMPAT=y
# CONFIG_COMPILE_TEST is not set
CONFIG_CONFIGFS_FS=y
CONFIG_CONNECTOR=y
@@ -1005,6 +1007,7 @@ CONFIG_CORDIC=m
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
# CONFIG_CORESIGHT is not set
CONFIG_CORTINA_PHY=m
+CONFIG_CP15_BARRIER_EMULATION=y
# CONFIG_CPU5_WDT is not set
# CONFIG_CPU_BIG_ENDIAN is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
@@ -5395,6 +5398,7 @@ CONFIG_SERIO_RAW=m
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_SUN4I_PS2 is not set
CONFIG_SERIO=y
+CONFIG_SETEND_EMULATION=y
CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
@@ -5960,6 +5964,7 @@ CONFIG_SUNXI_WATCHDOG=m
# CONFIG_SURFACE_3_BUTTON is not set
CONFIG_SUSPEND=y
CONFIG_SWAP=y
+CONFIG_SWP_EMULATION=y
# CONFIG_SW_SYNC is not set
# CONFIG_SX9500 is not set
CONFIG_SYNC_FILE=y
diff --git a/kernel.spec b/kernel.spec
index 0b598d297..d64fc9e9b 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -594,6 +594,12 @@ Patch305: qcom-msm89xx-fixes.patch
# https://patchwork.kernel.org/project/linux-mmc/list/?submitter=71861
Patch306: arm-sdhci-esdhc-imx-fixes.patch
+# https://patchwork.kernel.org/patch/10765783/
+Patch307: wlcore-sdio-Fixup-power-on-off-sequence.patch
+
+# https://patchwork.kernel.org/patch/10778815/
+Patch308: drm-enable-uncached-DMA-optimization-for-ARM-and-arm64.patch
+
# https://patchwork.kernel.org/patch/10686407/
Patch331: raspberrypi-Fix-firmware-calls-with-large-buffers.patch
@@ -1918,6 +1924,9 @@ fi
#
#
%changelog
+* Mon Feb 11 2019 Peter Robinson <pbrobinson@fedoraproject.org>
+- Minor Arm fixes and enhancements
+
* Wed Feb 06 2019 Justin M. Forbes <jforbes@fedoraproject.org> - 4.20.7-200
- Linux v4.20.7
diff --git a/wlcore-sdio-Fixup-power-on-off-sequence.patch b/wlcore-sdio-Fixup-power-on-off-sequence.patch
new file mode 100644
index 000000000..6b42a5fec
--- /dev/null
+++ b/wlcore-sdio-Fixup-power-on-off-sequence.patch
@@ -0,0 +1,161 @@
+From patchwork Wed Jan 16 11:37:23 2019
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Ulf Hansson <ulf.hansson@linaro.org>
+X-Patchwork-Id: 10765783
+Return-Path: <linux-omap-owner@kernel.org>
+Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org
+ [172.30.200.125])
+ by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 956256C2
+ for <patchwork-linux-omap@patchwork.kernel.org>;
+ Wed, 16 Jan 2019 11:37:39 +0000 (UTC)
+Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1])
+ by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 860D62D08C
+ for <patchwork-linux-omap@patchwork.kernel.org>;
+ Wed, 16 Jan 2019 11:37:39 +0000 (UTC)
+Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486)
+ id 7A4732DBF8; Wed, 16 Jan 2019 11:37:39 +0000 (UTC)
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ pdx-wl-mail.web.codeaurora.org
+X-Spam-Level:
+X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED,
+ DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI
+ autolearn=unavailable version=3.3.1
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+ by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 86DFA2D579
+ for <patchwork-linux-omap@patchwork.kernel.org>;
+ Wed, 16 Jan 2019 11:37:37 +0000 (UTC)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S2389465AbfAPLhg (ORCPT
+ <rfc822;patchwork-linux-omap@patchwork.kernel.org>);
+ Wed, 16 Jan 2019 06:37:36 -0500
+Received: from mail-lj1-f195.google.com ([209.85.208.195]:46058 "EHLO
+ mail-lj1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S2389488AbfAPLhg (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Wed, 16 Jan 2019 06:37:36 -0500
+Received: by mail-lj1-f195.google.com with SMTP id s5-v6so5113775ljd.12
+ for <linux-omap@vger.kernel.org>;
+ Wed, 16 Jan 2019 03:37:34 -0800 (PST)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=linaro.org; s=google;
+ h=from:to:cc:subject:date:message-id;
+ bh=G4uWfUBdfRWJ7ooa2ukqyMzWYVfm+tWSAZRULgvNQ08=;
+ b=DqdSNsfGTw5APfw140m3LimoqimPBt+dTkOxqu/2bQyXk7S9f23O7PxiN3oFynlZKr
+ SASxPUZ8sG4xbfOK9h8FHLlWWFpRIZSahu+mE0EseqtvBLV4sdCnBwOS8M3gko6ngb7C
+ i176BhDXn0+wm8tZGD3yN7Qp96KnQZ3Sv/tjk=
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20161025;
+ h=x-gm-message-state:from:to:cc:subject:date:message-id;
+ bh=G4uWfUBdfRWJ7ooa2ukqyMzWYVfm+tWSAZRULgvNQ08=;
+ b=a7MooeHuGM0cTZPVwhtKcW1jg4pqdeIMk6f7/zUrRv+SoOb7Vnw9KEGP3KU5lDSMo5
+ fdJcqriPtpflqlW2b23HNJ2gVIYbySV3bmkiu2AKTwNWCFTkIS2ortWV4MES6WsAsR7G
+ SJBjNOxj2qAxl8qauqOq0X2TNOhKQXtXsfOZ+d5pkSB1+/BBEcxtWLRHwsnMQW5GjawC
+ DICSSEnG7V41Nz/GwJN/YMZ5mDDoTgm5E0w5FUpgIsWkaZ3EwXNfATg7MrYDRaaP8D+y
+ Bc3D5LBTeGf5Ka2znrkAwm5UNG0ACbfhyC051z0Pt/8c0dPIdccFOYiaQId02Kxg6z3K
+ O1Tw==
+X-Gm-Message-State: AJcUukfOVkWnN7bzdpLCd5T4eBBp4b+eeSeNmP9oASomJxjWdmE2FFn/
+ FXErvZDhVCsQSfNn/eJnmK5Zq0rkuSY=
+X-Google-Smtp-Source:
+ ALg8bN4GExvNSUhrn1ThdHo4TWGq9deM7EiNDhwBHUXk+6BhziaXs9EaV54O4+YG3vKLHV5hZLkJyg==
+X-Received: by 2002:a2e:6503:: with SMTP id
+ z3-v6mr6194730ljb.153.1547638653812;
+ Wed, 16 Jan 2019 03:37:33 -0800 (PST)
+Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se.
+ [158.174.22.210])
+ by smtp.gmail.com with ESMTPSA id
+ f11sm1144237lfi.12.2019.01.16.03.37.32
+ (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
+ Wed, 16 Jan 2019 03:37:33 -0800 (PST)
+From: Ulf Hansson <ulf.hansson@linaro.org>
+To: Kalle Valo <kvalo@codeaurora.org>,
+ Tony Lindgren <tony@atomide.com>, Eyal Reizer <eyalr@ti.com>,
+ linux-wireless@vger.kernel.org
+Cc: Ricardo Salveti <rsalveti@rsalveti.net>,
+ Kishon Vijay Abraham I <kishon@ti.com>,
+ Anders Roxell <anders.roxell@linaro.org>,
+ John Stultz <john.stultz@linaro.org>,
+ Jan Kiszka <jan.kiszka@web.de>,
+ Ulf Hansson <ulf.hansson@linaro.org>,
+ linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org
+Subject: [PATCH V2] wlcore: sdio: Fixup power on/off sequence
+Date: Wed, 16 Jan 2019 12:37:23 +0100
+Message-Id: <20190116113723.15668-1-ulf.hansson@linaro.org>
+X-Mailer: git-send-email 2.17.1
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+X-Virus-Scanned: ClamAV using ClamSMTP
+
+During "wlan-up", we are programming the FW into the WiFi-chip. However,
+re-programming the FW doesn't work, unless a power cycle of the WiFi-chip
+is made in-between the programmings.
+
+To conform to this requirement and to fix the regression in a simple way,
+let's start by allowing that the SDIO card (WiFi-chip) may stay powered on
+(runtime resumed) when wl12xx_sdio_power_off() returns. The intent with the
+current code is to treat this scenario as an error, but unfortunate this
+doesn't work as expected, so let's fix this.
+
+The other part is to guarantee that a power cycle of the SDIO card has been
+completed when wl12xx_sdio_power_on() returns, as to allow the FW
+programming to succeed. However, relying solely on runtime PM to deal with
+this isn't sufficient. For example, userspace may prevent runtime suspend
+via sysfs for the device that represents the SDIO card, leading to that the
+mmc core also keeps it powered on. For this reason, let's instead do a
+brute force power cycle in wl12xx_sdio_power_on().
+
+Fixes: 728a9dc61f13 ("wlcore: sdio: Fix flakey SDIO runtime PM handling")
+Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
+Tested-by: Tony Lindgren <tony@atomide.com>
+Tested-by: Anders Roxell <anders.roxell@linaro.org>
+Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
+---
+
+Changes in v2:
+ - Keep the SDIO host claimed when calling mmc_hw_reset().
+ - Add a fixes tag.
+---
+ drivers/net/wireless/ti/wlcore/sdio.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/net/wireless/ti/wlcore/sdio.c b/drivers/net/wireless/ti/wlcore/sdio.c
+index bd10165d7eec..4d4b07701149 100644
+--- a/drivers/net/wireless/ti/wlcore/sdio.c
++++ b/drivers/net/wireless/ti/wlcore/sdio.c
+@@ -164,6 +164,12 @@ static int wl12xx_sdio_power_on(struct wl12xx_sdio_glue *glue)
+ }
+
+ sdio_claim_host(func);
++ /*
++ * To guarantee that the SDIO card is power cycled, as required to make
++ * the FW programming to succeed, let's do a brute force HW reset.
++ */
++ mmc_hw_reset(card->host);
++
+ sdio_enable_func(func);
+ sdio_release_host(func);
+
+@@ -174,20 +180,13 @@ static int wl12xx_sdio_power_off(struct wl12xx_sdio_glue *glue)
+ {
+ struct sdio_func *func = dev_to_sdio_func(glue->dev);
+ struct mmc_card *card = func->card;
+- int error;
+
+ sdio_claim_host(func);
+ sdio_disable_func(func);
+ sdio_release_host(func);
+
+ /* Let runtime PM know the card is powered off */
+- error = pm_runtime_put(&card->dev);
+- if (error < 0 && error != -EBUSY) {
+- dev_err(&card->dev, "%s failed: %i\n", __func__, error);
+-
+- return error;
+- }
+-
++ pm_runtime_put(&card->dev);
+ return 0;
+ }
+