From patchwork Wed Sep 14 15:57:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Theil X-Patchwork-Id: 116312 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 43E90A00C5; Wed, 14 Sep 2022 17:58:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DAE5F4021D; Wed, 14 Sep 2022 17:57:59 +0200 (CEST) Received: from smail.rz.tu-ilmenau.de (smail.rz.tu-ilmenau.de [141.24.186.67]) by mails.dpdk.org (Postfix) with ESMTP id B0EBA40156 for ; Wed, 14 Sep 2022 17:57:58 +0200 (CEST) Received: from legolas.fritz.box (unknown [141.24.207.49]) by smail.rz.tu-ilmenau.de (Postfix) with ESMTPA id 5BEAC58009C; Wed, 14 Sep 2022 17:57:58 +0200 (CEST) From: Markus Theil To: dev@dpdk.org Cc: Qiming Yang , Qi Zhang , Markus Theil Subject: [PATCH v2] net/ice: add nic blinking support Date: Wed, 14 Sep 2022 17:57:23 +0200 Message-Id: <20220914155722.7007-1-markus.theil@tu-ilmenau.de> X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Markus Theil Signed-off-by: Markus Theil Acked-by: Qi Zhang --- v2: add LED feature in ice.ini doc/guides/nics/features/ice.ini | 1 + drivers/net/ice/ice_ethdev.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/doc/guides/nics/features/ice.ini b/doc/guides/nics/features/ice.ini index fe1e81302c..fd639dd1ec 100644 --- a/doc/guides/nics/features/ice.ini +++ b/doc/guides/nics/features/ice.ini @@ -47,6 +47,7 @@ Linux = Y Windows = Y x86-32 = Y x86-64 = Y +LED = Y [rte_flow items] ah = Y diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index 50fe23fdc4..dc47a9d8b3 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -90,6 +90,8 @@ static int ice_link_update(struct rte_eth_dev *dev, int wait_to_complete); static int ice_dev_set_link_up(struct rte_eth_dev *dev); static int ice_dev_set_link_down(struct rte_eth_dev *dev); +static int ice_dev_led_on(struct rte_eth_dev *dev); +static int ice_dev_led_off(struct rte_eth_dev *dev); static int ice_mtu_set(struct rte_eth_dev *dev, uint16_t mtu); static int ice_vlan_offload_set(struct rte_eth_dev *dev, int mask); @@ -215,6 +217,8 @@ static const struct eth_dev_ops ice_eth_dev_ops = { .dev_reset = ice_dev_reset, .dev_set_link_up = ice_dev_set_link_up, .dev_set_link_down = ice_dev_set_link_down, + .dev_led_on = ice_dev_led_on, + .dev_led_off = ice_dev_led_off, .rx_queue_start = ice_rx_queue_start, .rx_queue_stop = ice_rx_queue_stop, .tx_queue_start = ice_tx_queue_start, @@ -4074,6 +4078,24 @@ ice_dev_set_link_down(struct rte_eth_dev *dev) return ice_force_phys_link_state(hw, false); } +static int +ice_dev_led_on(struct rte_eth_dev *dev) +{ + struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private); + int status = ice_aq_set_port_id_led(hw->port_info, false, NULL); + + return status == ICE_SUCCESS ? 0 : -ENOTSUP; +} + +static int +ice_dev_led_off(struct rte_eth_dev *dev) +{ + struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private); + int status = ice_aq_set_port_id_led(hw->port_info, true, NULL); + + return status == ICE_SUCCESS ? 0 : -ENOTSUP; +} + static int ice_mtu_set(struct rte_eth_dev *dev, uint16_t mtu __rte_unused) {