[PATCH] ath10k: new debugfs interface to enable adaptive CCA

Michal Kazior michal.kazior at tieto.com
Sun May 10 23:05:10 PDT 2015


On 8 May 2015 at 16:01,  <c_mpubbi at qti.qualcomm.com> wrote:
> From: Manikanta Pubbisetty <c_mpubbi at qti.qualcomm.com>
>
> For devices working in 2.4 GHz to be ETSI compliant,
> it is required to support adaptive CCA. Some firmwares
> support adaptive CCA and is disabled by default.
>
> The patch is an attempt to add a new debugfs interface to enable
> adaptive cca on supported firmwares. Support for this feature is
> advertised with a new firmware feature flag.

I guess this should be configured automatically depending on DFS
domain. You can't expect users to configure their devices via debugfs,
can you? This should just work.


> Signed-off-by: Manikanta Pubbisetty <c_mpubbi at qti.qualcomm.com>
> ---
>  drivers/net/wireless/ath/ath10k/core.h    |  9 ++++--
>  drivers/net/wireless/ath/ath10k/debug.c   | 52 +++++++++++++++++++++++++++++++
>  drivers/net/wireless/ath/ath10k/wmi-ops.h | 21 +++++++++++++
>  drivers/net/wireless/ath/ath10k/wmi.c     | 31 ++++++++++++++++++
>  drivers/net/wireless/ath/ath10k/wmi.h     | 10 ++++++
>  5 files changed, 121 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
> index 827b3d7..89176f1 100644
> --- a/drivers/net/wireless/ath/ath10k/core.h
> +++ b/drivers/net/wireless/ath/ath10k/core.h
> @@ -461,10 +461,13 @@ enum ath10k_fw_features {
>         ATH10K_FW_FEATURE_WOWLAN_SUPPORT = 6,
>
>         /* Don't trust error code from otp.bin */
> -       ATH10K_FW_FEATURE_IGNORE_OTP_RESULT,
> +       ATH10K_FW_FEATURE_IGNORE_OTP_RESULT = 7,
> +
> +       /* Firmware has support for adaptive CCA */
> +       ATH10K_FW_FEATURE_HAS_ADAPTIVE_CCA = 8,
>
>         /* keep last */
> -       ATH10K_FW_FEATURE_COUNT,
> +       ATH10K_FW_FEATURE_COUNT

There's no need to remove the comma, is there?


>  };
>
>  enum ath10k_dev_flags {
> @@ -726,6 +729,8 @@ struct ath10k {
>         struct ath10k_thermal thermal;
>         struct ath10k_wow wow;
>
> +       bool ath10k_adaptive_cca_enable;
> +

Maybe just adaptive_cca?


[...]
> diff --git a/drivers/net/wireless/ath/ath10k/wmi-ops.h b/drivers/net/wireless/ath/ath10k/wmi-ops.h
> index 47fe2e7..eb7991e 100644
> --- a/drivers/net/wireless/ath/ath10k/wmi-ops.h
> +++ b/drivers/net/wireless/ath/ath10k/wmi-ops.h
> @@ -174,6 +174,10 @@ struct wmi_ops {
>                                                 const struct wmi_tdls_peer_capab_arg *cap,
>                                                 const struct wmi_channel_arg *chan);
>         struct sk_buff *(*gen_adaptive_qcs)(struct ath10k *ar, bool enable);
> +       struct sk_buff *(*gen_pdev_enable_adaptive_cca)(struct ath10k *ar,
> +                                                       u8 enable,
> +                                                       int detect_level,
> +                                                       u32 detect_margin);

I'm just picky here - but you could probably use "s32" for signed
values instead of "int". This way function argument types would be
more unified/consistent.


Michał



More information about the ath10k mailing list