From bb793e2bfc25b8891b84b8fe3cb4b77cd4619814 Mon Sep 17 00:00:00 2001
From: David Woodhouse <dwmw2@infradead.org>
Date: Fri, 25 May 2007 23:38:14 -0400
Subject: [PATCH] [PATCH] libertas: More endianness fixes.

Now it at least manages to load the firmware.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
 drivers/net/wireless/libertas/if_usb.c | 4 ++--
 drivers/net/wireless/libertas/if_usb.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
index b544fcdcd0e7..998317571ec2 100644
--- a/drivers/net/wireless/libertas/if_usb.c
+++ b/drivers/net/wireless/libertas/if_usb.c
@@ -313,7 +313,7 @@ static int if_prog_firmware(wlan_private * priv)
 
 	/*
 	lbs_deb_usbd(&cardp->udev->dev,
-		    "Data length = %d\n", fwdata->fwheader.datalength);
+		    "Data length = %d\n", le32_to_cpu(fwdata->fwheader.datalength));
 	*/
 
 	cardp->fwseqnum = cardp->fwseqnum + 1;
@@ -332,7 +332,7 @@ static int if_prog_firmware(wlan_private * priv)
 		memcpy(cardp->bulk_out_buffer, fwheader, FW_DATA_XMIT_SIZE);
 		usb_tx_block(priv, cardp->bulk_out_buffer, FW_DATA_XMIT_SIZE);
 
-	} else if (fwdata->fwheader.dnldcmd == FW_HAS_LAST_BLOCK) {
+	} else if (fwdata->fwheader.dnldcmd == cpu_to_le32(FW_HAS_LAST_BLOCK)) {
 		/*
 		lbs_deb_usbd(&cardp->udev->dev,
 			    "Host has finished FW downloading\n");
diff --git a/drivers/net/wireless/libertas/if_usb.h b/drivers/net/wireless/libertas/if_usb.h
index 3ed46a33fd21..156bb485e1a6 100644
--- a/drivers/net/wireless/libertas/if_usb.h
+++ b/drivers/net/wireless/libertas/if_usb.h
@@ -100,7 +100,7 @@ struct fwsyncheader {
 #define FW_HAS_LAST_BLOCK		0x00000004
 
 #define FW_DATA_XMIT_SIZE \
-	sizeof(struct fwheader) + fwdata->fwheader.datalength + sizeof(u32)
+	sizeof(struct fwheader) + le32_to_cpu(fwdata->fwheader.datalength) + sizeof(u32)
 
 int usb_tx_block(wlan_private *priv, u8 *payload, u16 nb);
 void if_usb_free(struct usb_card_rec *cardp);