wl1251: configure hardware en-/decryption for monitor mode
[pandora-kernel.git] / drivers / net / wireless / wl1251 / wl1251.h
index a77f1bb..c020adb 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/mutex.h>
 #include <linux/list.h>
 #include <linux/bitops.h>
+#include <linux/interrupt.h>
 #include <net/mac80211.h>
 
 #define DRIVER_NAME "wl1251"
@@ -255,6 +256,9 @@ struct wl1251_debugfs {
 
        struct dentry *retry_count;
        struct dentry *excessive_retries;
+
+       struct dentry *dump_nvs;
+       struct dentry *dump_full;
 };
 
 struct wl1251_if_operations {
@@ -278,6 +282,7 @@ struct wl1251 {
        void (*set_power)(bool enable);
        int irq;
        bool use_eeprom;
+       bool dump_eeprom;
 
        spinlock_t wl_lock;
 
@@ -303,6 +308,7 @@ struct wl1251 {
        u8 bss_type;
        u8 listen_int;
        int channel;
+       bool monitor_present;
 
        void *target_mem_map;
        struct acx_data_path_params_resp *data_path;
@@ -315,7 +321,6 @@ struct wl1251 {
        bool tx_queue_stopped;
 
        struct work_struct tx_work;
-       struct work_struct filter_work;
 
        /* Pending TX frames */
        struct sk_buff *tx_frames[16];
@@ -392,6 +397,15 @@ struct wl1251 {
 
        /* Most recently reported noise in dBm */
        s8 noise;
+
+       void *eeprom_dump;
+
+       /* PS hacks.. */
+       unsigned long ps_change_jiffies;
+       unsigned long last_io_jiffies;
+       struct delayed_work ps_work;
+       bool bss_lost;
+       bool ps_transitioning;
 };
 
 int wl1251_plt_start(struct wl1251 *wl);
@@ -402,6 +416,7 @@ int wl1251_free_hw(struct wl1251 *wl);
 int wl1251_init_ieee80211(struct wl1251 *wl);
 void wl1251_enable_interrupts(struct wl1251 *wl);
 void wl1251_disable_interrupts(struct wl1251 *wl);
+irqreturn_t wl1251_irq(int irq, void *cookie);
 
 #define DEFAULT_HW_GEN_MODULATION_TYPE    CCK_LONG /* Long Preamble */
 #define DEFAULT_HW_GEN_TX_RATE          RATE_2MBPS