Browse Source

[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>
David Woodhouse 18 years ago
parent
commit
bb793e2bfc
2 changed files with 3 additions and 3 deletions
  1. 2 2
      drivers/net/wireless/libertas/if_usb.c
  2. 1 1
      drivers/net/wireless/libertas/if_usb.h

+ 2 - 2
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");

+ 1 - 1
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);