From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shreyansh Jain Subject: Re: [PATCH v4 28/41] net/dpaa: add support for link status update Date: Thu, 21 Sep 2017 18:39:09 +0530 Message-ID: <5d58d8c5-c8cc-740d-a009-d6e5eb58509f@nxp.com> References: <20170823141213.25476-1-shreyansh.jain@nxp.com> <20170909112132.13936-1-shreyansh.jain@nxp.com> <20170909112132.13936-29-shreyansh.jain@nxp.com> <3c4802aa-e86b-9a16-0f94-707c3297f48e@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Cc: , To: Ferruh Yigit Return-path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0072.outbound.protection.outlook.com [104.47.32.72]) by dpdk.org (Postfix) with ESMTP id 922801B1A6 for ; Thu, 21 Sep 2017 14:58:17 +0200 (CEST) In-Reply-To: <3c4802aa-e86b-9a16-0f94-707c3297f48e@intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Monday 18 September 2017 08:26 PM, Ferruh Yigit wrote: > On 9/9/2017 12:21 PM, Shreyansh Jain wrote: >> Signed-off-by: Hemant Agrawal >> Signed-off-by: Shreyansh Jain > > <...> > >> +static int dpaa_eth_link_update(struct rte_eth_dev *dev, >> + int wait_to_complete __rte_unused) >> +{ >> + struct dpaa_if *dpaa_intf = dev->data->dev_private; >> + struct rte_eth_link *link = &dev->data->dev_link; >> + >> + PMD_INIT_FUNC_TRACE(); >> + >> + if (dpaa_intf->fif->mac_type == fman_mac_1g) >> + link->link_speed = 1000; >> + else if (dpaa_intf->fif->mac_type == fman_mac_10g) >> + link->link_speed = 10000; >> + else >> + DPAA_PMD_ERR("invalid link_speed: %s, %d", >> + dpaa_intf->name, dpaa_intf->fif->mac_type); >> + >> + link->link_status = dpaa_intf->valid; >> + link->link_duplex = ETH_LINK_FULL_DUPLEX; >> + link->link_autoneg = ETH_LINK_AUTONEG; > > Shouldn't this function go and get link information from hardware? Our currently hardware interfaces don't support these operations explicitly. For the "fman_mac_1g" and "fman_mac_10g", these are the default sets which are exposing. Overtime, we will get more such interfaces exposed from Linux kernel to Fman library and update this code. > >> + return 0; >> +} >> + >> static >> int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, >> uint16_t nb_desc __rte_unused, >> @@ -216,6 +238,22 @@ static void dpaa_eth_tx_queue_release(void *txq __rte_unused) >> PMD_INIT_FUNC_TRACE(); >> } >> >> +static int dpaa_link_down(struct rte_eth_dev *dev) >> +{ >> + PMD_INIT_FUNC_TRACE(); >> + >> + dpaa_eth_dev_stop(dev); > > Drivers tend to do revers, make link down on device stop. Just to double > check if stop() is intended for link down. fman_if_disable_rx is equivalent to "link down" as well as stop (because it flushes the queues). That is why these APIs are linked. > >> + return 0; >> +} >> + >> +static int dpaa_link_up(struct rte_eth_dev *dev) >> +{ >> + PMD_INIT_FUNC_TRACE(); >> + >> + dpaa_eth_dev_start(dev); >> + return 0; >> +} > > <...> >