<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/net/wireless/rt2x00/rt2x00rfkill.c, branch docs-mw</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-mw</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=docs-mw'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2009-07-10T19:02:27+00:00</updated>
<entry>
<title>rt2x00: use wiphy rfkill interface</title>
<updated>2009-07-10T19:02:27+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-07-01T13:17:35+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e47a5cddf893815e7da16e3226b959af785d8aaf'/>
<id>urn:sha1:e47a5cddf893815e7da16e3226b959af785d8aaf</id>
<content type='text'>
Remove the input_polldev from rt2x00 and replace it with
the rfkill interface offered by the wiphy structure. This
simplifies the entire rfkill handling in rt2x00 and allows
us to remove the CONFIG_RT2X00_LIB_RFKILL option and always
enables rfkill capabilities.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: Update copyright year to 2009</title>
<updated>2009-01-29T21:00:45+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-01-17T19:42:32+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=4e54c711b42c3cc8da8a3fdcde3407b86d67ebcc'/>
<id>urn:sha1:4e54c711b42c3cc8da8a3fdcde3407b86d67ebcc</id>
<content type='text'>
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: Only register rfkill input when key is present</title>
<updated>2009-01-29T20:59:57+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-01-07T13:51:41+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=64d74681433415855da02d2516f28d2ed859cde9'/>
<id>urn:sha1:64d74681433415855da02d2516f28d2ed859cde9</id>
<content type='text'>
rt2x00 should only register the RFKILL input device when the hardware indicated
the key was present.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: Replace RFKILL with INPUT</title>
<updated>2009-01-29T20:59:47+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-01-03T18:56:02+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=cca3e99861e883358ceb39ad17c9eaee082138a5'/>
<id>urn:sha1:cca3e99861e883358ceb39ad17c9eaee082138a5</id>
<content type='text'>
As discussed on linux-wireless rt2x00 does not offer a true RFKILL key,
for that reason RFKILL support should be entirely removed.

The key which is attached to the hardware should be treated as normal
input device instead. Implement input_poll_dev support to poll the device
frequently. When the key status has changed report it as a SW event.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: fix a wrong parameter for __test_and_clear_bit() in rt2x00rfkill_free().</title>
<updated>2009-01-16T22:08:24+00:00</updated>
<author>
<name>Rami Rosen</name>
<email>ramirose@gmail.com</email>
</author>
<published>2009-01-13T22:00:13+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=e223b6dc051ad030a70d5c6ed6226b95bdfc3af7'/>
<id>urn:sha1:e223b6dc051ad030a70d5c6ed6226b95bdfc3af7</id>
<content type='text'>
When running modprobe rt73usb, and then rmmod rt73usb, and then
iwconfig, the wlan0 device does not disappear. When repeating this
process again, we get a kernel Oops errors and "BUG: unable to handle
kernel paging request..." message in the kernel log.

The reason for this is that there is an error in rt2x00rfkill_free(),
which is called in the process of removing the device
(rt2x00lib_remove_dev() in rt2x00dev.c).
rt2x00rfkill_free() clears the RFKILL_STATE_ALLOCATED bit , which is
bit number 1 () in rt2x00dev-&gt;flags instead of in
rt2x00dev-&gt;rfkill_state. As a result, when checking the
DEVICE_STATE_REGISTERED_HW bit (bit number 1 in rt2x00dev-&gt;flags) in
rt2x00lib_remove_hw() it is **unset**, and we wrongly **don't** call
ieee80211_unregister_hw().

This patch corrects this: the parameter for __test_and_clear_bit() in
rt2x00rfkill_free() should be &amp;rt2x00dev-&gt;rfkill_state and not
&amp;rt2x00dev-&gt;flags.

Signed-off-by: Rami Rosen &lt;ramirose@gmail.com&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: Fix rfkill structure initialization to prevent rfkill WARN_ON.</title>
<updated>2008-10-06T22:14:57+00:00</updated>
<author>
<name>Gertjan van Wingerde</name>
<email>gwingerde@kpnplanet.nl</email>
</author>
<published>2008-10-03T18:20:32+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=5b5d13afeeee959a74114b73c560d3e243f34a11'/>
<id>urn:sha1:5b5d13afeeee959a74114b73c560d3e243f34a11</id>
<content type='text'>
The state field of the rfkill structure was incorrectly initialized to -1, which results in rfkill
issueing a WARN_ON. Fix this by initializing the state field to the proper value as indicated by
the driver.

