]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/staging/wlan-ng/hfa384x.h
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6
[mv-sheeva.git] / drivers / staging / wlan-ng / hfa384x.h
index f3e87173471e7fb4db25384b2eabc5a6a66021db..46cce8159e593317093a87945dedc6427149f621 100644 (file)
@@ -63,8 +63,9 @@
 /*--- Mins & Maxs -----------------------------------*/
 #define                HFA384x_PORTID_MAX              ((u16)7)
 #define                HFA384x_NUMPORTS_MAX            ((u16)(HFA384x_PORTID_MAX+1))
-#define                HFA384x_PDR_LEN_MAX             ((u16)512) /* in bytes, from EK */
-#define                HFA384x_PDA_LEN_MAX             ((u16)1024) /* in bytes, from EK */
+#define                HFA384x_PDR_LEN_MAX             ((u16)512)      /* in bytes, from EK */
+#define                HFA384x_PDA_RECS_MAX            ((u16)200)      /* a guess */
+#define                HFA384x_PDA_LEN_MAX             ((u16)1024)     /* in bytes, from EK */
 #define                HFA384x_SCANRESULT_MAX          ((u16)31)
 #define                HFA384x_HSCANRESULT_MAX         ((u16)31)
 #define                HFA384x_CHINFORESULT_MAX        ((u16)16)
