<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/net/wireless/ath, branch v4.8.16</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.8.16</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.8.16'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2016-11-10T15:38:53+00:00</updated>
<entry>
<title>ath10k: cache calibration data when the core is stopped</title>
<updated>2016-11-10T15:38:53+00:00</updated>
<author>
<name>Marty Faltesek</name>
<email>mfaltesek@google.com</email>
</author>
<published>2016-10-10T16:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5bac49422b4a73bbc2733ba504b32bac76808bfb'/>
<id>urn:sha1:5bac49422b4a73bbc2733ba504b32bac76808bfb</id>
<content type='text'>
commit f67b107d4ceddcf7aa65b706aaaf50d68edb52a6 upstream.

Commit 0b8e3c4ca29f ("ath10k: move cal data len to hw_params") broke retrieving
the calibration data from cal_data debugfs file. The length of file was always
zero. The reason is:

    static ssize_t ath10k_debug_cal_data_read(struct file *file,
                                          char __user *user_buf,
                                          size_t count, loff_t *ppos)
    {
        struct ath10k *ar = file-&gt;private_data;
        void *buf = file-&gt;private_data;

This is obviously bogus, private_data cannot contain both struct ath10k and the
buffer. Fix it by caching calibration data to ar-&gt;debug.cal_data. This also
allows it to be accessed when the device is not active (interface is down).

The cal_data buffer is fixed size because during the first firmware probe we
don't yet know what will be the lenght of the calibration data. It was simplest
just to use a fixed length. There's a WARN_ON() in
ath10k_debug_cal_data_fetch() if the buffer is too small.

Tested with qca988x and firmware 10.2.4.70.56.

Reported-by: Nikolay Martynov &lt;mar.kolya@gmail.com&gt;
Fixes: 0b8e3c4ca29f ("ath10k: move cal data len to hw_params")
Signed-off-by: Marty Faltesek &lt;mfaltesek@google.com&gt;
[kvalo@qca.qualcomm.com: improve commit log and minor other changes]
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Revert "ath9k_hw: implement temperature compensation support for AR9003+"</title>
<updated>2016-11-10T15:38:53+00:00</updated>
<author>
<name>Felix Fietkau</name>
<email>nbd@nbd.name</email>
</author>
<published>2016-10-11T17:46:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a7d092e946f5f6b1234eb69eb4504f54cb1db58f'/>
<id>urn:sha1:a7d092e946f5f6b1234eb69eb4504f54cb1db58f</id>
<content type='text'>
commit 304e5ac118cc351eb047b6c433a89e13ea7259cf upstream.

This reverts commit 171f6402e4aa ("ath9k_hw: implement temperature compensation
support for AR9003+"). Some users report that this commit causes a regression
in performance under some conditions.

Fixes: 171f6402e4aa ("ath9k_hw: implement temperature compensation support for AR9003+")
Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
[kvalo@qca.qualcomm.com: improve commit log]
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath10k: fix throughput regression in multi client mode</title>
<updated>2016-10-31T11:02:09+00:00</updated>
<author>
<name>Rajkumar Manoharan</name>
<email>rmanohar@qti.qualcomm.com</email>
</author>
<published>2016-09-02T16:46:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f163372f569bf80fd3d14bcedb1a31aa1f954a1d'/>
<id>urn:sha1:f163372f569bf80fd3d14bcedb1a31aa1f954a1d</id>
<content type='text'>
commit 18f53fe0f30331e826b075709ed7b26b9283235e upstream.

commit 7a0adc83f34d ("ath10k: improve tx scheduling") is causing
severe throughput drop in multi client mode. This issue is originally
reported in veriwave setup with 50 clients with TCP downlink traffic.
While increasing number of clients, the average throughput drops
gradually. With 50 clients, the combined peak throughput is decreased
to 98 Mbps whereas reverting given commit restored it to 550 Mbps.

Processing txqs for every tx completion is causing overhead. Ideally for
management frame tx completion, pending txqs processing can be avoided.
The change partly reverts the commit "ath10k: improve tx scheduling".
Processing pending txqs after all skbs tx completion will yeild enough
room to burst tx frames.

Fixes: 7a0adc83f34d ("ath10k: improve tx scheduling")
Signed-off-by: Rajkumar Manoharan &lt;rmanohar@qti.qualcomm.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath10k: fix reporting channel survey data</title>
<updated>2016-10-31T11:02:09+00:00</updated>
<author>
<name>Ashok Raj Nagarajan</name>
<email>arnagara@qti.qualcomm.com</email>
</author>
<published>2016-09-02T05:29:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7acf11980844be117549b306e2f2c713b97dcbc1'/>
<id>urn:sha1:7acf11980844be117549b306e2f2c713b97dcbc1</id>
<content type='text'>
commit 77eb3d693182b4eaa88c6ba406fbb92b1f1bd636 upstream.

When user requests for survey dump data, driver is providing wrong survey
information. This information we sent is the survey data that we have
collected during previous user request.

This issue occurs because we request survey dump for wrong channel. With
this change, we correctly display the correct and current survey
information to userspace.

Fixes: fa7937e3d5c2 ("ath10k: update bss channel survey information")
Signed-off-by: Ashok Raj Nagarajan &lt;arnagara@qti.qualcomm.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath10k: fix sending frame in management path in push txq logic</title>
<updated>2016-10-31T11:02:09+00:00</updated>
<author>
<name>Ashok Raj Nagarajan</name>
<email>arnagara@qti.qualcomm.com</email>
</author>
<published>2016-08-18T10:00:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4464c51c0cd00b1ef2e4959175b2e1729a1f7452'/>
<id>urn:sha1:4464c51c0cd00b1ef2e4959175b2e1729a1f7452</id>
<content type='text'>
commit e4fd726f21cdae0dc9cea6cbfcb7e27f21393f88 upstream.

In the wake tx queue path, we are not checking if the frame to be sent
takes management path or not. For eg. QOS null func frame coming here will
take the management path. Since we are not incrementing the descriptor
counter (num_pending_mgmt_tx) w.r.t tx management, on tx completion it is
possible to see negative values.

When the above counter reaches a negative value, we will not be sending a
probe response out.

    if (is_presp &amp;&amp;
	ar-&gt;hw_params.max_probe_resp_desc_thres &lt; htt-&gt;num_pending_mgmt_tx)

For IPQ4019, max_probe_resp_desc_thres (u32) is 24 is compared against
num_pending_mgmt_tx (int) and the above condtions comes true if the counter
is negative and we drop the probe response.

To avoid this, check on the wake tx queue path as well for the tx path of
the frame and increment the appropriate counters

Fixes: cac085524cf1 "ath10k: move mgmt descriptor limit handle under mgmt_tx"
Signed-off-by: Ashok Raj Nagarajan &lt;arnagara@qti.qualcomm.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath10k: Add WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT wmi service</title>
<updated>2016-10-31T11:02:09+00:00</updated>
<author>
<name>Tamizh chelvam</name>
<email>c_traja@qti.qualcomm.com</email>
</author>
<published>2016-08-02T10:43:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7cefaa597140d72fe4f900a31c4bab3711b8ab0c'/>
<id>urn:sha1:7cefaa597140d72fe4f900a31c4bab3711b8ab0c</id>
<content type='text'>
commit 64ed5771aca2fcfb8ea440fc679741054011fd7e upstream.

WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT service has missed in
the commit 7e247a9e88dc ("ath10k: add dynamic tx mode switch
config support for qca4019"). This patch adds the service to
avoid mismatch between host and target.

Fixes: 7e247a9e88dc ("ath10k: add dynamic tx mode switch config support for qca4019")
Signed-off-by: Tamizh chelvam &lt;c_traja@qti.qualcomm.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath10k: fix copy engine 5 destination ring stuck</title>
<updated>2016-10-28T07:45:18+00:00</updated>
<author>
<name>Rajkumar Manoharan</name>
<email>rmanohar@qti.qualcomm.com</email>
</author>
<published>2016-09-21T10:58:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8a9398b95cfba21d8bc38fad3db9236d56a823d4'/>
<id>urn:sha1:8a9398b95cfba21d8bc38fad3db9236d56a823d4</id>
<content type='text'>
commit 0628467f97b5227755428bac10a68257322f7e34 upstream.

Firmware is running watchdog timer for tracking copy engine ring index
and write index. Whenever both indices are stuck at same location for
given duration, watchdog will be trigger to assert target. While
updating copy engine destination ring write index, driver ensures that
write index will not be same as read index by finding delta between these
two indices (CE_RING_DELTA).

HTT target to host copy engine (CE5) is special case where ring buffers
will be reused and delta check is not applied while updating write index.
In rare scenario, whenever CE5 ring is full, both indices will be referring
same location and this is causing CE ring stuck issue as explained
above. This issue is originally reported on IPQ4019 during long hour stress
testing and during veriwave max clients testsuites. The same issue is
also observed in other chips as well. Fix this by ensuring that write
index is one less than read index which means that full ring is
available for receiving data.

Tested-by: Tamizh chelvam &lt;c_traja@qti.qualcomm.com&gt;
Signed-off-by: Rajkumar Manoharan &lt;rmanohar@qti.qualcomm.com&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>carl9170: fix debugfs crashes</title>
<updated>2016-10-22T10:40:22+00:00</updated>
<author>
<name>Christian Lamparter</name>
<email>chunkeey@googlemail.com</email>
</author>
<published>2016-09-21T16:49:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ba77f1da2bc797f561fe9e1df0602122e7709c46'/>
<id>urn:sha1:ba77f1da2bc797f561fe9e1df0602122e7709c46</id>
<content type='text'>
commit 6ee6d1cb391ca85b419f8d18bdfb1f020a5e859c upstream.

Ben Greear reported:
&gt; I see lots of instability as soon as I load up the carl9710 NIC.
&gt; My application is going to be poking at it's debugfs files...
&gt;
&gt; BUG: KASAN: slab-out-of-bounds in carl9170_debugfs_read+0xd5/0x2a0
&gt; [carl9170] at addr 0xffff8801bc1208b0
&gt; Read of size 8 by task btserver/5888
&gt; =======================================================================
&gt; BUG kmalloc-256 (Tainted: G        W      ): kasan: bad access detected
&gt; -----------------------------------------------------------------------
&gt;
&gt; INFO: Allocated in seq_open+0x50/0x100 age=2690 cpu=2 pid=772
&gt;...

This breakage was caused by the introduction of intermediate
fops in debugfs by commit 9fd4dcece43a
("debugfs: prevent access to possibly dead file_operations at file open")

Thankfully, the original/real fops are still available in d_fsdata.

Reported-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: Christian Lamparter &lt;chunkeey@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath9k: bring back direction setting in ath9k_{start_stop}</title>
<updated>2016-09-07T13:21:04+00:00</updated>
<author>
<name>Giedrius Statkevičius</name>
<email>giedrius.statkevicius@gmail.com</email>
</author>
<published>2016-09-01T17:47:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e34f2ff40e0339f6a379e1ecf49e8f2759056453'/>
<id>urn:sha1:e34f2ff40e0339f6a379e1ecf49e8f2759056453</id>
<content type='text'>
A regression was introduced in commit id 79d4db1214a ("ath9k: cleanup
led_pin initial") that broken the WLAN status led on my laptop with
AR9287 after suspending and resuming.

Steps to reproduce:
* Suspend (laptop)
* Resume (laptop)
* Observe that the WLAN led no longer turns ON/OFF depending on the
  status and is always red

Even though for my case it only needs to be set to OUT in ath9k_start
but for consistency bring back the IN direction setting as well.

Fixes: 79d4db1214a0 ("ath9k: cleanup led_pin initial")
Cc: Miaoqing Pan &lt;miaoqing@codeaurora.org&gt;
Cc: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # 4.7+
Link: https://bugzilla.kernel.org/show_bug.cgi?id=151711
Signed-off-by: Giedrius Statkevičius &lt;giedrius.statkevicius@gmail.com&gt;
[kvalo@qca.qualcomm.com: improve commit log]
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>ath9k: fix AR5416 access GPIO warning</title>
<updated>2016-09-02T16:32:04+00:00</updated>
<author>
<name>Miaoqing Pan</name>
<email>miaoqing@codeaurora.org</email>
</author>
<published>2016-08-04T07:48:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=db7b542e4a789156a4fb61278f2074795fe2eb9c'/>
<id>urn:sha1:db7b542e4a789156a4fb61278f2074795fe2eb9c</id>
<content type='text'>
The warning was seen on AR5416 chip, which invoke ath9k_hw_gio_get()
before the GPIO initialized correctly.

    WARNING: CPU: 1 PID: 1159 at ~/drivers/net/wireless/ath/ath9k/hw.c:2776 ath9k_hw_gpio_get+0x148/0x1a0 [ath9k_hw]
    ...
    CPU: 1 PID: 1159 Comm: systemd-udevd Not tainted 4.7.0-rc7-aptosid-amd64 #1 aptosid 4.7~rc7-1~git92.slh.3
    Hardware name:                  /DH67CL, BIOS BLH6710H.86A.0160.2012.1204.1156 12/04/2012
      0000000000000286 00000000f912d633 ffffffff81290fd3 0000000000000000
      0000000000000000 ffffffff81063fd4 ffff88040c6dc018 0000000000000000
      0000000000000002 0000000000000000 0000000000000100 ffff88040c6dc018
    Call Trace:
      [&lt;ffffffff81290fd3&gt;] ? dump_stack+0x5c/0x79
      [&lt;ffffffff81063fd4&gt;] ? __warn+0xb4/0xd0
      [&lt;ffffffffa0668fb8&gt;] ? ath9k_hw_gpio_get+0x148/0x1a0 [ath9k_hw]

Signed-off-by: Miaoqing Pan &lt;miaoqing@codeaurora.org&gt;
Reported-by: Stefan Lippers-Hollmann &lt;s.l-h@gmx.de&gt;
Tested-by: Stefan Lippers-Hollmann &lt;s.l-h@gmx.de&gt;
Signed-off-by: Kalle Valo &lt;kvalo@qca.qualcomm.com&gt;
</content>
</entry>
</feed>
