Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 224551
b: refs/heads/master
c: 952a0e9
h: refs/heads/master
i:
  224549: 947b774
  224547: 335d464
  224543: b7ead28
v: v3
  • Loading branch information
Brian Cavagnolo authored and John W. Linville committed Nov 16, 2010
1 parent 212ce3a commit 6d16413
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0863ade8d6bde1d151f75720d999ff27f9fe3533
refs/heads/master: 952a0e963fb02e50f4afbf502f7d468a8fe2b0fa
23 changes: 21 additions & 2 deletions trunk/drivers/net/wireless/mwl8k.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ struct mwl8k_device_info {
char *fw_image_sta;
char *fw_image_ap;
struct rxd_ops *ap_rxd_ops;
u32 fw_api_ap;
};

struct mwl8k_rx_queue {
Expand Down Expand Up @@ -1827,13 +1828,15 @@ struct mwl8k_cmd_get_hw_spec_ap {
__le32 wcbbase1;
__le32 wcbbase2;
__le32 wcbbase3;
__le32 fw_api_version;
} __packed;

static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw)
{
struct mwl8k_priv *priv = hw->priv;
struct mwl8k_cmd_get_hw_spec_ap *cmd;
int rc;
u32 api_version;

cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
if (cmd == NULL)
Expand All @@ -1850,6 +1853,16 @@ static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw)
if (!rc) {
int off;

api_version = le32_to_cpu(cmd->fw_api_version);
if (priv->device_info->fw_api_ap != api_version) {
printk(KERN_ERR "%s: Unsupported fw API version for %s."
" Expected %d got %d.\n", MWL8K_NAME,
priv->device_info->part_name,
priv->device_info->fw_api_ap,
api_version);
rc = -EINVAL;
goto done;
}
SET_IEEE80211_PERM_ADDR(hw, cmd->perm_addr);
priv->num_mcaddrs = le16_to_cpu(cmd->num_mcaddrs);
priv->fw_rev = le32_to_cpu(cmd->fw_rev);
Expand Down Expand Up @@ -1877,6 +1890,7 @@ static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw)
iowrite32(priv->txq[3].txd_dma, priv->sram + off);
}

done:
kfree(cmd);
return rc;
}
Expand Down Expand Up @@ -3939,6 +3953,10 @@ enum {
MWL8366,
};

#define MWL8K_8366_AP_FW_API 1
#define _MWL8K_8366_AP_FW(api) "mwl8k/fmimage_8366_ap-" #api ".fw"
#define MWL8K_8366_AP_FW(api) _MWL8K_8366_AP_FW(api)

static struct mwl8k_device_info mwl8k_info_tbl[] __devinitdata = {
[MWL8363] = {
.part_name = "88w8363",
Expand All @@ -3954,7 +3972,8 @@ static struct mwl8k_device_info mwl8k_info_tbl[] __devinitdata = {
.part_name = "88w8366",
.helper_image = "mwl8k/helper_8366.fw",
.fw_image_sta = "mwl8k/fmimage_8366.fw",
.fw_image_ap = "mwl8k/fmimage_8366_ap-1.fw",
.fw_image_ap = MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API),
.fw_api_ap = MWL8K_8366_AP_FW_API,
.ap_rxd_ops = &rxd_8366_ap_ops,
},
};
Expand All @@ -3965,7 +3984,7 @@ MODULE_FIRMWARE("mwl8k/helper_8687.fw");
MODULE_FIRMWARE("mwl8k/fmimage_8687.fw");
MODULE_FIRMWARE("mwl8k/helper_8366.fw");
MODULE_FIRMWARE("mwl8k/fmimage_8366.fw");
MODULE_FIRMWARE("mwl8k/fmimage_8366_ap-1.fw");
MODULE_FIRMWARE(MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API));

static DEFINE_PCI_DEVICE_TABLE(mwl8k_pci_id_table) = {
{ PCI_VDEVICE(MARVELL, 0x2a0a), .driver_data = MWL8363, },
Expand Down

0 comments on commit 6d16413

Please sign in to comment.