[RFC v3 01/11] ath10k: high_latency detection

Kalle Valo kvalo at qca.qualcomm.com
Fri Dec 22 07:06:02 PST 2017


Erik Stromdahl <erik.stromdahl at gmail.com> writes:

> The setup of high latency chips (USB and SDIO) is
> sometimes different than for chips using low latency
> interfaces.
>
> The bus type is used to determine if the interface is
> a high latency interface.
>
> Signed-off-by: Erik Stromdahl <erik.stromdahl at gmail.com>
> ---
>  drivers/net/wireless/ath/ath10k/core.c | 1 +
>  drivers/net/wireless/ath/ath10k/core.h | 7 +++++++
>  2 files changed, 8 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
> index a4f635820f35..f1924c974a12 100644
> --- a/drivers/net/wireless/ath/ath10k/core.c
> +++ b/drivers/net/wireless/ath/ath10k/core.c
> @@ -2496,6 +2496,7 @@ struct ath10k *ath10k_core_create(size_t priv_size, struct device *dev,
>  	ar->hw_rev = hw_rev;
>  	ar->hif.ops = hif_ops;
>  	ar->hif.bus = bus;
> +	ar->is_high_latency = ath10k_is_high_latency(bus);

I would prefer the bus driver to provide this via a parameter in
ath10k_core_register() call.

> --- a/drivers/net/wireless/ath/ath10k/core.h
> +++ b/drivers/net/wireless/ath/ath10k/core.h
> @@ -789,6 +789,8 @@ struct ath10k {
>  
>  	bool p2p;
>  
> +	bool is_high_latency;
> +
>  	struct {
>  		enum ath10k_bus bus;
>  		const struct ath10k_hif_ops *ops;
> @@ -1013,6 +1015,11 @@ static inline bool ath10k_peer_stats_enabled(struct ath10k *ar)
>  	return false;
>  }
>  
> +static inline bool ath10k_is_high_latency(enum ath10k_bus bus)
> +{
> +	return ((bus == ATH10K_BUS_SDIO) || (bus == ATH10K_BUS_USB));
> +}

That way this function is not needed.

Also I'm wondering should the parameter be actually 'struct
ath10k_bus_params' (or something like that) to make it easier to extend.

-- 
Kalle Valo


More information about the ath10k mailing list