diff mbox series

[1/2] brcmfmac: Add brcmf_c_set_cur_etheraddr() helper

Message ID 20220708133223.101558-1-hdegoede@redhat.com (mailing list archive)
State Superseded
Delegated to: Kalle Valo
Headers show
Series [1/2] brcmfmac: Add brcmf_c_set_cur_etheraddr() helper | expand

Commit Message

Hans de Goede July 8, 2022, 1:32 p.m. UTC
Add a little helper to send "cur_etheraddr" commands to the interface
and to handle the error reporting of it in a single place.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 .../broadcom/brcm80211/brcmfmac/common.c       | 18 +++++++++++++-----
 .../broadcom/brcm80211/brcmfmac/common.h       |  1 +
 .../broadcom/brcm80211/brcmfmac/core.c         |  8 ++------
 3 files changed, 16 insertions(+), 11 deletions(-)

Comments

Hans de Goede July 8, 2022, 1:34 p.m. UTC | #1
Hi,

On 7/8/22 15:32, Hans de Goede wrote:
> Add a little helper to send "cur_etheraddr" commands to the interface
> and to handle the error reporting of it in a single place.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Ugh, I accidentally used Kalle's old address. I'll resend this with
the right address, sorry for the duplicate emails.

Regards,

Hans


> ---
>  .../broadcom/brcm80211/brcmfmac/common.c       | 18 +++++++++++++-----
>  .../broadcom/brcm80211/brcmfmac/common.h       |  1 +
>  .../broadcom/brcm80211/brcmfmac/core.c         |  8 ++------
>  3 files changed, 16 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> index fe01da9e620d..dccd8f4ca1d0 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> @@ -190,6 +190,17 @@ static int brcmf_c_process_clm_blob(struct brcmf_if *ifp)
>  	return err;
>  }
>  
> +int brcmf_c_set_cur_etheraddr(struct brcmf_if *ifp, const u8 *addr)
> +{
> +	s32 err;
> +
> +	err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", addr, ETH_ALEN);
> +	if (err < 0)
> +		bphy_err(ifp->drvr, "Setting cur_etheraddr failed, %d\n", err);
> +
> +	return err;
> +}
> +
>  int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
>  {
>  	struct brcmf_pub *drvr = ifp->drvr;
> @@ -204,12 +215,9 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
>  
>  	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);
> +		err = brcmf_c_set_cur_etheraddr(ifp, ifp->mac_addr);
> +		if (err < 0)
>  			goto done;
> -		}
>  	} else {
>  		/* retrieve mac address */
>  		err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
> index 15accc88d5c0..7329eb751945 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
> @@ -65,6 +65,7 @@ void brcmf_release_module_param(struct brcmf_mp_device *module_param);
>  
>  /* Sets dongle media info (drv_version, mac address). */
>  int brcmf_c_preinit_dcmds(struct brcmf_if *ifp);
> +int brcmf_c_set_cur_etheraddr(struct brcmf_if *ifp, const u8 *addr);
>  
>  #ifdef CONFIG_DMI
>  void brcmf_dmi_probe(struct brcmf_mp_device *settings, u32 chip, u32 chiprev);
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> index 87aef211b35f..bd164a0821f9 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> @@ -233,16 +233,12 @@ static int brcmf_netdev_set_mac_address(struct net_device *ndev, void *addr)
>  {
>  	struct brcmf_if *ifp = netdev_priv(ndev);
>  	struct sockaddr *sa = (struct sockaddr *)addr;
> -	struct brcmf_pub *drvr = ifp->drvr;
>  	int err;
>  
>  	brcmf_dbg(TRACE, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx);
>  
> -	err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", sa->sa_data,
> -				       ETH_ALEN);
> -	if (err < 0) {
> -		bphy_err(drvr, "Setting cur_etheraddr failed, %d\n", err);
> -	} else {
> +	err = brcmf_c_set_cur_etheraddr(ifp, sa->sa_data);
> +	if (err >= 0) {
>  		brcmf_dbg(TRACE, "updated to %pM\n", sa->sa_data);
>  		memcpy(ifp->mac_addr, sa->sa_data, ETH_ALEN);
>  		eth_hw_addr_set(ifp->ndev, ifp->mac_addr);
Kalle Valo July 26, 2022, 1:08 p.m. UTC | #2
Hans de Goede <hdegoede@redhat.com> writes:

> Hi,
>
> On 7/8/22 15:32, Hans de Goede wrote:
>> Add a little helper to send "cur_etheraddr" commands to the interface
>> and to handle the error reporting of it in a single place.
>> 
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>
> Ugh, I accidentally used Kalle's old address. I'll resend this with
> the right address, sorry for the duplicate emails.

No worries. And it actually doesn't even matter as I take the patches
directly from patchwork :)
diff mbox series

Patch

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
index fe01da9e620d..dccd8f4ca1d0 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -190,6 +190,17 @@  static int brcmf_c_process_clm_blob(struct brcmf_if *ifp)
 	return err;
 }
 
+int brcmf_c_set_cur_etheraddr(struct brcmf_if *ifp, const u8 *addr)
+{
+	s32 err;
+
+	err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", addr, ETH_ALEN);
+	if (err < 0)
+		bphy_err(ifp->drvr, "Setting cur_etheraddr failed, %d\n", err);
+
+	return err;
+}
+
 int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
 {
 	struct brcmf_pub *drvr = ifp->drvr;
@@ -204,12 +215,9 @@  int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
 
 	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);
+		err = brcmf_c_set_cur_etheraddr(ifp, ifp->mac_addr);
+		if (err < 0)
 			goto done;
-		}
 	} else {
 		/* retrieve mac address */
 		err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
index 15accc88d5c0..7329eb751945 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
@@ -65,6 +65,7 @@  void brcmf_release_module_param(struct brcmf_mp_device *module_param);
 
 /* Sets dongle media info (drv_version, mac address). */
 int brcmf_c_preinit_dcmds(struct brcmf_if *ifp);
+int brcmf_c_set_cur_etheraddr(struct brcmf_if *ifp, const u8 *addr);
 
 #ifdef CONFIG_DMI
 void brcmf_dmi_probe(struct brcmf_mp_device *settings, u32 chip, u32 chiprev);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index 87aef211b35f..bd164a0821f9 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -233,16 +233,12 @@  static int brcmf_netdev_set_mac_address(struct net_device *ndev, void *addr)
 {
 	struct brcmf_if *ifp = netdev_priv(ndev);
 	struct sockaddr *sa = (struct sockaddr *)addr;
-	struct brcmf_pub *drvr = ifp->drvr;
 	int err;
 
 	brcmf_dbg(TRACE, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx);
 
-	err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", sa->sa_data,
-				       ETH_ALEN);
-	if (err < 0) {
-		bphy_err(drvr, "Setting cur_etheraddr failed, %d\n", err);
-	} else {
+	err = brcmf_c_set_cur_etheraddr(ifp, sa->sa_data);
+	if (err >= 0) {
 		brcmf_dbg(TRACE, "updated to %pM\n", sa->sa_data);
 		memcpy(ifp->mac_addr, sa->sa_data, ETH_ALEN);
 		eth_hw_addr_set(ifp->ndev, ifp->mac_addr);