<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/ieee802154, branch v3.14.25</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>at86rf230: fix lockdep splats</title>
<updated>2014-03-13T19:44:24+00:00</updated>
<author>
<name>Alexander Aring</name>
<email>alex.aring@gmail.com</email>
</author>
<published>2014-03-12T07:21:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6e07a1e0b53d77dbcb08f29d1cca07c6d33a926f'/>
<id>6e07a1e0b53d77dbcb08f29d1cca07c6d33a926f</id>
<content type='text'>
This patch fix a lockdep in the at86rf230 driver, otherwise we get:

[   30.206517] =================================
[   30.211078] [ INFO: inconsistent lock state ]
[   30.215647] 3.14.0-20140108-1-00994-g32e9426 #163 Not tainted
[   30.221660] ---------------------------------
[   30.226222] inconsistent {HARDIRQ-ON-W} -&gt; {IN-HARDIRQ-W} usage.
[   30.232514] systemd-udevd/157 [HC1[1]:SC0[0]:HE0:SE1] takes:
[   30.238439]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){?.+...}, at: [&lt;c03600f8&gt;] at86rf230_isr+0x18/0x44
[   30.246621] {HARDIRQ-ON-W} state was registered at:
[   30.251728]   [&lt;c0061ce4&gt;] __lock_acquire+0x7a4/0x18d8
[   30.257135]   [&lt;c0063500&gt;] lock_acquire+0x68/0x7c
[   30.262071]   [&lt;c0588820&gt;] _raw_spin_lock+0x28/0x38
[   30.267203]   [&lt;c0361240&gt;] at86rf230_xmit+0x1c/0x144
[   30.272412]   [&lt;c057ba6c&gt;] mac802154_xmit_worker+0x88/0x148
[   30.278271]   [&lt;c0047844&gt;] process_one_work+0x274/0x404
[   30.283761]   [&lt;c00484c0&gt;] worker_thread+0x228/0x374
[   30.288971]   [&lt;c004cfb8&gt;] kthread+0xd0/0xe4
[   30.293455]   [&lt;c000dac8&gt;] ret_from_fork+0x14/0x2c
[   30.298493] irq event stamp: 8948
[   30.301963] hardirqs last  enabled at (8947): [&lt;c00cb290&gt;] __kmalloc+0xb4/0x110
[   30.309636] hardirqs last disabled at (8948): [&lt;c00115d4&gt;] __irq_svc+0x34/0x5c
[   30.317215] softirqs last  enabled at (8452): [&lt;c0037324&gt;] __do_softirq+0x1dc/0x264
[   30.325243] softirqs last disabled at (8439): [&lt;c0037638&gt;] irq_exit+0x80/0xf4

We use the lp-&gt;lock inside the isr of at86rf230, that's why we need the
irqsave spinlock calls.

Signed-off-by: Alexander Aring &lt;alex.aring@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fix a lockdep in the at86rf230 driver, otherwise we get:

[   30.206517] =================================
[   30.211078] [ INFO: inconsistent lock state ]
[   30.215647] 3.14.0-20140108-1-00994-g32e9426 #163 Not tainted
[   30.221660] ---------------------------------
[   30.226222] inconsistent {HARDIRQ-ON-W} -&gt; {IN-HARDIRQ-W} usage.
[   30.232514] systemd-udevd/157 [HC1[1]:SC0[0]:HE0:SE1] takes:
[   30.238439]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){?.+...}, at: [&lt;c03600f8&gt;] at86rf230_isr+0x18/0x44
[   30.246621] {HARDIRQ-ON-W} state was registered at:
[   30.251728]   [&lt;c0061ce4&gt;] __lock_acquire+0x7a4/0x18d8
[   30.257135]   [&lt;c0063500&gt;] lock_acquire+0x68/0x7c
[   30.262071]   [&lt;c0588820&gt;] _raw_spin_lock+0x28/0x38
[   30.267203]   [&lt;c0361240&gt;] at86rf230_xmit+0x1c/0x144
[   30.272412]   [&lt;c057ba6c&gt;] mac802154_xmit_worker+0x88/0x148
[   30.278271]   [&lt;c0047844&gt;] process_one_work+0x274/0x404
[   30.283761]   [&lt;c00484c0&gt;] worker_thread+0x228/0x374
[   30.288971]   [&lt;c004cfb8&gt;] kthread+0xd0/0xe4
[   30.293455]   [&lt;c000dac8&gt;] ret_from_fork+0x14/0x2c
[   30.298493] irq event stamp: 8948
[   30.301963] hardirqs last  enabled at (8947): [&lt;c00cb290&gt;] __kmalloc+0xb4/0x110
[   30.309636] hardirqs last disabled at (8948): [&lt;c00115d4&gt;] __irq_svc+0x34/0x5c
[   30.317215] softirqs last  enabled at (8452): [&lt;c0037324&gt;] __do_softirq+0x1dc/0x264
[   30.325243] softirqs last disabled at (8439): [&lt;c0037638&gt;] irq_exit+0x80/0xf4

