linux/drivers/nfc/nfcmrvl/fw_dnld.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Marvell NFC driver: Firmware downloader
 *
 * Copyright (C) 2015, Marvell International Ltd.
 */

#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

/* FW download states */

enum {};

enum {};

/*
 * Patterns for responses
 */

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)
{}