--- /dev/null
+From 7155c44624d061692b4c13aa8343f119c67d4fc0 Mon Sep 17 00:00:00 2001
+From: Vladimir Oltean <olteanv@gmail.com>
+Date: Sun, 26 Jan 2020 21:49:50 +0200
+Subject: ARM: dts: ls1021a: Restore MDIO compatible to gianfar
+
+From: Vladimir Oltean <olteanv@gmail.com>
+
+commit 7155c44624d061692b4c13aa8343f119c67d4fc0 upstream.
+
+The difference between "fsl,etsec2-mdio" and "gianfar" has to do with
+the .get_tbipa function, which calculates the address of the TBIPA
+register automatically, if not explicitly specified. [ see
+drivers/net/ethernet/freescale/fsl_pq_mdio.c ]. On LS1021A, the TBIPA
+register is at offset 0x30 within the port register block, which is what
+the "gianfar" method of calculating addresses actually does.
+
+Luckily, the bad "compatible" is inconsequential for ls1021a.dtsi,
+because the TBIPA register is explicitly specified via the second "reg"
+(<0x0 0x2d10030 0x0 0x4>), so the "get_tbipa" function is dead code.
+Nonetheless it's good to restore it to its correct value.
+
+Background discussion:
+https://www.spinics.net/lists/stable/msg361156.html
+
+Fixes: c7861adbe37f ("ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect")
+Reported-by: Pavel Machek <pavel@denx.de>
+Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/arm/boot/dts/ls1021a.dtsi | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/boot/dts/ls1021a.dtsi
++++ b/arch/arm/boot/dts/ls1021a.dtsi
+@@ -584,7 +584,7 @@
+ };
+
+ mdio0: mdio@2d24000 {
+- compatible = "fsl,etsec2-mdio";
++ compatible = "gianfar";
+ device_type = "mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+@@ -593,7 +593,7 @@
+ };
+
+ mdio1: mdio@2d64000 {
+- compatible = "fsl,etsec2-mdio";
++ compatible = "gianfar";
+ device_type = "mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
--- /dev/null
+From 2b2d5c4db732c027a14987cfccf767dac1b45170 Mon Sep 17 00:00:00 2001
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Date: Fri, 7 Feb 2020 20:53:24 +0200
+Subject: ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
+
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+
+commit 2b2d5c4db732c027a14987cfccf767dac1b45170 upstream.
+
+If soc_tplg_link_config() fails, _link needs to be freed in case of
+topology ABI version mismatch. However the current code is returning
+directly and ends up leaking memory in this case.
+This patch fixes that.
+
+Fixes: 593d9e52f9bb ("ASoC: topology: Add support to configure existing physical DAI links")
+Signed-off-by: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Link: https://lore.kernel.org/r/20200207185325.22320-2-dragos_tarcatu@mentor.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-topology.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/sound/soc/soc-topology.c
++++ b/sound/soc/soc-topology.c
+@@ -2154,8 +2154,11 @@ static int soc_tplg_link_elems_load(stru
+ }
+
+ ret = soc_tplg_link_config(tplg, _link);
+- if (ret < 0)
++ if (ret < 0) {
++ if (!abi_match)
++ kfree(_link);
+ return ret;
++ }
+
+ /* offset by version-specific struct size and
+ * real priv data size
--- /dev/null
+From 242c46c023610dbc0213fc8fb6b71eb836bc5d95 Mon Sep 17 00:00:00 2001
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Date: Fri, 7 Feb 2020 20:53:25 +0200
+Subject: ASoC: topology: Fix memleak in soc_tplg_manifest_load()
+
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+
+commit 242c46c023610dbc0213fc8fb6b71eb836bc5d95 upstream.
+
+In case of ABI version mismatch, _manifest needs to be freed as
+it is just a copy of the original topology manifest. However, if
+a driver manifest handler is defined, that would get executed and
+the cleanup is never reached. Fix that by getting the return status
+of manifest() instead of returning directly.
+
+Fixes: 583958fa2e52 ("ASoC: topology: Make manifest backward compatible from ABI v4")
+Signed-off-by: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Link: https://lore.kernel.org/r/20200207185325.22320-3-dragos_tarcatu@mentor.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/soc/soc-topology.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- a/sound/soc/soc-topology.c
++++ b/sound/soc/soc-topology.c
+@@ -2313,7 +2313,7 @@ static int soc_tplg_manifest_load(struct
+ {
+ struct snd_soc_tplg_manifest *manifest, *_manifest;
+ bool abi_match;
+- int err;
++ int ret = 0;
+
+ if (tplg->pass != SOC_TPLG_PASS_MANIFEST)
+ return 0;
+@@ -2326,19 +2326,19 @@ static int soc_tplg_manifest_load(struct
+ _manifest = manifest;
+ } else {
+ abi_match = false;
+- err = manifest_new_ver(tplg, manifest, &_manifest);
+- if (err < 0)
+- return err;
++ ret = manifest_new_ver(tplg, manifest, &_manifest);
++ if (ret < 0)
++ return ret;
+ }
+
+ /* pass control to component driver for optional further init */
+ if (tplg->comp && tplg->ops && tplg->ops->manifest)
+- return tplg->ops->manifest(tplg->comp, tplg->index, _manifest);
++ ret = tplg->ops->manifest(tplg->comp, tplg->index, _manifest);
+
+ if (!abi_match) /* free the duplicated one */
+ kfree(_manifest);
+
+- return 0;
++ return ret;
+ }
+
+ /* validate header magic, size and type */
dm-cache-fix-a-crash-due-to-incorrect-work-item-cancelling.patch
dm-report-suspended-device-during-destroy.patch
dm-writecache-verify-watermark-during-resume.patch
+arm-dts-ls1021a-restore-mdio-compatible-to-gianfar.patch
+spi-bcm63xx-hsspi-really-keep-pll-clk-enabled.patch
+asoc-topology-fix-memleak-in-soc_tplg_link_elems_load.patch
+asoc-topology-fix-memleak-in-soc_tplg_manifest_load.patch
--- /dev/null
+From 51bddd4501bc414b8b1e8f4d096b4a5304068169 Mon Sep 17 00:00:00 2001
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Date: Fri, 28 Feb 2020 22:38:38 +0100
+Subject: spi: bcm63xx-hsspi: Really keep pll clk enabled
+
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+
+commit 51bddd4501bc414b8b1e8f4d096b4a5304068169 upstream.
+
+The purpose of commit 0fd85869c2a9 ("spi/bcm63xx-hsspi: keep pll clk enabled")
+was to keep the pll clk enabled through the lifetime of the device.
+
+In order to do that, some 'clk_prepare_enable()'/'clk_disable_unprepare()'
+calls have been added in the error handling path of the probe function, in
+the remove function and in the suspend and resume functions.
+
+However, a 'clk_disable_unprepare()' call has been unfortunately left in
+the probe function. So the commit seems to be more or less a no-op.
+
+Axe it now, so that the pll clk is left enabled through the lifetime of
+the device, as described in the commit.
+
+Fixes: 0fd85869c2a9 ("spi/bcm63xx-hsspi: keep pll clk enabled")
+Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Acked-by: Jonas Gorski <jonas.gorski@gmail.com>
+Link: https://lore.kernel.org/r/20200228213838.7124-1-christophe.jaillet@wanadoo.fr
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/spi/spi-bcm63xx-hsspi.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/spi/spi-bcm63xx-hsspi.c
++++ b/drivers/spi/spi-bcm63xx-hsspi.c
+@@ -371,7 +371,6 @@ static int bcm63xx_hsspi_probe(struct pl
+ goto out_disable_clk;
+
+ rate = clk_get_rate(pll_clk);
+- clk_disable_unprepare(pll_clk);
+ if (!rate) {
+ ret = -EINVAL;
+ goto out_disable_pll_clk;