Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e5b3d472ad4eaa9013fd9f67f7a1b132f3ec910c
Commit:     e5b3d472ad4eaa9013fd9f67f7a1b132f3ec910c
Parent:     86760088a7c51ccc263ec3b8039ec9a7400a6d70
Author:     David Woodhouse <[EMAIL PROTECTED]>
AuthorDate: Fri May 25 23:40:21 2007 -0400
Committer:  John W. Linville <[EMAIL PROTECTED]>
CommitDate: Mon Jun 11 14:28:45 2007 -0400

    [PATCH] libertas: don't byte-swap firmware version number. It's a byte 
array.
    
    Signed-off-by: David Woodhouse <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/libertas/cmdresp.c |    7 ++++---
 drivers/net/wireless/libertas/dev.h     |    2 +-
 drivers/net/wireless/libertas/hostcmd.h |    4 ++--
 drivers/net/wireless/libertas/wext.c    |   19 ++++++++++---------
 4 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/drivers/net/wireless/libertas/cmdresp.c 
b/drivers/net/wireless/libertas/cmdresp.c
index e31d595..9385df5 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -168,10 +168,11 @@ static int wlan_ret_get_hw_spec(wlan_private * priv,
 
        adapter->fwcapinfo = le32_to_cpu(hwspec->fwcapinfo);
 
-       adapter->fwreleasenumber = le32_to_cpu(hwspec->fwreleasenumber);
+       memcpy(adapter->fwreleasenumber, hwspec->fwreleasenumber, 4);
 
-       lbs_deb_cmd("GET_HW_SPEC: FWReleaseVersion- 0x%X\n",
-              adapter->fwreleasenumber);
+       lbs_deb_cmd("GET_HW_SPEC: FWReleaseVersion- %u.%u.%u.p%u\n",
+                   adapter->fwreleasenumber[2], adapter->fwreleasenumber[1],
+                   adapter->fwreleasenumber[0], adapter->fwreleasenumber[3]);
        lbs_deb_cmd("GET_HW_SPEC: Permanent addr- %2x:%2x:%2x:%2x:%2x:%2x\n",
               hwspec->permanentaddr[0], hwspec->permanentaddr[1],
               hwspec->permanentaddr[2], hwspec->permanentaddr[3],
diff --git a/drivers/net/wireless/libertas/dev.h 
b/drivers/net/wireless/libertas/dev.h
index 797a124..91ac744 100644
--- a/drivers/net/wireless/libertas/dev.h
+++ b/drivers/net/wireless/libertas/dev.h
@@ -205,7 +205,7 @@ struct assoc_request {
 /** Wlan adapter data structure*/
 struct _wlan_adapter {
        /** STATUS variables */
-       u32 fwreleasenumber;
+       u8 fwreleasenumber[4];
        u32 fwcapinfo;
        /* protected with big lock */
 
diff --git a/drivers/net/wireless/libertas/hostcmd.h 
b/drivers/net/wireless/libertas/hostcmd.h
index 204d9d5..dc66cf5 100644
--- a/drivers/net/wireless/libertas/hostcmd.h
+++ b/drivers/net/wireless/libertas/hostcmd.h
@@ -165,8 +165,8 @@ struct cmd_ds_get_hw_spec {
        /* Number of antenna used */
        __le16 nr_antenna;
 
-       /* FW release number, example 0x1234=1.2.3.4 */
-       __le32 fwreleasenumber;
+       /* FW release number, example 1,2,3,4 = 3.2.1p4 */
+       u8 fwreleasenumber[4];
 
        /* Base Address of TxPD queue */
        __le32 wcb_base;
diff --git a/drivers/net/wireless/libertas/wext.c 
b/drivers/net/wireless/libertas/wext.c
index 1abb4bc..5b7e5f2 100644
--- a/drivers/net/wireless/libertas/wext.c
+++ b/drivers/net/wireless/libertas/wext.c
@@ -2297,22 +2297,23 @@ static int wlan_set_wap(struct net_device *dev, struct 
iw_request_info *info,
 
 void libertas_get_fwversion(wlan_adapter * adapter, char *fwversion, int 
maxlen)
 {
-       union {
-               u32 l;
-               u8 c[4];
-       } ver;
        char fwver[32];
 
        mutex_lock(&adapter->lock);
-       ver.l = adapter->fwreleasenumber;
-       mutex_unlock(&adapter->lock);
 
-       if (ver.c[3] == 0)
-               sprintf(fwver, "%u.%u.%u", ver.c[2], ver.c[1], ver.c[0]);
+       if (adapter->fwreleasenumber[3] == 0)
+               sprintf(fwver, "%u.%u.%u",
+                       adapter->fwreleasenumber[2],
+                       adapter->fwreleasenumber[1],
+                       adapter->fwreleasenumber[0]);
        else
                sprintf(fwver, "%u.%u.%u.p%u",
-                       ver.c[2], ver.c[1], ver.c[0], ver.c[3]);
+                       adapter->fwreleasenumber[2],
+                       adapter->fwreleasenumber[1],
+                       adapter->fwreleasenumber[0],
+                       adapter->fwreleasenumber[3]);
 
+       mutex_unlock(&adapter->lock);
        snprintf(fwversion, maxlen, fwver);
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to