From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0074.outbound.protection.outlook.com [104.47.41.74]) by dpdk.org (Postfix) with ESMTP id EE69899CD for ; Thu, 25 May 2017 20:09:52 +0200 (CEST) Received: from BN6PR03CA0007.namprd03.prod.outlook.com (10.168.230.145) by CY4PR03MB2791.namprd03.prod.outlook.com (10.173.38.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14; Thu, 25 May 2017 18:09:51 +0000 Received: from BY2FFO11FD034.protection.gbl (2a01:111:f400:7c0c::173) by BN6PR03CA0007.outlook.office365.com (2603:10b6:404:23::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9 via Frontend Transport; Thu, 25 May 2017 18:09:50 +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 BY2FFO11FD034.mail.protection.outlook.com (10.1.14.219) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1075.5 via Frontend Transport; Thu, 25 May 2017 18:09:49 +0000 Received: from b27504-OptiPlex-790.ap.freescale.net (b27504-OptiPlex-790.ap.freescale.net [10.232.132.60]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v4PI84WO022340; Thu, 25 May 2017 11:09:46 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Thu, 25 May 2017 23:37:44 +0530 Message-ID: <1495735671-4917-14-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1495735671-4917-1-git-send-email-nipun.gupta@nxp.com> References: <1495735671-4917-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131402093894737859; (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)(39450400003)(39840400002)(39860400002)(39400400002)(39410400002)(39850400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(47776003)(8676002)(81166006)(33646002)(106466001)(105606002)(38730400002)(2351001)(110136004)(104016004)(2906002)(8936002)(305945005)(53936002)(50226002)(356003)(4326008)(189998001)(36756003)(48376002)(5003940100001)(50986999)(8656002)(498600001)(5660300001)(85426001)(86362001)(76176999)(54906002)(77096006)(2950100002)(50466002)(6916009); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2791; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD034; 1:wggi4Jrp/LkpLneKRSYmloSRBTrWcU8AuK5mzyfwR+Q1Wth6cw7WbQvdCHzGLxWgw0FHi5v0ArG9mDJt6B63S0fQH/MCxt7BbCKGhX8sQaGT/FkYed0601zlo3Ll0D97S3H5m0eSh6YRtUurNOZqobx3xLZRTH4ni6t4JRMDvZH9/lBbODhM9xyje8SJQGIPVnkxse5Rh0Vb/zncEq8taV4FYDHKHW2ljjc34dcf2bD808eL81FgD3Ps0xvuTco29piJmglg8HyZORG3hHQrI1wSA4nCv+oo4pFrdeWp3h2Cnbu8DOACavk8JcmVWzHPTCas1WHFu25gq3IM4cUXul3yaXNseYKTFLoFhRd8c/TRvz+jLz0xFESRFC76OISwbcZ7ZSF4gyEif4N0YKwFYk7kurX/l7wsq5rcz1RN0nzhgemux3fWHt1/b/pyEVXTMgSZVUGVMex3p7V62vtRvUb1gmqfeEtnqvi9+mLhNGXzOThQREsIenYMYkVEkpMM3eAg2o5aQavIg4vaQiH6GhE+hNeTTRuxUWl1XlfN0jQlnpHL67JydmpwwoV3ZxMmYznDr80DgsS1bRxUbHCzQHqon7OfWy+2+A+8tW65oXa7OQHDRgKf49TFzAVzcXuF+Y0RMF6lS7Gy9v59FogrqnXnH8i14O4h0bgjZksjqdpjBWy7kTgYKAYxplCTCgQ6YD6Po7428dN0s3yk84OwPWFyu5zq0MVcdQLnpAXqQPSMQ5IeWIsI3OEqx2J3yoUYii9Qb5Knqqq2W8TRKeirWw== MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR03MB2791: X-MS-Office365-Filtering-Correlation-Id: 15febf36-285d-41eb-9fc3-08d4a3993bcd X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:CY4PR03MB2791; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2791; 3:jr3hWEVLKrPXYvaX1VRa9ieSsJr+9ld0l0Af7MFRdV5yD2EIKCVxNH6/ZA0BuJkPRLLaXB799R7yuDFOuWdQlB4kt5SHwqbT9GUsCtAk/ATUUlV8MGIqj2dIgYX6GL4U0cBXzE09LjVTWpncgqwBz3PN4dbohqCxdR3pxgAVgbo3yhC+9Hkim35/ErqHObxdWCyW8FUfncHj8mCyPLQ8GZOGDzDxTgoUiTuM7YT5Sdy/eFQlpIoOGHLDbQN2Yc2dAv8NY2MaDdf9XnSaoKLLyp4y3TNyZ+H51B3e3059wcM+ouRKcFLSC/xzNUnwCzBatzr0soOoWJjhW/BPKkvWxXQePg6y9f2oD+8g6Huo0gvMzIxMtd+mnqPaswuf21Pgfqn2PI+WcotpEJ4Jp8d+BCJDqkkqqfZ5hQ5VXp5kze7oO90jLI3BDtLlq9cHQ9/C; 25:D/s+CfPCWJyjLSAX8zmlSGKtfFbbwmSBcdjVg+ldo1mLwY2Af4M/lUPuVRpf9FWPVZ9eFVIM9H/egvAxSldv2gx4Ix4QHUebXj9SdYmQsMjhMRKx0NnGk+I7bKP07XEHE9ov4m5E6FUdTHMzJ+DBTUbJI9qo0AB3EtuzI2cdKumIniWdMW4GNPc7heGOljZ6fSc+UkIN0egcl17sYdSf0AkwOoGwlUQpM2gtz/Lv1qc3UFAcyhve7wjF5yN3QRGtGIxuGt4fD9G3RM+oN90trn4bh0ZU8xjmi6MHmTy0UhAQjgHLSh82VH3enTHVZ/gwFWPOH8brxErjTuHTeEHFDyS1XklxaitoAWvEVuDR3vwxJfoqhPTE0meHTXFyHsVp4brKjyKOFVvJrOK8k46/53olHLxiv/Qm+w3nZub8uTuUEFU87NayIT2z2hQq3Pej+1OJPwu390Gz3JVwz7oitwgVHlYGrjmesZtss45hs4o= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2791; 31:OmREQjrdka01HOFC5NLtJGy4hXQSpRh4TZ71g9ycOBfl1DZfG4Yg3FjRfP0HWXXhzG1AscumzYWsPdBclB1r8Yjil9jByDoKW7cAzS0+aqGDEFJl7rXb0owj1NM3gdXczOxACiPkW8590908nH9tqtvfRymWnLPYjRKy1dX4Xma9TCMCXas/P2mMW7Lr99a3yqONjbK38/TmUM9yulpb5Mj3b6tVC5MpUYqMd+te0qMs/mgTVeA9si+BG9lGOEeiLUV06hHq3n57wLObCw8vcQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(13015025)(13017025)(13023025)(13024025)(5005006)(13018025)(8121501046)(3002001)(93006095)(93001095)(10201501046)(6055026)(6096035)(20161123556025)(20161123563025)(20161123565025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123559100)(20161123561025); SRVR:CY4PR03MB2791; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2791; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2791; 4:aY/Furd2BvI3VQ6lpfGR6KP6UirIfqwzDMu9PzNG9m?= =?us-ascii?Q?We4mXzGiJXTDXRKMU8QtBxLoiq3lF/jBseH2LhmxEizb9D3Ah0RnDcsUu2yU?= =?us-ascii?Q?zrnQIxyJb0NBv/fJku6K2H7AUj9C3tJc4rPzahBIgqQtBJTq8ThWgkIztFPv?= =?us-ascii?Q?wcaZwKpZ9tdMmY3nIDjtlBlyNi9ptfSgdHv1n75TUh6bbwJ5YulkE+DaU3Ef?= =?us-ascii?Q?oNzpnozc/unVmSWpoJGxDC/ewZi+bHPdVzAPOLwoYaWaCmx0x14fmkezUVRl?= =?us-ascii?Q?xJi2drjC6Fj+TrdZwniBEZ4kVBIHqHmSIZA9mLIifN8MVR2F2+CEHxfinl99?= =?us-ascii?Q?o5SK2KzOfmwcEcAVYkPEIfJXXqHgp7UeN4x/oKd7E3QUcsl6fIOoL3sR7NbB?= =?us-ascii?Q?wTfxIeGx8QK0G9if1NXFZRMGK6N0WEN5kOx5kg1hTCwjT47fMY02setGEPVw?= =?us-ascii?Q?0zhkMWRUM+LwfUKarJXLFhGK84jVjOgWMHdp55moii2YIJPDdn+6d+13v0BC?= =?us-ascii?Q?2/WVWQvV/+5Y+tSBIKF1CxmY1ykl5oN7drv9H9eDM+7/+d5vuJ9OEGXu6fBf?= =?us-ascii?Q?7am4ZFYX61qEX6kZwoBhVZYaB9BHCkWhHGn6aV3F0z189LkFuTXDqQ7WCA7+?= =?us-ascii?Q?K09DBKIq2YANfe2NhkgFfmO90WFoiAFMoJxRnr1whl7gC6BJXKLhW7qqIOqf?= =?us-ascii?Q?isyN/SlBY7/oBl5Aiccu2re+4Dgnc5vxJEKaeshYdwadpJPCGbBEMdzuhEVH?= =?us-ascii?Q?rEplVSb635bHd3TEHtcJZe5Wo6mVteEr6hTUxdhv9Zom5Kglbi2o0Bnj5P7m?= =?us-ascii?Q?2Q8d6R1NYoG80snlf9cph8eXFU6tedmXABUr5k2UccoZCe+8R9Kv1RjcqWzz?= =?us-ascii?Q?pnjExdd96HvPrrcXk27vGY87b+9Aemao/rCYnWXdvFpb7y6fhLr0ZB0eB+zv?= =?us-ascii?Q?TYqeLzPwzTMwQDSckuuA2pwsEO4k16PJ1DxV08QxCuXGDIqhajNpteA/NRuo?= =?us-ascii?Q?GL5PC/M7GrkLhNIWAQfYfu?= X-Forefront-PRVS: 0318501FAE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2791; 23:RfCVdyeE2R7GRVGmRszmJ6nwoenIifui0vewmwQBn?= =?us-ascii?Q?LfPo7eQzxhol3PONWzgX3+kcKHKJyRdegVmL0sNZ4yXMjQqyPWOIaQPQT0S2?= =?us-ascii?Q?OjOZBPCeic3IiVujYszeyJP8HmgIN8j+Ak1PpnPZTxzAbCzThKaeNiKu38cH?= =?us-ascii?Q?kD0EryRQ+evjRsDCt5llAWbV11Sksqyn+DvYSdrNpcWitcJXrIl0Ia3iPUCw?= =?us-ascii?Q?GiftbuE4SrPB9d35F3+UctH5XyklATJ36ftqEG+9r8L/CXG06+WjQ4yIKn4m?= =?us-ascii?Q?gFBy9AUx0fBND43Ju5SQ6fZjtSV8knAhWGDsjstQV9I6B5ALr+sgTG8eEi6X?= =?us-ascii?Q?neBvlNHBpm6u17zJrLjLA728xV4VHgqcF+klQnisNWqS00CKW9Eiy1Pd9Z7R?= =?us-ascii?Q?6IOWVTohw5uxkVEV0IvHhlvY+xEim4Q9LZwpRGKhDVl6Vu9BvO44lo3nkr4t?= =?us-ascii?Q?kiFMzkOtAygBuwOJfVZCLehD+YUKocB1wgllehasNrhXiANkVW8kyOVkKUwt?= =?us-ascii?Q?23d80b3n4GHmB4q49kD1h0CMzxi6jCLLMFx0t5iPH0C5rZlPb7mbjuokKDBN?= =?us-ascii?Q?rDUOg2/Bz0L8zGNz4ARwm0kIOFiC/COA4hGBcAwHvQkCspju50xQ9Dy625mQ?= =?us-ascii?Q?y415+EtmJNMKPfwJOTcKUPSRoWiykSq+eQmRXWVQNbB0yL9i+GTDOnNkIvJv?= =?us-ascii?Q?Ke1kyyMcsxAU+aYYJMFdJeMt6u8V3mtsV8l/0WpVzJrJt0DAuhGeF4G6KtvI?= =?us-ascii?Q?YOXYfsh3CYJjSFXkP/z3VMFh8tQMS/2DLndkZmbzY03MSlFrxzIUjIAl0oz+?= =?us-ascii?Q?fsxuvcbExRL38zusFnYywzpfk1PaFFVo03x6JoxlK94DkRcbGiai+zRCwGRk?= =?us-ascii?Q?3NABx/RETHF4fMJ8923CX9p9bBHAJDmEMSDJbJ6ua64Mmn62ynEzJLUuu/Bc?= =?us-ascii?Q?BEjC2fspXKAoNU5OCIsxBMX5hoVn5aIvzt9z+uNcRkATakUOXtOCQdwGPxFH?= =?us-ascii?Q?zNh3HkBf7Dq9eSrCX7r1faRZQwVUvXGC69+ey5/2wIB8ftocSN4AxyEWOTF6?= =?us-ascii?Q?M1j+LJ9tGndMMeb9q/BWkgZ9QTcTIzuky0UA7FVY79DHQ0HVIOK20Zq+znxU?= =?us-ascii?Q?RUrmMmqp6guwHOAlU65PVpy5tXP1c0t1IWhzK1ysGZkzYnLCcst/WHboetdu?= =?us-ascii?Q?+ey7AZCUysKp00pr5nuA8K1+kjP6S4qdRsnbp44hIQWiPaV5mCvFPVN4Q=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2791; 6:vEpCXZs5ObMJlWfGH4jgNybtv7DLxU1fxV9IaNwA+1U2EjNBTRPhNDgyyAsqCPul/nwE9rPNbkPce8eiMkchFkYYvX+Fx0QfXY3kOXdMdKSLuyjzXi2rn5ArAfJqirHsKM0fhXYlpYBKuZ2PXmbMyFPHcZP9VsjruE9Qw423XvXadE5XTzMS9xrEOCSBtLrD+FVrlF9GpSMMzuR9fhIyFi40/JZ5M9HIdfL0HqvK0NGbovV6mCyscWJqkh2b4W2xvgtgO7bY95yMR6dMe3Nhb7eR5S553j7itDCDCuG9wPVCQRshZHsQBug7onRbqsKZftsfSHWzCq3h7R2cDE9zchz/iRqT9uKNr1hlvNVyQEUex4Ur6SuXEp8vLQ1F5tln6QnqLe/V0Bm/EW84D1kydZ2zhpElhXtn2TeRCcoAVnZPEvfgyHOjXy55S396R1dA/IAUXn26/6pLoEDylVvImF9evlRR/4D0arKeyn0pC5esmZ5vTUnkpFbQBM7TFXgZ9hZjcPn6Z4/OH8xJQAkd6w==; 5:E0ENjHZRse+rG/jGXTWGsycQuw5NbzA3X8ge8OaWcLuhu0UesKEatTcVBLHkFN9FrhPD6puyvsu08OfMaRqIxFhmiAZiXX8DmhAgmqpiZ3/QaVExa6Vx5gXt9bPZ+19d41oL6SSkD0cORjrv6suJaWkDJfPLEuAPzkvlbEHgT+fERVKcPwyyjtQosoQRF81/; 24:ARY85uYfsOckyNeEPQd5fNfCfLV0ITXRFFHZOMUYbZX6iJjhsZSA6PIdemnaXgOghdBm0sVMlGl9aYa2ZR9hf0SbtAboj3PpcXNhTbIrBGs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2791; 7:bYOqt3ceZqYkV1ku7lQdZwF8PltQpQezyDW4gtIVbHYjRim+gCWQH2r5ykGuewap3Jv+oVV53px5CnkcfJ4WCQGCiUmgEZbUsc2tN7ZD4WbBSU5b1HETg8ZNWj60zJxtWolhjd6zRcVuwXYLsY4rQQ9DGhEN8tmQWAPYG8y/Piw/+PjRoUD6ChQIzAsq0CMDjtnXAVUObYx7jZb4LYCeFDngdn3HfhkUeUZiEuW/+2G3O8Ku+LCKlh0wZ/XYwE3A9jNBdmsYjNgXBP6cunMogYdmUlApJLlzelHaqn6exraH5rWioV4ARPcGDDHLWIdyvZISoDQ87DdrUBOt2LEL+Q== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2017 18:09:49.2709 (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: CY4PR03MB2791 Subject: [dpdk-dev] [PATCH 13/20] bus/fslmc: support enqueue with multiple enqueue descriptors 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, 25 May 2017 18:09:53 -0000 This patch adds the QBMAN API which support multiple enqueue descriptors. Signed-off-by: Nipun Gupta --- drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h | 14 +++++ drivers/bus/fslmc/qbman/qbman_portal.c | 70 ++++++++++++++++++++++ drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 + 3 files changed, 85 insertions(+) diff --git a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h index 7731772..39407c8 100644 --- a/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h +++ b/drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h @@ -883,6 +883,20 @@ void qbman_eq_desc_set_dca(struct qbman_eq_desc *d, int enable, */ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d, const struct qbman_fd *fd); +/** + * qbman_swp_enqueue_multiple_eqdesc() - Enqueue multiple frames with separte + * enqueue descriptors. + * @s: the software portal used for enqueue. + * @d: the enqueue descriptors + * @fd: the frame descriptor to be enqueued. + * @num_frames: the number of the frames to be enqueued. + * + * Return the number of enqueued frames, -EBUSY if the EQCR is not ready. + */ +int qbman_swp_enqueue_multiple_eqdesc(struct qbman_swp *s, + const struct qbman_eq_desc *d, + const struct qbman_fd *fd, + int num_frames); /* TODO: * qbman_swp_enqueue_thresh() - Set threshold for EQRI interrupt. diff --git a/drivers/bus/fslmc/qbman/qbman_portal.c b/drivers/bus/fslmc/qbman/qbman_portal.c index 5d407cc..3f1b31d 100644 --- a/drivers/bus/fslmc/qbman/qbman_portal.c +++ b/drivers/bus/fslmc/qbman/qbman_portal.c @@ -574,6 +574,76 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d, return qbman_swp_enqueue_ring_mode(s, d, fd); } +int qbman_swp_enqueue_multiple_eqdesc(struct qbman_swp *s, + const struct qbman_eq_desc *d, + const struct qbman_fd *fd, + int num_frames) +{ + uint32_t *p; + const uint32_t *cl = qb_cl(d); + uint32_t eqcr_ci, eqcr_pi; + uint8_t diff; + int i, num_enqueued = 0; + uint64_t addr_cena; + + if (!s->eqcr.available) { + eqcr_ci = s->eqcr.ci; + s->eqcr.ci = qbman_cena_read_reg(&s->sys, + QBMAN_CENA_SWP_EQCR_CI) & 0xF; + diff = qm_cyc_diff(QBMAN_EQCR_SIZE, + eqcr_ci, s->eqcr.ci); + s->eqcr.available += diff; + if (!diff) + return 0; + } + + eqcr_pi = s->eqcr.pi; + num_enqueued = (s->eqcr.available < num_frames) ? + s->eqcr.available : num_frames; + s->eqcr.available -= num_enqueued; + /* Fill in the EQCR ring */ + for (i = 0; i < num_enqueued; i++) { + p = qbman_cena_write_start_wo_shadow(&s->sys, + QBMAN_CENA_SWP_EQCR(eqcr_pi & 7)); + memcpy(&p[1], &cl[1], 28); + memcpy(&p[8], &fd[i], sizeof(*fd)); + eqcr_pi++; + eqcr_pi &= 0xF; + /*Pointing to the next enqueue descriptor*/ + cl += (sizeof(struct qbman_eq_desc) / sizeof(uint32_t)); + } + + lwsync(); + + /* Set the verb byte, have to substitute in the valid-bit */ + eqcr_pi = s->eqcr.pi; + cl = qb_cl(d); + for (i = 0; i < num_enqueued; i++) { + p = qbman_cena_write_start_wo_shadow(&s->sys, + QBMAN_CENA_SWP_EQCR(eqcr_pi & 7)); + p[0] = cl[0] | s->eqcr.pi_vb; + eqcr_pi++; + eqcr_pi &= 0xF; + if (!(eqcr_pi & 7)) + s->eqcr.pi_vb ^= QB_VALID_BIT; + /*Pointing to the next enqueue descriptor*/ + cl += (sizeof(struct qbman_eq_desc) / sizeof(uint32_t)); + } + + /* Flush all the cacheline without load/store in between */ + eqcr_pi = s->eqcr.pi; + addr_cena = (uint64_t)s->sys.addr_cena; + for (i = 0; i < num_enqueued; i++) { + dcbf((uint64_t *)(addr_cena + + QBMAN_CENA_SWP_EQCR(eqcr_pi & 7))); + eqcr_pi++; + eqcr_pi &= 0xF; + } + s->eqcr.pi = eqcr_pi; + + return num_enqueued; +} + /*************************/ /* Static (push) dequeue */ /*************************/ diff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map index 79cb648..7dd28da 100644 --- a/drivers/bus/fslmc/rte_bus_fslmc_version.map +++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map @@ -66,6 +66,7 @@ DPDK_17.08 { qbman_result_DQ_fqd_ctx; qbman_swp_dqrr_consume; qbman_swp_dqrr_next; + qbman_swp_enqueue_multiple_eqdesc; qbman_swp_push_set; rte_dpaa2_alloc_dpci_dev; rte_fslmc_object_register; -- 1.9.1