#include <linux/module.h>
#include <linux/unaligned.h>
#include <linux/firmware.h>
#include <linux/nfc.h>
#include <net/nfc/nci.h>
#include <net/nfc/nci_core.h>
#include "nfcmrvl.h"
#define FW_DNLD_TIMEOUT …
#define NCI_OP_PROPRIETARY_BOOT_CMD …
enum { … };
enum { … };
static const uint8_t nci_pattern_core_reset_ntf[] = …;
static const uint8_t nci_pattern_core_init_rsp[] = …;
static const uint8_t nci_pattern_core_set_config_rsp[] = …;
static const uint8_t nci_pattern_core_conn_create_rsp[] = …;
static const uint8_t nci_pattern_core_conn_close_rsp[] = …;
static const uint8_t nci_pattern_core_conn_credits_ntf[] = …;
static const uint8_t nci_pattern_proprietary_boot_rsp[] = …;
static struct sk_buff *alloc_lc_skb(struct nfcmrvl_private *priv, uint8_t plen)
{ … }
static void fw_dnld_over(struct nfcmrvl_private *priv, u32 error)
{ … }
static void fw_dnld_timeout(struct timer_list *t)
{ … }
static int process_state_reset(struct nfcmrvl_private *priv,
const struct sk_buff *skb)
{ … }
static int process_state_init(struct nfcmrvl_private *priv,
const struct sk_buff *skb)
{ … }
static void create_lc(struct nfcmrvl_private *priv)
{ … }
static int process_state_set_ref_clock(struct nfcmrvl_private *priv,
const struct sk_buff *skb)
{ … }
static int process_state_set_hi_config(struct nfcmrvl_private *priv,
const struct sk_buff *skb)
{ … }
static int process_state_open_lc(struct nfcmrvl_private *priv,
const struct sk_buff *skb)
{ … }
static int process_state_fw_dnld(struct nfcmrvl_private *priv,
struct sk_buff *skb)
{ … }
static int process_state_close_lc(struct nfcmrvl_private *priv,
const struct sk_buff *skb)
{ … }
static int process_state_boot(struct nfcmrvl_private *priv,
const struct sk_buff *skb)
{ … }
static void fw_dnld_rx_work(struct work_struct *work)
{ … }
int nfcmrvl_fw_dnld_init(struct nfcmrvl_private *priv)
{ … }
void nfcmrvl_fw_dnld_deinit(struct nfcmrvl_private *priv)
{ … }
void nfcmrvl_fw_dnld_recv_frame(struct nfcmrvl_private *priv,
struct sk_buff *skb)
{ … }
void nfcmrvl_fw_dnld_abort(struct nfcmrvl_private *priv)
{ … }
int nfcmrvl_fw_dnld_start(struct nci_dev *ndev, const char *firmware_name)
{ … }