1/**
2  * This file contains functions used in USB Boot command
3  * and Boot2/FW update
4  */
5
6#include <linux/delay.h>
7#include <linux/firmware.h>
8#include <linux/netdevice.h>
9#include <linux/usb.h>
10
11#define DRV_NAME "usb8xxx"
12
13#include "defs.h"
14#include "dev.h"
15#include "if_usb.h"
16
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
22 */
23int if_usb_issue_boot_command(wlan_private *priv, int ivalue)
24{
25	struct usb_card_rec	*cardp = priv->card;
26	struct bootcmdstr	sbootcmd;
27	int i;
28
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));
35
36	/* Issue command */
37	usb_tx_block(priv, cardp->bulk_out_buffer, sizeof(struct bootcmdstr));
38
39	return 0;
40}
41