aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/mac80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-04-14 04:09:24 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-04-22 16:57:14 -0400
commitf2753ddbadb0873a98421415882318251bbd9eaa (patch)
treedaad40232be13d91835b30234e5743dfdd582f19 /include/net/mac80211.h
parenta1c555802a62c845520d2486d783c9bb1d5e68a9 (diff)
mac80211: add hardware restart function
Some hardware defects may require the hardware to be re-initialised completely from scratch. Drivers would need much information (for instance the current MAC address, crypto keys, beaconing information, etc.) stored duplicated from mac80211 to be able to do this, so let mac80211 help them. The new ieee80211_restart_hw() function requires the same code as resuming, so move that code into a new ieee80211_reconfig() function in util.c and leave only the suspend code in pm.c. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r--include/net/mac80211.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 2c6f976831b5..a593bedcfeda 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1575,6 +1575,20 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw);
1575 */ 1575 */
1576void ieee80211_free_hw(struct ieee80211_hw *hw); 1576void ieee80211_free_hw(struct ieee80211_hw *hw);
1577 1577
1578/**
1579 * ieee80211_restart_hw - restart hardware completely
1580 *
1581 * Call this function when the hardware was restarted for some reason
1582 * (hardware error, ...) and the driver is unable to restore its state
1583 * by itself. mac80211 assumes that at this point the driver/hardware
1584 * is completely uninitialised and stopped, it starts the process by
1585 * calling the ->start() operation. The driver will need to reset all
1586 * internal state that it has prior to calling this function.
1587 *
1588 * @hw: the hardware to restart
1589 */
1590void ieee80211_restart_hw(struct ieee80211_hw *hw);
1591
1578/* trick to avoid symbol clashes with the ieee80211 subsystem */ 1592/* trick to avoid symbol clashes with the ieee80211 subsystem */
1579void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, 1593void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb,
1580 struct ieee80211_rx_status *status); 1594 struct ieee80211_rx_status *status);