[PATCHv3 2/2] ath10k: Allow setting coverage class

Ben Greear greearb at candelatech.com
Thu Aug 25 07:28:43 PDT 2016

On 08/25/2016 06:25 AM, Benjamin Berg wrote:
> Unfortunately ath10k does not generally allow modifying the coverage class
> with the stock firmware and Qualcomm has so far refused to implement this
> feature so that it can be properly supported in ath10k. If we however know
> the registers that need to be modified for proper operation with a higher
> coverage class, then we can do these modifications from the driver.
> This patch implements this hack for first generation cards which are based
> on a core that is similar to ath9k. The registers are modified in place and
> need to be re-written every time the firmware sets them. To achieve this
> the register status is verified after certain WMI events from the firmware.
> The coverage class may not be modified temporarily right after the card
> re-initializes the registers. This is for example the case during scanning.
> Thanks to Sebastian Gottschall <s.gottschall at dd-wrt.com> for initially
> working on a userspace support for this. This patch wouldn't have been
> possible without this documentation.

> diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
> index d246288..8ccc8cf 100644
> --- a/drivers/net/wireless/ath/ath10k/wmi.c
> +++ b/drivers/net/wireless/ath/ath10k/wmi.c
> @@ -4879,6 +4879,12 @@ exit:
>   	return 0;
>   }
> +static inline void ath10k_wmi_queue_set_coverage_class_work(struct ath10k *ar)
> +{
> +	if (ar->hw_params.hw_ops->set_coverage_class)
> +		queue_work(ar->workqueue, &ar->set_coverage_class_work);
> +}

Maybe this should first check to see if the user has specified a coverage class
before it attempts to do any work at all?

That way, if user does not set anything, then the behaviour does not change
in any significant way?


Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

More information about the ath10k mailing list