<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/wireless/rt2x00/rt2x00dev.c, branch v2.6.31</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>rt73usb: fix for master mode</title>
<updated>2009-05-20T18:46:34+00:00</updated>
<author>
<name>Alexandre Becholey</name>
<email>alexandre.becholey@epfl.ch</email>
</author>
<published>2009-05-19T15:52:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ce4c45e099a81b2bc820b6e145aa9058c5acf0bd'/>
<id>ce4c45e099a81b2bc820b6e145aa9058c5acf0bd</id>
<content type='text'>
Report status unknown as if there were successfully transmitted.
This will avoid hostapd to disassociate because it doesn't understand what a status unknown is.

Signed-off-by: Alexandre Becholey &lt;alexandre.becholey@epfl.ch&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Report status unknown as if there were successfully transmitted.
This will avoid hostapd to disassociate because it doesn't understand what a status unknown is.

Signed-off-by: Alexandre Becholey &lt;alexandre.becholey@epfl.ch&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Implement support for 802.11n</title>
<updated>2009-05-06T19:14:50+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-04-26T14:09:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=35f00cfcc06bb85e0659f9847400518008d78145'/>
<id>35f00cfcc06bb85e0659f9847400518008d78145</id>
<content type='text'>
Extend rt2x00lib capabilities to support 802.11n,
it still lacks aggregation support, but that can
be added in the future.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extend rt2x00lib capabilities to support 802.11n,
it still lacks aggregation support, but that can
be added in the future.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Add support for L2 padding during TX/RX</title>
<updated>2009-05-06T19:14:49+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-04-26T14:08:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9f1661718c7fcf82e25c6aed20b729ee372d9d65'/>
<id>9f1661718c7fcf82e25c6aed20b729ee372d9d65</id>
<content type='text'>
Some hardware require L2 padding between header and payload
because both must be aligned to a 4-byte boundary. This hardware
also is easier during the RX path since we no longer need to
move the entire payload but rather only the header to remove
the padding (mac80211 only wants the payload to be 4-byte aligned).

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some hardware require L2 padding between header and payload
because both must be aligned to a 4-byte boundary. This hardware
also is easier during the RX path since we no longer need to
move the entire payload but rather only the header to remove
the padding (mac80211 only wants the payload to be 4-byte aligned).

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: prevent double kfree when failing to register hardware</title>
<updated>2009-04-16T14:39:15+00:00</updated>
<author>
<name>Herton Ronaldo Krzesinski</name>
<email>herton@mandriva.com.br</email>
</author>
<published>2009-04-10T21:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f05faa31c387fb07f4c561350f00ba12cf673c9f'/>
<id>f05faa31c387fb07f4c561350f00ba12cf673c9f</id>
<content type='text'>
In a scenario where there isn't any firmware available, we will have a
double kfree of rt2x00dev-&gt;spec.channels_info when ieee80211_register_hw
returns an error status inside rt2x00lib_probe_hw.

The problem is that if ieee80211_register_hw fails, we call
rt2x00lib_remove_hw twice:
* first inside rt2x00lib_probe_hw upon failure of ieee80211_register_hw
* error status is returned to rt2x00lib_probe_dev, which then sees it and
  calls in this case rt2x00lib_remove_dev that will again run
  rt2x00lib_remove_hw

Prevent this avoiding calling rt2x00lib_remove_hw inside
rt2x00lib_probe_hw

Problem was detected with CONFIG_DEBUG_PAGEALLOC=y, CONFIG_SLUB_DEBUG=y,
CONFIG_SLUB_DEBUG_ON=y, that dumps this with no firmware available:

rt61pci 0000:00:07.0: PCI INT A -&gt; GSI 19 (level, low) -&gt; IRQ 19
wmaster0 (rt61pci): not using net_device_ops yet
phy0: Selected rate control algorithm 'pid'
phy0: Failed to initialize wep: -2
phy0 -&gt; rt2x00lib_probe_dev: Error - Failed to initialize hw.
=============================================================================
BUG kmalloc-128: Object already free
-----------------------------------------------------------------------------

