diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-09-18 17:29:15 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:52:58 -0400 |
commit | 1bc0826c8f5f3fa26644a8e878aae0be304a670f (patch) | |
tree | aed4da1516bd0f3bc17ecd940870a96f3d33e936 /include/net/mac80211.h | |
parent | 0ec3ca445931ff0e7ad6ac61d6c5d2aaafe7a9f5 (diff) |
[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: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Michael Wu <flamingice@sourmilk.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 85 |
1 files changed, 45 insertions, 40 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 494a4c022a9b..c5554ad87a17 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -598,6 +598,51 @@ typedef enum set_key_cmd { | |||
598 | SET_KEY, DISABLE_KEY, | 598 | SET_KEY, DISABLE_KEY, |
599 | } set_key_cmd; | 599 | } set_key_cmd; |
600 | 600 | ||
601 | |||
602 | /** | ||
603 | * enum ieee80211_hw_flags - hardware flags | ||
604 | * | ||
605 | * These flags are used to indicate hardware capabilities to | ||
606 | * the stack. Generally, flags here should have their meaning | ||
607 | * done in a way that the simplest hardware doesn't need setting | ||
608 | * any particular flags. There are some exceptions to this rule, | ||
609 | * however, so you are advised to review these flags carefully. | ||
610 | * | ||
611 | * @IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE: | ||
612 | * The device only needs to be supplied with a beacon template. | ||
613 | * If you need the host to generate each beacon then don't use | ||
614 | * this flag and call ieee80211_beacon_get() when you need the | ||
615 | * next beacon frame. Note that if you set this flag, you must | ||
616 | * implement the set_tim() callback for powersave mode to work | ||
617 | * properly. | ||
618 | * This flag is only relevant for access-point mode. | ||
619 | * | ||
620 | * @IEEE80211_HW_RX_INCLUDES_FCS: | ||
621 | * Indicates that received frames passed to the stack include | ||
622 | * the FCS at the end. | ||
623 | * | ||
624 | * @IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING: | ||
625 | * Some wireless LAN chipsets buffer broadcast/multicast frames | ||
626 | * for power saving stations in the hardware/firmware and others | ||
627 | * rely on the host system for such buffering. This option is used | ||
628 | * to configure the IEEE 802.11 upper layer to buffer broadcast and | ||
629 | * multicast frames when there are power saving stations so that | ||
630 | * the driver can fetch them with ieee80211_get_buffered_bc(). Note | ||
631 | * that not setting this flag works properly only when the | ||
632 | * %IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE is also not set because | ||
633 | * otherwise the stack will not know when the DTIM beacon was sent. | ||
634 | * | ||
635 | * @IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED: | ||
636 | * Channels are already configured to the default regulatory domain | ||
637 | * specified in the device's EEPROM | ||
638 | */ | ||
639 | enum ieee80211_hw_flags { | ||
640 | IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE = 1<<0, | ||
641 | IEEE80211_HW_RX_INCLUDES_FCS = 1<<1, | ||
642 | IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING = 1<<2, | ||
643 | IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED = 1<<3, | ||
644 | }; | ||
645 | |||
601 | /** | 646 | /** |
602 | * struct ieee80211_hw - hardware information and state | 647 | * struct ieee80211_hw - hardware information and state |
603 | * TODO: move documentation into kernel-doc format | 648 | * TODO: move documentation into kernel-doc format |
@@ -621,46 +666,6 @@ struct ieee80211_hw { | |||
621 | 666 | ||
622 | /* The rest is information about your hardware */ | 667 | /* The rest is information about your hardware */ |
623 | 668 | ||
624 | /* TODO: frame_type 802.11/802.3, sw_encryption requirements */ | ||
625 | |||
626 | /* hole at 0 */ | ||
627 | |||
628 | /* | ||
629 | * The device only needs to be supplied with a beacon template. | ||
630 | * If you need the host to generate each beacon then don't use | ||
631 | * this flag and use ieee80211_beacon_get(). | ||
632 | */ | ||
633 | #define IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE (1<<1) | ||
634 | |||
635 | /* hole at 2 */ | ||
636 | |||
637 | /* Whether RX frames passed to ieee80211_rx() include FCS in the end */ | ||
638 | #define IEEE80211_HW_RX_INCLUDES_FCS (1<<3) | ||
639 | |||
640 | /* Some wireless LAN chipsets buffer broadcast/multicast frames for | ||
641 | * power saving stations in the hardware/firmware and others rely on | ||
642 | * the host system for such buffering. This option is used to | ||
643 | * configure the IEEE 802.11 upper layer to buffer broadcast/multicast | ||
644 | * frames when there are power saving stations so that low-level driver | ||
645 | * can fetch them with ieee80211_get_buffered_bc(). */ | ||
646 | #define IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING (1<<4) | ||
647 | |||
648 | /* hole at 5 */ | ||
649 | |||
650 | /* hole at 6 */ | ||
651 | |||
652 | /* hole at 7 */ | ||
653 | |||
654 | /* hole at 8 */ | ||
655 | |||
656 | /* hole at 9 */ | ||
657 | |||
658 | /* hole at 10 */ | ||
659 | |||
660 | /* Channels are already configured to the default regulatory domain | ||
661 | * specified in the device's EEPROM */ | ||
662 | #define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11) | ||
663 | |||
664 | u32 flags; /* hardware flags defined above */ | 669 | u32 flags; /* hardware flags defined above */ |
665 | 670 | ||
666 | /* Set to the size of a needed device specific skb headroom for TX skbs. */ | 671 | /* Set to the size of a needed device specific skb headroom for TX skbs. */ |