2026-01-29 22:25:33 +08:00

38 lines
1.1 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2022 - 2023 Mucse Corporation. */
#ifndef __RNP_DCB_H__
#define __RNP_DCB_H__
#include "rnp.h"
enum rnp_pause_low_thrsh {
RNP_PAUSE_4_SLOT_TIME = 0,
RNP_PAUSE_28_SLOT_TIME,
RNP_PAUSE_36_SLOT_TIME,
RNP_PAUSE_144_SLOT_TIME,
RNP_PAUSE_256_SLOT_TIME,
};
/*Rx Flow Ctrl */
#define RNP_RX_RFE BIT(0) /* Receive Flow Control Enable */
#define RNP_UP BIT(1) /* Unicast Pause Packet Detect */
#define RNP_PFCE BIT(8) /* Priority Based Flow Control Enable. */
/*Tx Flow Ctrl */
#define RNP_TX_FCB BIT(0) /* Tx Flow Control Busy. */
#define RNP_TX_TFE BIT(1) /* Transmit Flow Control Enable.*/
#define RNP_TX_PLT GENMASK(6, 4) /* Pause Low Threshold. */
#define RNP_DZPQ BIT(7) /*Disable Zero-Quanta Pause.*/
#define RNP_PT GENMASK(31, 16) /* Pause Time. */
#define RNP_DEFAULT_PAUSE_TIME (0x100) /* */
#define RNP_FC_TX_PLTH_OFFSET (4) /* Pause Low Threshold */
#define RNP_FC_TX_PT_OFFSET (16) /* Pause Time */
#define RNP_DCB_MAX_TCS_NUM (4)
#define RNP_DCB_MAX_PFC_NUM (4)
struct rnp_adapter;
int rnp_dcb_init(struct net_device *dev, struct rnp_adapter *adapter);
#endif