Unverified Commit 37bf81d4 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!13818 net/hinic3: Support new NIC feature

Merge Pull Request from: @ci-robot 
 
PR sync from: s00851154 <shijing34@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/S2OCVJXBAUWLYKVT3PWTMGHGDSR5BP5F/ 
From: zhuyikai <zhuyikai1@h-partners.com>

Support new TX WQE offload format and new RX WQE type.

zhuyikai (2):
  net/hinic3: Support new TX feature
  net/hinic3: Support new RX feature


-- 
2.45.1.windows.1
 
https://gitee.com/openeuler/kernel/issues/IB6TTO?from=project-issue 
 
Link:https://gitee.com/openeuler/kernel/pulls/13818

 

Reviewed-by: default avatarChiqijun <chiqijun@huawei.com>
Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
Signed-off-by: default avatarZhang Peng <zhangpeng362@huawei.com>
parents 2c42625d 47d680b6
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -393,6 +393,14 @@ static void hinic3_free_txrxqs(struct hinic3_nic_dev *nic_dev)

static void hinic3_tx_rx_ops_init(struct hinic3_nic_dev *nic_dev)
{
	if (HINIC3_SUPPORT_TX_COMPACT_WQE_OL(nic_dev->hwdev)) {
		nic_dev->tx_rx_ops.tx_set_wqebb_cnt = hinic3_tx_set_compact_offload_wqebb_cnt;
		nic_dev->tx_rx_ops.tx_set_wqe_task = hinic3_tx_set_compact_offload_wqe_task;
	} else {
		nic_dev->tx_rx_ops.tx_set_wqebb_cnt = hinic3_tx_set_wqebb_cnt;
		nic_dev->tx_rx_ops.tx_set_wqe_task = hinic3_tx_set_wqe_task;
	}

	if (HINIC3_SUPPORT_RX_COMPACT_CQE(nic_dev->hwdev))
		nic_dev->tx_rx_ops.rx_get_cqe_info = hinic3_rx_get_compact_cqe_info;
	else
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ enum nic_feature_cap {
	NIC_F_VF_MAC = BIT(15),
	NIC_F_RATE_LIMIT = BIT(16),
	NIC_F_RXQ_RECOVERY = BIT(17),
	NIC_F_TX_COMPACT_WQE_OL = BIT(19),
	NIC_F_RX_COMPACT_CQE = BIT(20),
	NIC_F_HTN_CMDQ = BIT(21),
};
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
#ifndef HINIC3_MT_H
#define HINIC3_MT_H

#define HINIC3_DRV_NAME "hisdk3"
#define HINIC3_DRV_NAME "hinic3"
#define HINIC3_CHIP_NAME "hinic"
/* Interrupt at most records, interrupt will be recorded in the FFM */

+1 −0
Original line number Diff line number Diff line
@@ -98,6 +98,7 @@ u64 hinic3_get_feature_cap(void *hwdev);
#define HINIC3_SUPPORT_ALLMULTI(hwdev) HINIC3_SUPPORT_FEATURE(hwdev, ALLMULTI)
#define HINIC3_SUPPORT_VF_MAC(hwdev) HINIC3_SUPPORT_FEATURE(hwdev, VF_MAC)
#define HINIC3_SUPPORT_RATE_LIMIT(hwdev) HINIC3_SUPPORT_FEATURE(hwdev, RATE_LIMIT)
#define HINIC3_SUPPORT_TX_COMPACT_WQE_OL(hwdev) HINIC3_SUPPORT_FEATURE(hwdev, TX_COMPACT_WQE_OL)
#define HINIC3_SUPPORT_RX_COMPACT_CQE(hwdev) HINIC3_SUPPORT_FEATURE(hwdev, RX_COMPACT_CQE)

#define HINIC3_SUPPORT_RXQ_RECOVERY(hwdev) HINIC3_SUPPORT_FEATURE(hwdev, RXQ_RECOVERY)
+1 −0
Original line number Diff line number Diff line
@@ -247,6 +247,7 @@ struct hinic3_nic_dev {
	struct hinic3_txq	*txqs;
	struct hinic3_rxq	*rxqs;
	struct hinic3_dyna_txrxq_params q_params;
	u8 cqe_mode; /* rx_cqe */

	u16			num_qp_irq;
	struct irq_info		*qps_irq_info;
Loading