We use the lp-&gt;lock inside the isr of at86rf230, that's why we need the
irqsave spinlock calls.

Signed-off-by: Alexander Aring &lt;alex.aring@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: ieee802154: remove unnecessary spi_set_drvdata()</title>
<updated>2013-12-11T03:31:32+00:00</updated>
<author>
<name>Jingoo Han</name>
<email>jg1.han@samsung.com</email>
</author>
<published>2013-12-10T03:51:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=40706af0b246f416a35fc3e12dc695deca8da3ff'/>
<id>40706af0b246f416a35fc3e12dc695deca8da3ff</id>
<content type='text'>
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.

Signed-off-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.

Signed-off-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tree-wide: use reinit_completion instead of INIT_COMPLETION</title>
<updated>2013-11-15T00:32:21+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa@the-dreams.de</email>
</author>
<published>2013-11-14T22:32:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=16735d022f72b20ddbb2274b8e109f69575e9b2b'/>
<id>16735d022f72b20ddbb2274b8e109f69575e9b2b</id>
<content type='text'>
Use this new function to make code more comprehensible, since we are
reinitialzing the completion, not initializing.

[akpm@linux-foundation.org: linux-next resyncs]
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt; (personally at LCE13)
Cc: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use this new function to make code more comprehensible, since we are
reinitialzing the completion, not initializing.

[akpm@linux-foundation.org: linux-next resyncs]
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt; (personally at LCE13)
Cc: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mrf24j40: Use level-triggered interrupts</title>
<updated>2013-10-08T19:32:14+00:00</updated>
<author>
<name>Alan Ott</name>
<email>alan@signal11.us</email>
</author>
<published>2013-10-06T03:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=40afbb657352e92726c40cc4ddf3cf0be6800dba'/>
<id>40afbb657352e92726c40cc4ddf3cf0be6800dba</id>
<content type='text'>
The mrf24j40 generates level interrupts. There are rare cases where it
appears that the interrupt line never gets de-asserted between interrupts,
causing interrupts to be lost, and causing a hung device from the driver's
perspective.  Switching the driver to interpret these interrupts as
level-triggered fixes this issue.

Signed-off-by: Alan Ott &lt;alan@signal11.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The mrf24j40 generates level interrupts. There are rare cases where it
appears that the interrupt line never gets de-asserted between interrupts,
causing interrupts to be lost, and causing a hung device from the driver's
perspective.  Switching the driver to interpret these interrupts as
level-triggered fixes this issue.

Signed-off-by: Alan Ott &lt;alan@signal11.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mrf24j40: Use threaded IRQ handler</title>
<updated>2013-10-08T19:32:13+00:00</updated>
<author>
<name>Alan Ott</name>
<email>alan@signal11.us</email>
</author>
<published>2013-10-06T03:52:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4a4e1da83cc1ff1b8a5171d9b16d4a6c2a6936db'/>
<id>4a4e1da83cc1ff1b8a5171d9b16d4a6c2a6936db</id>
<content type='text'>
Eliminate all the workqueue and interrupt enable/disable.

Signed-off-by: Alan Ott &lt;alan@signal11.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Eliminate all the workqueue and interrupt enable/disable.

Signed-off-by: Alan Ott &lt;alan@signal11.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mrf24j40: Move INIT_COMPLETION() to before packet transmission</title>
<updated>2013-10-08T19:32:13+00:00</updated>
<author>
<name>Alan Ott</name>
<email>alan@signal11.us</email>
</author>
<published>2013-10-06T03:52:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9757f1d2e0b4e7ff59e76c2fadbf819e18f3f884'/>
<id>9757f1d2e0b4e7ff59e76c2fadbf819e18f3f884</id>
<content type='text'>
This avoids a race condition where complete(tx_complete) could be called
before tx_complete is initialized.

