From patchwork Tue Nov 24 06:45:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoyang Zhou X-Patchwork-Id: 84488 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7C630A04B1; Tue, 24 Nov 2020 07:42:09 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BD10DC92C; Tue, 24 Nov 2020 07:41:53 +0100 (CET) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by dpdk.org (Postfix) with ESMTP id 4E5DDC910; Tue, 24 Nov 2020 07:41:50 +0100 (CET) Received: from DGGEMS409-HUB.china.huawei.com (unknown [172.30.72.58]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4CgDv85Kr3zhf5v; Tue, 24 Nov 2020 14:41:24 +0800 (CST) Received: from tester.localdomain (10.175.119.39) by DGGEMS409-HUB.china.huawei.com (10.3.19.209) with Microsoft SMTP Server id 14.3.487.0; Tue, 24 Nov 2020 14:41:36 +0800 From: Guoyang Zhou To: CC: , , , , , , , , , , Date: Tue, 24 Nov 2020 14:45:33 +0800 Message-ID: <3cc7af99f75ecd714580835fb68c723cdb0696d3.1606199729.git.zhouguoyang@huawei.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.175.119.39] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH v2 1/2] net/hinic/base: remove the limitation for max queue num X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The maximum number of queues on the chip can be any value greater than 0, it does not have to be the power of two, if it does not be fixed, dpdk initialization may be failed with OVS mode firmware. Fixes: 828d3e15a9dc ("net/hinic/base: support context and work queue") Cc: stable@dpdk.org Signed-off-by: Guoyang Zhou --- drivers/net/hinic/base/hinic_pmd_nicio.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/net/hinic/base/hinic_pmd_nicio.c b/drivers/net/hinic/base/hinic_pmd_nicio.c index 2736305..162308b 100644 --- a/drivers/net/hinic/base/hinic_pmd_nicio.c +++ b/drivers/net/hinic/base/hinic_pmd_nicio.c @@ -758,11 +758,6 @@ static int hinic_alloc_nicio(struct hinic_hwdev *hwdev) int err; max_qps = hinic_func_max_qnum(hwdev); - if ((max_qps & (max_qps - 1))) { - PMD_DRV_LOG(ERR, "Wrong number of max_qps: %d", - max_qps); - return -EINVAL; - } nic_io->max_qps = max_qps; nic_io->num_qps = max_qps; From patchwork Tue Nov 24 06:45:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guoyang Zhou X-Patchwork-Id: 84489 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 962EEA04B1; Tue, 24 Nov 2020 07:42:30 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BFFB4C942; Tue, 24 Nov 2020 07:41:55 +0100 (CET) Received: from szxga04-in.huawei.com (szxga04-in.huawei.com [45.249.212.190]) by dpdk.org (Postfix) with ESMTP id 678C9C926; Tue, 24 Nov 2020 07:41:51 +0100 (CET) Received: from DGGEMS409-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga04-in.huawei.com (SkyGuard) with ESMTP id 4CgDv76DnPzkdWt; Tue, 24 Nov 2020 14:41:23 +0800 (CST) Received: from tester.localdomain (10.175.119.39) by DGGEMS409-HUB.china.huawei.com (10.3.19.209) with Microsoft SMTP Server id 14.3.487.0; Tue, 24 Nov 2020 14:41:38 +0800 From: Guoyang Zhou To: CC: , , , , , , , , , , Date: Tue, 24 Nov 2020 14:45:34 +0800 Message-ID: <76ef45e46267ef09e0793093e08befbc011253f0.1606199729.git.zhouguoyang@huawei.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.175.119.39] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH v2 2/2] net/hinic: remove the operation of optical modules X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Remove the operation of optical modules in the link function, because when device binds from dpdk to kernel, it will be linked failed. This function does not take effect in cable mode, therefore, optimization is required. Fixes: 54ac33869932 ("net/hinic: set link down and up") Cc: stable@dpdk.org Signed-off-by: Guoyang Zhou --- drivers/net/hinic/base/hinic_pmd_niccfg.c | 38 ------------------------------- drivers/net/hinic/base/hinic_pmd_niccfg.h | 2 -- drivers/net/hinic/hinic_pmd_ethdev.c | 14 ------------ 3 files changed, 54 deletions(-) diff --git a/drivers/net/hinic/base/hinic_pmd_niccfg.c b/drivers/net/hinic/base/hinic_pmd_niccfg.c index be6445d..8c08d63 100644 --- a/drivers/net/hinic/base/hinic_pmd_niccfg.c +++ b/drivers/net/hinic/base/hinic_pmd_niccfg.c @@ -1659,44 +1659,6 @@ int hinic_get_link_mode(void *hwdev, u32 *supported, u32 *advertised) } /** - * hinic_set_xsfp_tx_status - Enable or disable the fiber in - * tx direction when set link up or down. - * - * @param hwdev - * The hardware interface of a nic device. - * @param enable - * Enable or Disable. - * - * @return - * 0 on success. - * negative error value otherwise. - */ -int hinic_set_xsfp_tx_status(void *hwdev, bool enable) -{ - struct hinic_set_xsfp_status xsfp_status; - u16 out_size = sizeof(struct hinic_set_xsfp_status); - int err; - - memset(&xsfp_status, 0, sizeof(xsfp_status)); - xsfp_status.mgmt_msg_head.resp_aeq_num = HINIC_AEQ1; - xsfp_status.port_id = hinic_global_func_id(hwdev); - xsfp_status.xsfp_tx_dis = ((enable == 0) ? 1 : 0); - - err = l2nic_msg_to_mgmt_sync(hwdev, HINIC_PORT_CMD_SET_XSFP_STATUS, - &xsfp_status, sizeof(struct hinic_set_xsfp_status), - &xsfp_status, &out_size); - if (err || !out_size || xsfp_status.mgmt_msg_head.status) { - PMD_DRV_LOG(ERR, - "Failed to %s port xsfp status, err: %d, status: 0x%x, out size: 0x%x\n", - enable ? "Disable" : "Enable", err, - xsfp_status.mgmt_msg_head.status, out_size); - return -EIO; - } - - return 0; -} - -/** * hinic_flush_qp_res - Flush tx && rx chip resources in case of set vport * fake failed when device start. * diff --git a/drivers/net/hinic/base/hinic_pmd_niccfg.h b/drivers/net/hinic/base/hinic_pmd_niccfg.h index 73b16b4..04cd374 100644 --- a/drivers/net/hinic/base/hinic_pmd_niccfg.h +++ b/drivers/net/hinic/base/hinic_pmd_niccfg.h @@ -909,8 +909,6 @@ int hinic_set_link_status_follow(void *hwdev, int hinic_get_link_mode(void *hwdev, u32 *supported, u32 *advertised); -int hinic_set_xsfp_tx_status(void *hwdev, bool enable); - int hinic_flush_qp_res(void *hwdev); int hinic_init_function_table(void *hwdev, u16 rx_buf_sz); diff --git a/drivers/net/hinic/hinic_pmd_ethdev.c b/drivers/net/hinic/hinic_pmd_ethdev.c index 378f2c8..6264235 100644 --- a/drivers/net/hinic/hinic_pmd_ethdev.c +++ b/drivers/net/hinic/hinic_pmd_ethdev.c @@ -939,13 +939,6 @@ static int hinic_dev_set_link_up(struct rte_eth_dev *dev) struct hinic_nic_dev *nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(dev); int ret; - ret = hinic_set_xsfp_tx_status(nic_dev->hwdev, true); - if (ret) { - PMD_DRV_LOG(ERR, "Enable port tx xsfp failed, dev_name: %s, port_id: %d", - nic_dev->proc_dev_name, dev->data->port_id); - return ret; - } - /* link status follow phy port status, up will open pma */ ret = hinic_set_port_enable(nic_dev->hwdev, true); if (ret) @@ -969,13 +962,6 @@ static int hinic_dev_set_link_down(struct rte_eth_dev *dev) struct hinic_nic_dev *nic_dev = HINIC_ETH_DEV_TO_PRIVATE_NIC_DEV(dev); int ret; - ret = hinic_set_xsfp_tx_status(nic_dev->hwdev, false); - if (ret) { - PMD_DRV_LOG(ERR, "Disable port tx xsfp failed, dev_name: %s, port_id: %d", - nic_dev->proc_dev_name, dev->data->port_id); - return ret; - } - /* link status follow phy port status, up will close pma */ ret = hinic_set_port_enable(nic_dev->hwdev, false); if (ret)