[PATCH] libertas: first pass at fixing up endianness issues
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / drivers / net / wireless / libertas / if_bootcmd.c
blob8bca306ffad9e7e3b0916db45cbddbf4283a7851
1 /**
2 * This file contains functions used in USB Boot command
3 * and Boot2/FW update
4 */
6 #include <linux/delay.h>
7 #include <linux/firmware.h>
8 #include <linux/netdevice.h>
9 #include <linux/usb.h>
11 #define DRV_NAME "usb8xxx"
13 #include "defs.h"
14 #include "dev.h"
15 #include "if_usb.h"
17 /**
18 * @brief This function issues Boot command to the Boot2 code
19 * @param ivalue 1:Boot from FW by USB-Download
20 * 2:Boot from FW in EEPROM
21 * @return 0
23 int if_usb_issue_boot_command(wlan_private *priv, int ivalue)
25 struct usb_card_rec *cardp = priv->card;
26 struct bootcmdstr sbootcmd;
27 int i;
29 /* Prepare command */
30 sbootcmd.u32magicnumber = cpu_to_le32(BOOT_CMD_MAGIC_NUMBER);
31 sbootcmd.u8cmd_tag = ivalue;
32 for (i=0; i<11; i++)
33 sbootcmd.au8dumy[i]=0x00;
34 memcpy(cardp->bulk_out_buffer, &sbootcmd, sizeof(struct bootcmdstr));
36 /* Issue command */
37 usb_tx_block(priv, cardp->bulk_out_buffer, sizeof(struct bootcmdstr));
39 return 0;