Signed-off-by: Gertjan van Wingerde &lt;gwingerde@kpnplanet.nl&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: Make RFKILL enabled by default</title>
<updated>2008-09-11T19:53:38+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2008-09-08T16:46:29+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=58169529986e81e0d477ce11eb8b91f025f649c1'/>
<id>urn:sha1:58169529986e81e0d477ce11eb8b91f025f649c1</id>
<content type='text'>
RFKILL should be enabled for _all_ hardware whether
or not they feature a rfkill button or not.

Remove driver specific RFKILL configuration options
and make the rt2x00lib version depend on CONFIG_RFKILL
and defaulting to 'y' to make sure it will always
be enabled when RFKILL was enabled.

This also fixes some bugs where RFKILL wasn't initialized
and didn't respond to RFKILL key presses.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: Fix race conditions in flag handling</title>
<updated>2008-08-29T20:24:11+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2008-08-29T19:04:26+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=0262ab0df64a67d4c0ed7577a29b7d866819cc68'/>
<id>urn:sha1:0262ab0df64a67d4c0ed7577a29b7d866819cc68</id>
<content type='text'>
Some of the flags should be accessed atomically to
prevent race conditions. The flags that are most important
are those that can change often and indicate the actual
state of the device, queue or queue entry.

The big flag rename was done to move all state flags to
the same naming type as the other rt2x00dev flags and
made sure all places where the flags were used were changed. ;)

Thanks to Stephen for most of the queue flags updates,
which fixes some of the most obvious consequences of the
race conditions. Among those the notorious:

rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.
rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.
rt2x00queue_write_tx_frame: Error - Arrived at non-free entry in the non-full queue 0.

Signed-off-by: Stephen Blackheath &lt;tramp.enshrine.stephen@blacksapphire.com&gt;
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>rt2x00: Remove input_polldev requirements for rfkill</title>
<updated>2008-07-08T18:16:03+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2008-07-04T12:51:39+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=50db7875d9dcd89f7624b13535738612faf8db0c'/>
<id>urn:sha1:50db7875d9dcd89f7624b13535738612faf8db0c</id>
<content type='text'>
With the new rfkill interface there is no longer a need
for the input_polldev. Create a delayed_work structure
which we can put on the mac80211 workqueue and poll the
hardware every 1000ms.

v2: Decrease poll frequency from 100ms to 1000ms

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
<entry>
<title>wireless: remove RFKILL_STATE_HARD_BLOCKED warnings</title>
<updated>2008-06-27T14:27:47+00:00</updated>
<author>
<name>John W. Linville</name>
<email>linville@tuxdriver.com</email>
</author>
<published>2008-06-27T14:27:47+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ff28bd94e307c67abb1bccda5d3a9018bd798e08'/>
<id>urn:sha1:ff28bd94e307c67abb1bccda5d3a9018bd798e08</id>
<content type='text'>
  CC [M]  drivers/net/wireless/b43/rfkill.o
drivers/net/wireless/b43/rfkill.c: In function ‘b43_rfkill_soft_toggle’:
drivers/net/wireless/b43/rfkill.c:90: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch

  CC [M]  drivers/net/wireless/b43legacy/rfkill.o
drivers/net/wireless/b43legacy/rfkill.c: In function ‘b43legacy_rfkill_soft_toggle’:
drivers/net/wireless/b43legacy/rfkill.c:92: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch

  CC [M]  drivers/net/wireless/iwlwifi/iwl-rfkill.o
drivers/net/wireless/iwlwifi/iwl-rfkill.c: In function ‘iwl_rfkill_soft_rf_kill’:
drivers/net/wireless/iwlwifi/iwl-rfkill.c:56: warning: enumeration value ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch

Also handle RFKILL_STATE_{ON,OFF} -&gt; RFKILL_STATE_{UNBLOCKED,SOFT_BLOCKED}
conversion since I'm already here...

Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
</entry>
</feed>