INFO: Allocated in rt61pci_probe_hw+0x3e5/0x6e0 [rt61pci] age=340 cpu=0 pid=21
INFO: Freed in rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib] age=0 cpu=0 pid=21
INFO: Slab 0xc13ac3e0 objects=23 used=10 fp=0xdd59f6e0 flags=0x400000c3
INFO: Object 0xdd59f6e0 @offset=1760 fp=0xdd59f790

Bytes b4 0xdd59f6d0:  15 00 00 00 b2 8a fb ff 5a 5a 5a 5a 5a 5a 5a 5a ....².ûÿZZZZZZZZ
  Object 0xdd59f6e0:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f6f0:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f700:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f710:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f720:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f730:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f740:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f750:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5 kkkkkkkkkkkkkkk¥
 Redzone 0xdd59f760:  bb bb bb bb                                     »»»»
 Padding 0xdd59f788:  5a 5a 5a 5a 5a 5a 5a 5a                         ZZZZZZZZ
Pid: 21, comm: stage1 Not tainted 2.6.29.1-desktop-1.1mnb #1
Call Trace:
 [&lt;c01abbb3&gt;] print_trailer+0xd3/0x120
 [&lt;c01abd37&gt;] object_err+0x37/0x50
 [&lt;c01acf57&gt;] __slab_free+0xe7/0x2f0
 [&lt;c01ad1de&gt;] kfree+0x7e/0xd0
 [&lt;e0e4a239&gt;] ? rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
 [&lt;e0e4a239&gt;] ? rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
 [&lt;e0e4a239&gt;] rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
 [&lt;e0e4acc7&gt;] rt2x00lib_remove_dev+0x37/0x50 [rt2x00lib]
 [&lt;e0e4b087&gt;] rt2x00lib_probe_dev+0x1a7/0x3b0 [rt2x00lib]
 [&lt;e0eb288f&gt;] rt2x00pci_probe+0xdf/0x1ee [rt2x00pci]
 [&lt;c026b9ee&gt;] local_pci_probe+0xe/0x10
 [&lt;c026c750&gt;] pci_device_probe+0x60/0x80
 [&lt;c02d5c2a&gt;] driver_probe_device+0x9a/0x2e0
 [&lt;c02d5ef9&gt;] __driver_attach+0x89/0x90
 [&lt;c02d541b&gt;] bus_for_each_dev+0x4b/0x70
 [&lt;c026c690&gt;] ? pci_device_remove+0x0/0x40
 [&lt;c02d59d9&gt;] driver_attach+0x19/0x20
 [&lt;c02d5e70&gt;] ? __driver_attach+0x0/0x90
 [&lt;c02d4cef&gt;] bus_add_driver+0x1cf/0x2a0
 [&lt;c026c690&gt;] ? pci_device_remove+0x0/0x40
 [&lt;c02d60c9&gt;] driver_register+0x69/0x140
 [&lt;c026c9b0&gt;] __pci_register_driver+0x40/0x80
 [&lt;e0ecc000&gt;] ? rt61pci_init+0x0/0x19 [rt61pci]
 [&lt;e0ecc017&gt;] rt61pci_init+0x17/0x19 [rt61pci]
 [&lt;c0101116&gt;] do_one_initcall+0x26/0x1c0
 [&lt;c01ab90c&gt;] ? slab_pad_check+0x3c/0x120
 [&lt;c01ab90c&gt;] ? slab_pad_check+0x3c/0x120
 [&lt;c01ac8da&gt;] ? check_object+0xda/0x210
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01ad09e&gt;] ? __slab_free+0x22e/0x2f0
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01687ec&gt;] ? stop_machine_destroy+0x3c/0x40
 [&lt;c015e515&gt;] ? load_module+0xa5/0x1c50
 [&lt;e0ec5000&gt;] ? rt61pci_eepromregister_read+0x0/0x40 [rt61pci]
 [&lt;e0eb2000&gt;] ? rt2x00pci_write_tx_data+0x0/0x90 [rt2x00pci]
 [&lt;c03ac2fb&gt;] ? mutex_lock+0xb/0x20
 [&lt;c03ac2fb&gt;] ? mutex_lock+0xb/0x20
 [&lt;c017ad16&gt;] ? tracepoint_update_probe_range+0x76/0xa0
 [&lt;c017ad6f&gt;] ? tracepoint_module_notify+0x2f/0x40
 [&lt;c03b02ed&gt;] ? notifier_call_chain+0x2d/0x70
 [&lt;c014f0ed&gt;] ? __blocking_notifier_call_chain+0x4d/0x60
 [&lt;c014f11a&gt;] ? blocking_notifier_call_chain+0x1a/0x20
 [&lt;c0160156&gt;] sys_init_module+0x96/0x1d0
 [&lt;c019dad6&gt;] ? sys_munmap+0x46/0x60
 [&lt;c0105546&gt;] syscall_call+0x7/0xb
