| Index: chromeos/drivers/ath6kl/miscdrv/ar3kps/ar3kpsparser.h
|
| diff --git a/chromeos/drivers/ath6kl/miscdrv/ar3kps/ar3kpsparser.h b/chromeos/drivers/ath6kl/miscdrv/ar3kps/ar3kpsparser.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2aaadbb50469b2a925b67a591e7db6dc4082c691
|
| --- /dev/null
|
| +++ b/chromeos/drivers/ath6kl/miscdrv/ar3kps/ar3kpsparser.h
|
| @@ -0,0 +1,156 @@
|
| +/*
|
| + * Copyright (c) 2004-2008 Atheros Communications Inc.
|
| + * All rights reserved.
|
| + *
|
| + * This file is the include file for Atheros PS and patch parser.
|
| + * It implements APIs to parse data buffer with patch and PS information and convert it to HCI commands.
|
| + *
|
| + *
|
| + *
|
| + * ar3kpsparser.h
|
| + *
|
| + *
|
| + *
|
| + * The software source and binaries included in this development package are
|
| + * licensed, not sold. You, or your company, received the package under one
|
| + * or more license agreements. The rights granted to you are specifically
|
| + * listed in these license agreement(s). All other rights remain with Atheros
|
| + * Communications, Inc., its subsidiaries, or the respective owner including
|
| + * those listed on the included copyright notices.. Distribution of any
|
| + * portion of this package must be in strict compliance with the license
|
| + * agreement(s) terms.
|
| + *
|
| + *
|
| + *
|
| + */
|
| +
|
| +/*------------------------------------------------------------------------------
|
| + *
|
| + * <copyright file="File name" company="Atheros">
|
| + * Copyright (c) 2004-2008 Atheros Corporation. All rights reserved.
|
| + *
|
| +// This program is free software; you can redistribute it and/or modify
|
| +// it under the terms of the GNU General Public License version 2 as
|
| +// published by the Free Software Foundation;
|
| +//
|
| +// Software distributed under the License is distributed on an "AS
|
| +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
| +// implied. See the License for the specific language governing
|
| +// rights and limitations under the License.
|
| +//
|
| +//
|
| + *------------------------------------------------------------------------------
|
| + *
|
| + *
|
| + *
|
| + * This file is the include file for Atheros PS and patch parser.
|
| + * It implements APIs to parse data buffer with patch and PS information and convert it to HCI commands.
|
| + *
|
| + *
|
| + *
|
| + *
|
| + *
|
| + */
|
| +#ifndef __AR3KPSPARSER_H
|
| +#define __AR3KPSPARSER_H
|
| +
|
| +
|
| +
|
| +
|
| +#include <linux/fs.h>
|
| +#include <linux/slab.h>
|
| +#include "athdefs.h"
|
| +#ifdef HCI_TRANSPORT_SDIO
|
| +#include "a_config.h"
|
| +#include "a_types.h"
|
| +#include "a_osapi.h"
|
| +#define ATH_MODULE_NAME misc
|
| +#include "a_debug.h"
|
| +#include "common_drv.h"
|
| +#include "hci_transport_api.h"
|
| +#include "ar3kconfig.h"
|
| +#else
|
| +#ifndef A_PRINTF
|
| +#define A_PRINTF(args...) printk(KERN_ALERT args)
|
| +#endif /* A_PRINTF */
|
| +#include "debug_linux.h"
|
| +
|
| +/* Helper data type declaration */
|
| +
|
| +#ifndef A_UINT32
|
| +#define A_UCHAR unsigned char
|
| +#define A_UINT32 unsigned long
|
| +#define A_UINT16 unsigned short
|
| +#define A_UINT8 unsigned char
|
| +#define A_BOOL unsigned char
|
| +#endif /* A_UINT32 */
|
| +
|
| +#define ATH_DEBUG_ERR (1 << 0)
|
| +#define ATH_DEBUG_WARN (1 << 1)
|
| +#define ATH_DEBUG_INFO (1 << 2)
|
| +
|
| +
|
| +
|
| +#define FALSE 0
|
| +#define TRUE 1
|
| +
|
| +#ifndef A_MALLOC
|
| +#define A_MALLOC(size) kmalloc((size),GFP_KERNEL)
|
| +#endif /* A_MALLOC */
|
| +
|
| +
|
| +#ifndef A_FREE
|
| +#define A_FREE(addr) kfree((addr))
|
| +#endif /* A_MALLOC */
|
| +#endif /* HCI_TRANSPORT_UART */
|
| +
|
| +/* String manipulation APIs */
|
| +#ifndef A_STRTOUL
|
| +#define A_STRTOUL simple_strtoul
|
| +#endif /* A_STRTOL */
|
| +
|
| +#ifndef A_STRTOL
|
| +#define A_STRTOL simple_strtol
|
| +#endif /* A_STRTOL */
|
| +
|
| +
|
| +/* The maximum number of bytes possible in a patch entry */
|
| +#define MAX_PATCH_SIZE 20000
|
| +
|
| +/* Maximum HCI packets that will be formed from the Patch file */
|
| +#define MAX_NUM_PATCH_ENTRY (MAX_PATCH_SIZE/MAX_BYTE_LENGTH) + 1
|
| +
|
| +
|
| +
|
| +
|
| +
|
| +
|
| +
|
| +typedef struct PSCmdPacket
|
| +{
|
| + A_UCHAR *Hcipacket;
|
| + int packetLen;
|
| +} PSCmdPacket;
|
| +
|
| +/* Parses a Patch information buffer and store it in global structure */
|
| +A_STATUS AthDoParsePatch(A_UCHAR *, A_UINT32);
|
| +
|
| +/* parses a PS information buffer and stores it in a global structure */
|
| +A_STATUS AthDoParsePS(A_UCHAR *, A_UINT32);
|
| +
|
| +/*
|
| + * Uses the output of Both AthDoParsePS and AthDoParsePatch APIs to form HCI command array with
|
| + * all the PS and patch commands.
|
| + * The list will have the below mentioned commands in order.
|
| + * CRC command packet
|
| + * Download patch command(s)
|
| + * Enable patch Command
|
| + * PS Reset Command
|
| + * PS Tag Command(s)
|
| + *
|
| + */
|
| +int AthCreateCommandList(PSCmdPacket **, A_UINT32 *);
|
| +
|
| +/* Cleanup the dynamically allicated HCI command list */
|
| +A_STATUS AthFreeCommandList(PSCmdPacket **HciPacketList, A_UINT32 numPackets);
|
| +#endif /* __AR3KPSPARSER_H */
|
|
|