--- /dev/null
+From 4497b40ca8217fce9f33c9886f5a1b0408661e03 Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <festevam@gmail.com>
+Date: Mon, 20 Sep 2021 20:43:11 -0300
+Subject: Revert "ARM: imx6q: drop of_platform_default_populate() from init_machine"
+
+From: Fabio Estevam <festevam@gmail.com>
+
+commit 4497b40ca8217fce9f33c9886f5a1b0408661e03 upstream.
+
+This reverts commit cc8870bf4c3ab0af385538460500a9d342ed945f.
+
+Since commit cc8870bf4c3a ("ARM: imx6q: drop of_platform_default_populate()
+from init_machine") the following errors are seen on boot:
+
+[ 0.123372] imx6q_suspend_init: failed to find ocram device!
+[ 0.123537] imx6_pm_common_init: No DDR LPM support with suspend -19!
+
+, which break suspend/resume on imx6q/dl.
+
+Revert the offeding commit to avoid the regression.
+
+Thanks to Tim Harvey for bisecting this problem.
+
+Cc: stable@vger.kernel.org
+Fixes: cc8870bf4c3a ("ARM: imx6q: drop of_platform_default_populate() from init_machine")
+Signed-off-by: Fabio Estevam <festevam@gmail.com>
+Acked-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/arm/mach-imx/mach-imx6q.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/arch/arm/mach-imx/mach-imx6q.c
++++ b/arch/arm/mach-imx/mach-imx6q.c
+@@ -172,6 +172,9 @@ static void __init imx6q_init_machine(vo
+ imx_get_soc_revision());
+
+ imx6q_enet_phy_init();
++
++ of_platform_default_populate(NULL, NULL, NULL);
++
+ imx_anatop_init();
+ cpu_is_imx6q() ? imx6q_pm_init() : imx6dl_pm_init();
+ imx6q_1588_init();
--- /dev/null
+From 151a7c12c4fc8340b51e849e4d1fcb7d794777a5 Mon Sep 17 00:00:00 2001
+From: Soeren Moch <smoch@web.de>
+Date: Sun, 26 Sep 2021 22:19:05 +0200
+Subject: Revert "brcmfmac: use ISO3166 country code and 0 rev as fallback"
+
+From: Soeren Moch <smoch@web.de>
+
+commit 151a7c12c4fc8340b51e849e4d1fcb7d794777a5 upstream.
+
+This reverts commit b0b524f079a23e440dd22b04e369368dde847533.
+
+Commit b0b524f079a2 ("brcmfmac: use ISO3166 country code and 0 rev
+as fallback") changes country setup to directly use ISO3166 country
+codes if no more specific code is configured. This was done under
+the assumption that brcmfmac firmwares can handle such simple
+direct mapping from country codes to firmware ccode values.
+
+Unfortunately this is not true for all chipset/firmware combinations.
+E.g. BCM4359/9 devices stop working as access point with this change,
+so revert the offending commit to avoid the regression.
+
+Signed-off-by: Soeren Moch <smoch@web.de>
+Cc: stable@vger.kernel.org # 5.14.x
+Acked-by: Shawn Guo <shawn.guo@linaro.org>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+Link: https://lore.kernel.org/r/20210926201905.211605-1-smoch@web.de
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 17 ++++--------
+ 1 file changed, 6 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -7455,23 +7455,18 @@ static s32 brcmf_translate_country_code(
+ s32 found_index;
+ int i;
+
++ country_codes = drvr->settings->country_codes;
++ if (!country_codes) {
++ brcmf_dbg(TRACE, "No country codes configured for device\n");
++ return -EINVAL;
++ }
++
+ if ((alpha2[0] == ccreq->country_abbrev[0]) &&
+ (alpha2[1] == ccreq->country_abbrev[1])) {
+ brcmf_dbg(TRACE, "Country code already set\n");
+ return -EAGAIN;
+ }
+
+- country_codes = drvr->settings->country_codes;
+- if (!country_codes) {
+- brcmf_dbg(TRACE, "No country codes configured for device, using ISO3166 code and 0 rev\n");
+- memset(ccreq, 0, sizeof(*ccreq));
+- ccreq->country_abbrev[0] = alpha2[0];
+- ccreq->country_abbrev[1] = alpha2[1];
+- ccreq->ccode[0] = alpha2[0];
+- ccreq->ccode[1] = alpha2[1];
+- return 0;
+- }
+-
+ found_index = -1;
+ for (i = 0; i < country_codes->table_size; i++) {
+ cc = &country_codes->table[i];