[PATCH v2 3/4] wcn36xx: Move capability bitmap to string translation function to firmware.c

Loic Poulain loic.poulain at linaro.org
Wed Jul 20 00:21:49 PDT 2022


On Tue, 19 Jul 2022 at 16:33, Bryan O'Donoghue
<bryan.odonoghue at linaro.org> wrote:
>
> Move wcn36xx_get_cap_name() function in main.c into firmware.c as
> wcn36xx_firmware_get_cap_name().
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue at linaro.org>

Reviewed-by: Loic Poulain <loic.poulain at linaro.org>

> ---
>  drivers/net/wireless/ath/wcn36xx/firmware.c | 75 +++++++++++++++++++
>  drivers/net/wireless/ath/wcn36xx/firmware.h |  2 +
>  drivers/net/wireless/ath/wcn36xx/main.c     | 81 +--------------------
>  3 files changed, 81 insertions(+), 77 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/wcn36xx/firmware.c b/drivers/net/wireless/ath/wcn36xx/firmware.c
> index 03b93d2bdcf9..4b7f439e4db5 100644
> --- a/drivers/net/wireless/ath/wcn36xx/firmware.c
> +++ b/drivers/net/wireless/ath/wcn36xx/firmware.c
> @@ -3,6 +3,81 @@
>  #include "wcn36xx.h"
>  #include "firmware.h"
>
> +#define DEFINE(s)[s] = #s
> +
> +static const char * const wcn36xx_firmware_caps_names[] = {
> +       DEFINE(MCC),
> +       DEFINE(P2P),
> +       DEFINE(DOT11AC),
> +       DEFINE(SLM_SESSIONIZATION),
> +       DEFINE(DOT11AC_OPMODE),
> +       DEFINE(SAP32STA),
> +       DEFINE(TDLS),
> +       DEFINE(P2P_GO_NOA_DECOUPLE_INIT_SCAN),
> +       DEFINE(WLANACTIVE_OFFLOAD),
> +       DEFINE(BEACON_OFFLOAD),
> +       DEFINE(SCAN_OFFLOAD),
> +       DEFINE(ROAM_OFFLOAD),
> +       DEFINE(BCN_MISS_OFFLOAD),
> +       DEFINE(STA_POWERSAVE),
> +       DEFINE(STA_ADVANCED_PWRSAVE),
> +       DEFINE(AP_UAPSD),
> +       DEFINE(AP_DFS),
> +       DEFINE(BLOCKACK),
> +       DEFINE(PHY_ERR),
> +       DEFINE(BCN_FILTER),
> +       DEFINE(RTT),
> +       DEFINE(RATECTRL),
> +       DEFINE(WOW),
> +       DEFINE(WLAN_ROAM_SCAN_OFFLOAD),
> +       DEFINE(SPECULATIVE_PS_POLL),
> +       DEFINE(SCAN_SCH),
> +       DEFINE(IBSS_HEARTBEAT_OFFLOAD),
> +       DEFINE(WLAN_SCAN_OFFLOAD),
> +       DEFINE(WLAN_PERIODIC_TX_PTRN),
> +       DEFINE(ADVANCE_TDLS),
> +       DEFINE(BATCH_SCAN),
> +       DEFINE(FW_IN_TX_PATH),
> +       DEFINE(EXTENDED_NSOFFLOAD_SLOT),
> +       DEFINE(CH_SWITCH_V1),
> +       DEFINE(HT40_OBSS_SCAN),
> +       DEFINE(UPDATE_CHANNEL_LIST),
> +       DEFINE(WLAN_MCADDR_FLT),
> +       DEFINE(WLAN_CH144),
> +       DEFINE(NAN),
> +       DEFINE(TDLS_SCAN_COEXISTENCE),
> +       DEFINE(LINK_LAYER_STATS_MEAS),
> +       DEFINE(MU_MIMO),
> +       DEFINE(EXTENDED_SCAN),
> +       DEFINE(DYNAMIC_WMM_PS),
> +       DEFINE(MAC_SPOOFED_SCAN),
> +       DEFINE(BMU_ERROR_GENERIC_RECOVERY),
> +       DEFINE(DISA),
> +       DEFINE(FW_STATS),
> +       DEFINE(WPS_PRBRSP_TMPL),
> +       DEFINE(BCN_IE_FLT_DELTA),
> +       DEFINE(TDLS_OFF_CHANNEL),
> +       DEFINE(RTT3),
> +       DEFINE(MGMT_FRAME_LOGGING),
> +       DEFINE(ENHANCED_TXBD_COMPLETION),
> +       DEFINE(LOGGING_ENHANCEMENT),
> +       DEFINE(EXT_SCAN_ENHANCED),
> +       DEFINE(MEMORY_DUMP_SUPPORTED),
> +       DEFINE(PER_PKT_STATS_SUPPORTED),
> +       DEFINE(EXT_LL_STAT),
> +       DEFINE(WIFI_CONFIG),
> +       DEFINE(ANTENNA_DIVERSITY_SELECTION),
> +};
> +
> +#undef DEFINE
> +
> +const char *wcn36xx_firmware_get_cap_name(enum wcn36xx_firmware_feat_caps x)
> +{
> +       if (x >= ARRAY_SIZE(wcn36xx_firmware_caps_names))
> +               return "UNKNOWN";
> +       return wcn36xx_firmware_caps_names[x];
> +}
> +
>  void wcn36xx_firmware_set_feat_caps(u32 *bitmap,
>                                     enum wcn36xx_firmware_feat_caps cap)
>  {
> diff --git a/drivers/net/wireless/ath/wcn36xx/firmware.h b/drivers/net/wireless/ath/wcn36xx/firmware.h
> index 552c0e9325e1..f991cf959f82 100644
> --- a/drivers/net/wireless/ath/wcn36xx/firmware.h
> +++ b/drivers/net/wireless/ath/wcn36xx/firmware.h
> @@ -78,5 +78,7 @@ int wcn36xx_firmware_get_feat_caps(u32 *bitmap,
>  void wcn36xx_firmware_clear_feat_caps(u32 *bitmap,
>                                       enum wcn36xx_firmware_feat_caps cap);
>
> +const char *wcn36xx_firmware_get_cap_name(enum wcn36xx_firmware_feat_caps x);
> +
>  #endif /* _FIRMWARE_H_ */
>
> diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
> index af62911a4659..fec85e89a02f 100644
> --- a/drivers/net/wireless/ath/wcn36xx/main.c
> +++ b/drivers/net/wireless/ath/wcn36xx/main.c
> @@ -193,88 +193,15 @@ static inline u8 get_sta_index(struct ieee80211_vif *vif,
>                sta_priv->sta_index;
>  }
>
> -#define DEFINE(s) [s] = #s
> -
> -static const char * const wcn36xx_caps_names[] = {
> -       DEFINE(MCC),
> -       DEFINE(P2P),
> -       DEFINE(DOT11AC),
> -       DEFINE(SLM_SESSIONIZATION),
> -       DEFINE(DOT11AC_OPMODE),
> -       DEFINE(SAP32STA),
> -       DEFINE(TDLS),
> -       DEFINE(P2P_GO_NOA_DECOUPLE_INIT_SCAN),
> -       DEFINE(WLANACTIVE_OFFLOAD),
> -       DEFINE(BEACON_OFFLOAD),
> -       DEFINE(SCAN_OFFLOAD),
> -       DEFINE(ROAM_OFFLOAD),
> -       DEFINE(BCN_MISS_OFFLOAD),
> -       DEFINE(STA_POWERSAVE),
> -       DEFINE(STA_ADVANCED_PWRSAVE),
> -       DEFINE(AP_UAPSD),
> -       DEFINE(AP_DFS),
> -       DEFINE(BLOCKACK),
> -       DEFINE(PHY_ERR),
> -       DEFINE(BCN_FILTER),
> -       DEFINE(RTT),
> -       DEFINE(RATECTRL),
> -       DEFINE(WOW),
> -       DEFINE(WLAN_ROAM_SCAN_OFFLOAD),
> -       DEFINE(SPECULATIVE_PS_POLL),
> -       DEFINE(SCAN_SCH),
> -       DEFINE(IBSS_HEARTBEAT_OFFLOAD),
> -       DEFINE(WLAN_SCAN_OFFLOAD),
> -       DEFINE(WLAN_PERIODIC_TX_PTRN),
> -       DEFINE(ADVANCE_TDLS),
> -       DEFINE(BATCH_SCAN),
> -       DEFINE(FW_IN_TX_PATH),
> -       DEFINE(EXTENDED_NSOFFLOAD_SLOT),
> -       DEFINE(CH_SWITCH_V1),
> -       DEFINE(HT40_OBSS_SCAN),
> -       DEFINE(UPDATE_CHANNEL_LIST),
> -       DEFINE(WLAN_MCADDR_FLT),
> -       DEFINE(WLAN_CH144),
> -       DEFINE(NAN),
> -       DEFINE(TDLS_SCAN_COEXISTENCE),
> -       DEFINE(LINK_LAYER_STATS_MEAS),
> -       DEFINE(MU_MIMO),
> -       DEFINE(EXTENDED_SCAN),
> -       DEFINE(DYNAMIC_WMM_PS),
> -       DEFINE(MAC_SPOOFED_SCAN),
> -       DEFINE(BMU_ERROR_GENERIC_RECOVERY),
> -       DEFINE(DISA),
> -       DEFINE(FW_STATS),
> -       DEFINE(WPS_PRBRSP_TMPL),
> -       DEFINE(BCN_IE_FLT_DELTA),
> -       DEFINE(TDLS_OFF_CHANNEL),
> -       DEFINE(RTT3),
> -       DEFINE(MGMT_FRAME_LOGGING),
> -       DEFINE(ENHANCED_TXBD_COMPLETION),
> -       DEFINE(LOGGING_ENHANCEMENT),
> -       DEFINE(EXT_SCAN_ENHANCED),
> -       DEFINE(MEMORY_DUMP_SUPPORTED),
> -       DEFINE(PER_PKT_STATS_SUPPORTED),
> -       DEFINE(EXT_LL_STAT),
> -       DEFINE(WIFI_CONFIG),
> -       DEFINE(ANTENNA_DIVERSITY_SELECTION),
> -};
> -
> -#undef DEFINE
> -
> -static const char *wcn36xx_get_cap_name(enum wcn36xx_firmware_feat_caps x)
> -{
> -       if (x >= ARRAY_SIZE(wcn36xx_caps_names))
> -               return "UNKNOWN";
> -       return wcn36xx_caps_names[x];
> -}
> -
>  static void wcn36xx_feat_caps_info(struct wcn36xx *wcn)
>  {
>         int i;
>
>         for (i = 0; i < MAX_FEATURE_SUPPORTED; i++) {
> -               if (wcn36xx_firmware_get_feat_caps(wcn->fw_feat_caps, i))
> -                       wcn36xx_dbg(WCN36XX_DBG_MAC, "FW Cap %s\n", wcn36xx_get_cap_name(i));
> +               if (wcn36xx_firmware_get_feat_caps(wcn->fw_feat_caps, i)) {
> +                       wcn36xx_dbg(WCN36XX_DBG_MAC, "FW Cap %s\n",
> +                                   wcn36xx_firmware_get_cap_name(i));
> +               }
>         }
>  }
>
> --
> 2.36.1
>



More information about the wcn36xx mailing list