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 |
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);
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 --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);
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(-)