]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/net/wireless/p54/p54common.h
p54: more accurate rssi to dBm conversion
[mirror_ubuntu-artful-kernel.git] / drivers / net / wireless / p54 / p54common.h
index 8c8793cb2d79744ab065ab9c957feb928615ac48..6c824e40f3bae73cfeebfc630f7c982cefb5aec4 100644 (file)
@@ -178,6 +178,11 @@ struct pda_pa_curve_data {
        u8 data[0];
 } __attribute__ ((packed));
 
+struct pda_rssi_cal_entry {
+       __le16 mul;
+       __le16 add;
+} __attribute__ ((packed));
+
 /*
  * this defines the PDR codes used to build PDAs as defined in document
  * number 553155. The current implementation mirrors version 1.1 of the
@@ -246,9 +251,21 @@ struct memrecord {
 };
 
 struct p54_eeprom_lm86 {
-       __le16 offset;
-       __le16 len;
-       u8 data[0];
+       union {
+               struct {
+                       __le16 offset;
+                       __le16 len;
+                       u8 data[0];
+               } v1;
+               struct {
+                       __le32 offset;
+                       __le16 len;
+                       u8 magic2;
+                       u8 pad;
+                       u8 magic[4];
+                       u8 data[0];
+               } v2;
+       }  __attribute__ ((packed));
 } __attribute__ ((packed));
 
 enum p54_rx_decrypt_status {
@@ -259,7 +276,7 @@ enum p54_rx_decrypt_status {
        P54_DECRYPT_NOCKIPMIC,
        P54_DECRYPT_FAIL_WEP,
        P54_DECRYPT_FAIL_TKIP,
-       P54_DECRYPT_FAIL_MICAHEL,
+       P54_DECRYPT_FAIL_MICHAEL,
        P54_DECRYPT_FAIL_CKIPKP,
        P54_DECRYPT_FAIL_CKIPMIC,
        P54_DECRYPT_FAIL_AESCCMP
@@ -302,7 +319,7 @@ enum p54_frame_sent_status {
        P54_TX_OK = 0,
        P54_TX_FAILED,
        P54_TX_PSM,
-       P54_TX_PSM_CANCELLED
+       P54_TX_PSM_CANCELLED = 4
 };
 
 struct p54_frame_sent {
@@ -343,6 +360,11 @@ struct p54_tx_data {
        u8 align[0];
 } __attribute__ ((packed));
 
+/* unit is ms */
+#define P54_TX_FRAME_LIFETIME 2000
+#define P54_TX_TIMEOUT 4000
+#define P54_STATISTICS_UPDATE 5000
+
 #define P54_FILTER_TYPE_NONE           0
 #define P54_FILTER_TYPE_STATION                BIT(0)
 #define P54_FILTER_TYPE_IBSS           BIT(1)
@@ -412,22 +434,18 @@ struct p54_scan {
        u8 dup_16qam;
        u8 dup_64qam;
        union {
-               struct {
-                       __le16 rssical_mul;
-                       __le16 rssical_add;
-               } v1 __attribute__ ((packed));
+               struct pda_rssi_cal_entry v1_rssi;
 
                struct {
                        __le32 basic_rate_mask;
                        u8 rts_rates[8];
-                       __le16 rssical_mul;
-                       __le16 rssical_add;
+                       struct pda_rssi_cal_entry rssi;
                } v2 __attribute__ ((packed));
        } __attribute__ ((packed));
 } __attribute__ ((packed));
 
-#define P54_SCAN_V1_LEN (sizeof(struct p54_scan)-12)
-#define P54_SCAN_V2_LEN (sizeof(struct p54_scan))
+#define P54_SCAN_V1_LEN 0x70
+#define P54_SCAN_V2_LEN 0x7c
 
 struct p54_led {
        __le16 mode;