Skip to content

Commit

Permalink
libertas: always show firmware release
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Holger Schurig authored and David S. Miller committed Jan 28, 2008
1 parent 4365929 commit dac10a9
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 20 deletions.
23 changes: 17 additions & 6 deletions drivers/net/wireless/libertas/cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/libertas/dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ struct lbs_private {

/** Wlan adapter data structure*/
/** STATUS variables */
u8 fwreleasenumber[4];
u32 fwrelease;
u32 fwcapinfo;
/* protected with big lock */

Expand Down
4 changes: 2 additions & 2 deletions drivers/net/wireless/libertas/hostcmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
16 changes: 5 additions & 11 deletions drivers/net/wireless/libertas/wext.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit dac10a9

Please sign in to comment.