From patchwork Wed Dec 13 12:05:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 121755 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp5386039qgn; Wed, 13 Dec 2017 04:10:18 -0800 (PST) X-Google-Smtp-Source: ACJfBot0UnHpfloLdiTHcmlzWjWnph1V0rvRLuObmqDQ9ZZDPoDQzsMhM8PovO4qVlUEY+MG5hKk X-Received: by 10.28.51.133 with SMTP id z127mr1987219wmz.84.1513167018531; Wed, 13 Dec 2017 04:10:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1513167018; cv=none; d=google.com; s=arc-20160816; b=csSaj5uQUzmm4v0rXJRRPPaE5A+eMtCZhkg65AAK7rk24JDGIrudiCqNwnRw3MdEil p5EdTTzXaZ1CCsVyQ4Ji9hNjLUW1S3Fndu8SvBE0MElW5IlL4ZlGoHa+9WNl2S3ndkoc KpQ8bC6jKURIUi2b6lC4e+rCJwv9jJgLODLB0H61X2pmnucmRxhKKZfMj57vymUGDLw1 3mwx45aruxnKW0c9Sw0h75wCUGrKFxiRrnWcvbYbIMjqYWA2Rjt5DHX7C8bKNZrnRWMI Yc5vm49povAotFi9ipHibf3Ykx1bAJWbRexaJQLuGDcimfqLUC0kqpXrXCenIV9KV1vI zZiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:cc:to:from:arc-authentication-results; bh=+eJOhBxgJ49JqqKeBAta9+iETatbVVnTFitvWaxNs6E=; b=IthL3D71eyA6O//40Dx7C/NHyOd90p6AECjwjMenX1vJXkfuoxdyQ56QjlucR2o8IC om6wM4xbmB+ZApZyQxg0v1XvmqJUMEe3rTAsvfIO33p3ibyDJATb9T+jwXv4ZTznCSxT fiw9VFiIGgdf1s6DPt+eAYDtbgxshs9P+At7wbbMvlXvafxkR61GHdDPiZLs1OUz+rIE 8UL8VIwbVkNHaWgTjnhaGlziBnSqy37c9D72gEzqiKQCrs06I0BgfsOTOB1/rFqyiEOO akLmgy0yUT6W0Ic86v5uBKbmbucTOcHO/Ma1oUIhhtElKOgQkoT8P44zN/4fWhQfJQkW JOzw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from dpdk.org (dpdk.org. [92.243.14.124]) by mx.google.com with ESMTP id 200si1428628wmw.71.2017.12.13.04.10.18; Wed, 13 Dec 2017 04:10:18 -0800 (PST) Received-SPF: pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) client-ip=92.243.14.124; Authentication-Results: mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BA3201B20D; Wed, 13 Dec 2017 13:07:33 +0100 (CET) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0055.outbound.protection.outlook.com [104.47.40.55]) by dpdk.org (Postfix) with ESMTP id B65681B18C for ; Wed, 13 Dec 2017 13:07:28 +0100 (CET) Received: from CY1PR03CA0017.namprd03.prod.outlook.com (10.174.128.27) by BN3PR03MB2355.namprd03.prod.outlook.com (10.166.74.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Wed, 13 Dec 2017 12:07:27 +0000 Received: from BL2FFO11OLC010.protection.gbl (2a01:111:f400:7c09::100) by CY1PR03CA0017.outlook.office365.com (2603:10b6:600::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.302.9 via Frontend Transport; Wed, 13 Dec 2017 12:07:27 +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; 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 BL2FFO11OLC010.mail.protection.outlook.com (10.173.160.154) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.282.5 via Frontend Transport; Wed, 13 Dec 2017 12:07:20 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id vBDC6t9b008652; Wed, 13 Dec 2017 05:07:25 -0700 From: Hemant Agrawal To: CC: , Sunil Kumar Kori Date: Wed, 13 Dec 2017 17:35:58 +0530 Message-ID: <1513166759-13466-18-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1513166759-13466-1-git-send-email-hemant.agrawal@nxp.com> References: <1513166759-13466-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131576404406132824; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(336005)(7966004)(346002)(39860400002)(39380400002)(376002)(2980300002)(1110001)(1109001)(339900001)(189003)(199004)(48376002)(305945005)(356003)(106466001)(50466002)(81166006)(53936002)(81156014)(105606002)(2351001)(54906003)(76176011)(59450400001)(85426001)(51416003)(5660300001)(8676002)(8936002)(316002)(97736004)(498600001)(16586007)(2906002)(50226002)(68736007)(4326008)(8656006)(6916009)(2950100002)(47776003)(6666003)(86362001)(36756003)(575784001)(77096006)(104016004); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR03MB2355; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC010; 1:Wl30ieBi2h0eucV2MmINkQq5J3wzgXmHZhdqcYlUJmGuTn2yjkJLN38L1hjUTxznmn2Ss9uPJlXsGdw9N+cusVd/qKtWrtH/WBBuQ7QcrVENiVnY5c6Hr5CGy62qRuO9 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a7b6e905-dc86-4b36-6058-08d542220fea X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4628075)(201703131517081)(5600026)(4604075)(2017052603307); SRVR:BN3PR03MB2355; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2355; 3:CuSJ5gYJS1u1w9TLcIM8JNfjbUmwdovSEJKMkKI8uAEBFLq83KJEBoSlPfIu4Bx6tAXuWo5kp2rlE+babeKiyhFuzkWXjHH2QxrCb3HTo4Xjzp7ypygo25EYe7IB/1oJg+zvSvdClF6SDORahEaN8I4Xwdh71bUYPT10hxHf7zbuQOgg/t04DFjXms0L2W8fb6ct8cqhhZyo0dfDz80ENtFx+KOGeu+nOPA2CRWC+FScwl5u5zSEcgC1FBF4c7ZSiTKM4VXhQf6hBQUms/fZJ9/V1ZhVUzVxGR/e2/8st4/wkh2oU9K1uRBqqyU2Bv/rKpgHqCh2NEzRK8XOvwtkjaocjzVd7+vpaaibOgcPFIY=; 25:dpNuCWVlU3NhfttDvjZkdnaAZd6VTTfENq/GEtHDL1fNeFbIjBIYwbjhLOON/LOcGw6dLCkYAIJNyrQw+hHOhcQgenspsR5OvodnyxP7ZC5zFL65ZjOsUAIawi9Gjqak+3mpyPiUp+jYAIybypsTNfi4kRwdUrkSh5szygYRM7fcq1z8qDZHxKmIp4iKWZrPtCuvl8S9CBN0wI5vHWVDySGEhYFUHySk7cOEJW2Dc7CGbVlbjMOxXFBgnwPdQI52OYEjFlSfQZVRoDKKEu0gRADLoZkBpGtRE/y2iKr0WMngkg2o8piGyPWgDxr4hY7YdezolDer70Br6RUPgxQth6wschL31lPkoo9Sybc7upo= X-MS-TrafficTypeDiagnostic: BN3PR03MB2355: X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2355; 31:h2NhaS69TSQ1RpSXFGVnGKn3reZFTayT0UH3nwFg/2Gz0geKWtIDnNbBVWFjEwLjfaZARZ/qul8O8C8EnX5UjFtcX1te0bXGSDMDb0rifkTc+O0mKa1OKCLCJGT08IH1/xvZG82g4MHJQ7/DFTWVMGTbYdiLytm1yqe1rol6y/KphLyLmBGgsACDkXImN3mEskEOKZe2bLE5X9ZJCgclUJ8nDkHaAhDrhG2ohaMtATs=; 4:aFy6U7AUpPuPGE0F/B/V0fIKdu/c+PRAlqU1kL8w18NNi5hYPwNK6qfRV4eoGZ6r8t54iSafB22Cd3D9emqcfeLqz4iIq2bbRoR9v0h93gZCqP56TgUh6sl20LCsDTHXTmzjiYh2hGxBEiSTckZ+zhGpdjUI6kyFDPUEHDpYcw6EaxPhnLZpdOlBR2iwHyicxcWlKzbPO6+2fWqKGVJ1Mg71dMyzOBFvj+tG6CHoF8LbwJz3gU6VQ47OZkkqpHHcp2QzUCuyEznI23nURcdCkq32hZuF8NYFDHVOSdWIjGAvYYdlHV5xUwNvD4Lhsjos X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231023)(10201501046)(3002001)(6055026)(6096035)(20161123565025)(20161123563025)(20161123561025)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(20161123556025)(20161123559100)(201708071742011); SRVR:BN3PR03MB2355; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:BN3PR03MB2355; X-Forefront-PRVS: 052017CAF1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR03MB2355; 23:SldFxU9tgRf+QzGDpI/39C4Wiz/ics94lb9gmjl/5?= qVe8cfUgKi86b47k5FZN0T++AmNXxnsq02A2rocSzxEnohVcRuCRDc5VBUcNpUWdd4lwanjfPyaGg3DA2flhgg5Vq5NtnKrRUYpo4MUl0G4oQ74zvonoPTp76wmpwSV+gpStU+XA7LJHxcn2Q5FblLuglwVG26T8pRBhz873u+dTCHu8/82l9X2Sf2GT2jIyhWI7krjrHgXvPicuKANjEQ7ZSAi3z7h7tLFxifCW1f4L8P3gwoRRSrcvQkLd9kuyn5nPrcvjcAOnhqud1ZL/PkCSRNmfElpbU8sL8wO90gRuvQ0UnjtzYE7MLoGtJgPh7elV0BMT8pcGjC0EIyFf6MZogXF+NIsWa6De9XiPkG3L9z59b19XNRnqvuCx6kF6UhrLmLO8txNn0D3CZSlWVS4KDm13L70uz7/0ntpYLCMfMYzH1tnqFmMx1P2Jd8c0f7xOJNH7MPkgr5yDu19fSX+HnKDIcgu7gc9/RrWYCZTFuEjNmkKGbX4eQfALeE7f92RChnJzNyT6ItLDBshhBeth0RtXV4eI1lwwkrOg4uK23gtrOXp4Sd8h9zk9ngWrR0agUZFVu/h6WKEOaOWEVBUIcGM6d0XK4lQV7pMo+dcS3GXIEZ1kRsj4EdMjmFX7GTQENIUY37I1tKuhweX4T7Dwo5CJ8o0626d5QMI1iku0te7q0y13uTNUattnx/12OPvkmGgPMfTdZuIZcUf3wczq+BEeqb7GHN1M5LKR/NODG6yYMtWiVh5xUrifU6uoihgKxmlCI04649iRNc+S5LeOygQKmiUS/RcMSjlFucxIamQqZC4mB9xrsVHZ/ksaqPsHU6I9bCxA0CtsaBVgQvNJVsjyPuJIu8NeywhEgG52hFjT6h6cr8hWrHivdZCTfDNeZiVAiS6o3saPbTlwGqbAp9o+sirtIPEdw7VFanLPVPzV5014b3D9UP5KY1uYq8X2MaKGa8pZg92mqLHesN51UaSwRfoNkNPwBDuuA/ohnDIqGP1ZQ5cQOmge2dfNIxK/uVXAvPuF3XMJkfwm43mF4o8m/vSxZ3ILBZhCt5deD/jg2TUaPyfSQvc51wj+6lJ0NiRILjm8T9jn7HlZ2vJ X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2355; 6:+1haLk65qqXPJhq2EVDIJxG3D4wsMDE10zcOQ6HLP6aWyxVNRJHhmCn+WLv7ZwWd3HwRue2qhH9zUr/NhpSOyAHbw6/+Eytij0kuEi54IjB4e4RD0K632wdH0JQvS1j5Mrh4uD+uwXYMwg2PhfGWpivpSYFma26JmL2RuTbSecFM/QHfpnqMt/YRVKzaQEwUUs51zjGbRCoxxGr+RsRe8MSPf7FE4X+xivgy7vIH/rKaDlAwchiqui/rXxRUsuWTcs1wfpD3A7AhcO8PMl3OzDQbu1aKrz0Pg+O+BsL8lrtniweGjii03gI2HPJDw7sT1nLY6vjRe/jW5ReJ/ZLNhhx5OqyluDNuSo05CpcheVU=; 5:y3weM3oNF1OMtX9TuAQDs7M6+3fdPSTpA9rD0EM+xxu7gRGkVy45vRVpIfGwTJ8XVJa/A3LqaHj9zC1qSoVYyQbeXDi2lNFDs3wb2lxwDLuYcma17F4zh2AXD435RVe5poANd5NidpFTcFrib9m9WYYnP1aGY5EaSXUjZXLsTi4=; 24:6j1laC6vgLd9fbbL7qGL/4ZKr3p+LhotzR7eAmzdmNTcEyNcDLitHzwrOx66uGCx5g0HDMhtlnWoEtfoaUnP/E2CtGLgixhnFzq3jjwiuwM=; 7:64IqJfJObN/8z/nfYCEps/neuFsZSOdrXO5naKUq76N3DD1dOoGwCgvplDawkp8k/1qFzhZO1gCmxrRy1m1uQdOhL8bJupLCuLX6piSoiaIUCeLHzUbyIVNmOo/QmznK0yGV4SO7hysTYQLt5D2m56RX8EmiJvDMhnKfH012J/hCh4lIzDKtO9qOaOmeIO4wfg0/KJz9dCBDrdh17AndF4PxcFiWLyEepphb6d0lcIadv9wyvs1shedlxigAcIqJ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2017 12:07:20.4574 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a7b6e905-dc86-4b36-6058-08d542220fea 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: BN3PR03MB2355 Subject: [dpdk-dev] [PATCH 17/18] bus/dpaa: add support for static queues 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" DPAA hardware support two kinds of queues: 1. Pull mode queue - where one needs to regularly pull the packets. 2. Push mode queue - where the hw pushes the packet to queue. These are high performance queues, but limitd in number. This patch add the driver support for push m de queues. Signed-off-by: Sunil Kumar Kori Signed-off-by: Hemant Agrawal --- drivers/bus/dpaa/base/qbman/qman.c | 64 +++++++++++++++++++++++++++++++ drivers/bus/dpaa/base/qbman/qman.h | 4 +- drivers/bus/dpaa/include/fsl_qman.h | 10 +++++ drivers/bus/dpaa/rte_bus_dpaa_version.map | 2 + 4 files changed, 78 insertions(+), 2 deletions(-) -- 2.7.4 diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c index b2f82a3..42d509d 100644 --- a/drivers/bus/dpaa/base/qbman/qman.c +++ b/drivers/bus/dpaa/base/qbman/qman.c @@ -1080,6 +1080,70 @@ u16 qman_affine_channel(int cpu) return affine_channels[cpu]; } +unsigned int qman_portal_poll_rx(unsigned int poll_limit, + void **bufs, + struct qman_portal *p) +{ + const struct qm_dqrr_entry *dq; + struct qman_fq *fq; + enum qman_cb_dqrr_result res; + unsigned int limit = 0; +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + struct qm_dqrr_entry *shadow; +#endif + unsigned int rx_number = 0; + + do { + qm_dqrr_pvb_update(&p->p); + dq = qm_dqrr_current(&p->p); + if (unlikely(!dq)) + break; +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + /* If running on an LE system the fields of the + * dequeue entry must be swapper. Because the + * QMan HW will ignore writes the DQRR entry is + * copied and the index stored within the copy + */ + shadow = &p->shadow_dqrr[DQRR_PTR2IDX(dq)]; + *shadow = *dq; + dq = shadow; + shadow->fqid = be32_to_cpu(shadow->fqid); + shadow->contextB = be32_to_cpu(shadow->contextB); + shadow->seqnum = be16_to_cpu(shadow->seqnum); + hw_fd_to_cpu(&shadow->fd); +#endif + + /* SDQCR: context_b points to the FQ */ +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + fq = get_fq_table_entry(dq->contextB); +#else + fq = (void *)(uintptr_t)dq->contextB; +#endif + /* Now let the callback do its stuff */ + res = fq->cb.dqrr_dpdk_cb(NULL, p, fq, dq, &bufs[rx_number]); + rx_number++; + /* Interpret 'dq' from a driver perspective. */ + /* + * Parking isn't possible unless HELDACTIVE was set. NB, + * FORCEELIGIBLE implies HELDACTIVE, so we only need to + * check for HELDACTIVE to cover both. + */ + DPAA_ASSERT((dq->stat & QM_DQRR_STAT_FQ_HELDACTIVE) || + (res != qman_cb_dqrr_park)); + qm_dqrr_cdc_consume_1ptr(&p->p, dq, res == qman_cb_dqrr_park); + /* Move forward */ + qm_dqrr_next(&p->p); + /* + * Entry processed and consumed, increment our counter. The + * callback can request that we exit after consuming the + * entry, and we also exit if we reach our processing limit, + * so loop back only if neither of these conditions is met. + */ + } while (likely(++limit < poll_limit)); + + return limit; +} + struct qm_dqrr_entry *qman_dequeue(struct qman_fq *fq) { struct qman_portal *p = get_affine_portal(); diff --git a/drivers/bus/dpaa/base/qbman/qman.h b/drivers/bus/dpaa/base/qbman/qman.h index 2c0f694..999e429 100644 --- a/drivers/bus/dpaa/base/qbman/qman.h +++ b/drivers/bus/dpaa/base/qbman/qman.h @@ -187,7 +187,7 @@ struct qm_eqcr { }; struct qm_dqrr { - const struct qm_dqrr_entry *ring, *cursor; + struct qm_dqrr_entry *ring, *cursor; u8 pi, ci, fill, ithresh, vbit; #ifdef RTE_LIBRTE_DPAA_HWDEBUG enum qm_dqrr_dmode dmode; @@ -460,7 +460,7 @@ static inline u8 DQRR_PTR2IDX(const struct qm_dqrr_entry *e) return ((uintptr_t)e >> 6) & (QM_DQRR_SIZE - 1); } -static inline const struct qm_dqrr_entry *DQRR_INC( +static inline struct qm_dqrr_entry *DQRR_INC( const struct qm_dqrr_entry *e) { return DQRR_CARRYCLEAR(e + 1); diff --git a/drivers/bus/dpaa/include/fsl_qman.h b/drivers/bus/dpaa/include/fsl_qman.h index 9090b63..7ec07ee 100644 --- a/drivers/bus/dpaa/include/fsl_qman.h +++ b/drivers/bus/dpaa/include/fsl_qman.h @@ -1157,6 +1157,12 @@ typedef enum qman_cb_dqrr_result (*qman_cb_dqrr)(struct qman_portal *qm, struct qman_fq *fq, const struct qm_dqrr_entry *dqrr); +typedef enum qman_cb_dqrr_result (*qman_dpdk_cb_dqrr)(void *event, + struct qman_portal *qm, + struct qman_fq *fq, + const struct qm_dqrr_entry *dqrr, + void **bd); + /* * This callback type is used when handling ERNs, FQRNs and FQRLs via MR. They * are always consumed after the callback returns. @@ -1215,6 +1221,7 @@ enum qman_fq_state { */ struct qman_fq_cb { + qman_dpdk_cb_dqrr dqrr_dpdk_cb; /* for dequeued frames */ qman_cb_dqrr dqrr; /* for dequeued frames */ qman_cb_mr ern; /* for s/w ERNs */ qman_cb_mr fqs; /* frame-queue state changes*/ @@ -1332,6 +1339,9 @@ int qman_get_portal_index(void); */ u16 qman_affine_channel(int cpu); +unsigned int qman_portal_poll_rx(unsigned int poll_limit, + void **bufs, struct qman_portal *q); + /** * qman_set_vdq - Issue a volatile dequeue command * @fq: Frame Queue on which the volatile dequeue command is issued diff --git a/drivers/bus/dpaa/rte_bus_dpaa_version.map b/drivers/bus/dpaa/rte_bus_dpaa_version.map index 212c75f..460cfbf 100644 --- a/drivers/bus/dpaa/rte_bus_dpaa_version.map +++ b/drivers/bus/dpaa/rte_bus_dpaa_version.map @@ -70,9 +70,11 @@ DPDK_18.02 { dpaa_svr_family; qman_alloc_cgrid_range; + qman_alloc_pool_range; qman_create_cgr; qman_delete_cgr; qman_modify_cgr; + qman_portal_poll_rx; qman_query_fq_frm_cnt; qman_release_cgrid_range; rte_dpaa_portal_fq_close;