<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/wireless, branch v3.10.33</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/net/wireless?h=v3.10.33</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/net/wireless?h=v3.10.33'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-03-07T05:30:02Z</updated>
<entry>
<title>rtlwifi: rtl8192ce: Fix too long disable of IRQs</title>
<updated>2014-03-07T05:30:02Z</updated>
<author>
<name>Olivier Langlois</name>
<email>olivier@trillion01.com</email>
</author>
<published>2014-02-01T06:11:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6af2434c56936bc6a48b6d1e457d266fae032d82'/>
<id>urn:sha1:6af2434c56936bc6a48b6d1e457d266fae032d82</id>
<content type='text'>
commit f78bccd79ba3cd9d9664981b501d57bdb81ab8a4 upstream.

rtl8192ce is disabling for too long the local interrupts during hw initiatialisation when performing scans

The observable symptoms in dmesg can be:

- underruns from ALSA playback
- clock freezes (tstamps do not change for several dmesg entries until irqs are finaly reenabled):

[  250.817669] rtlwifi:rtl_op_config():&lt;0-0-0&gt; 0x100
[  250.817685] rtl8192ce:_rtl92ce_phy_set_rf_power_state():&lt;0-1-0&gt; IPS Set eRf nic enable
[  250.817732] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.817796] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.817910] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818024] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818139] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818253] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818367] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818472] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818472] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818472] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818472] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:18051d59:11
[  250.818472] rtl8192ce:_rtl92ce_init_mac():&lt;0-1-0&gt; reg0xec:98053f15:10
[  250.818472] rtl8192ce:rtl92ce_sw_led_on():&lt;0-1-0&gt; LedAddr:4E ledpin=1
[  250.818472] rtl8192c_common:rtl92c_download_fw():&lt;0-1-0&gt; Firmware Version(49), Signature(0x88c1),Size(32)
[  250.818472] rtl8192ce:rtl92ce_enable_hw_security_config():&lt;0-1-0&gt; PairwiseEncAlgorithm = 0 GroupEncAlgorithm = 0
[  250.818472] rtl8192ce:rtl92ce_enable_hw_security_config():&lt;0-1-0&gt; The SECR-value cc
[  250.818472] rtl8192c_common:rtl92c_dm_check_txpower_tracking_thermal_meter():&lt;0-1-0&gt; Schedule TxPowerTracking direct call!!
[  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():&lt;0-1-0&gt; rtl92c_dm_txpower_tracking_callback_thermalmeter
[  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():&lt;0-1-0&gt; Readback Thermal Meter = 0xe pre thermal meter 0xf eeprom_thermalmeter 0xf
[  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():&lt;0-1-0&gt; Initial pathA ele_d reg0xc80 = 0x40000000, ofdm_index=0xc
[  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():&lt;0-1-0&gt; Initial reg0xa24 = 0x90e1317, cck_index=0xc, ch14 0
[  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():&lt;0-1-0&gt; Readback Thermal Meter = 0xe pre thermal meter 0xf eeprom_thermalmeter 0xf delta 0x1 delta_lck 0x0 delta_iqk 0x0
[  250.818472] rtl8192c_common:rtl92c_dm_txpower_tracking_callback_thermalmeter():&lt;0-1-0&gt; &lt;===
[  250.818472] rtl8192c_common:rtl92c_dm_initialize_txpower_tracking_thermalmeter():&lt;0-1-0&gt; pMgntInfo-&gt;txpower_tracking = 1
[  250.818472] rtl8192ce:rtl92ce_led_control():&lt;0-1-0&gt; ledaction 3
[  250.818472] rtl8192ce:rtl92ce_sw_led_on():&lt;0-1-0&gt; LedAddr:4E ledpin=1
[  250.818472] rtlwifi:rtl_ips_nic_on():&lt;0-1-0&gt; before spin_unlock_irqrestore
[  251.154656] PCM: Lost interrupts? [Q]-0 (stream=0, delta=15903, new_hw_ptr=293408, old_hw_ptr=277505)

The exact code flow that causes that is:

1. wpa_supplicant send a start_scan request to the nl80211 driver
2. mac80211 module call rtl_op_config with IEEE80211_CONF_CHANGE_IDLE
3.   rtl_ips_nic_on is called which disable local irqs
4.     rtl92c_phy_set_rf_power_state() is called
5.       rtl_ps_enable_nic() is called and hw_init()is executed and then the interrupts on the device are enabled

A good solution could be to refactor the code to avoid calling rtl92ce_hw_init() with the irqs disabled
but a quick and dirty solution that has proven to work is
to reenable the irqs during the function rtl92ce_hw_init().

I think that it is safe doing so since the device interrupt will only be enabled after the init function succeed.

Signed-off-by: Olivier Langlois &lt;olivier@trillion01.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rtlwifi: Fix incorrect return from rtl_ps_enable_nic()</title>
<updated>2014-03-07T05:30:02Z</updated>
<author>
<name>Olivier Langlois</name>
<email>olivier@trillion01.com</email>
</author>
<published>2014-02-01T06:11:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f93503ede37c814caddc5d3042b16c2decff53fa'/>
<id>urn:sha1:f93503ede37c814caddc5d3042b16c2decff53fa</id>
<content type='text'>
commit 2e8c5e56b307271c2dab6f8bfd1d8a3822ca2390 upstream.

rtl_ps_enable_nic() is called from loops that will loop until this function returns true or a
maximum number of retries is performed.

hw_init() returns non-zero on error. In that situation return false to
restore the original design intent to retry hw init when it fails.

Signed-off-by: Olivier Langlois &lt;olivier@trillion01.com&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>rtl8187: fix regression on MIPS without coherent DMA</title>
<updated>2014-03-07T05:30:02Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>stf_xl@wp.pl</email>
</author>
<published>2014-02-10T21:38:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0dba4d31d9d093d86decb0d49a1c4a32b488608e'/>
<id>urn:sha1:0dba4d31d9d093d86decb0d49a1c4a32b488608e</id>
<content type='text'>
commit b6213e413a4e0c66548153516b074df14f9d08e0 upstream.

This patch fixes regression caused by commit a16dad77634 "MIPS: Fix
potencial corruption". That commit fixes one corruption scenario in
cost of adding another one, which actually start to cause crashes
on Yeeloong laptop when rtl8187 driver is used.

For correct DMA read operation on machines without DMA coherence, kernel
have to invalidate cache, such it will refill later with new data that
device wrote to memory, when that data is needed to process. We can only
invalidate full cache line. Hence when cache line includes both dma
buffer and some other data (written in cache, but not yet in main
memory), the other data can not hit memory due to invalidation. That
happen on rtl8187 where struct rtl8187_priv fields are located just
before and after small buffers that are passed to USB layer and DMA
is performed on them.

To fix the problem we align buffers and reserve space after them to make
them match cache line.

This patch does not resolve all possible MIPS problems entirely, for
that we have to assure that we always map cache aligned buffers for DMA,
what can be complex or even not possible. But patch fixes visible and
reproducible regression and seems other possible corruptions do not
happen in practice, since Yeeloong laptop works stable without rtl8187
driver.

Bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=54391

Reported-by: Petr Pisar &lt;petr.pisar@atlas.cz&gt;
Bisected-by: Tom Li &lt;biergaizi2009@gmail.com&gt;
Reported-and-tested-by: Tom Li &lt;biergaizi2009@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;stf_xl@wp.pl&gt;
Acked-by: Larry Finger &lt;Larry.Finger@lwfinger.next&gt;
Acked-by: Hin-Tak Leung &lt;htl10@users.sourceforge.net&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: mvm: BT Coex - disable BT when TXing probe request in scan</title>
<updated>2014-02-22T20:41:26Z</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-01-28T10:27:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b825fac234c90d60b0617fae3a962a773a5ecc2d'/>
<id>urn:sha1:b825fac234c90d60b0617fae3a962a773a5ecc2d</id>
<content type='text'>
commit 8e2a866ef214af4e104ec8d593e3269d8fe66d19 upstream.

Not doing so will let BT kill our probe requests leading to
failures in scan.

Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: mvm: print the version of the firmware when it asserts</title>
<updated>2014-02-22T20:41:26Z</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2014-01-23T09:55:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d06c4efcbd03b8e82bb0b134c808478b2962c6bb'/>
<id>urn:sha1:d06c4efcbd03b8e82bb0b134c808478b2962c6bb</id>
<content type='text'>
commit b900a87b2eb90c0b9586496c82a323a1b8832d73 upstream.

This can be useful to be able to spot the firmware version
from the error reports without needing to fetch it from
another place.

Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: mvm: don't allow A band if SKU forbids it</title>
<updated>2014-02-22T20:41:26Z</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2013-12-05T20:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=39423ded280b61c4f782ad05ecb01c62235a2afe'/>
<id>urn:sha1:39423ded280b61c4f782ad05ecb01c62235a2afe</id>
<content type='text'>
commit c512865446e6dd5b6e91e81187e75b734ad7cfc7 upstream.

The driver wasn't reading the NVM properly. While this
didn't lead to any issue until now, it seems that there
is an old version of the NVM in the wild.
In this version, the A band channels appear to be valid
but the SKU capabilities (another field of the NVM) says
that A band isn't supported at all.
With this specific version of the NVM, the driver would
think that A band is supported while the HW / firmware
don't. This leads to asserts.

Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ar5523: fix usb id for Gigaset.</title>
<updated>2014-02-22T20:41:26Z</updated>
<author>
<name>Oleksij Rempel</name>
<email>linux@rempel-privat.de</email>
</author>
<published>2014-02-02T09:55:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=22c7a1899d2d59b1aed821e8d4946431911be28a'/>
<id>urn:sha1:22c7a1899d2d59b1aed821e8d4946431911be28a</id>
<content type='text'>
commit 4fcfc7443d072582b5047b8b391d711590e5645c upstream.

Raw id and FW id should be switched.

Tested-by: Oleksij Rempel &lt;linux@rempel-privat.de&gt;
Signed-off-by: Oleksij Rempel &lt;linux@rempel-privat.de&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ath9k_htc: make -&gt;sta_rc_update atomic for most calls</title>
<updated>2014-02-22T20:41:26Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2014-01-28T08:14:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6180be9f6b1db2b6bb526a797b39a1f74f048453'/>
<id>urn:sha1:6180be9f6b1db2b6bb526a797b39a1f74f048453</id>
<content type='text'>
commit 2fa4cb905605c863bf570027233af7afd8149ae4 upstream.

sta_rc_update() callback must be atomic, hence we can not take mutexes
or do other operations, which can sleep in ath9k_htc_sta_rc_update().

I think we can just return from ath9k_htc_sta_rc_update(), if it is
called without IEEE80211_RC_SUPP_RATES_CHANGED bit. That will help
with scheduling while atomic bug for most cases (except mesh and IBSS
modes).

For mesh and IBSS I do not see other solution like creating additional
workqueue, because sending firmware command require us to sleep, but
this can be done in additional patch.

Patch partially fixes bug:
https://bugzilla.redhat.com/show_bug.cgi?id=990955

Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: pcie: fix interrupt coalescing for 7260 / 3160</title>
<updated>2014-02-06T19:08:17Z</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2013-11-11T13:23:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6fb6cd453c656633c2f0e32d954d3d7bba66f434'/>
<id>urn:sha1:6fb6cd453c656633c2f0e32d954d3d7bba66f434</id>
<content type='text'>
commit 6960a059b2c618f32fe549f13287b3d2278c09e9 upstream.

We changed the timeout for the interrupt coealescing for
calibration, but that wasn't effective since we changed
that value back before loading the firmware. Since
calibrations are notification from firmware and not Rx
packets, this doesn't change anyway - the firmware will
fire an interrupt straight away regardless of the interrupt
coalescing value.
Also, a HW issue has been discovered in 7000 devices series.
The work around is to disable the new interrupt coalescing
timeout feature - do this by setting bit 31 in
CSR_INT_COALESCING.
This has been fixed in 7265 which means that we can't rely
on the device family and must have a hint in the iwl_cfg
structure.

Fixes: 99cd47142399 ("iwlwifi: add 7000 series device configuration")
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>iwlwifi: pcie: enable oscillator for L1 exit</title>
<updated>2014-02-06T19:08:17Z</updated>
<author>
<name>Emmanuel Grumbach</name>
<email>emmanuel.grumbach@intel.com</email>
</author>
<published>2013-12-24T12:15:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=50920a1dd85602169df04e38248fa582d523c039'/>
<id>urn:sha1:50920a1dd85602169df04e38248fa582d523c039</id>
<content type='text'>
commit 2d93aee152b1758a94a18fe15d72153ba73b5679 upstream.

Enabling the oscillator consumes slightly more power (100uA)
but allows to make sure that we exit from L1 on time.

Not doing so might lead to a PCIe specification violation
since we might wake up from L1 at the wrong time.
This issue has been identified on 3160 and 7260 only.
On older NICs L1 off is not enabled, on newer NICs (7265),
the issue is fixed.

When the bug occurs the user sees that the NIC has
disappeared from the PCI bridge, any access to the device
returns 0xff.

This fixes:
	https://bugzilla.kernel.org/show_bug.cgi?id=64541

and has been extensively discussed here:
	http://markmail.org/thread/mfmpzqt3r333n4bo

Fixes: 99cd47142399 ("iwlwifi: add 7000 series device configuration")
Reported-and-tested-by: wzyboy &lt;wzyboy@wzyboy.org&gt;
Reviewed-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: Emmanuel Grumbach &lt;emmanuel.grumbach@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;


</content>
</entry>
</feed>
