forked from luck/tmp_suning_uos_patched
libertas: always show firmware release
Always shows the firmware release. Also converts the firmware release into something that is easily comparable. Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
4365929d17
commit
dac10a9f28
@ -60,13 +60,24 @@ int lbs_update_hw_spec(struct lbs_private *priv)
|
||||
goto out;
|
||||
|
||||
priv->fwcapinfo = le32_to_cpu(cmd.fwcapinfo);
|
||||
memcpy(priv->fwreleasenumber, cmd.fwreleasenumber, 4);
|
||||
|
||||
lbs_deb_cmd("GET_HW_SPEC: firmware release %u.%u.%up%u\n",
|
||||
priv->fwreleasenumber[2], priv->fwreleasenumber[1],
|
||||
priv->fwreleasenumber[0], priv->fwreleasenumber[3]);
|
||||
lbs_deb_cmd("GET_HW_SPEC: MAC addr %s\n",
|
||||
print_mac(mac, cmd.permanentaddr));
|
||||
/* The firmware release is in an interesting format: the patch
|
||||
* level is in the most significant nibble ... so fix that: */
|
||||
priv->fwrelease = le32_to_cpu(cmd.fwrelease);
|
||||
priv->fwrelease = (priv->fwrelease << 8) |
|
||||
(priv->fwrelease >> 24 & 0xff);
|
||||
|
||||
/* Some firmware capabilities:
|
||||
* CF card firmware 5.0.16p0: cap 0x00000303
|
||||
* USB dongle firmware 5.110.17p2: cap 0x00000303
|
||||
*/
|
||||
printk("libertas: %s, fw %u.%u.%up%u, cap 0x%08x\n",
|
||||
print_mac(mac, cmd.permanentaddr),
|
||||
priv->fwrelease >> 24 & 0xff,
|
||||
priv->fwrelease >> 16 & 0xff,
|
||||
priv->fwrelease >> 8 & 0xff,
|
||||
priv->fwrelease & 0xff,
|
||||
priv->fwcapinfo);
|
||||
lbs_deb_cmd("GET_HW_SPEC: hardware interface 0x%x, hardware spec 0x%04x\n",
|
||||
cmd.hwifversion, cmd.version);
|
||||
|
||||
|
@ -161,7 +161,7 @@ struct lbs_private {
|
||||
|
||||
/** Wlan adapter data structure*/
|
||||
/** STATUS variables */
|
||||
u8 fwreleasenumber[4];
|
||||
u32 fwrelease;
|
||||
u32 fwcapinfo;
|
||||
/* protected with big lock */
|
||||
|
||||
|
@ -136,8 +136,8 @@ struct cmd_ds_get_hw_spec {
|
||||
/* Number of antenna used */
|
||||
__le16 nr_antenna;
|
||||
|
||||
/* FW release number, example 1,2,3,4 = 3.2.1p4 */
|
||||
u8 fwreleasenumber[4];
|
||||
/* FW release number, example 0x01030304 = 2.3.4p1 */
|
||||
__le32 fwrelease;
|
||||
|
||||
/* Base Address of TxPD queue */
|
||||
__le32 wcb_base;
|
||||
|
@ -2071,17 +2071,11 @@ void lbs_get_fwversion(struct lbs_private *priv, char *fwversion, int maxlen)
|
||||
|
||||
mutex_lock(&priv->lock);
|
||||
|
||||
if (priv->fwreleasenumber[3] == 0)
|
||||
sprintf(fwver, "%u.%u.%u",
|
||||
priv->fwreleasenumber[2],
|
||||
priv->fwreleasenumber[1],
|
||||
priv->fwreleasenumber[0]);
|
||||
else
|
||||
sprintf(fwver, "%u.%u.%u.p%u",
|
||||
priv->fwreleasenumber[2],
|
||||
priv->fwreleasenumber[1],
|
||||
priv->fwreleasenumber[0],
|
||||
priv->fwreleasenumber[3]);
|
||||
sprintf(fwver, "%u.%u.%u.p%u",
|
||||
priv->fwrelease >> 24 & 0xff,
|
||||
priv->fwrelease >> 16 & 0xff,
|
||||
priv->fwrelease >> 8 & 0xff,
|
||||
priv->fwrelease & 0xff);
|
||||
|
||||
mutex_unlock(&priv->lock);
|
||||
snprintf(fwversion, maxlen, fwver);
|
||||
|
Loading…
Reference in New Issue
Block a user