@@ -629,7 +630,7 @@ typedef struct hfa384x_ScanResultSub {
 typedef struct hfa384x_ScanResult {
        u16 rsvd;
        u16 scanreason;
-        hfa384x_ScanResultSub_t result[HFA384x_SCANRESULT_MAX];
+       hfa384x_ScanResultSub_t result[HFA384x_SCANRESULT_MAX];
 } __attribute__ ((packed)) hfa384x_ScanResult_t;
 
 /*--  Inquiry Frame, Diagnose: ChInfo Results & Subfields--*/
@@ -645,7 +646,7 @@ typedef struct hfa384x_ChInfoResultSub {
 
 typedef struct hfa384x_ChInfoResult {
        u16 scanchannels;
-        hfa384x_ChInfoResultSub_t result[HFA384x_CHINFORESULT_MAX];
+       hfa384x_ChInfoResultSub_t result[HFA384x_CHINFORESULT_MAX];
 } __attribute__ ((packed)) hfa384x_ChInfoResult_t;
 
 /*--  Inquiry Frame, Diagnose: Host Scan Results & Subfields--*/
@@ -665,7 +666,7 @@ typedef struct hfa384x_HScanResultSub {
 typedef struct hfa384x_HScanResult {
        u16 nresult;
        u16 rsvd;
-        hfa384x_HScanResultSub_t result[HFA384x_HSCANRESULT_MAX];
+       hfa384x_HScanResultSub_t result[HFA384x_HSCANRESULT_MAX];
 } __attribute__ ((packed)) hfa384x_HScanResult_t;
 
 /*--  Unsolicited Frame, MAC Mgmt: LinkStatus --*/
@@ -882,6 +883,213 @@ typedef union hfa384x_usbin {
        u8 boguspad[3000];
 } __attribute__ ((packed)) hfa384x_usbin_t;
 
+/*--------------------------------------------------------------------
+PD record structures.
+--------------------------------------------------------------------*/
+
+typedef struct hfa384x_pdr_pcb_partnum {
+       u8 num[8];
+} __attribute__ ((packed)) hfa384x_pdr_pcb_partnum_t;
+
+typedef struct hfa384x_pdr_pcb_tracenum {
+       u8 num[8];
+} __attribute__ ((packed)) hfa384x_pdr_pcb_tracenum_t;
+
+typedef struct hfa384x_pdr_nic_serial {
+       u8 num[12];
+} __attribute__ ((packed)) hfa384x_pdr_nic_serial_t;
+
+typedef struct hfa384x_pdr_mkk_measurements {
+       double carrier_freq;
+       double occupied_band;
+       double power_density;
+       double tx_spur_f1;
+       double tx_spur_f2;
+       double tx_spur_f3;
+       double tx_spur_f4;
+       double tx_spur_l1;
+       double tx_spur_l2;
+       double tx_spur_l3;
+       double tx_spur_l4;
+       double rx_spur_f1;
+       double rx_spur_f2;
+       double rx_spur_l1;
+       double rx_spur_l2;
+} __attribute__ ((packed)) hfa384x_pdr_mkk_measurements_t;
+
+typedef struct hfa384x_pdr_nic_ramsize {
+       u8 size[12];            /* units of KB */
+} __attribute__ ((packed)) hfa384x_pdr_nic_ramsize_t;
+
+typedef struct hfa384x_pdr_mfisuprange {
+       u16 id;
+       u16 variant;
+       u16 bottom;
+       u16 top;
+} __attribute__ ((packed)) hfa384x_pdr_mfisuprange_t;
+
+typedef struct hfa384x_pdr_cfisuprange {
+       u16 id;
+       u16 variant;
+       u16 bottom;
+       u16 top;
+} __attribute__ ((packed)) hfa384x_pdr_cfisuprange_t;
+
+typedef struct hfa384x_pdr_nicid {
+       u16 id;
+       u16 variant;
+       u16 major;
+       u16 minor;
+} __attribute__ ((packed)) hfa384x_pdr_nicid_t;
+
+typedef struct hfa384x_pdr_refdac_measurements {
+       u16 value[0];
+} __attribute__ ((packed)) hfa384x_pdr_refdac_measurements_t;
+
+typedef struct hfa384x_pdr_vgdac_measurements {
+       u16 value[0];
+} __attribute__ ((packed)) hfa384x_pdr_vgdac_measurements_t;
+
+typedef struct hfa384x_pdr_level_comp_measurements {
+       u16 value[0];
+} __attribute__ ((packed)) hfa384x_pdr_level_compc_measurements_t;
+
+typedef struct hfa384x_pdr_mac_address {
+       u8 addr[6];
+} __attribute__ ((packed)) hfa384x_pdr_mac_address_t;
+
+typedef struct hfa384x_pdr_mkk_callname {
+       u8 callname[8];
+} __attribute__ ((packed)) hfa384x_pdr_mkk_callname_t;
+
+typedef struct hfa384x_pdr_regdomain {
+       u16 numdomains;
+       u16 domain[5];
+} __attribute__ ((packed)) hfa384x_pdr_regdomain_t;
+
+typedef struct hfa384x_pdr_allowed_channel {
+       u16 ch_bitmap;
+} __attribute__ ((packed)) hfa384x_pdr_allowed_channel_t;
+
+typedef struct hfa384x_pdr_default_channel {
+       u16 channel;
+} __attribute__ ((packed)) hfa384x_pdr_default_channel_t;
+
+typedef struct hfa384x_pdr_privacy_option {
+       u16 available;
+} __attribute__ ((packed)) hfa384x_pdr_privacy_option_t;
+
+typedef struct hfa384x_pdr_temptype {
+       u16 type;
+} __attribute__ ((packed)) hfa384x_pdr_temptype_t;
+
+typedef struct hfa384x_pdr_refdac_setup {
+       u16 ch_value[14];
+} __attribute__ ((packed)) hfa384x_pdr_refdac_setup_t;
+
+typedef struct hfa384x_pdr_vgdac_setup {
+       u16 ch_value[14];
+} __attribute__ ((packed)) hfa384x_pdr_vgdac_setup_t;
+
+typedef struct hfa384x_pdr_level_comp_setup {
+       u16 ch_value[14];
+} __attribute__ ((packed)) hfa384x_pdr_level_comp_setup_t;
+
+typedef struct hfa384x_pdr_trimdac_setup {
+       u16 trimidac;
+       u16 trimqdac;
+} __attribute__ ((packed)) hfa384x_pdr_trimdac_setup_t;
+
+typedef struct hfa384x_pdr_ifr_setting {
+       u16 value[3];
+} __attribute__ ((packed)) hfa384x_pdr_ifr_setting_t;
+
+typedef struct hfa384x_pdr_rfr_setting {
+       u16 value[3];
+} __attribute__ ((packed)) hfa384x_pdr_rfr_setting_t;
+
+typedef struct hfa384x_pdr_hfa3861_baseline {
+       u16 value[50];
+} __attribute__ ((packed)) hfa384x_pdr_hfa3861_baseline_t;
+
+typedef struct hfa384x_pdr_hfa3861_shadow {
+       u32 value[32];
+} __attribute__ ((packed)) hfa384x_pdr_hfa3861_shadow_t;
+
+typedef struct hfa384x_pdr_hfa3861_ifrf {
+       u32 value[20];
+} __attribute__ ((packed)) hfa384x_pdr_hfa3861_ifrf_t;
+
+typedef struct hfa384x_pdr_hfa3861_chcalsp {
+       u16 value[14];
+} __attribute__ ((packed)) hfa384x_pdr_hfa3861_chcalsp_t;
+
+typedef struct hfa384x_pdr_hfa3861_chcali {
+       u16 value[17];
+} __attribute__ ((packed)) hfa384x_pdr_hfa3861_chcali_t;
+
+typedef struct hfa384x_pdr_hfa3861_nic_config {
+       u16 config_bitmap;
+} __attribute__ ((packed)) hfa384x_pdr_nic_config_t;
+
+typedef struct hfa384x_pdr_hfo_delay {
+       u8 hfo_delay;
+} __attribute__ ((packed)) hfa384x_hfo_delay_t;
+
+typedef struct hfa384x_pdr_hfa3861_manf_testsp {
+       u16 value[30];
+} __attribute__ ((packed)) hfa384x_pdr_hfa3861_manf_testsp_t;
+
+typedef struct hfa384x_pdr_hfa3861_manf_testi {
+       u16 value[30];
+} __attribute__ ((packed)) hfa384x_pdr_hfa3861_manf_testi_t;
+
+typedef struct hfa384x_end_of_pda {
+       u16 crc;
+} __attribute__ ((packed)) hfa384x_pdr_end_of_pda_t;
+
+typedef struct hfa384x_pdrec {
+       u16 len;                /* in words */
+       u16 code;
+       union pdr {
+               hfa384x_pdr_pcb_partnum_t pcb_partnum;
+               hfa384x_pdr_pcb_tracenum_t pcb_tracenum;
+               hfa384x_pdr_nic_serial_t nic_serial;
+               hfa384x_pdr_mkk_measurements_t mkk_measurements;
+               hfa384x_pdr_nic_ramsize_t nic_ramsize;
+               hfa384x_pdr_mfisuprange_t mfisuprange;
+               hfa384x_pdr_cfisuprange_t cfisuprange;
+               hfa384x_pdr_nicid_t nicid;
+               hfa384x_pdr_refdac_measurements_t refdac_measurements;
+               hfa384x_pdr_vgdac_measurements_t vgdac_measurements;
+               hfa384x_pdr_level_compc_measurements_t level_compc_measurements;
+               hfa384x_pdr_mac_address_t mac_address;
+               hfa384x_pdr_mkk_callname_t mkk_callname;
+               hfa384x_pdr_regdomain_t regdomain;
+               hfa384x_pdr_allowed_channel_t allowed_channel;
+               hfa384x_pdr_default_channel_t default_channel;
+               hfa384x_pdr_privacy_option_t privacy_option;
+               hfa384x_pdr_temptype_t temptype;
+               hfa384x_pdr_refdac_setup_t refdac_setup;
+               hfa384x_pdr_vgdac_setup_t vgdac_setup;
+               hfa384x_pdr_level_comp_setup_t level_comp_setup;
+               hfa384x_pdr_trimdac_setup_t trimdac_setup;
+               hfa384x_pdr_ifr_setting_t ifr_setting;
+               hfa384x_pdr_rfr_setting_t rfr_setting;
+               hfa384x_pdr_hfa3861_baseline_t hfa3861_baseline;
+               hfa384x_pdr_hfa3861_shadow_t hfa3861_shadow;
+               hfa384x_pdr_hfa3861_ifrf_t hfa3861_ifrf;
+               hfa384x_pdr_hfa3861_chcalsp_t hfa3861_chcalsp;
+               hfa384x_pdr_hfa3861_chcali_t hfa3861_chcali;
+               hfa384x_pdr_nic_config_t nic_config;
+               hfa384x_hfo_delay_t hfo_delay;
+               hfa384x_pdr_hfa3861_manf_testsp_t hfa3861_manf_testsp;
+               hfa384x_pdr_hfa3861_manf_testi_t hfa3861_manf_testi;
+               hfa384x_pdr_end_of_pda_t end_of_pda;
+
+       } data;
+} __attribute__ ((packed)) hfa384x_pdrec_t;
+
 #ifdef __KERNEL__
 /*--------------------------------------------------------------------
 ---  MAC state structure, argument to all functions --
@@ -925,7 +1133,7 @@ struct hfa384x;
 
 typedef void (*ctlx_cmdcb_t) (struct hfa384x *, const struct hfa384x_usbctlx *);
 
-typedef void (*ctlx_usercb_t) (struct hfa384x *hw,
+typedef void (*ctlx_usercb_t) (struct hfa384x * hw,
                               void *ctlxresult, void *usercb_data);
 
 typedef struct hfa384x_usbctlx {
@@ -1112,25 +1320,25 @@ typedef struct hfa384x {
 
 } hfa384x_t;
 
-void hfa384x_create(hfa384x_t *hw, struct usb_device *usb);
-void hfa384x_destroy(hfa384x_t *hw);
+void hfa384x_create(hfa384x_t * hw, struct usb_device *usb);
+void hfa384x_destroy(hfa384x_t * hw);
 
 int
-hfa384x_corereset(hfa384x_t *hw, int holdtime, int settletime, int genesis);
-int hfa384x_drvr_commtallies(hfa384x_t *hw);
-int hfa384x_drvr_disable(hfa384x_t *hw, u16 macport);
-int hfa384x_drvr_enable(hfa384x_t *hw, u16 macport);
-int hfa384x_drvr_flashdl_enable(hfa384x_t *hw);
-int hfa384x_drvr_flashdl_disable(hfa384x_t *hw);
-int hfa384x_drvr_flashdl_write(hfa384x_t *hw, u32 daddr, void *buf, u32 len);
-int hfa384x_drvr_getconfig(hfa384x_t *hw, u16 rid, void *buf, u16 len);
-int hfa384x_drvr_ramdl_enable(hfa384x_t *hw, u32 exeaddr);
-int hfa384x_drvr_ramdl_disable(hfa384x_t *hw);
-int hfa384x_drvr_ramdl_write(hfa384x_t *hw, u32 daddr, void *buf, u32 len);
-int hfa384x_drvr_readpda(hfa384x_t *hw, void *buf, unsigned int len);
-int hfa384x_drvr_setconfig(hfa384x_t *hw, u16 rid, void *buf, u16 len);
-
-static inline int hfa384x_drvr_getconfig16(hfa384x_t *hw, u16 rid, void *val)
+hfa384x_corereset(hfa384x_t * hw, int holdtime, int settletime, int genesis);
+int hfa384x_drvr_commtallies(hfa384x_t * hw);
+int hfa384x_drvr_disable(hfa384x_t * hw, u16 macport);
+int hfa384x_drvr_enable(hfa384x_t * hw, u16 macport);
+int hfa384x_drvr_flashdl_enable(hfa384x_t * hw);
+int hfa384x_drvr_flashdl_disable(hfa384x_t * hw);
+int hfa384x_drvr_flashdl_write(hfa384x_t * hw, u32 daddr, void *buf, u32 len);
+int hfa384x_drvr_getconfig(hfa384x_t * hw, u16 rid, void *buf, u16 len);
+int hfa384x_drvr_ramdl_enable(hfa384x_t * hw, u32 exeaddr);
+int hfa384x_drvr_ramdl_disable(hfa384x_t * hw);
+int hfa384x_drvr_ramdl_write(hfa384x_t * hw, u32 daddr, void *buf, u32 len);
+int hfa384x_drvr_readpda(hfa384x_t * hw, void *buf, unsigned int len);
+int hfa384x_drvr_setconfig(hfa384x_t * hw, u16 rid, void *buf, u16 len);
+
+static inline int hfa384x_drvr_getconfig16(hfa384x_t * hw, u16 rid, void *val)
 {
        int result = 0;
        result = hfa384x_drvr_getconfig(hw, rid, val, sizeof(u16));
@@ -1139,44 +1347,44 @@ static inline int hfa384x_drvr_getconfig16(hfa384x_t *hw, u16 rid, void *val)
        return result;
 }
 
-static inline int hfa384x_drvr_setconfig16(hfa384x_t *hw, u16 rid, u16 val)
+static inline int hfa384x_drvr_setconfig16(hfa384x_t * hw, u16 rid, u16 val)
 {
        u16 value = cpu_to_le16(val);
        return hfa384x_drvr_setconfig(hw, rid, &value, sizeof(value));
 }
 
 int
-hfa384x_drvr_getconfig_async(hfa384x_t *hw,
+hfa384x_drvr_getconfig_async(hfa384x_t * hw,
                             u16 rid, ctlx_usercb_t usercb, void *usercb_data);
 
 int
-hfa384x_drvr_setconfig_async(hfa384x_t *hw,
+hfa384x_drvr_setconfig_async(hfa384x_t * hw,
                             u16 rid,
                             void *buf,
                             u16 len, ctlx_usercb_t usercb, void *usercb_data);
 
 static inline int
-hfa384x_drvr_setconfig16_async(hfa384x_t *hw, u16 rid, u16 val)
+hfa384x_drvr_setconfig16_async(hfa384x_t * hw, u16 rid, u16 val)
 {
        u16 value = cpu_to_le16(val);
        return hfa384x_drvr_setconfig_async(hw, rid, &value, sizeof(value),
                                            NULL, NULL);
 }
 
-int hfa384x_drvr_start(hfa384x_t *hw);
-int hfa384x_drvr_stop(hfa384x_t *hw);
+int hfa384x_drvr_start(hfa384x_t * hw);
+int hfa384x_drvr_stop(hfa384x_t * hw);
 int
-hfa384x_drvr_txframe(hfa384x_t *hw, struct sk_buff *skb,
-                    p80211_hdr_t *p80211_hdr, p80211_metawep_t *p80211_wep);
-void hfa384x_tx_timeout(wlandevice_t *wlandev);
-
-int hfa384x_cmd_initialize(hfa384x_t *hw);
-int hfa384x_cmd_enable(hfa384x_t *hw, u16 macport);
-int hfa384x_cmd_disable(hfa384x_t *hw, u16 macport);
-int hfa384x_cmd_allocate(hfa384x_t *hw, u16 len);
-int hfa384x_cmd_monitor(hfa384x_t *hw, u16 enable);
+hfa384x_drvr_txframe(hfa384x_t * hw, struct sk_buff *skb,
+                    p80211_hdr_t * p80211_hdr, p80211_metawep_t * p80211_wep);
+void hfa384x_tx_timeout(wlandevice_t * wlandev);
+
+int hfa384x_cmd_initialize(hfa384x_t * hw);
+int hfa384x_cmd_enable(hfa384x_t * hw, u16 macport);
+int hfa384x_cmd_disable(hfa384x_t * hw, u16 macport);
+int hfa384x_cmd_allocate(hfa384x_t * hw, u16 len);
+int hfa384x_cmd_monitor(hfa384x_t * hw, u16 enable);
 int
-hfa384x_cmd_download(hfa384x_t *hw,
+hfa384x_cmd_download(hfa384x_t * hw,
                     u16 mode, u16 lowaddr, u16 highaddr, u16 codelen);
 
 #endif /* __KERNEL__ */