mac80211: brcm: add tag to upstreamed patch
authorNick Hainke <vincent@systemli.org>
Sun, 6 Nov 2022 14:48:45 +0000 (15:48 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Wed, 9 Nov 2022 16:08:49 +0000 (17:08 +0100)
Add tag to upstreamed patch.

Signed-off-by: Nick Hainke <vincent@systemli.org>
package/kernel/mac80211/patches/brcm/001-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch [deleted file]
package/kernel/mac80211/patches/brcm/001-v5.19-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch [new file with mode: 0644]

diff --git a/package/kernel/mac80211/patches/brcm/001-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch b/package/kernel/mac80211/patches/brcm/001-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch
deleted file mode 100644 (file)
index 03d9f8e..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From 716c220b4d990a4fe7800d0685ca69dee99e4e8f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Pavel=20L=C3=B6bl?= <pavel@loebl.cz>
-Date: Fri, 6 May 2022 06:42:46 +0200
-Subject: [PATCH] brcmfmac: allow setting wlan MAC address using device tree
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This allows firmware to provide MAC address using device tree. Like in
-case there is no MAC burned in wlan NVRAM.
-
-Signed-off-by: Pavel Löbl <pavel@loebl.cz>
-Signed-off-by: Kalle Valo <kvalo@kernel.org>
-Link: https://lore.kernel.org/r/20220506044246.67146-1-pavel@loebl.cz
----
- .../broadcom/brcm80211/brcmfmac/common.c      | 23 ++++++++++++++-----
- .../broadcom/brcm80211/brcmfmac/common.h      |  1 +
- .../broadcom/brcm80211/brcmfmac/core.c        |  4 +++-
- .../wireless/broadcom/brcm80211/brcmfmac/of.c |  3 +++
- 4 files changed, 24 insertions(+), 7 deletions(-)
-
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
-@@ -202,13 +202,24 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
-       char *ptr;
-       s32 err;
--      /* retreive mac address */
--      err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
--                                     sizeof(ifp->mac_addr));
--      if (err < 0) {
--              bphy_err(drvr, "Retrieving cur_etheraddr failed, %d\n", err);
--              goto done;
-+      if (is_valid_ether_addr(ifp->mac_addr)) {
-+              /* set mac address */
-+              err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", ifp->mac_addr,
-+                                             ETH_ALEN);
-+              if (err < 0) {
-+                      bphy_err(ifp->drvr, "Setting cur_etheraddr failed, %d\n", err);
-+                      goto done;
-+              }
-+      } else {
-+              /* retrieve mac address */
-+              err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
-+                                             sizeof(ifp->mac_addr));
-+              if (err < 0) {
-+                      bphy_err(drvr, "Retrieving cur_etheraddr failed, %d\n", err);
-+                      goto done;
-+              }
-       }
-+
-       memcpy(ifp->drvr->mac, ifp->mac_addr, sizeof(ifp->drvr->mac));
-       memcpy(ifp->drvr->wiphy->perm_addr, ifp->drvr->mac, ETH_ALEN);
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
-@@ -50,6 +50,7 @@ struct brcmf_mp_device {
-       bool            ignore_probe_fail;
-       struct brcmfmac_pd_cc *country_codes;
-       const char      *board_type;
-+      unsigned char   mac[ETH_ALEN];
-       union {
-               struct brcmfmac_sdio_pd sdio;
-       } bus;
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
-@@ -7,6 +7,7 @@
- #include <linux/etherdevice.h>
- #include <linux/module.h>
- #include <linux/inetdevice.h>
-+#include <linux/property.h>
- #include <net/cfg80211.h>
- #include <net/rtnetlink.h>
- #include <net/addrconf.h>
-@@ -1226,7 +1227,8 @@ static int brcmf_bus_started(struct brcm
-       brcmf_dbg(TRACE, "\n");
-       /* add primary networking interface */
--      ifp = brcmf_add_if(drvr, 0, 0, false, "wlan%d", NULL);
-+      ifp = brcmf_add_if(drvr, 0, 0, false, "wlan%d",
-+                         is_valid_ether_addr(drvr->settings->mac) ? drvr->settings->mac : NULL);
-       if (IS_ERR(ifp))
-               return PTR_ERR(ifp);
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
-@@ -5,6 +5,7 @@
- #include <linux/init.h>
- #include <linux/of.h>
- #include <linux/of_irq.h>
-+#include <linux/of_net.h>
- #include <defs.h>
- #include "debug.h"
-@@ -97,6 +98,8 @@ void brcmf_of_probe(struct device *dev,
-       if (err)
-               brcmf_err("failed to get OF country code map (err=%d)\n", err);
-+      of_get_mac_address(np, settings->mac);
-+
-       if (bus_type != BRCMF_BUSTYPE_SDIO)
-               return;
diff --git a/package/kernel/mac80211/patches/brcm/001-v5.19-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch b/package/kernel/mac80211/patches/brcm/001-v5.19-brcmfmac-allow-setting-wlan-MAC-address-using-device.patch
new file mode 100644 (file)
index 0000000..03d9f8e
--- /dev/null
@@ -0,0 +1,103 @@
+From 716c220b4d990a4fe7800d0685ca69dee99e4e8f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pavel=20L=C3=B6bl?= <pavel@loebl.cz>
+Date: Fri, 6 May 2022 06:42:46 +0200
+Subject: [PATCH] brcmfmac: allow setting wlan MAC address using device tree
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This allows firmware to provide MAC address using device tree. Like in
+case there is no MAC burned in wlan NVRAM.
+
+Signed-off-by: Pavel Löbl <pavel@loebl.cz>
+Signed-off-by: Kalle Valo <kvalo@kernel.org>
+Link: https://lore.kernel.org/r/20220506044246.67146-1-pavel@loebl.cz
+---
+ .../broadcom/brcm80211/brcmfmac/common.c      | 23 ++++++++++++++-----
+ .../broadcom/brcm80211/brcmfmac/common.h      |  1 +
+ .../broadcom/brcm80211/brcmfmac/core.c        |  4 +++-
+ .../wireless/broadcom/brcm80211/brcmfmac/of.c |  3 +++
+ 4 files changed, 24 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+@@ -202,13 +202,24 @@ int brcmf_c_preinit_dcmds(struct brcmf_i
+       char *ptr;
+       s32 err;
+-      /* retreive mac address */
+-      err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
+-                                     sizeof(ifp->mac_addr));
+-      if (err < 0) {
+-              bphy_err(drvr, "Retrieving cur_etheraddr failed, %d\n", err);
+-              goto done;
++      if (is_valid_ether_addr(ifp->mac_addr)) {
++              /* set mac address */
++              err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", ifp->mac_addr,
++                                             ETH_ALEN);
++              if (err < 0) {
++                      bphy_err(ifp->drvr, "Setting cur_etheraddr failed, %d\n", err);
++                      goto done;
++              }
++      } else {
++              /* retrieve mac address */
++              err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
++                                             sizeof(ifp->mac_addr));
++              if (err < 0) {
++                      bphy_err(drvr, "Retrieving cur_etheraddr failed, %d\n", err);
++                      goto done;
++              }
+       }
++
+       memcpy(ifp->drvr->mac, ifp->mac_addr, sizeof(ifp->drvr->mac));
+       memcpy(ifp->drvr->wiphy->perm_addr, ifp->drvr->mac, ETH_ALEN);
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
+@@ -50,6 +50,7 @@ struct brcmf_mp_device {
+       bool            ignore_probe_fail;
+       struct brcmfmac_pd_cc *country_codes;
+       const char      *board_type;
++      unsigned char   mac[ETH_ALEN];
+       union {
+               struct brcmfmac_sdio_pd sdio;
+       } bus;
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+@@ -7,6 +7,7 @@
+ #include <linux/etherdevice.h>
+ #include <linux/module.h>
+ #include <linux/inetdevice.h>
++#include <linux/property.h>
+ #include <net/cfg80211.h>
+ #include <net/rtnetlink.h>
+ #include <net/addrconf.h>
+@@ -1226,7 +1227,8 @@ static int brcmf_bus_started(struct brcm
+       brcmf_dbg(TRACE, "\n");
+       /* add primary networking interface */
+-      ifp = brcmf_add_if(drvr, 0, 0, false, "wlan%d", NULL);
++      ifp = brcmf_add_if(drvr, 0, 0, false, "wlan%d",
++                         is_valid_ether_addr(drvr->settings->mac) ? drvr->settings->mac : NULL);
+       if (IS_ERR(ifp))
+               return PTR_ERR(ifp);
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
+@@ -5,6 +5,7 @@
+ #include <linux/init.h>
+ #include <linux/of.h>
+ #include <linux/of_irq.h>
++#include <linux/of_net.h>
+ #include <defs.h>
+ #include "debug.h"
+@@ -97,6 +98,8 @@ void brcmf_of_probe(struct device *dev,
+       if (err)
+               brcmf_err("failed to get OF country code map (err=%d)\n", err);
++      of_get_mac_address(np, settings->mac);
++
+       if (bus_type != BRCMF_BUSTYPE_SDIO)
+               return;