aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/main.h
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2011-10-11 20:41:21 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-10-12 14:41:44 -0400
commitd930faee141bd0a6a4873791996c5354c9a85ca7 (patch)
treec0ce085b87900d346cd3442cb1756aea060d416f /drivers/net/wireless/mwifiex/main.h
parentec205999d31bbb1208ab59c3b6d22c47cca74257 (diff)
mwifiex: add support for Marvell pcie8766 chipset
This patch supports 88W8766P chipset with a PCIe interface. The corresponding firmware image file is located at: "mrvl/pcie8766_uapsta.bin" Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Ramesh Radhakrishnan <rramesh@marvell.com> Signed-off-by: Yogesh Ashok Powar <yogeshp@marvell.com> Signed-off-by: Kiran Divekar <dkiran@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: Frank Huang <frankh@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/main.h')
-rw-r--r--drivers/net/wireless/mwifiex/main.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index 907ab746dc4b..ec45607c5f91 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -37,6 +37,7 @@
37#include "ioctl.h" 37#include "ioctl.h"
38#include "util.h" 38#include "util.h"
39#include "fw.h" 39#include "fw.h"
40#include "pcie.h"
40 41
41extern const char driver_version[]; 42extern const char driver_version[];
42 43
@@ -107,6 +108,8 @@ enum {
107 108
108#define MAX_FREQUENCY_BAND_BG 2484 109#define MAX_FREQUENCY_BAND_BG 2484
109 110
111#define MWIFIEX_EVENT_HEADER_LEN 4
112
110struct mwifiex_dbg { 113struct mwifiex_dbg {
111 u32 num_cmd_host_to_card_failure; 114 u32 num_cmd_host_to_card_failure;
112 u32 num_cmd_sleep_cfm_host_to_card_failure; 115 u32 num_cmd_sleep_cfm_host_to_card_failure;
@@ -156,6 +159,11 @@ enum MWIFIEX_PS_STATE {
156 PS_STATE_SLEEP 159 PS_STATE_SLEEP
157}; 160};
158 161
162enum mwifiex_iface_type {
163 MWIFIEX_SDIO,
164 MWIFIEX_PCIE,
165};
166
159struct mwifiex_add_ba_param { 167struct mwifiex_add_ba_param {
160 u32 tx_win_size; 168 u32 tx_win_size;
161 u32 rx_win_size; 169 u32 rx_win_size;
@@ -517,27 +525,31 @@ struct cmd_ctrl_node {
517struct mwifiex_if_ops { 525struct mwifiex_if_ops {
518 int (*init_if) (struct mwifiex_adapter *); 526 int (*init_if) (struct mwifiex_adapter *);
519 void (*cleanup_if) (struct mwifiex_adapter *); 527 void (*cleanup_if) (struct mwifiex_adapter *);
520 int (*check_fw_status) (struct mwifiex_adapter *, u32, int *); 528 int (*check_fw_status) (struct mwifiex_adapter *, u32);
521 int (*prog_fw) (struct mwifiex_adapter *, struct mwifiex_fw_image *); 529 int (*prog_fw) (struct mwifiex_adapter *, struct mwifiex_fw_image *);
522 int (*register_dev) (struct mwifiex_adapter *); 530 int (*register_dev) (struct mwifiex_adapter *);
523 void (*unregister_dev) (struct mwifiex_adapter *); 531 void (*unregister_dev) (struct mwifiex_adapter *);
524 int (*enable_int) (struct mwifiex_adapter *); 532 int (*enable_int) (struct mwifiex_adapter *);
525 int (*process_int_status) (struct mwifiex_adapter *); 533 int (*process_int_status) (struct mwifiex_adapter *);
526 int (*host_to_card) (struct mwifiex_adapter *, u8, 534 int (*host_to_card) (struct mwifiex_adapter *, u8, struct sk_buff *,
527 u8 *payload, u32 pkt_len,
528 struct mwifiex_tx_param *); 535 struct mwifiex_tx_param *);
529 int (*wakeup) (struct mwifiex_adapter *); 536 int (*wakeup) (struct mwifiex_adapter *);
530 int (*wakeup_complete) (struct mwifiex_adapter *); 537 int (*wakeup_complete) (struct mwifiex_adapter *);
531 538
539 /* Interface specific functions */
532 void (*update_mp_end_port) (struct mwifiex_adapter *, u16); 540 void (*update_mp_end_port) (struct mwifiex_adapter *, u16);
533 void (*cleanup_mpa_buf) (struct mwifiex_adapter *); 541 void (*cleanup_mpa_buf) (struct mwifiex_adapter *);
542 int (*cmdrsp_complete) (struct mwifiex_adapter *, struct sk_buff *);
543 int (*event_complete) (struct mwifiex_adapter *, struct sk_buff *);
534}; 544};
535 545
536struct mwifiex_adapter { 546struct mwifiex_adapter {
547 u8 iface_type;
537 struct mwifiex_private *priv[MWIFIEX_MAX_BSS_NUM]; 548 struct mwifiex_private *priv[MWIFIEX_MAX_BSS_NUM];
538 u8 priv_num; 549 u8 priv_num;
539 const struct firmware *firmware; 550 const struct firmware *firmware;
540 char fw_name[32]; 551 char fw_name[32];
552 int winner;
541 struct device *dev; 553 struct device *dev;
542 bool surprise_removed; 554 bool surprise_removed;
543 u32 fw_release_number; 555 u32 fw_release_number;
@@ -872,7 +884,7 @@ struct mwifiex_private *mwifiex_bss_index_to_priv(struct mwifiex_adapter
872 *adapter, u8 bss_index); 884 *adapter, u8 bss_index);
873int mwifiex_init_shutdown_fw(struct mwifiex_private *priv, 885int mwifiex_init_shutdown_fw(struct mwifiex_private *priv,
874 u32 func_init_shutdown); 886 u32 func_init_shutdown);
875int mwifiex_add_card(void *, struct semaphore *, struct mwifiex_if_ops *); 887int mwifiex_add_card(void *, struct semaphore *, struct mwifiex_if_ops *, u8);
876int mwifiex_remove_card(struct mwifiex_adapter *, struct semaphore *); 888int mwifiex_remove_card(struct mwifiex_adapter *, struct semaphore *);
877 889
878void mwifiex_get_version(struct mwifiex_adapter *adapter, char *version, 890void mwifiex_get_version(struct mwifiex_adapter *adapter, char *version,