brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 7d0daeb Raw
108 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _LBS_IF_USB_H3#define _LBS_IF_USB_H4 5#include <linux/wait.h>6#include <linux/timer.h>7 8struct lbs_private;9 10/*11 * This file contains definition for USB interface.12 */13#define CMD_TYPE_REQUEST		0xF00DFACE14#define CMD_TYPE_DATA			0xBEADC0DE15#define CMD_TYPE_INDICATION		0xBEEFFACE16 17#define IPFIELD_ALIGN_OFFSET		218 19#define BOOT_CMD_FW_BY_USB		0x0120#define BOOT_CMD_FW_IN_EEPROM		0x0221#define BOOT_CMD_UPDATE_BOOT2		0x0322#define BOOT_CMD_UPDATE_FW		0x0423#define BOOT_CMD_MAGIC_NUMBER		0x4C56524D   /* LVRM */24 25struct bootcmd26{27	__le32	magic;28	uint8_t	cmd;29	uint8_t	pad[11];30};31 32#define BOOT_CMD_RESP_OK		0x000133#define BOOT_CMD_RESP_FAIL		0x000034#define BOOT_CMD_RESP_NOT_SUPPORTED	0x000235 36struct bootcmdresp37{38	__le32	magic;39	uint8_t	cmd;40	uint8_t	result;41	uint8_t	pad[2];42};43 44/* USB card description structure*/45struct if_usb_card {46	struct usb_device *udev;47	uint32_t model;  /* MODEL_* */48	struct urb *rx_urb, *tx_urb;49	struct lbs_private *priv;50 51	struct sk_buff *rx_skb;52 53	uint8_t ep_in;54	uint8_t ep_out;55 56	/* bootcmdresp == 0 means command is pending57	 * bootcmdresp < 0 means error58	 * bootcmdresp > 0 is a BOOT_CMD_RESP_* from firmware59	 */60	int8_t bootcmdresp;61 62	int ep_in_size;63 64	void *ep_out_buf;65	int ep_out_size;66 67	const struct firmware *fw;68	struct timer_list fw_timeout;69	wait_queue_head_t fw_wq;70	uint32_t fwseqnum;71	uint32_t totalbytes;72	uint32_t fwlastblksent;73	uint8_t CRC_OK;74	uint8_t fwdnldover;75	uint8_t fwfinalblk;76	uint8_t surprise_removed;77 78	__le16 boot2_version;79};80 81/* fwheader */82struct fwheader {83	__le32 dnldcmd;84	__le32 baseaddr;85	__le32 datalength;86	__le32 CRC;87};88 89#define FW_MAX_DATA_BLK_SIZE	60090/* FWData */91struct fwdata {92	struct fwheader hdr;93	__le32 seqnum;94	uint8_t data[];95};96 97/* fwsyncheader */98struct fwsyncheader {99	__le32 cmd;100	__le32 seqnum;101};102 103#define FW_HAS_DATA_TO_RECV		0x00000001104#define FW_HAS_LAST_BLOCK		0x00000004105 106 107#endif108