Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / drivers / net / wireless / p54 / p54.h
index 94c3acd..2dda5fe 100644 (file)
  * published by the Free Software Foundation.
  */
 
+#ifdef CONFIG_MAC80211_LEDS
+#include <linux/leds.h>
+#endif /* CONFIG_MAC80211_LEDS */
+
 enum p54_control_frame_types {
        P54_CONTROL_TYPE_SETUP = 0,
        P54_CONTROL_TYPE_SCAN,
@@ -112,6 +116,21 @@ enum fw_state {
        FW_STATE_RESETTING,
 };
 
+#ifdef CONFIG_MAC80211_LEDS
+
+#define P54_LED_MAX_NAME_LEN 31
+
+struct p54_led_dev {
+       struct ieee80211_hw *hw_dev;
+       struct led_classdev led_dev;
+       char name[P54_LED_MAX_NAME_LEN + 1];
+
+       unsigned int index;
+       unsigned int registered;
+};
+
+#endif /* CONFIG_MAC80211_LEDS */
+
 struct p54_common {
        struct ieee80211_hw *hw;
        u32 rx_start;
@@ -157,6 +176,12 @@ struct p54_common {
        struct completion eeprom_comp;
        u8 privacy_caps;
        u8 rx_keycache_size;
+       /* LED management */
+       #ifdef CONFIG_MAC80211_LEDS
+       struct p54_led_dev assoc_led;
+       struct p54_led_dev tx_led;
+       #endif /* CONFIG_MAC80211_LEDS */
+       u16 softled_state;              /* bit field of glowing LEDs */
 };
 
 int p54_rx(struct ieee80211_hw *dev, struct sk_buff *skb);
@@ -165,6 +190,7 @@ int p54_parse_firmware(struct ieee80211_hw *dev, const struct firmware *fw);
 int p54_parse_eeprom(struct ieee80211_hw *dev, void *eeprom, int len);
 int p54_read_eeprom(struct ieee80211_hw *dev);
 struct ieee80211_hw *p54_init_common(size_t priv_data_len);
+int p54_register_common(struct ieee80211_hw *dev, struct device *pdev);
 void p54_free_common(struct ieee80211_hw *dev);
 
 #endif /* P54_H */