<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/wireless/ti, branch v3.7.2</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>wlcore: protect wlcore_op_set_key with mutex</title>
<updated>2012-09-27T09:13:54+00:00</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2012-09-03T15:27:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=af390f4dd35373b3ca32bafc12d7f2ad12840529'/>
<id>af390f4dd35373b3ca32bafc12d7f2ad12840529</id>
<content type='text'>
wlcore_op_set_key() calls wl18xx_set_key(),
which in turn executes some of his function
calls without acquiring wl-&gt;mutex and making
sure the fw is awake.

Adding mutex_lock()/ps_elp_wakeup() calls is
not enough, as wl18xx_set_key() calls
wl1271_tx_flush() which can't be called while
the mutex is taken.

Add the required calls to wlcore_op_set_key,
but limit the queues_stop and flushing
to the only encryption types in which
a spare block might be needed (GEM and TKIP).

[Arik - move state != ON check]

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
wlcore_op_set_key() calls wl18xx_set_key(),
which in turn executes some of his function
calls without acquiring wl-&gt;mutex and making
sure the fw is awake.

Adding mutex_lock()/ps_elp_wakeup() calls is
not enough, as wl18xx_set_key() calls
wl1271_tx_flush() which can't be called while
the mutex is taken.

Add the required calls to wlcore_op_set_key,
but limit the queues_stop and flushing
to the only encryption types in which
a spare block might be needed (GEM and TKIP).

[Arik - move state != ON check]

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: decrease elp timeout</title>
<updated>2012-09-27T09:13:54+00:00</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2012-09-02T10:30:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ab2c4f37dcef5bd517a95a32da50d5ed0cc24cb5'/>
<id>ab2c4f37dcef5bd517a95a32da50d5ed0cc24cb5</id>
<content type='text'>
The current elp timeout (the same as the dynamic
ps timeout - 1500ms) is too high. Usually,
wl1271_ps_elp_sleep() get called right after tx/rx,
which is fine, but some command might get sent
even when there is no traffic (e.g. ht changes
triggered by beacon frames), and leaving the
device awake for 1500ms in this case is redundant.

Use a timeout of 30ms.
The fw won't enter elp anyway before the dynamic-ps
timeout was expired as well (and it entered ps
successfully).

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current elp timeout (the same as the dynamic
ps timeout - 1500ms) is too high. Usually,
wl1271_ps_elp_sleep() get called right after tx/rx,
which is fine, but some command might get sent
even when there is no traffic (e.g. ht changes
triggered by beacon frames), and leaving the
device awake for 1500ms in this case is redundant.

Use a timeout of 30ms.
The fw won't enter elp anyway before the dynamic-ps
timeout was expired as well (and it entered ps
successfully).

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: Load the NVS file asynchronously</title>
<updated>2012-09-27T09:13:54+00:00</updated>
<author>
<name>Ido Yariv</name>
<email>ido@wizery.com</email>
</author>
<published>2012-09-01T22:32:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6f8d6b20bb0bdda333e781faf775db14cb4660dd'/>
<id>6f8d6b20bb0bdda333e781faf775db14cb4660dd</id>
<content type='text'>
The NVS file is loaded by the device's probe callback with the help of
request_firmware(). Since request_firmware() relies on udevd, the
modules cannot be loaded before hotplug events are handled.

Fix this by loading the NVS file asynchronously and continue
initialization only after the firmware request is over.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The NVS file is loaded by the device's probe callback with the help of
request_firmware(). Since request_firmware() relies on udevd, the
modules cannot be loaded before hotplug events are handled.

Fix this by loading the NVS file asynchronously and continue
initialization only after the firmware request is over.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: Refactor probe</title>
<updated>2012-09-27T09:13:54+00:00</updated>
<author>
<name>Ido Yariv</name>
<email>ido@wizery.com</email>
</author>
<published>2012-09-02T09:29:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3992eb2bf2b1f6d244cf527c922c0cbd810e69c5'/>
<id>3992eb2bf2b1f6d244cf527c922c0cbd810e69c5</id>
<content type='text'>
Move most of the device-specific probe functionality into setup(), a new
op. By doing this, wlcore_probe will be the first to request a firmware
from userspace, making it easier to load the NVS file asynchronously.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move most of the device-specific probe functionality into setup(), a new
op. By doing this, wlcore_probe will be the first to request a firmware
from userspace, making it easier to load the NVS file asynchronously.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: Allow memory access when the FW crashes</title>
<updated>2012-09-27T09:13:53+00:00</updated>
<author>
<name>Ido Yariv</name>
<email>ido@wizery.com</email>
</author>
<published>2012-08-21T14:17:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d556023895c8968fd97ccb08300006b78975a23b'/>
<id>d556023895c8968fd97ccb08300006b78975a23b</id>
<content type='text'>
When the no_recovery flag is used, the recovery work will not restart
the FW and the state will not be set to 'on'. To enable post-mortem
analysis, allow memory access in the 'restarting' state.

Also, since the FW might not be operational, don't fail the read/write
operations if elp_wakeup fails.

Reported-by: Arkady Miasnikov &lt;a-miasnikov@ti.com&gt;
Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the no_recovery flag is used, the recovery work will not restart
the FW and the state will not be set to 'on'. To enable post-mortem
analysis, allow memory access in the 'restarting' state.

