/*
        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;
                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");
 
 #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);