linux/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h

/* Broadcom NetXtreme-C/E network driver.
 *
 * Copyright (c) 2020 Broadcom Limited
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation.
 */

#ifndef BNXT_HWRM_H
#define BNXT_HWRM_H

#include "bnxt_hsi.h"

enum bnxt_hwrm_ctx_flags {};

#define HWRM_API_FLAGS

struct bnxt_hwrm_ctx {};

enum bnxt_hwrm_wait_state {};

enum bnxt_hwrm_chnl {};

struct bnxt_hwrm_wait_token {};

void hwrm_update_token(struct bnxt *bp, u16 seq, enum bnxt_hwrm_wait_state s);

#define BNXT_HWRM_MAX_REQ_LEN
#define BNXT_HWRM_SHORT_REQ_LEN
#define HWRM_CMD_MAX_TIMEOUT
#define SHORT_HWRM_CMD_TIMEOUT
#define HWRM_CMD_TIMEOUT
#define HWRM_RESET_TIMEOUT
#define BNXT_HWRM_TARGET
#define BNXT_HWRM_NO_CMPL_RING
#define BNXT_HWRM_REQ_MAX_SIZE
#define BNXT_HWRM_DMA_SIZE
#define BNXT_HWRM_RESP_RESERVED
#define BNXT_HWRM_RESP_OFFSET
#define BNXT_HWRM_CTX_OFFSET
#define BNXT_HWRM_DMA_ALIGN
#define BNXT_HWRM_SENTINEL
#define BNXT_HWRM_REQS_PER_PAGE
#define HWRM_SHORT_MIN_TIMEOUT
#define HWRM_SHORT_MAX_TIMEOUT
#define HWRM_SHORT_TIMEOUT_COUNTER

#define HWRM_MIN_TIMEOUT
#define HWRM_MAX_TIMEOUT

static inline unsigned int hwrm_total_timeout(unsigned int n)
{}


#define HWRM_VALID_BIT_DELAY_USEC

static inline bool bnxt_cfa_hwrm_message(u16 req_type)
{}

static inline bool bnxt_kong_hwrm_message(struct bnxt *bp, struct input *req)
{}

int __hwrm_req_init(struct bnxt *bp, void **req, u16 req_type, u32 req_len);
#define hwrm_req_init(bp, req, req_type)
void *hwrm_req_hold(struct bnxt *bp, void *req);
void hwrm_req_drop(struct bnxt *bp, void *req);
void hwrm_req_flags(struct bnxt *bp, void *req, enum bnxt_hwrm_ctx_flags flags);
void hwrm_req_timeout(struct bnxt *bp, void *req, unsigned int timeout);
int hwrm_req_send(struct bnxt *bp, void *req);
int hwrm_req_send_silent(struct bnxt *bp, void *req);
int hwrm_req_replace(struct bnxt *bp, void *req, void *new_req, u32 len);
void hwrm_req_alloc_flags(struct bnxt *bp, void *req, gfp_t flags);
void *hwrm_req_dma_slice(struct bnxt *bp, void *req, u32 size, dma_addr_t *dma);

/* Older devices can only support req length of 128.
 * HWRM_FUNC_CFG requests which don't need fields starting at
 * num_quic_tx_key_ctxs can use this helper to avoid getting -E2BIG.
 */
static inline int
bnxt_hwrm_func_cfg_short_req_init(struct bnxt *bp,
				  struct hwrm_func_cfg_input **req)
{}
#endif