FIX kmalloc-128: Object at 0xdd59f6e0 not freed
rt61pci 0000:00:07.0: PCI INT A disabled
rt61pci: probe of 0000:00:07.0 failed with error -2

Signed-off-by: Herton Ronaldo Krzesinski &lt;herton@mandriva.com.br&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In a scenario where there isn't any firmware available, we will have a
double kfree of rt2x00dev-&gt;spec.channels_info when ieee80211_register_hw
returns an error status inside rt2x00lib_probe_hw.

The problem is that if ieee80211_register_hw fails, we call
rt2x00lib_remove_hw twice:
* first inside rt2x00lib_probe_hw upon failure of ieee80211_register_hw
* error status is returned to rt2x00lib_probe_dev, which then sees it and
  calls in this case rt2x00lib_remove_dev that will again run
  rt2x00lib_remove_hw

Prevent this avoiding calling rt2x00lib_remove_hw inside
rt2x00lib_probe_hw

Problem was detected with CONFIG_DEBUG_PAGEALLOC=y, CONFIG_SLUB_DEBUG=y,
CONFIG_SLUB_DEBUG_ON=y, that dumps this with no firmware available:

rt61pci 0000:00:07.0: PCI INT A -&gt; GSI 19 (level, low) -&gt; IRQ 19
wmaster0 (rt61pci): not using net_device_ops yet
phy0: Selected rate control algorithm 'pid'
phy0: Failed to initialize wep: -2
phy0 -&gt; rt2x00lib_probe_dev: Error - Failed to initialize hw.
=============================================================================
BUG kmalloc-128: Object already free
-----------------------------------------------------------------------------

INFO: Allocated in rt61pci_probe_hw+0x3e5/0x6e0 [rt61pci] age=340 cpu=0 pid=21
INFO: Freed in rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib] age=0 cpu=0 pid=21
INFO: Slab 0xc13ac3e0 objects=23 used=10 fp=0xdd59f6e0 flags=0x400000c3
INFO: Object 0xdd59f6e0 @offset=1760 fp=0xdd59f790

Bytes b4 0xdd59f6d0:  15 00 00 00 b2 8a fb ff 5a 5a 5a 5a 5a 5a 5a 5a ....².ûÿZZZZZZZZ
  Object 0xdd59f6e0:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f6f0:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f700:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f710:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f720:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f730:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f740:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
  Object 0xdd59f750:  6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5 kkkkkkkkkkkkkkk¥
 Redzone 0xdd59f760:  bb bb bb bb                                     »»»»
 Padding 0xdd59f788:  5a 5a 5a 5a 5a 5a 5a 5a                         ZZZZZZZZ
