From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0049.outbound.protection.outlook.com [104.47.40.49]) by dpdk.org (Postfix) with ESMTP id 232B9FA41 for ; Thu, 19 Jan 2017 14:25:44 +0100 (CET) Received: from BN6PR03CA0014.namprd03.prod.outlook.com (10.168.230.152) by MWHPR03MB2479.namprd03.prod.outlook.com (10.169.200.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Thu, 19 Jan 2017 13:25:43 +0000 Received: from BY2FFO11FD029.protection.gbl (2a01:111:f400:7c0c::150) by BN6PR03CA0014.outlook.office365.com (2603:10b6:404:23::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13 via Frontend Transport; Thu, 19 Jan 2017 13:25:43 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD029.mail.protection.outlook.com (10.1.14.212) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.803.8 via Frontend Transport; Thu, 19 Jan 2017 13:25:42 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v0JDO4f5015351; Thu, 19 Jan 2017 06:25:39 -0700 From: Hemant Agrawal To: CC: , , , , , , Hemant Agrawal Date: Thu, 19 Jan 2017 18:53:54 +0530 Message-ID: <1484832240-2048-30-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1484832240-2048-1-git-send-email-hemant.agrawal@nxp.com> References: <1484679174-4174-1-git-send-email-hemant.agrawal@nxp.com> <1484832240-2048-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131293059423221628; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7916002)(39850400002)(39400400002)(39410400002)(39450400003)(39380400002)(39840400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(97736004)(8656002)(54906002)(2906002)(4326007)(50226002)(47776003)(105606002)(68736007)(36756003)(189998001)(86362001)(8936002)(53936002)(92566002)(85426001)(8676002)(81156014)(81166006)(76176999)(50986999)(5003940100001)(104016004)(6916009)(6666003)(356003)(5660300001)(2950100002)(2351001)(106466001)(77096006)(305945005)(33646002)(50466002)(15650500001)(110136003)(48376002)(38730400001)(626004); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR03MB2479; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD029; 1:uOVSkywBL27DUpnuqWNu665KkinQcRWEUpymwtHe3GyxCnJyNtpht2S3tbaQa8ey1sc48roSCnjcgaEfk5O7Q0C/S4aiH+6R5qmerdylgIE8e3ICPaIbCAf9yWG8X+MXTCZUZ7IXXBjGQnQv4rtVBscnpVjS7Mrk9Uu/N1qeJzgvKat1lZ27ZbOo59OngBkmQWzyRacGRQXlkJcwOpJnMXGwm/xa94vMdncv/DbRYf7V7oQF+4qtH3RkVcb9p6+XxeELnCvPT75nc7zabiPcLx5msAEI2UFKCpmrANGsPBfmSdUZImqHer7BEpEfg2AmsrwQ9CA4S20Yw1fwq1wDAU8YTAhKXPIf+htP7xOANee/1wX2m9rONC+CcXTdgEdYP8cEJw+NaqhPHRttIvYF+APn9VEQNiZFc2iOMK4N4TjhsJ7vzMWp8s7ldOry75Me316VfumbGdoswTDxfRzew5l9CR7KfWEQ+XBUuye7LOFiyzT07WwELlNbhcYxkkNeqbPOV1XwTCEpxp6mPtvjd+SFACL7vZG20u3oc/3ae8pxB9n14HNO3t3shjQUdOxX5rwzIi6Bvt79ZgVPOuo5zriX4Z6+e4naPdJ3Ui4GN+p2RXpnqCatwwgIRBUcGOuluNf+IkgzJp8o9uKyjTAxXMefamKUxyDeQ6gX3Fel9wafMOaNZxhQFy/aFcuvIfoqHefpSwziUgEtQBIUv44Fx4KgRJJ9exJebHUs5Knei+lqg+72Vk9FEqrzBG6N4fVC MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 7f5cd3d2-ecf3-49da-377c-08d4406eaadc X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:MWHPR03MB2479; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2479; 3:/hAmN9uHxu8YpyGJnEVozVuLbGr4w4dCsuUbXoVNrbZyGZKHRdLF4zMxQ9Fg//TrHzxodobjqw6d//H+KPVTLRVeoyF+XCked9GVFCLTbaLJubnjMW/c3zKUhydbCdrEzPJlymZXY7IyryzRHWNwa3nt9OYOFKQFHaFmwbPOG153qRdP9g8ZMgPKqCt5lTFFlZfmmoohAdnbm3FXEeJ/WgPTFhDGRLc2DAxGcL05i1bOkr8NJ9FIxrn1+Pf4pnwA+zMnwMnpl19XJ7bc5xVtwJbdSRaMinbdEhezlM/P1y16ZZ+gpsih8IJT+OZU9cAJ7xDf0kNoOffSu3G2UbeKGhqCLTBlKAeez+CWO/93Xd13rpLS37EdyaOJJqWZQSVR; 25:4Vq+SWLeZkhKY3yu57vfN9slumBkRRVpknprE8TVmwtPM5EFRaL18aO7DXhTW+Vh86AGFlggea2KDoZxEhuq21NVgxOM+P1OqmF534H3kloYCCuFdBV8FMmbQJPdbV8p/IUyw+Dgd47ap8X/G/CubcrePjUPpznv9sMV6VfIqW3BjO3NQTGVHrHwMl+ZBDW38l7u0MQ3x2pTK1FfNKv1jsUUCxR3AFp60BLbhltMEignvuBvAKPOQgO4ZSvbXgXl6fcvihqgtFJBG3FdnLhZX9LIVO/N2MJyCaSn3zxfI7xik/zFvcm+mlbN7hXpx9QiTNu1US1qrge7Ifcty1o+L78ENg965iz+NejeKt1x3jskAGjkYZzMPu2VRf6ToxGWE11o1To58ptBdDEXSdCpszMTZN/ikJ8+63smxYK0qroFxUFpXokFcH5u736ET17tuB1LVGe5WRXpEe4ypzWNFg== X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2479; 31:OapdbwZVQzQvkqjT6o0EAyTAx4zHYGuMeQk3bGMEyu3YoTx/PKfr/yfbPNFM1Y5J44BsNc24o37dL9dgwGqqVkszuNpf2khN2sPXeHj8zDUu4LLNSgf6ZFcfpdKM+LfQpT5+oMlP+8mbrZ4po+XxCnm/Sx0L/GgGnj6YsFCjxeUS3QbCCJDQot/XrfelfaFWDKZgPx5yhoeFNGAo38WPtknrlOCK99H5meErPBdjR4tZCo3oJ1LkAi0C6qhx5vxN1avM3sLSfxQ5+0Cx6FpeOA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13015025)(13017025)(13023025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123565025)(20161123563025)(20161123556025)(20161123559025)(20161123561025); SRVR:MWHPR03MB2479; BCL:0; PCL:0; RULEID:(400006); SRVR:MWHPR03MB2479; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2479; 4:ZNAmbxpMgezNMWUYsGX61OmKYSTTppoRMe6f5bxjrhkL4g76i7DuRMPi4NF0GzkjlDQjye8AdPqF7h9+5xQXbLdcOD6lNqUErl9rnNm2q6nfDrZLdnPtpMGz8VNE8Y58I0w7CoNR9Vu72IhB37G5Ki/WPveEesNRUAw2oQ3v2YdGM2pN3HZ3k30jn7prdzGZfSAZY3hM+4wRf2LQ/P+/Us7UoRV7qx3KSGrgHtP0DyTFFHWX2h0I3wKIliFjuDWzRoXHBztsHzupkawJ8H1eyMxIVocZuszcvVS5wpcaAKHl9dO6E4V/0qr8/bObouiMWbLFPM8IcQ43XXMsr72IcdsX6BJLL+kY7Wo075Qo+ZDuT1Lb24kHHTS/baBhHOn7giFmAu2anOB0xRdYQVIoMmCTlyXKJ7piTXOATH41mXDDZbvbDwSV2T6s1GKMeglt+BdUXcznbrZDZCD3siVwkIJ5B0IdDIh2dF+2cshG4XKXi9txHw8bsvnJVT6IbrbBGx0o+Z+drI0UEE5NmMLz/8kJiqpXLocbrgbwFszDRqCey4caWMsKWT1aVwNCv1JWt6P7lrlNcX57LkbiJIaPkrdbu+Hmo6tpnfcwkFzfs9KDXzuV95Vfv7v0UqfnWTwAZlYhGo3/cFHvCMcWvwp1y1ZqzgdyNVu5ZTzzcs9czA1Fwyo7ZzoAMxAM4hghGlpOotZtj6VIkJ5zZ9xFtSkS6PFsswA8XFJfHh9bzvRsXY7dAakEJTWeUpDFyK3P7Y2h X-Forefront-PRVS: 0192E812EC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR03MB2479; 23:VeZ4X4u7Yb5Qg+7ktp5YA5gP4X/57uCE7hNjhvJt2?= =?us-ascii?Q?DDFJmxjLBjI6ART4tMmpe8JNBtzrom0gnOP6+hlpDEwKAyQek6bB4DGu93Da?= =?us-ascii?Q?wZYmgiuSoT8/c9Qe5udjD5a0NUBhzHhyA5Kab5lulcH07LCT1uu+C2p+6mAK?= =?us-ascii?Q?pDCjIMkqweHtD8ddzKUqLN1kTym2Klj1wr7B1gVUPgEzY33soxctYmur4i1F?= =?us-ascii?Q?hHlqVHO6UrU8klG/hxVXx2vvqLlKcooHbRZ1R+Q2m2hAmk3IoBBd3EkUUe9i?= =?us-ascii?Q?Xai9qneMz6TWAvtBSIjvuByF202VuGAS0t0zysDcHAiM42EgSeM1bkDERHv9?= =?us-ascii?Q?5GE1FRiOhYTCYduqCEvK9mrfWiHbUcqB4j7G9mbjeyjsDuAoYKNWRv7TNeLo?= =?us-ascii?Q?Ci5f9+YCaMQpoWjsYWOorkbAmsGgbqx4dPr7pr5Hdd59qCSgXQ8Z57qi795B?= =?us-ascii?Q?pl7XgMEvGsgiGjwtl7oGS41ykXNF1ngIX+G2LjfNe5mVcToIwMcDShv4xNzu?= =?us-ascii?Q?hyfdGMrxWaZLjZwvfk6iPVZ6EODF2ysFZR8pI+CulL6CmvZndEPIdnBOXTvN?= =?us-ascii?Q?iYQGhVixtSnaYgmWaGJwfRJUp2yDd08fVWwEEVODeyp0kbESZ1e/H2a8XzLE?= =?us-ascii?Q?QIKUEZK5Qy81UcVdMq2InmlT8NjnJ5YXa+ZFl/xOMB73e2kQaUOpeE9u3vWk?= =?us-ascii?Q?9L8BUWjh8Vu1dQZnmrL/9xEDqg9reaJZPRMmz6xmYaoG/h/NPEGTupW7WAmS?= =?us-ascii?Q?vT9pT1xkI1EjBuUCJh8PFQqjosrSoIjG8qwVZklS8gW+OUv7vqS4bxxpfETR?= =?us-ascii?Q?eKUgxNyvUE+6Z4/x7e1p/U1T9MhlOW52Lc12KwI0Oe+439H5Eirb6+AinPlQ?= =?us-ascii?Q?0wSSOr2YVce8euyJ3MCEWJm7RoYmTHRnO7I4eju6eg9ulA1s1WeONjQEttt/?= =?us-ascii?Q?Ler2b09i6VZm14q7aD2inEMGr9Dc2GjzR6bPWDLwsluTT31uhemuAG1WfIeH?= =?us-ascii?Q?bxJjQPOPmvGLTZG0KxGt6N22P7wAW0Mxn1HcXYv+KrAC5vWaaLCiW1/dsJxA?= =?us-ascii?Q?TOay/vpT2sGtEx7dxpB42Mxq+7J5Mho2mfoPVZIaxATdaRkSgTMPgmOyd7p1?= =?us-ascii?Q?obInAbrOblSNr2L7f4TS7vloSNDSjRqc+o7RyrydTP0cslZeU/56T8h/g2l+?= =?us-ascii?Q?IeBUKP0XooaNWXOT130spN5z6NEE7oTKRgDI/8ahpGTSTe1L09P+RnXTRMix?= =?us-ascii?Q?veZbMbbKErEVOgp/eD0vSUHvaD81+wAr2PX3zID2vMyS/XInIA1CXVvcKsNM?= =?us-ascii?Q?Xg4F6GcaKGQ+oBFDGyyFt/12c5zbNfetFzd241JgPz8?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2479; 6:t7H/F2SDNcp/VKSwpHxASgP1LfgEZkH37W1/DqpJy3dBIJ6XNLr7L6qC9Zt8HLfFz5s9dqc+pykbzTIvB1JT8hcKHtXmuL66wSOkQkYB0BE/wbCEMTURWEU8l/YxedzYgl9yssAO6BbKxOpJraYmTkjuDeXtLSKZYunl+yEVD0Ss0Qi3a/2U54E12bO4MJOc4XJh0Gabal92wCR6C4FWHhZs3eD21Uajw9o9IQ/8p0DPvuqIjOuAZoke2bVDk0jbYBX6xa1zfFfQxmT+VIT+WrO3gsHIgl6mLxDL3Qim4ozoonAadXFu4ABgxpb01ACJmIHgVluiJhlxIDJXFrUUuBb0RBaWDlqn6QQG07Ez4ojtE3r06DfsJUNl6ea97vMRmvVfwlps6ebPzZDGHxw3ySvy1hOTiShXbIELvWVUoFrJmdedJnXdXijNDk1EYV5h; 5:x4q1QWm+qII+mnGGoABjIVFcuT9P2CRvH/SBDDrRUEGsnnwgFlh1wgeFy37qrtf/u0VAY3YD/p9/bxvYI6AEum2H/R+TmfB7WM+elawWj2LRwzgNtRSfb2VLNJkVRQabNW11dCWeqlRmGParg9CPdMIaqcSvp+fzG7dYB7M26Y/qcj+eVEtGEfi6bd1GMWr6; 24:+Godg7Pgw2OB0mFTgvwZp75O3L6b1wLBD3Xvc4NPYiIFiFN0L5/ZA8NqBM5eL8/G87mqOTl17LaI4yWNOkc25w45cwiIvkjjIJOKq5anuPg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2479; 7:13eNR8o0/X8WQHMPufttQl/mvQ2PvD+Rl1oVCYlryQSzEO0ux8tfY37rCWhGLIbsKe2gZexhBj5pMfAQ3TUqXWYAWfSb71wBNNjz3gfFklbpjpMc+Tz3ZfiLN7LNU23FId+mw+y0TbVhaKNF14VjTB4qCO+cA9dNzEu8CPh4KKco0bSSQvfLhjQq30kCrgwuJQcqz5P5Ds+0P23lwTqTkEx6NBuZ6V3x9UwGDxCXHdSPbuZ2B3XnoHYgZ2xdEenyVL+IR7A1FN5xTva5Lih9mldkq2kKiE5axbjnfSDXjAAW5sBv8t8i0Tp9tIi3HXdsAW0leoBEuaCQlcyQ57IIsABhECcUeKoBxoMn2p7mFKgadDq6AugLXwM/hK41z6WuOol1sY2W690pV3d0oZBhCZtEJw6vtZCnenAQeJrNnpUygcPd8H9jVvT6LBUZTSLtHklSdfTL0xPV6bGIDqKdwA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jan 2017 13:25:42.1193 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR03MB2479 Subject: [dpdk-dev] [PATCHv5 27/33] net/dpaa2: link status update 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: , X-List-Received-Date: Thu, 19 Jan 2017 13:25:45 -0000 Signed-off-by: Hemant Agrawal --- doc/guides/nics/features/dpaa2.ini | 1 + drivers/net/dpaa2/dpaa2_ethdev.c | 107 +++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini index 0746d4b..0660cab 100644 --- a/doc/guides/nics/features/dpaa2.ini +++ b/doc/guides/nics/features/dpaa2.ini @@ -4,6 +4,7 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Link status = Y Queue start/stop = Y MTU update = Y Promiscuous mode = Y diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index cbcf806..70264b6 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -55,6 +55,58 @@ /* Name of the DPAA2 Net PMD */ static const char *drivername = "DPAA2 PMD"; +/** + * Atomically reads the link status information from global + * structure rte_eth_dev. + * + * @param dev + * - Pointer to the structure rte_eth_dev to read from. + * - Pointer to the buffer to be saved with the link status. + * + * @return + * - On success, zero. + * - On failure, negative value. + */ +static inline int +dpaa2_dev_atomic_read_link_status(struct rte_eth_dev *dev, + struct rte_eth_link *link) +{ + struct rte_eth_link *dst = link; + struct rte_eth_link *src = &dev->data->dev_link; + + if (rte_atomic64_cmpset((uint64_t *)dst, *(uint64_t *)dst, + *(uint64_t *)src) == 0) + return -1; + + return 0; +} + +/** + * Atomically writes the link status information into global + * structure rte_eth_dev. + * + * @param dev + * - Pointer to the structure rte_eth_dev to read from. + * - Pointer to the buffer to be saved with the link status. + * + * @return + * - On success, zero. + * - On failure, negative value. + */ +static inline int +dpaa2_dev_atomic_write_link_status(struct rte_eth_dev *dev, + struct rte_eth_link *link) +{ + struct rte_eth_link *dst = &dev->data->dev_link; + struct rte_eth_link *src = link; + + if (rte_atomic64_cmpset((uint64_t *)dst, *(uint64_t *)dst, + *(uint64_t *)src) == 0) + return -1; + + return 0; +} + static void dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) { @@ -431,6 +483,7 @@ struct dpaa2_dev_priv *priv = dev->data->dev_private; struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw; int ret; + struct rte_eth_link link; PMD_INIT_FUNC_TRACE(); @@ -440,6 +493,10 @@ ret, priv->hw_id); return; } + + /* clear the recorded link status */ + memset(&link, 0, sizeof(link)); + dpaa2_dev_atomic_write_link_status(dev, &link); } static void @@ -532,6 +589,55 @@ return 0; } +/* return 0 means link status changed, -1 means not changed */ +static int +dpaa2_dev_link_update(struct rte_eth_dev *dev, + int wait_to_complete __rte_unused) +{ + int ret; + struct dpaa2_dev_priv *priv = dev->data->dev_private; + struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw; + struct rte_eth_link link, old; + struct dpni_link_state state = {0}; + + PMD_INIT_FUNC_TRACE(); + + if (dpni == NULL) { + RTE_LOG(ERR, PMD, "error : dpni is NULL"); + return 0; + } + memset(&old, 0, sizeof(old)); + dpaa2_dev_atomic_read_link_status(dev, &old); + + ret = dpni_get_link_state(dpni, CMD_PRI_LOW, priv->token, &state); + if (ret < 0) { + RTE_LOG(ERR, PMD, "error: dpni_get_link_state %d", ret); + return -1; + } + + if ((old.link_status == state.up) && (old.link_speed == state.rate)) { + RTE_LOG(DEBUG, PMD, "No change in status\n"); + return -1; + } + + memset(&link, 0, sizeof(struct rte_eth_link)); + link.link_status = state.up; + link.link_speed = state.rate; + + if (state.options & DPNI_LINK_OPT_HALF_DUPLEX) + link.link_duplex = ETH_LINK_HALF_DUPLEX; + else + link.link_duplex = ETH_LINK_FULL_DUPLEX; + + dpaa2_dev_atomic_write_link_status(dev, &link); + + if (link.link_status) + PMD_DRV_LOG(INFO, "Port %d Link is Up\n", dev->data->port_id); + else + PMD_DRV_LOG(INFO, "Port %d Link is Down\n", dev->data->port_id); + return 0; +} + static struct eth_dev_ops dpaa2_ethdev_ops = { .dev_configure = dpaa2_eth_dev_configure, .dev_start = dpaa2_dev_start, @@ -539,6 +645,7 @@ .dev_close = dpaa2_dev_close, .promiscuous_enable = dpaa2_dev_promiscuous_enable, .promiscuous_disable = dpaa2_dev_promiscuous_disable, + .link_update = dpaa2_dev_link_update, .dev_infos_get = dpaa2_dev_info_get, .dev_supported_ptypes_get = dpaa2_supported_ptypes_get, .mtu_set = dpaa2_dev_mtu_set, -- 1.9.1