Signed-off-by: Alan Ott &lt;alan@signal11.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids a race condition where complete(tx_complete) could be called
before tx_complete is initialized.

Signed-off-by: Alan Ott &lt;alan@signal11.us&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/net/ieee802154: don't use devm_pinctrl_get_select_default() in probe</title>
<updated>2013-07-12T00:18:27+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa@the-dreams.de</email>
</author>
<published>2013-07-10T15:57:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fdb70270015466076846a0525f195f59849c1966'/>
<id>fdb70270015466076846a0525f195f59849c1966</id>
<content type='text'>
Since commit ab78029 (drivers/pinctrl: grab default handles from device core),
we can rely on device core for setting the default pins. Compile tested only.

Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt; (personally at LCE13)
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since commit ab78029 (drivers/pinctrl: grab default handles from device core),
we can rely on device core for setting the default pins. Compile tested only.

Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt; (personally at LCE13)
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>at86rf230: change irq handling to prevent lockups with edge type irq</title>
<updated>2013-04-16T20:34:08+00:00</updated>
<author>
<name>Sascha Herrmann</name>
<email>sascha@ps.nvbi.de</email>
</author>
<published>2013-04-14T22:33:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=057dad6fcb89aa829bdf1f66b282a75defbf6761'/>
<id>057dad6fcb89aa829bdf1f66b282a75defbf6761</id>
<content type='text'>
Implemented separate irq handling for edge and level type interrupt
configuration. For edge type interrupts calls to disable_irq_nosync()
and enable_irq() are removed. The at86rf230 resets the irq line only
after the irq status register is read. Disabling the irq can lock the
driver in situations where a irq is set by the radio while the driver
is still reading the frame buffer.

With irq_type configuration set to 0 the original behavior is
preserverd.

Additional the irq filter register is set to filter out all unused
interrupts and the irq status register is read in the probe
function to clear the irq line.

Signed-off-by: Sascha Herrmann &lt;sascha@ps.nvbi.de&gt;

Conflicts:
	drivers/net/ieee802154/at86rf230.c
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implemented separate irq handling for edge and level type interrupt
configuration. For edge type interrupts calls to disable_irq_nosync()
and enable_irq() are removed. The at86rf230 resets the irq line only
after the irq status register is read. Disabling the irq can lock the
driver in situations where a irq is set by the radio while the driver
is still reading the frame buffer.

With irq_type configuration set to 0 the original behavior is
preserverd.

Additional the irq filter register is set to filter out all unused
interrupts and the irq status register is read in the probe
function to clear the irq line.

Signed-off-by: Sascha Herrmann &lt;sascha@ps.nvbi.de&gt;

Conflicts:
	drivers/net/ieee802154/at86rf230.c
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>at86rf230: add irq type configuration option</title>
<updated>2013-04-16T20:34:07+00:00</updated>
<author>
<name>Sascha Herrmann</name>
<email>sascha@ps.nvbi.de</email>
</author>
<published>2013-04-14T22:33:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=43b5abe0640100a9e9424c91298c7993d443ffb7'/>
<id>43b5abe0640100a9e9424c91298c7993d443ffb7</id>
<content type='text'>
Add option to at86rf230 platform data to configure the type of the
interrupt used by the driver. The irq polarity of the device will
be configured accordingly.

Signed-off-by: Sascha Herrmann &lt;sascha@ps.nvbi.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add option to at86rf230 platform data to configure the type of the
interrupt used by the driver. The irq polarity of the device will
be configured accordingly.

Signed-off-by: Sascha Herrmann &lt;sascha@ps.nvbi.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mrf24j40: use module_spi_driver to simplify the code</title>
<updated>2013-04-09T17:19:38+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2013-04-08T20:34:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3d4a1316286d037c29a36a8451a9612f60404ef7'/>
<id>3d4a1316286d037c29a36a8451a9612f60404ef7</id>
<content type='text'>
module_spi_driver() makes the code simpler by eliminating
boilerplate code.

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
module_spi_driver() makes the code simpler by eliminating
boilerplate code.

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