Pid: 21, comm: stage1 Not tainted 2.6.29.1-desktop-1.1mnb #1
Call Trace:
 [&lt;c01abbb3&gt;] print_trailer+0xd3/0x120
 [&lt;c01abd37&gt;] object_err+0x37/0x50
 [&lt;c01acf57&gt;] __slab_free+0xe7/0x2f0
 [&lt;c01ad1de&gt;] kfree+0x7e/0xd0
 [&lt;e0e4a239&gt;] ? rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
 [&lt;e0e4a239&gt;] ? rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
 [&lt;e0e4a239&gt;] rt2x00lib_remove_hw+0x59/0x70 [rt2x00lib]
 [&lt;e0e4acc7&gt;] rt2x00lib_remove_dev+0x37/0x50 [rt2x00lib]
 [&lt;e0e4b087&gt;] rt2x00lib_probe_dev+0x1a7/0x3b0 [rt2x00lib]
 [&lt;e0eb288f&gt;] rt2x00pci_probe+0xdf/0x1ee [rt2x00pci]
 [&lt;c026b9ee&gt;] local_pci_probe+0xe/0x10
 [&lt;c026c750&gt;] pci_device_probe+0x60/0x80
 [&lt;c02d5c2a&gt;] driver_probe_device+0x9a/0x2e0
 [&lt;c02d5ef9&gt;] __driver_attach+0x89/0x90
 [&lt;c02d541b&gt;] bus_for_each_dev+0x4b/0x70
 [&lt;c026c690&gt;] ? pci_device_remove+0x0/0x40
 [&lt;c02d59d9&gt;] driver_attach+0x19/0x20
 [&lt;c02d5e70&gt;] ? __driver_attach+0x0/0x90
 [&lt;c02d4cef&gt;] bus_add_driver+0x1cf/0x2a0
 [&lt;c026c690&gt;] ? pci_device_remove+0x0/0x40
 [&lt;c02d60c9&gt;] driver_register+0x69/0x140
 [&lt;c026c9b0&gt;] __pci_register_driver+0x40/0x80
 [&lt;e0ecc000&gt;] ? rt61pci_init+0x0/0x19 [rt61pci]
 [&lt;e0ecc017&gt;] rt61pci_init+0x17/0x19 [rt61pci]
 [&lt;c0101116&gt;] do_one_initcall+0x26/0x1c0
 [&lt;c01ab90c&gt;] ? slab_pad_check+0x3c/0x120
 [&lt;c01ab90c&gt;] ? slab_pad_check+0x3c/0x120
 [&lt;c01ac8da&gt;] ? check_object+0xda/0x210
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01ad09e&gt;] ? __slab_free+0x22e/0x2f0
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01b0026&gt;] ? percpu_free+0x46/0x50
 [&lt;c01687ec&gt;] ? stop_machine_destroy+0x3c/0x40
 [&lt;c015e515&gt;] ? load_module+0xa5/0x1c50
 [&lt;e0ec5000&gt;] ? rt61pci_eepromregister_read+0x0/0x40 [rt61pci]
 [&lt;e0eb2000&gt;] ? rt2x00pci_write_tx_data+0x0/0x90 [rt2x00pci]
 [&lt;c03ac2fb&gt;] ? mutex_lock+0xb/0x20
 [&lt;c03ac2fb&gt;] ? mutex_lock+0xb/0x20
 [&lt;c017ad16&gt;] ? tracepoint_update_probe_range+0x76/0xa0
 [&lt;c017ad6f&gt;] ? tracepoint_module_notify+0x2f/0x40
 [&lt;c03b02ed&gt;] ? notifier_call_chain+0x2d/0x70
 [&lt;c014f0ed&gt;] ? __blocking_notifier_call_chain+0x4d/0x60
 [&lt;c014f11a&gt;] ? blocking_notifier_call_chain+0x1a/0x20
 [&lt;c0160156&gt;] sys_init_module+0x96/0x1d0
 [&lt;c019dad6&gt;] ? sys_munmap+0x46/0x60
 [&lt;c0105546&gt;] syscall_call+0x7/0xb
