Commit 1bc0826c authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller

[PATCH] mac80211: renumber and document the hardware flags

Currently, hardware flags that drivers must set are not
documented well enough. Fix this.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarMichael Wu <flamingice@sourmilk.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0ec3ca44
...@@ -598,6 +598,51 @@ typedef enum set_key_cmd { ...@@ -598,6 +598,51 @@ typedef enum set_key_cmd {
SET_KEY, DISABLE_KEY, SET_KEY, DISABLE_KEY,
} set_key_cmd; } set_key_cmd;
/**
* enum ieee80211_hw_flags - hardware flags
*
* These flags are used to indicate hardware capabilities to
* the stack. Generally, flags here should have their meaning
* done in a way that the simplest hardware doesn't need setting
* any particular flags. There are some exceptions to this rule,
* however, so you are advised to review these flags carefully.
*
* @IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE:
* The device only needs to be supplied with a beacon template.
* If you need the host to generate each beacon then don't use
* this flag and call ieee80211_beacon_get() when you need the
* next beacon frame. Note that if you set this flag, you must
* implement the set_tim() callback for powersave mode to work
* properly.
* This flag is only relevant for access-point mode.
*
* @IEEE80211_HW_RX_INCLUDES_FCS:
* Indicates that received frames passed to the stack include
* the FCS at the end.
*
* @IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING:
* Some wireless LAN chipsets buffer broadcast/multicast frames
* for power saving stations in the hardware/firmware and others
* rely on the host system for such buffering. This option is used
* to configure the IEEE 802.11 upper layer to buffer broadcast and
* multicast frames when there are power saving stations so that
* the driver can fetch them with ieee80211_get_buffered_bc(). Note
* that not setting this flag works properly only when the
* %IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE is also not set because
* otherwise the stack will not know when the DTIM beacon was sent.
*
* @IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED:
* Channels are already configured to the default regulatory domain
* specified in the device's EEPROM
*/
enum ieee80211_hw_flags {
IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE = 1<<0,
IEEE80211_HW_RX_INCLUDES_FCS = 1<<1,
IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2,
IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED = 1<<3,
};
/** /**
* struct ieee80211_hw - hardware information and state * struct ieee80211_hw - hardware information and state
* TODO: move documentation into kernel-doc format * TODO: move documentation into kernel-doc format
...@@ -621,46 +666,6 @@ struct ieee80211_hw { ...@@ -621,46 +666,6 @@ struct ieee80211_hw {
/* The rest is information about your hardware */ /* The rest is information about your hardware */
/* TODO: frame_type 802.11/802.3, sw_encryption requirements */
/* hole at 0 */
/*
* The device only needs to be supplied with a beacon template.
* If you need the host to generate each beacon then don't use
* this flag and use ieee80211_beacon_get().
*/
#define IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE (1<<1)
/* hole at 2 */
/* Whether RX frames passed to ieee80211_rx() include FCS in the end */
#define IEEE80211_HW_RX_INCLUDES_FCS (1<<3)
/* Some wireless LAN chipsets buffer broadcast/multicast frames for
* power saving stations in the hardware/firmware and others rely on
* the host system for such buffering. This option is used to
* configure the IEEE 802.11 upper layer to buffer broadcast/multicast
* frames when there are power saving stations so that low-level driver
* can fetch them with ieee80211_get_buffered_bc(). */
#define IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING (1<<4)
/* hole at 5 */
/* hole at 6 */
/* hole at 7 */
/* hole at 8 */
/* hole at 9 */
/* hole at 10 */
/* Channels are already configured to the default regulatory domain
* specified in the device's EEPROM */
#define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11)
u32 flags; /* hardware flags defined above */ u32 flags; /* hardware flags defined above */
/* Set to the size of a needed device specific skb headroom for TX skbs. */ /* Set to the size of a needed device specific skb headroom for TX skbs. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment