diff options
author | Bing Zhao <bzhao@marvell.com> | 2009-03-25 12:51:16 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-04-22 16:54:26 -0400 |
commit | 684d6b360222f31b6b9be9a63aa5c6ed5674c890 (patch) | |
tree | 65e91de4f3e3617b5ecb24ef6ec5bb4b4d697f9c /drivers/net/wireless/libertas/tx.c | |
parent | 5e3af1d2d3e6c0011b4c22514d39c73dcbc6674f (diff) |
libertas: support mesh for various firmware versions
CMD_MESH_CONFIG command ID and a couple of structure members in TxPD,
RxPD have been changed in firmware version 10.x.y.z and newer.
Signed-off-by: Kiran Divekar <dkiran@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/tx.c')
-rw-r--r-- | drivers/net/wireless/libertas/tx.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/net/wireless/libertas/tx.c b/drivers/net/wireless/libertas/tx.c index f10aa39a6b68..160cfd8311c0 100644 --- a/drivers/net/wireless/libertas/tx.c +++ b/drivers/net/wireless/libertas/tx.c | |||
@@ -132,8 +132,12 @@ int lbs_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
132 | txpd->tx_packet_length = cpu_to_le16(pkt_len); | 132 | txpd->tx_packet_length = cpu_to_le16(pkt_len); |
133 | txpd->tx_packet_location = cpu_to_le32(sizeof(struct txpd)); | 133 | txpd->tx_packet_location = cpu_to_le32(sizeof(struct txpd)); |
134 | 134 | ||
135 | if (dev == priv->mesh_dev) | 135 | if (dev == priv->mesh_dev) { |
136 | txpd->tx_control |= cpu_to_le32(TxPD_MESH_FRAME); | 136 | if (priv->mesh_fw_ver == MESH_FW_OLD) |
137 | txpd->tx_control |= cpu_to_le32(TxPD_MESH_FRAME); | ||
138 | else if (priv->mesh_fw_ver == MESH_FW_NEW) | ||
139 | txpd->u.bss.bss_num = MESH_IFACE_ID; | ||
140 | } | ||
137 | 141 | ||
138 | lbs_deb_hex(LBS_DEB_TX, "txpd", (u8 *) &txpd, sizeof(struct txpd)); | 142 | lbs_deb_hex(LBS_DEB_TX, "txpd", (u8 *) &txpd, sizeof(struct txpd)); |
139 | 143 | ||