FIX kmalloc-128: Object at 0xdd59f6e0 not freed
rt61pci 0000:00:07.0: PCI INT A disabled
rt61pci: probe of 0000:00:07.0 failed with error -2

Signed-off-by: Herton Ronaldo Krzesinski &lt;herton@mandriva.com.br&gt;
Acked-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Add kill_tx_queue callback function</title>
<updated>2009-02-09T20:03:34+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-01-27T23:32:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a2c9b652a12a550d3d8509e9bae43bac396c5076'/>
<id>a2c9b652a12a550d3d8509e9bae43bac396c5076</id>
<content type='text'>
provide rt2x00lib the possibility to kill a particular TX queue.
This can be useful when disabling the radio, but more importantly
will allow beaconing to be disabled when mac80211 requests this
(during scanning for example)

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
provide rt2x00lib the possibility to kill a particular TX queue.
This can be useful when disabling the radio, but more importantly
will allow beaconing to be disabled when mac80211 requests this
(during scanning for example)

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Move intf_work to mac82011 workqueue</title>
<updated>2009-02-09T20:03:34+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-01-27T23:32:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=382fe0f2da78db7833c6a7278e33e694e6e2a6f3'/>
<id>382fe0f2da78db7833c6a7278e33e694e6e2a6f3</id>
<content type='text'>
ieee80211_iterate_active_interfaces() no longer acquires the
RTNL lock which means the intf_work handler can be safely
used from the mac80211 workqueue again.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ieee80211_iterate_active_interfaces() no longer acquires the
RTNL lock which means the intf_work handler can be safely
used from the mac80211 workqueue again.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Simplify suspend/resume handling</title>
<updated>2009-01-29T21:01:27+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2009-01-23T16:04:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0712612741e1dccf10353c70ebe90ba8cc60d5fb'/>
<id>0712612741e1dccf10353c70ebe90ba8cc60d5fb</id>
<content type='text'>
With mac80211 handling all open interfaces during
suspend and resume we can simplify suspend/resume
within rt2x00lib.

The only thing rt2x00 needs to do is free up memory
during suspend and bring back the minimal required
components during resume.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With mac80211 handling all open interfaces during
suspend and resume we can simplify suspend/resume
within rt2x00lib.

The only thing rt2x00 needs to do is free up memory
during suspend and bring back the minimal required
components during resume.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</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='https://git.tavy.me/linux.git/commit/?id=4e54c711b42c3cc8da8a3fdcde3407b86d67ebcc'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Introduce RXDONE_SIGNAL_MASK mask</title>
<updated>2009-01-29T20:58:41+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2008-12-20T09:59:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b30dd5c043eda4b3d23659ef550c16ce4f6ecb47'/>
<id>b30dd5c043eda4b3d23659ef550c16ce4f6ecb47</id>
<content type='text'>
Improve error message reporting when a frame was received
with unknown rate. Instead of using the boolean check if
the frame is supposed to be a PLCP value or not, we should
add a new mask (RXDONE_SIGNAL_MASK) which returns the type
identification for a signal value (i.e. PLCP). At the moment
we only have 2 different types, but more will arrive when
support for 11n is added.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Improve error message reporting when a frame was received
with unknown rate. Instead of using the boolean check if
the frame is supposed to be a PLCP value or not, we should
add a new mask (RXDONE_SIGNAL_MASK) which returns the type
identification for a signal value (i.e. PLCP). At the moment
we only have 2 different types, but more will arrive when
support for 11n is added.

Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rt2x00: Allow drivers to pass the noise value during rxdone</title>
<updated>2009-01-29T20:58:41+00:00</updated>
<author>
<name>Ivo van Doorn</name>
<email>ivdoorn@gmail.com</email>
</author>
<published>2008-12-20T09:59:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2bdb35c7ffb61f4b9d963dd447a2c54add5f02c5'/>
<id>2bdb35c7ffb61f4b9d963dd447a2c54add5f02c5</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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Ivo van Doorn &lt;IvDoorn@gmail.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
