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

Sebastian Gottschall s.gottschall at dd-wrt.com
Thu Aug 25 08:10:09 PDT 2016


Am 25.08.2016 um 16:33 schrieb Benjamin Berg:
> On Do, 2016-08-25 at 07:28 -0700, Ben Greear wrote:
>> 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?
> Hm, yes, adding a check there looks simple and I don't see any reason
> why it wouldn't work.
consider that i already implemented this in my version of the patch i 
supplied to you. however. mine doesnt use queue handling but just checks 
if the hw is ready before setting anything
>
> Benjamin


-- 
Mit freundlichen Grüssen / Regards

Sebastian Gottschall / CTO

NewMedia-NET GmbH - DD-WRT
Firmensitz:  Berliner Ring 101, 64625 Bensheim
Registergericht: Amtsgericht Darmstadt, HRB 25473
Geschäftsführer: Peter Steinhäuser, Christian Scheele
http://www.dd-wrt.com
email: s.gottschall at dd-wrt.com
Tel.: +496251-582650 / Fax: +496251-5826565




More information about the ath10k mailing list