summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2018-06-30 07:08:46 +0200
committerThorsten Leemhuis <fedora@leemhuis.info>2018-06-30 07:08:46 +0200
commitf851b67e69f31af400722b792d894e4de688b1f0 (patch)
treedfda09d0bd5d93fceaeeef923ece9d5faf4745f5
parent1c4acaf04c752745dfc681225773153fdeda2bc8 (diff)
parent15b3057cc9f89df86ecd48dc2a3451c2b7619e49 (diff)
downloadkernel-f851b67e69f31af400722b792d894e4de688b1f0.tar.gz
kernel-f851b67e69f31af400722b792d894e4de688b1f0.tar.xz
kernel-f851b67e69f31af400722b792d894e4de688b1f0.zip
-rw-r--r--arm-clk-bcm2835-hdmi-fixes.patch56
-rw-r--r--arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch41
-rw-r--r--arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch100
-rw-r--r--arm-sdhci-esdhc-imx-fixes.patch238
-rw-r--r--arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch41
-rw-r--r--bcm283x-clk-audio-fixes.patch55
-rw-r--r--gitrev2
-rw-r--r--kernel.spec22
-rw-r--r--sources2
9 files changed, 253 insertions, 304 deletions
diff --git a/arm-clk-bcm2835-hdmi-fixes.patch b/arm-clk-bcm2835-hdmi-fixes.patch
deleted file mode 100644
index ae76f39cb..000000000
--- a/arm-clk-bcm2835-hdmi-fixes.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From patchwork Thu Feb 8 13:43:37 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [3/4] clk: bcm2835: De-assert/assert PLL reset signal when appropriate
-From: Boris Brezillon <boris.brezillon@bootlin.com>
-X-Patchwork-Id: 10207157
-Message-Id: <20180208134338.24590-3-boris.brezillon@bootlin.com>
-To: Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>,
- Scott Branden <sbranden@broadcom.com>,
- bcm-kernel-feedback-list@broadcom.com,
- Stephen Warren <swarren@wwwdotorg.org>,
- Lee Jones <lee@kernel.org>, Eric Anholt <eric@anholt.net>,
- linux-rpi-kernel@lists.infradead.org,
- Mike Turquette <mturquette@baylibre.com>,
- Stephen Boyd <sboyd@codeaurora.org>, linux-clk@vger.kernel.org
-Cc: Boris Brezillon <boris.brezillon@bootlin.com>, stable@vger.kernel.org
-Date: Thu, 8 Feb 2018 14:43:37 +0100
-
-In order to enable a PLL, not only the PLL has to be powered up and
-locked, but you also have to de-assert the reset signal. The last part
-was missing. Add it so PLLs that were not enabled by the FW/bootloader
-can be enabled from Linux.
-
-Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
----
- drivers/clk/bcm/clk-bcm2835.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index a07f6451694a..6c5d4a8e426c 100644
---- a/drivers/clk/bcm/clk-bcm2835.c
-+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -602,6 +602,9 @@ static void bcm2835_pll_off(struct clk_hw *hw)
- const struct bcm2835_pll_data *data = pll->data;
-
- spin_lock(&cprman->regs_lock);
-+ cprman_write(cprman, data->a2w_ctrl_reg,
-+ cprman_read(cprman, data->a2w_ctrl_reg) &
-+ ~A2W_PLL_CTRL_PRST_DISABLE);
- cprman_write(cprman, data->cm_ctrl_reg,
- cprman_read(cprman, data->cm_ctrl_reg) |
- CM_PLL_ANARST);
-@@ -640,6 +643,10 @@ static int bcm2835_pll_on(struct clk_hw *hw)
- cpu_relax();
- }
-
-+ cprman_write(cprman, data->a2w_ctrl_reg,
-+ cprman_read(cprman, data->a2w_ctrl_reg) |
-+ A2W_PLL_CTRL_PRST_DISABLE);
-+
- return 0;
- }
-
diff --git a/arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch b/arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch
deleted file mode 100644
index 1100a148a..000000000
--- a/arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From patchwork Thu Jan 18 12:34:18 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: ARM: dts: imx6qdl-udoo: Disable usbh1 to avoid kernel hang
-From: Fabio Estevam <fabio.estevam@nxp.com>
-X-Patchwork-Id: 10173115
-Message-Id: <1516278858-15464-1-git-send-email-fabio.estevam@nxp.com>
-To: <shawnguo@kernel.org>
-Cc: maggu2810@gmail.com, peter.chen@nxp.com, mail@maciej.szmigiero.name,
- Fabio Estevam <fabio.estevam@nxp.com>, linux-arm-kernel@lists.infradead.org
-Date: Thu, 18 Jan 2018 10:34:18 -0200
-
-Currently the kernel hangs when USB Host1 is enabled due to the lack of
-support for controlling the USB hub clock and GPIO reset line.
-
-Peter Chen has made several attempts to fix this problem, but his series
-has not been applied yet, so better disable USB host1 for now to avoid
-the kernel hang.
-
-Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
-Acked-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
-Tested-by: Markus Rathgeb <maggu2810@gmail.com>
----
- arch/arm/boot/dts/imx6qdl-udoo.dtsi | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/imx6qdl-udoo.dtsi b/arch/arm/boot/dts/imx6qdl-udoo.dtsi
-index 4161b7d..1f0b9f6 100644
---- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi
-+++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi
-@@ -274,7 +274,8 @@
- pinctrl-0 = <&pinctrl_usbh>;
- vbus-supply = <&reg_usb_h1_vbus>;
- clocks = <&clks IMX6QDL_CLK_CKO>;
-- status = "okay";
-+ /* currently USB support causes a kernel hang. Disable it for now */
-+ status = "disabled";
- };
-
- &usdhc3 {
diff --git a/arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch b/arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch
deleted file mode 100644
index b55dec0cb..000000000
--- a/arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From bb3e08008c0e48fd4f51a0f0957eecae61a24d69 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Tue, 1 Nov 2016 09:35:30 +0000
-Subject: [PATCH] Revert "mmc: omap_hsmmc: Use dma_request_chan() for
- requesting DMA channel"
-
-This reverts commit 81eef6ca92014845d40e3f1310e42b7010303acc.
----
- drivers/mmc/host/omap_hsmmc.c | 50 ++++++++++++++++++++++++++++++++++---------
- 1 file changed, 40 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
-index 24ebc9a..3563321 100644
---- a/drivers/mmc/host/omap_hsmmc.c
-+++ b/drivers/mmc/host/omap_hsmmc.c
-@@ -32,6 +32,7 @@
- #include <linux/of_irq.h>
- #include <linux/of_gpio.h>
- #include <linux/of_device.h>
-+#include <linux/omap-dmaengine.h>
- #include <linux/mmc/host.h>
- #include <linux/mmc/core.h>
- #include <linux/mmc/mmc.h>
-@@ -1992,6 +1993,8 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
- struct resource *res;
- int ret, irq;
- const struct of_device_id *match;
-+ dma_cap_mask_t mask;
-+ unsigned tx_req, rx_req;
- const struct omap_mmc_of_data *data;
- void __iomem *base;
-
-@@ -2121,17 +2124,44 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
-
- omap_hsmmc_conf_bus_power(host);
-
-- host->rx_chan = dma_request_chan(&pdev->dev, "rx");
-- if (IS_ERR(host->rx_chan)) {
-- dev_err(mmc_dev(host->mmc), "RX DMA channel request failed\n");
-- ret = PTR_ERR(host->rx_chan);
-+ if (!pdev->dev.of_node) {
-+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
-+ if (!res) {
-+ dev_err(mmc_dev(host->mmc), "cannot get DMA TX channel\n");
-+ ret = -ENXIO;
-+ goto err_irq;
-+ }
-+ tx_req = res->start;
-+
-+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
-+ if (!res) {
-+ dev_err(mmc_dev(host->mmc), "cannot get DMA RX channel\n");
-+ ret = -ENXIO;
-+ goto err_irq;
-+ }
-+ rx_req = res->start;
-+ }
-+
-+ dma_cap_zero(mask);
-+ dma_cap_set(DMA_SLAVE, mask);
-+
-+ host->rx_chan =
-+ dma_request_slave_channel_compat(mask, omap_dma_filter_fn,
-+ &rx_req, &pdev->dev, "rx");
-+
-+ if (!host->rx_chan) {
-+ dev_err(mmc_dev(host->mmc), "unable to obtain RX DMA engine channel\n");
-+ ret = -ENXIO;
- goto err_irq;
- }
-
-- host->tx_chan = dma_request_chan(&pdev->dev, "tx");
-- if (IS_ERR(host->tx_chan)) {
-- dev_err(mmc_dev(host->mmc), "TX DMA channel request failed\n");
-- ret = PTR_ERR(host->tx_chan);
-+ host->tx_chan =
-+ dma_request_slave_channel_compat(mask, omap_dma_filter_fn,
-+ &tx_req, &pdev->dev, "tx");
-+
-+ if (!host->tx_chan) {
-+ dev_err(mmc_dev(host->mmc), "unable to obtain TX DMA engine channel\n");
-+ ret = -ENXIO;
- goto err_irq;
- }
-
-@@ -2189,9 +2219,9 @@ err_slot_name:
- mmc_remove_host(mmc);
- err_irq:
- device_init_wakeup(&pdev->dev, false);
-- if (!IS_ERR_OR_NULL(host->tx_chan))
-+ if (host->tx_chan)
- dma_release_channel(host->tx_chan);
-- if (!IS_ERR_OR_NULL(host->rx_chan))
-+ if (host->rx_chan)
- dma_release_channel(host->rx_chan);
- pm_runtime_dont_use_autosuspend(host->dev);
- pm_runtime_put_sync(host->dev);
---
-2.9.3
-
diff --git a/arm-sdhci-esdhc-imx-fixes.patch b/arm-sdhci-esdhc-imx-fixes.patch
new file mode 100644
index 000000000..ecb8d096c
--- /dev/null
+++ b/arm-sdhci-esdhc-imx-fixes.patch
@@ -0,0 +1,238 @@
+From patchwork Thu Jun 28 07:31:36 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: mmc: sdhci-esdhc-imx: support eMMC DDR mode when running at 3.3V
+From: Stefan Agner <stefan@agner.ch>
+X-Patchwork-Id: 10493185
+Message-Id: <20180628073136.21748-1-stefan@agner.ch>
+To: adrian.hunter@intel.com, ulf.hansson@linaro.org
+Cc: fabio.estevam@nxp.com, haibo.chen@nxp.com, aisheng.dong@nxp.com,
+ michael@amarulasolutions.com, linux-mmc@vger.kernel.org,
+ linux-kernel@vger.kernel.org, Stefan Agner <stefan@agner.ch>
+Date: Thu, 28 Jun 2018 09:31:36 +0200
+
+The uSDHC supports DDR modes for eMMC devices running at 3.3V. This
+allows to run eMMC with 3.3V signaling voltage at DDR52 mode:
+
+ # cat /sys/kernel/debug/mmc1/ios
+ clock: 52000000 Hz
+ vdd: 21 (3.3 ~ 3.4 V)
+ bus mode: 2 (push-pull)
+ chip select: 0 (don't care)
+ power mode: 2 (on)
+ bus width: 3 (8 bits)
+ timing spec: 8 (mmc DDR52)
+ signal voltage: 0 (3.30 V)
+ driver type: 0 (driver type B)
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+---
+ drivers/mmc/host/sdhci-esdhc-imx.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
+index b716b933f00a..6f444731754d 100644
+--- a/drivers/mmc/host/sdhci-esdhc-imx.c
++++ b/drivers/mmc/host/sdhci-esdhc-imx.c
+@@ -1324,7 +1324,7 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
+
+ if (esdhc_is_usdhc(imx_data)) {
+ host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN;
+- host->mmc->caps |= MMC_CAP_1_8V_DDR;
++ host->mmc->caps |= MMC_CAP_1_8V_DDR | MMC_CAP_3_3V_DDR;
+ if (!(imx_data->socdata->flags & ESDHC_FLAG_HS200))
+ host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200;
+
+From patchwork Thu Jun 28 08:13:29 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [1/3] mmc: sdhci-esdhc-imx: get rid of support_vsel
+From: Stefan Agner <stefan@agner.ch>
+X-Patchwork-Id: 10493269
+Message-Id: <20180628081331.13051-2-stefan@agner.ch>
+To: adrian.hunter@intel.com, ulf.hansson@linaro.org
+Cc: fabio.estevam@nxp.com, haibo.chen@nxp.com, aisheng.dong@nxp.com,
+ michael@amarulasolutions.com, rmk+kernel@armlinux.org.uk,
+ linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Stefan Agner <stefan@agner.ch>
+Date: Thu, 28 Jun 2018 10:13:29 +0200
+
+The field support_vsel is currently only used in the device tree
+case. Get rid of it. No change in behavior.
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+---
+ drivers/mmc/host/sdhci-esdhc-imx.c | 8 ++------
+ include/linux/platform_data/mmc-esdhc-imx.h | 2 --
+ 2 files changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
+index 6f444731754d..20a420b765b3 100644
+--- a/drivers/mmc/host/sdhci-esdhc-imx.c
++++ b/drivers/mmc/host/sdhci-esdhc-imx.c
+@@ -1145,18 +1145,14 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
+ &boarddata->tuning_start_tap);
+
+ if (of_find_property(np, "no-1-8-v", NULL))
+- boarddata->support_vsel = false;
+- else
+- boarddata->support_vsel = true;
++ host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
+
+ if (of_property_read_u32(np, "fsl,delay-line", &boarddata->delay_line))
+ boarddata->delay_line = 0;
+
+ mmc_of_parse_voltage(np, &host->ocr_mask);
+
+- /* sdr50 and sdr104 need work on 1.8v signal voltage */
+- if ((boarddata->support_vsel) && esdhc_is_usdhc(imx_data) &&
+- !IS_ERR(imx_data->pins_default)) {
++ if (esdhc_is_usdhc(imx_data) && !IS_ERR(imx_data->pins_default)) {
+ imx_data->pins_100mhz = pinctrl_lookup_state(imx_data->pinctrl,
+ ESDHC_PINCTRL_STATE_100MHZ);
+ imx_data->pins_200mhz = pinctrl_lookup_state(imx_data->pinctrl,
+diff --git a/include/linux/platform_data/mmc-esdhc-imx.h b/include/linux/platform_data/mmc-esdhc-imx.h
+index 7daa78a2f342..640dec8b5b0c 100644
+--- a/include/linux/platform_data/mmc-esdhc-imx.h
++++ b/include/linux/platform_data/mmc-esdhc-imx.h
+@@ -34,7 +34,6 @@ enum cd_types {
+ * @cd_gpio: gpio for card_detect interrupt
+ * @wp_type: type of write_protect method (see wp_types enum above)
+ * @cd_type: type of card_detect method (see cd_types enum above)
+- * @support_vsel: indicate it supports 1.8v switching
+ */
+
+ struct esdhc_platform_data {
+@@ -43,7 +42,6 @@ struct esdhc_platform_data {
+ enum wp_types wp_type;
+ enum cd_types cd_type;
+ int max_bus_width;
+- bool support_vsel;
+ unsigned int delay_line;
+ unsigned int tuning_step; /* The delay cell steps in tuning procedure */
+ unsigned int tuning_start_tap; /* The start delay cell point in tuning procedure */
+From patchwork Thu Jun 28 08:13:30 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [2/3] mmc: sdhci: add quirk to prevent higher speed modes
+From: Stefan Agner <stefan@agner.ch>
+X-Patchwork-Id: 10493273
+Message-Id: <20180628081331.13051-3-stefan@agner.ch>
+To: adrian.hunter@intel.com, ulf.hansson@linaro.org
+Cc: fabio.estevam@nxp.com, haibo.chen@nxp.com, aisheng.dong@nxp.com,
+ michael@amarulasolutions.com, rmk+kernel@armlinux.org.uk,
+ linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Stefan Agner <stefan@agner.ch>
+Date: Thu, 28 Jun 2018 10:13:30 +0200
+
+Some hosts are capable of running higher speed modes but do not
+have the board support for it. Introduce a quirk which prevents
+the stack from using modes running at 100MHz or faster.
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+---
+ drivers/mmc/host/sdhci.c | 8 ++++++++
+ drivers/mmc/host/sdhci.h | 2 ++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
+index 1c828e0e9905..8ac257dfaab3 100644
+--- a/drivers/mmc/host/sdhci.c
++++ b/drivers/mmc/host/sdhci.c
+@@ -3749,6 +3749,14 @@ int sdhci_setup_host(struct sdhci_host *host)
+ }
+ }
+
++ if (host->quirks2 & SDHCI_QUIRK2_NO_UHS_HS200_HS400) {
++ host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 |
++ SDHCI_SUPPORT_DDR50);
++
++ mmc->caps2 &= ~(MMC_CAP2_HSX00_1_8V | MMC_CAP2_HSX00_1_2V |
++ MMC_CAP2_HS400_ES);
++ }
++
+ if (host->quirks2 & SDHCI_QUIRK2_NO_1_8_V) {
+ host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 |
+ SDHCI_SUPPORT_DDR50);
+diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
+index 23966f887da6..cb2433d6d61f 100644
+--- a/drivers/mmc/host/sdhci.h
++++ b/drivers/mmc/host/sdhci.h
+@@ -450,6 +450,8 @@ struct sdhci_host {
+ * obtainable timeout.
+ */
+ #define SDHCI_QUIRK2_DISABLE_HW_TIMEOUT (1<<17)
++/* Do not support any higher speeds (>50MHz) */
++#define SDHCI_QUIRK2_NO_UHS_HS200_HS400 (1<<18)
+
+ int irq; /* Device IRQ */
+ void __iomem *ioaddr; /* Mapped address */
+From patchwork Thu Jun 28 08:13:31 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [3/3] mmc: sdhci-esdhc-imx: prevent stack from using higher speed
+ modes
+From: Stefan Agner <stefan@agner.ch>
+X-Patchwork-Id: 10493271
+Message-Id: <20180628081331.13051-4-stefan@agner.ch>
+To: adrian.hunter@intel.com, ulf.hansson@linaro.org
+Cc: fabio.estevam@nxp.com, haibo.chen@nxp.com, aisheng.dong@nxp.com,
+ michael@amarulasolutions.com, rmk+kernel@armlinux.org.uk,
+ linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Stefan Agner <stefan@agner.ch>
+Date: Thu, 28 Jun 2018 10:13:31 +0200
+
+If pinctrl configurations for higher speed modes are missing, the
+stack currently uses the no 1.8V quirk. This comes close to what
+we need but not exactly: E.g. if a eMMC chip uses 1.8V signaling
+(by specifying a 1.8V only vqmmc-supply) while not providing any
+100MHz/200MHz pinctrl configurations then the SDHCI_QUIRK2_NO_1_8_V
+leads the stack to print signaling voltage switch failed errors
+continuously:
+ mmc1: Switching to 3.3V signalling voltage failed
+
+Presumably because the stack tries to use 3.3V signaling:
+
+ # cat /sys/kernel/debug/mmc1/ios
+ ...
+ timing spec: 8 (mmc DDR52)
+ signal voltage: 0 (3.30 V)
+ ...
+
+With using SDHCI_QUIRK2_NO_UHS_HS200_HS400 we prevent the stack
+from choosing any modes require speeds higher than 52MHz while
+still allowing to select modes using 1.8V at lower speeds (e.g.
+DDR52):
+
+ # cat /sys/kernel/debug/mmc1/ios
+ ...
+ timing spec: 8 (mmc DDR52)
+ signal voltage: 1 (1.80 V)
+ ...
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+---
+ drivers/mmc/host/sdhci-esdhc-imx.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
+index 20a420b765b3..4a1c33018072 100644
+--- a/drivers/mmc/host/sdhci-esdhc-imx.c
++++ b/drivers/mmc/host/sdhci-esdhc-imx.c
+@@ -1165,10 +1165,10 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
+ * fall back to not supporting uhs by specifying no
+ * 1.8v quirk
+ */
+- host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
++ host->quirks2 |= SDHCI_QUIRK2_NO_UHS_HS200_HS400;
+ }
+ } else {
+- host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
++ host->quirks2 |= SDHCI_QUIRK2_NO_UHS_HS200_HS400;
+ }
+
+ /* call to generic mmc_of_parse to support additional capabilities */
diff --git a/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch b/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch
deleted file mode 100644
index f8948748d..000000000
--- a/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 90e388ca5d8bbee022f9ed5fc24137b31579fa6e Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Wed, 22 Nov 2017 15:52:36 +0000
-Subject: [PATCH] Revert "arm64: allwinner: a64: pine64: Use dcdc1 regulator
- for mmc0"
-
-This reverts commit 3f241bfa60bdc9c4fde63fa6664a8ce00fd668c6.
----
- arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-index d06e34b5d192..caf8b6fbe5e3 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-@@ -61,6 +61,13 @@
- chosen {
- stdout-path = "serial0:115200n8";
- };
-+
-+ reg_vcc3v3: vcc3v3 {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc3v3";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ };
- };
-
- &ehci0 {
-@@ -84,7 +91,7 @@
- &mmc0 {
- pinctrl-names = "default";
- pinctrl-0 = <&mmc0_pins>;
-- vmmc-supply = <&reg_dcdc1>;
-+ vmmc-supply = <&reg_vcc3v3>;
- cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
- disable-wp;
- bus-width = <4>;
---
-2.14.3
-
diff --git a/bcm283x-clk-audio-fixes.patch b/bcm283x-clk-audio-fixes.patch
deleted file mode 100644
index 03369ccdb..000000000
--- a/bcm283x-clk-audio-fixes.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 1b6867ee05d84cc6ec23b5ec0b78684187d3190a Mon Sep 17 00:00:00 2001
-From: Boris Brezillon <boris.brezillon@bootlin.com>
-Date: Wed, 7 Mar 2018 15:41:14 +0100
-Subject: [PATCH] clk: bcm2835: Make sure the PLL is gated before changing its
- rate
-
-All bcm2835 PLLs should be gated before their rate can be changed.
-Setting CLK_SET_RATE_GATE will let the core enforce that, but this is
-not enough to make the code work in all situations. Indeed, the
-CLK_SET_RATE_GATE flag prevents a user from changing the rate while
-the clock is enabled, but this check only guarantees there's no Linux
-users. In our case, the clock might have been enabled by the
-bootloader/FW, and, because we have CLK_IGNORE_UNUSED set, Linux never
-disables the PLL. So we have to make sure the PLL is actually disabled
-before changing the rate.
-
-Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
----
- drivers/clk/bcm/clk-bcm2835.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index 6c5d4a8e426c..051ce769c109 100644
---- a/drivers/clk/bcm/clk-bcm2835.c
-+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -678,6 +678,18 @@ static int bcm2835_pll_set_rate(struct clk_hw *hw,
- u32 ana[4];
- int i;
-
-+ /*
-+ * Normally, the CLK_SET_RATE_GATE flag prevents a user from changing
-+ * the rate while the clock is enabled, but this check only makes sure
-+ * there's no Linux users.
-+ * In our case, the clock might have been enabled by the bootloader/FW,
-+ * and, since CLK_IGNORE_UNUSED flag is set, Linux never disables it.
-+ * So we have to make sure the clk is actually disabled before changing
-+ * the rate.
-+ */
-+ if (bcm2835_pll_is_on(hw))
-+ bcm2835_pll_off(hw);
-+
- if (rate > data->max_fb_rate) {
- use_fb_prediv = true;
- rate /= 2;
-@@ -1318,7 +1330,7 @@ static struct clk_hw *bcm2835_register_pll(struct bcm2835_cprman *cprman,
- init.num_parents = 1;
- init.name = data->name;
- init.ops = &bcm2835_pll_clk_ops;
-- init.flags = CLK_IGNORE_UNUSED;
-+ init.flags = CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE;
-
- pll = kzalloc(sizeof(*pll), GFP_KERNEL);
- if (!pll)
diff --git a/gitrev b/gitrev
index 985ea1d76..037a98e8d 100644
--- a/gitrev
+++ b/gitrev
@@ -1 +1 @@
-f57494321cbf5b1e7769b6135407d2995a369e28
+cd993fc4316d5268f42ab991e9a2c8a6e6cd8dc1
diff --git a/kernel.spec b/kernel.spec
index 5cdb7eb85..7b0a3164f 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -77,7 +77,7 @@ Summary: The Linux kernel
# The rc snapshot level
%global rcrev 2
# The git snapshot level
-%define gitrev 3
+%define gitrev 4
# Set rpm version accordingly
%define rpmversion 4.%{upstream_sublevel}.0
%endif
@@ -599,18 +599,16 @@ Patch304: ACPI-irq-Workaround-firmware-issue-on-X-Gene-based-m400.patch
# https://patchwork.kernel.org/patch/9820417/
Patch305: qcom-msm89xx-fixes.patch
-# https://patchwork.kernel.org/patch/10173115/
-Patch306: arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch
+# https://patchwork.kernel.org/project/linux-mmc/list/?submitter=71861
+Patch306: arm-sdhci-esdhc-imx-fixes.patch
-Patch309: arm-tegra-fix-nouveau-crash.patch
-
-Patch324: bcm283x-clk-audio-fixes.patch
+Patch307: arm-tegra-fix-nouveau-crash.patch
# Enabling Patches for the RPi3+
-Patch332: bcm2837-enable-pmu.patch
-Patch333: bcm2837-lan78xx-fixes.patch
+Patch330: bcm2837-enable-pmu.patch
+Patch331: bcm2837-lan78xx-fixes.patch
-Patch335: bcm2835-cpufreq-add-CPU-frequency-control-driver.patch
+Patch332: bcm2835-cpufreq-add-CPU-frequency-control-driver.patch
# 400 - IBM (ppc/s390x) patches
@@ -1863,6 +1861,12 @@ fi
#
#
%changelog
+* Fri Jun 29 2018 Laura Abbott <labbott@redhat.com> - 4.18.0-0.rc2.git4.1
+- Linux v4.18-rc2-207-gcd993fc4316d
+
+* Fri Jun 29 2018 Peter Robinson <pbrobinson@fedoraproject.org>
+- Add a possible i.MX6 sdhci fix
+
* Thu Jun 28 2018 Laura Abbott <labbott@redhat.com> - 4.18.0-0.rc2.git3.1
- Linux v4.18-rc2-132-gf57494321cbf
diff --git a/sources b/sources
index 0fb3c1f39..9933920a4 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (linux-4.17.tar.xz) = 4d9de340a26155a89ea8773131c76220cc2057f2b5d031b467b60e8b14c1842518e2d60a863d8c695f0f7640f3f18d43826201984a238dade857b6cef79837db
SHA512 (patch-4.18-rc2.xz) = d9723a202e43f3e68895fc8463e15b0723f6ecff947805ca501fdf12aa74e87915bc42d1c021d14168814c2178574f3f6f0c2bd770af9653c9e0867ebfaaebe0
-SHA512 (patch-4.18-rc2-git3.xz) = ebae03bef3c7753f07258316a03795a00b661b0b51269b3f7f1451380fc1b523704fddf66f219531d84548d2c6164e794573dc22229c84ab28f55119b1595c5e
+SHA512 (patch-4.18-rc2-git4.xz) = dd588965f2cc4d2ce89077f4857d9a4f30705a1a65738e169a471ce70b80087827aaf54f1d93012ef191229b147c50e810331300f8cccc8443bac06883de42bf