Also, since the FW might not be operational, don't fail the read/write
operations if elp_wakeup fails.

Reported-by: Arkady Miasnikov &lt;a-miasnikov@ti.com&gt;
Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: use dynamic keep-alive template ids</title>
<updated>2012-09-27T09:13:53+00:00</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2012-08-16T10:52:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=001e39a8effd5a9774153ca6ca67849a93b95852'/>
<id>001e39a8effd5a9774153ca6ca67849a93b95852</id>
<content type='text'>
Currently, all the (station) roles use the same
keep-alive template id (0). However, the klv
template ids shouldn't be shared by different
roles.

Implement a simple klv_templates bitmap, and let
each role allocate its own klv template id on
role initialization.

[Arik - remove invalidation of KLV template when getting into "idle".
This is already handled in unjoin]

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, all the (station) roles use the same
keep-alive template id (0). However, the klv
template ids shouldn't be shared by different
roles.

Implement a simple klv_templates bitmap, and let
each role allocate its own klv template id on
role initialization.

[Arik - remove invalidation of KLV template when getting into "idle".
This is already handled in unjoin]

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: invalidate keep-alive template on disconnection</title>
<updated>2012-09-27T09:13:53+00:00</updated>
<author>
<name>Eliad Peller</name>
<email>eliad@wizery.com</email>
</author>
<published>2012-08-16T10:32:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4137c17c8c88eca51a9e9d53c5eea0ea3d49940e'/>
<id>4137c17c8c88eca51a9e9d53c5eea0ea3d49940e</id>
<content type='text'>
Previously, invalidation of the keep-alive template was
done when going idle. However, while removing the
idle-handling we didn't move the keep-alive template
invalidation to another place.

This finally resulted in fw error when trying to use
the keep-alive template by another role.

(Note that we still have an error here - each role
should have its unique keep-alive template id, while
currently they all use CMD_TEMPL_KLV_IDX_NULL_DATA (0).
This only works now because we don't support concurrent
connected stations yet)

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, invalidation of the keep-alive template was
done when going idle. However, while removing the
idle-handling we didn't move the keep-alive template
invalidation to another place.

This finally resulted in fw error when trying to use
the keep-alive template by another role.

(Note that we still have an error here - each role
should have its unique keep-alive template id, while
currently they all use CMD_TEMPL_KLV_IDX_NULL_DATA (0).
This only works now because we don't support concurrent
connected stations yet)

Signed-off-by: Eliad Peller &lt;eliad@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wl18xx: default to siso40 in 2.4ghz with a single antenna</title>
<updated>2012-09-27T09:13:53+00:00</updated>
<author>
<name>Arik Nemtsov</name>
<email>arik@wizery.com</email>
</author>
<published>2012-08-15T16:11:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8c5dab1a8449428685414c0de494b77841571fd3'/>
<id>8c5dab1a8449428685414c0de494b77841571fd3</id>
<content type='text'>
The driver used siso20 in this case for legacy reasons.

Reported-by: Ido Reis &lt;idor@ti.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The driver used siso20 in this case for legacy reasons.

Reported-by: Ido Reis &lt;idor@ti.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: Fix unbalanced interrupts enablement</title>
<updated>2012-09-27T09:13:53+00:00</updated>
<author>
<name>Ido Yariv</name>
<email>ido@wizery.com</email>
</author>
<published>2012-08-15T15:29:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a8311c8a9a7c41de9cc2d5e1573ff7005b4959ab'/>
<id>a8311c8a9a7c41de9cc2d5e1573ff7005b4959ab</id>
<content type='text'>
The interrupt line is enabled by wl12xx_enable_interrupts and
wl18xx_enable_interrupts, but it will not be disabled in all failure
paths. Fix this.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The interrupt line is enabled by wl12xx_enable_interrupts and
wl18xx_enable_interrupts, but it will not be disabled in all failure
paths. Fix this.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>wlcore: Don't recover during boot</title>
<updated>2012-09-27T09:13:53+00:00</updated>
<author>
<name>Ido Yariv</name>
<email>ido@wizery.com</email>
</author>
<published>2012-08-15T12:09:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=792a58a8720f02c8f340583f6ee54c9eb46adf0b'/>
<id>792a58a8720f02c8f340583f6ee54c9eb46adf0b</id>
<content type='text'>
While recursive recovery is avoided during shutdown, a new recovery may
be queued when the FW boots. The recovery work will then try to stop an
already stopped hardware, which will most likely result in a kernel
panic.

Fix this by verifying that wl-&gt;state is on before queueing a new
recovery.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While recursive recovery is avoided during shutdown, a new recovery may
be queued when the FW boots. The recovery work will then try to stop an
already stopped hardware, which will most likely result in a kernel
panic.

Fix this by verifying that wl-&gt;state is on before queueing a new
recovery.

Signed-off-by: Ido Yariv &lt;ido@wizery.com&gt;
Signed-off-by: Arik Nemtsov &lt;arik@wizery.com&gt;
Signed-off-by: Luciano Coelho &lt;luca@coelho.fi&gt;
</pre>
</div>
</content>
</entry>
</feed>
