On Mon, May 20, 2019 at 11:39:09AM +0200, Tomislav Požega wrote: > From: Benjamin Berg <benjamin@xxxxxxxxxxxxxxxx> > > 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 is a hack and might cause subtle problems but as it's not enabled by > default (only when user space changes the coverage class explicitly) it should > not cause new problems for existing setups. But still this should be considered > as an experimental feature and used with caution. > > This patch implements the support for first generation cards (QCA9880, QCA9887 > and so on) 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@xxxxxxxxxx> for initially > working on a userspace support for this. This patch wouldn't have been > possible without this documentation. > > Signed-off-by: Benjamin Berg <benjamin@xxxxxxxxxxxxxxxx> > Signed-off-by: Simon Wunderlich <sw@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Mathias Kretschmer <mathias.kretschmer@xxxxxxxxxxxxxxxxx> > Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> > Signed-off-by: Tomislav Požega <pozega.tomislav@xxxxxxxxx> > --- <formletter> This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly. </formletter>