[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