get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/21094/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 21094,
    "url": "http://patches.dpdk.org/api/patches/21094/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1488454371-3342-22-git-send-email-shijith.thotton@caviumnetworks.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1488454371-3342-22-git-send-email-shijith.thotton@caviumnetworks.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1488454371-3342-22-git-send-email-shijith.thotton@caviumnetworks.com",
    "date": "2017-03-02T11:32:26",
    "name": "[dpdk-dev,v2,21/46] net/liquidio: initialize Rx queue",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "d8b82a6a087a79eff1decf3dd2dce80bc9e69601",
    "submitter": {
        "id": 677,
        "url": "http://patches.dpdk.org/api/people/677/?format=api",
        "name": "Shijith Thotton",
        "email": "shijith.thotton@caviumnetworks.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1488454371-3342-22-git-send-email-shijith.thotton@caviumnetworks.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/21094/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/21094/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id CE16EF96D;\n\tThu,  2 Mar 2017 12:39:04 +0100 (CET)",
            "from NAM03-CO1-obe.outbound.protection.outlook.com\n\t(mail-co1nam03on0059.outbound.protection.outlook.com [104.47.40.59])\n\tby dpdk.org (Postfix) with ESMTP id 4C279FA3F\n\tfor <dev@dpdk.org>; Thu,  2 Mar 2017 12:39:02 +0100 (CET)",
            "from lio357.in.caveonetworks.com (14.140.2.178) by\n\tCY1PR07MB2277.namprd07.prod.outlook.com (10.164.112.155) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.947.12; Thu, 2 Mar 2017 11:38:58 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=bv1cEvQ83cW91q62NkLO9bnYTrUAO7i+Pxb0L5ljQmE=;\n\tb=IMlRYslib8ADuI1dFwBEk4TfOXfggtvFs+ZTU2ytUAz1QZ4yZXZoZ40xYJJvWkAB/tDqK7zu7qKMq22JZ6gBmrmH9IJ7tlsaFpHpf5ITAC7VaFE8klar+zDHijjoDS/P6izzOXA3P5iMAKzqLZREKJ5Hh7jdrYEjriXj/auXWfY=",
        "Authentication-Results": "intel.com; dkim=none (message not signed)\n\theader.d=none;intel.com; dmarc=none action=none\n\theader.from=caviumnetworks.com;",
        "From": "Shijith Thotton <shijith.thotton@caviumnetworks.com>",
        "To": "ferruh.yigit@intel.com",
        "Cc": "dev@dpdk.org, Jerin Jacob <jerin.jacob@caviumnetworks.com>,\n\tDerek Chickles <derek.chickles@caviumnetworks.com>,\n\tVenkat Koppula <venkat.koppula@caviumnetworks.com>,\n\tSrisivasubramanian S <ssrinivasan@caviumnetworks.com>,\n\tMallesham Jatharakonda <mjatharakonda@oneconvergence.com>",
        "Date": "Thu,  2 Mar 2017 17:02:26 +0530",
        "Message-Id": "<1488454371-3342-22-git-send-email-shijith.thotton@caviumnetworks.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1488454371-3342-1-git-send-email-shijith.thotton@caviumnetworks.com>",
        "References": "<1487669225-30091-1-git-send-email-shijith.thotton@caviumnetworks.com>\n\t<1488454371-3342-1-git-send-email-shijith.thotton@caviumnetworks.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[14.140.2.178]",
        "X-ClientProxiedBy": "BM1PR01CA0021.INDPRD01.PROD.OUTLOOK.COM (10.163.198.156)\n\tTo\n\tCY1PR07MB2277.namprd07.prod.outlook.com (10.164.112.155)",
        "X-MS-Office365-Filtering-Correlation-Id": "a2094556-56ea-4dba-23e4-08d46160b8be",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0; RULEID:(22001);\n\tSRVR:CY1PR07MB2277; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; CY1PR07MB2277;\n\t3:kqhoM8VpCGUkfLzPki6gDuLuWD27Is3V9sedxNBXalYF0mIhHv13aTG0rxXyhpvmciobl+GJoXGyWIXr/38nN5gYUC/LXk/PbYIQyjrWLZ8cQRpg8EKyeTsQXwKoqZ6izuXfOw4TVkkOV9I1QgvWFUBD8dBApLQr1d35n+blDeWNs7HWZTePpDg3837v07t5Ln3bTpoAT/jrmpl1xj3+DPpr1RTPh93O+j6LGcCE6JrxUjNs69pDwsJTtMvEon5fD5aRf9aOO+aWCPPuM+KW5w==;\n\t25:BqYoLnnQF3P3KtY9tghuKJq//Be/nm1MDcrxqPcLoTxJdhGrW6D/vT3m/68xXJyRxIE9jx++1ftqwf3WdPIwOGipSKV0AMDuiT5Embrqy2zT+l48s02N+i3lwRZ/v/BJHsW3va7GJZZWrIVkchrPMcvpdGM63m/eYCiOTOT35eSmvPkStboGijD+TbcG+p/nuiW0m1kRg18/FI7EzloRMU/l45ErMcpAIUfHyAautEBOV6qdwcBdBTlCz7+pfSZ2yvpeoO+AnwCjKq5TdJL5uqUzSlGPoHsvojJsXM+c0BUNer0tEI8NEOvFSDSm0x/WDNvgfo/E6VMmqDuBj4V4JPJ1MPtACqGRlzeJy5Z9SlU5JCMoZpfoK3auMxXDDV9i18O6F2qmnw+OiJJ8GeiwxVR5t+P/bGxH9VPFVXp2Xxx4istUdjNzzaLjPQYaoGeYTq8PZLrnMFQTTXdzMNar8w==",
            "1; CY1PR07MB2277;\n\t31:24uuBEFMg9sD1y/jNrpPbiAnyfGViNpyehMB1P88LbOkRbRdAJlVnsfekNO/Wo2jTa8WOKZXuDI4OgMbHlbyjo30hOEOCN/YISEWefUrjNmEHNtetU7TC/yAYzbQrRr9twWhMicq7UTPXI36BZLlBpZysolR/3RoKufDhkIWoi9XKgxsboKEf4dyb62HgZdu2IE+K8u09beiv53j8RCfEUtaoBpNlv/44lF/0Z1qybs=;\n\t20:A6jKkVkwhAaVkraaUo4Bc+2SfU7QqAJxHSQb08MKhyYfOKdr0YT9QlOsOE0yJVuJIADCwscxd0wS50ER73Qq0OJeGWzf74pCIpHuVwxti2Wg+DIilelU7w5nPcX6OmqW7eLwHweO3mBJf6N2DgP4tE7c7RxqQPGbWP/2UMrYKk1exFHiO8mnpTpXOcq9MMHQ51JLS9ZjxFoBc2DmrYeTDTcPw49x5zYf37KzRxBlfE2+cFko8UhYUtz1yUPK7+r2pW+0Kx3PxINdWvsIl4CLf69DaHgewoss8Hmqtekaj3BEN9OYus7cBLpoSZ/sVls+ky1kplQCM7SrUteiZ0FIr3stUVEO4ZsG0dPWcUA+M1oVssKsQrBrw6XEsDMdlS/MVQlC/Fw39/1Le02RfadQQ4GV4HXp7Th+3GBFiSFC9C64HTArA5kyGp9Y73RWMq5sp2FxZSeWI7jqm8jw0LQyIRpFPnL+76pRX8Izr/XHRfSWgMAGh6Rh+scjtflaCeir25vQzCNdcbTMzLWM5jEyhI63M68cd3/ut3xICfKafkMOwzbv9PKwUluX2J9g2IMc0Bat8JQWXxbsrRxbzNphqP5nwL8mb4YFcD4JQfl34z4=",
            "1; CY1PR07MB2277;\n\t4:xk5wnAdomhSbY+XIvOJE49QKtBCnU3ZJvehhxGZlORyfZPiB/V5Tye5neV1twC8TROeG2cZgJuA5vC7CCUpSBzoFzx2PGa8EirR2XDQvJ0dV3vqNc8JzWeoEMBDH4J2OFsKV/atWIFkB94Ap2KioxSZcesnRZUMWC2Pm3hUDruCbSDRJCuUW4Aac70TATlP1WxTIgoB7T4T6cU+D8fQqKtAQQvLjhcKK7aBVcypPM/m0n9fOSfz0fNManJIgFjLQ3FxqiqSfRPy7S5Ci+JkZtRLM0uCJizF2x3/lmWFoMlx8DQj/ySund5gePb1oexUovbNHMpy5sLLnVRsGPr0L5wau36FTtLSwVO9lCCp3W7hybS75EBDxk6D0aCk42OB67VcwY+MV24hRvFeNyEfmkD/NzaciIlrpKFZ9DXQ5JcAXjX2XTWV4fsdXZ7hBvQd9pp2LB0Hqihnk0Xax01Vjr0DcKQPBv25c/aXWSjoXzm4dM7LyucAEi2DlkBLHPvtw2AkUxJDlxpJhPD076Dy/fgfczn0cqkoM1eczSqlX4pPIVSqBBQjJKrzxr7ZBaYy77EuxkxfAxtbcbNJflV/6Nny0sRKtglJklpKaCrif0Wk=",
            "=?us-ascii?Q?1; CY1PR07MB2277;\n\t23:mA14NlRC5ih3MBasyBCyywyBDx5aJ2MvDXVw/O3Yk?=\n\tUAe3F3xSUo2DMVEetOWuITr5gKTbGiVKZLjvXpdGL4lCMRk3Yp3tZtccI4OiCZ3y7yOZr/5xX8aFuVDqYOMADOdN4fM64GWZJCnLkMfVne94lp3+n3QelTSk66NqDkHtiRCk8kNUhBZnNJ1jbvxM1Pr+dMhDo9tq2yx7IAiNanc3ujTq3anrkEGByvOlGWbpUthLMifOghr/nkz67Cgs6rSs/vLZy6hz8LejmKJQ4nG71tBLOTi8465JBp/3qCwrTtrwhXPqTpN8R/YjhIDaPnsDZcMnFLaJOvzl6HwluXCoELsqgYrl/IzBuheqttLAVJodrQePypa8drepArDdnT7Ae/F6jHtPJfquwlOQE5eEY3M9mTkv1SxGMGFw56SsA8ep13XTWjnda6wICwZkPBs4WZcjYJWi+SOTa4DSUoQZ4iDimUFOb849/raFeWkImhkvTUcgK3DxJgpi4aE2INRammnzC2JIJU+FSCqB7Wsm7w+0EL9/s80rEhkcxifFhjcnYPCN0GBNe8kvBdittkW6gcqd7xJZZuVgTOK9372KN1rsDkRuyGx3wdAh3ThbDL+Yyqf2fI2C3WpvrcpcqT/CLIwBnK2IOBcWVl1Nf01YZumARskAmHaIR63SaxoQu4qM69pvDp19StNG5R4juKlxVS6vlKGJQmsd9FA1RwFVxz8sWL+my3Epzfx2fXwMmUpSxrNl6kM6LvEyTDI1uRAakfOd1RsFCO0uBIGKJNcImifTaci7SmNJjDDNWwbdV6TuKSi4+crzvmWWHY/upKAu0rYwAWhcEYgA1tF9lnCWigwot6+y18pdLeuSQI5ZFsxZm+vs5NZJ+OodlODZ5mckhxvC6GHPFQmJEZT/YWUGz/F5jX963nWB5SQv3J4FYrzvW22aSvsGIlXPhxLNmdwiNSFihNlvffOgxP/VETiRX58R3/127igjybZjn3DHA9typgKa3gm4kR33u2SuJF1XU0FBmetKWDcZm2p9UKMwh2YhctIXnua/6W9hasbfp0iHQujqXtnPbwq2s1CF4f43NHhRkPBbg+afz73yyackA==",
            "1; CY1PR07MB2277;\n\t6:QMsiD6s4QuAdtd3A3R5f+RNoBUbJ39uB6DMAvK5Rz+vpW1zYNCtz+z+ACb0ZI94hakUej60McTU2wVdk53DZ5Du+tJw3w7MIuLKjGIzhqEAZyw/kiqk7PQ3XRdpZ8DP1je3cibWKMjUq4HZ712Pe97j3yHct5GudFJ1KJ4PCJARhobtmY0Lm4Ha765Iqau36h01Qrfi0lFqFJsOTrWbeYKIr8+LWW4dNFHLrgW1T70a4X02Yv5Tu2hU/Kf7DQXIPxQYIG8LUxNpsLeScDnMl+3dsacU4HAhySlxm3F3CGQh6jKDoKBDFQzEFLFa5l7To2obORusFCiBF8350YlDb8DUeFC1IJj8AbAgyw+sBprS9AYyEW6hc3bPOqYgS2c8Z9rMUkQna9fS01g5Wc+qrGQ==;\n\t5:C3voOqkqGsj7TtdrMEqYYfmLOqB6bM2fyhgkLur1fDJiQ/xQnyM+A5Vzh7iiXBI94BCS8+7n5xCzlE5qYOr7DdbASHzq1UtYIPsQzubeUJFUA1clMg0z66yOAPyXAm4bJqfTgrCC4YYun/NdsC/oQg==;\n\t24:pIT8i6VQX9qDS0T8+n/80QyuYTUnLR5/uPGxP6iAHE4JsaTk30u9FoplVZQobl8eBP+NtiQcJRvF1h7Vc/GSeE4nrDwOuHJQl9QuGwCWcuQ=",
            "1; CY1PR07MB2277;\n\t7:txe6B5rZPuTfVM1/IJfQcotMi80tpwPu25jmJO611dqAGr0nUyaA1/nmgUmugnb4OZuERnuYwKVht3EKVu8QTJnMpPLBLAkEcqpZJZYHYhqVFYrHp1XYrf0PMDY4Tzt4yl/6NIl6RM5qUUE9J1bKYSYUZkr++yECtc07YDrWDmx4V4DknuxnMkoMo7RO51xTJleOe4fuYoWgC6QqXM263UEhVFHEXp3WLZyJ2z12/S6uqqreiy+eD5b8ccqz1GmCAaTVnF2kAJkK67y749c5O93QLJoxN7zQeGR0skxRJUAYfBIOz8swu36TiFMw5eW7XgzuWZQV5jV0PnYC61nLRQ=="
        ],
        "X-Microsoft-Antispam-PRVS": "<CY1PR07MB227778816957F209EC7A3FE381280@CY1PR07MB2277.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123558025)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(6072148);\n\tSRVR:CY1PR07MB2277; BCL:0; PCL:0; RULEID:; SRVR:CY1PR07MB2277; ",
        "X-Forefront-PRVS": "023495660C",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(2950100002)(6916009)(42882006)(5660300001)(92566002)(4720700003)(33646002)(48376002)(50226002)(6666003)(2906002)(5003940100001)(36756003)(8676002)(50466002)(81166006)(110136004)(38730400002)(4326008)(305945005)(2361001)(53936002)(2351001)(25786008)(6512007)(189998001)(54906002)(47776003)(6506006)(6486002)(66066001)(6116002)(3846002)(50986999)(76176999)(5009440100003)(42186005)(7736002)(7099028)(110426004);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2277;\n\tH:lio357.in.caveonetworks.com; \n\tFPR:; SPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; ",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "caviumnetworks.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "02 Mar 2017 11:38:58.6242\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CY1PR07MB2277",
        "Subject": "[dpdk-dev] [PATCH v2 21/46] net/liquidio: initialize Rx queue",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Initialize Rx queue registers and allocate packet buffers for Rx queue.\n\nSigned-off-by: Shijith Thotton <shijith.thotton@caviumnetworks.com>\nSigned-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\nSigned-off-by: Derek Chickles <derek.chickles@caviumnetworks.com>\nSigned-off-by: Venkat Koppula <venkat.koppula@caviumnetworks.com>\nSigned-off-by: Srisivasubramanian S <ssrinivasan@caviumnetworks.com>\nSigned-off-by: Mallesham Jatharakonda <mjatharakonda@oneconvergence.com>\n---\n drivers/net/liquidio/base/lio_23xx_vf.c | 22 ++++++++\n drivers/net/liquidio/base/lio_hw_defs.h |  2 +\n drivers/net/liquidio/lio_rxtx.c         | 96 +++++++++++++++++++++++++++++++++\n drivers/net/liquidio/lio_rxtx.h         | 20 +++++++\n drivers/net/liquidio/lio_struct.h       |  1 +\n 5 files changed, 141 insertions(+)",
    "diff": "diff --git a/drivers/net/liquidio/base/lio_23xx_vf.c b/drivers/net/liquidio/base/lio_23xx_vf.c\nindex 181f830..44d90c0 100644\n--- a/drivers/net/liquidio/base/lio_23xx_vf.c\n+++ b/drivers/net/liquidio/base/lio_23xx_vf.c\n@@ -233,6 +233,27 @@\n }\n \n static void\n+cn23xx_vf_setup_oq_regs(struct lio_device *lio_dev, uint32_t oq_no)\n+{\n+\tstruct lio_droq *droq = lio_dev->droq[oq_no];\n+\n+\tPMD_INIT_FUNC_TRACE();\n+\n+\tlio_write_csr64(lio_dev, CN23XX_SLI_OQ_BASE_ADDR64(oq_no),\n+\t\t\tdroq->desc_ring_dma);\n+\tlio_write_csr(lio_dev, CN23XX_SLI_OQ_SIZE(oq_no), droq->max_count);\n+\n+\tlio_write_csr(lio_dev, CN23XX_SLI_OQ_BUFF_INFO_SIZE(oq_no),\n+\t\t      (droq->buffer_size | (OCTEON_RH_SIZE << 16)));\n+\n+\t/* Get the mapped address of the pkt_sent and pkts_credit regs */\n+\tdroq->pkts_sent_reg = (uint8_t *)lio_dev->hw_addr +\n+\t\t\t\t\tCN23XX_SLI_OQ_PKTS_SENT(oq_no);\n+\tdroq->pkts_credit_reg = (uint8_t *)lio_dev->hw_addr +\n+\t\t\t\t\tCN23XX_SLI_OQ_PKTS_CREDIT(oq_no);\n+}\n+\n+static void\n cn23xx_vf_free_mbox(struct lio_device *lio_dev)\n {\n \tPMD_INIT_FUNC_TRACE();\n@@ -436,6 +457,7 @@\n \t\treturn -1;\n \n \tlio_dev->fn_list.setup_iq_regs\t\t= cn23xx_vf_setup_iq_regs;\n+\tlio_dev->fn_list.setup_oq_regs\t\t= cn23xx_vf_setup_oq_regs;\n \tlio_dev->fn_list.setup_mbox\t\t= cn23xx_vf_setup_mbox;\n \tlio_dev->fn_list.free_mbox\t\t= cn23xx_vf_free_mbox;\n \ndiff --git a/drivers/net/liquidio/base/lio_hw_defs.h b/drivers/net/liquidio/base/lio_hw_defs.h\nindex 35d59fd..4271730 100644\n--- a/drivers/net/liquidio/base/lio_hw_defs.h\n+++ b/drivers/net/liquidio/base/lio_hw_defs.h\n@@ -116,6 +116,8 @@ enum octeon_tag_type {\n /* This subcode is sent by core PCI driver to indicate cores are ready. */\n #define LIO_OPCODE_IF_CFG\t\t0x09\n \n+#define LIO_MAX_RX_PKTLEN\t\t(64 * 1024)\n+\n /* Interface flags communicated between host driver and core app. */\n enum lio_ifflags {\n \tLIO_IFFLAG_UNICAST\t= 0x10\ndiff --git a/drivers/net/liquidio/lio_rxtx.c b/drivers/net/liquidio/lio_rxtx.c\nindex 942fe9b..9948023 100644\n--- a/drivers/net/liquidio/lio_rxtx.c\n+++ b/drivers/net/liquidio/lio_rxtx.c\n@@ -41,6 +41,96 @@\n #include \"lio_rxtx.h\"\n \n static void\n+lio_droq_compute_max_packet_bufs(struct lio_droq *droq)\n+{\n+\tuint32_t count = 0;\n+\n+\tdo {\n+\t\tcount += droq->buffer_size;\n+\t} while (count < LIO_MAX_RX_PKTLEN);\n+}\n+\n+static void\n+lio_droq_reset_indices(struct lio_droq *droq)\n+{\n+\tdroq->read_idx\t= 0;\n+\tdroq->write_idx\t= 0;\n+\tdroq->refill_idx = 0;\n+\tdroq->refill_count = 0;\n+\trte_atomic64_set(&droq->pkts_pending, 0);\n+}\n+\n+static void\n+lio_droq_destroy_ring_buffers(struct lio_droq *droq)\n+{\n+\tuint32_t i;\n+\n+\tfor (i = 0; i < droq->max_count; i++) {\n+\t\tif (droq->recv_buf_list[i].buffer) {\n+\t\t\trte_pktmbuf_free((struct rte_mbuf *)\n+\t\t\t\t\t droq->recv_buf_list[i].buffer);\n+\t\t\tdroq->recv_buf_list[i].buffer = NULL;\n+\t\t}\n+\t}\n+\n+\tlio_droq_reset_indices(droq);\n+}\n+\n+static void *\n+lio_recv_buffer_alloc(struct lio_device *lio_dev, int q_no)\n+{\n+\tstruct lio_droq *droq = lio_dev->droq[q_no];\n+\tstruct rte_mempool *mpool = droq->mpool;\n+\tstruct rte_mbuf *m;\n+\n+\tm = rte_pktmbuf_alloc(mpool);\n+\tif (m == NULL) {\n+\t\tlio_dev_err(lio_dev, \"Cannot allocate\\n\");\n+\t\treturn NULL;\n+\t}\n+\n+\trte_mbuf_refcnt_set(m, 1);\n+\tm->next = NULL;\n+\tm->data_off = RTE_PKTMBUF_HEADROOM;\n+\tm->nb_segs = 1;\n+\tm->pool = mpool;\n+\n+\treturn m;\n+}\n+\n+static int\n+lio_droq_setup_ring_buffers(struct lio_device *lio_dev,\n+\t\t\t    struct lio_droq *droq)\n+{\n+\tstruct lio_droq_desc *desc_ring = droq->desc_ring;\n+\tuint32_t i;\n+\tvoid *buf;\n+\n+\tfor (i = 0; i < droq->max_count; i++) {\n+\t\tbuf = lio_recv_buffer_alloc(lio_dev, droq->q_no);\n+\t\tif (buf == NULL) {\n+\t\t\tlio_dev_err(lio_dev, \"buffer alloc failed\\n\");\n+\t\t\tlio_droq_destroy_ring_buffers(droq);\n+\t\t\treturn -ENOMEM;\n+\t\t}\n+\n+\t\tdroq->recv_buf_list[i].buffer = buf;\n+\t\tdroq->info_list[i].length = 0;\n+\n+\t\t/* map ring buffers into memory */\n+\t\tdesc_ring[i].info_ptr = lio_map_ring_info(droq, i);\n+\t\tdesc_ring[i].buffer_ptr =\n+\t\t\tlio_map_ring(droq->recv_buf_list[i].buffer);\n+\t}\n+\n+\tlio_droq_reset_indices(droq);\n+\n+\tlio_droq_compute_max_packet_bufs(droq);\n+\n+\treturn 0;\n+}\n+\n+static void\n lio_dma_zone_free(struct lio_device *lio_dev, const struct rte_memzone *mz)\n {\n \tconst struct rte_memzone *mz_tmp;\n@@ -75,6 +165,7 @@\n \n \tlio_dev_dbg(lio_dev, \"OQ[%d]\\n\", q_no);\n \n+\tlio_droq_destroy_ring_buffers(droq);\n \trte_free(droq->recv_buf_list);\n \tdroq->recv_buf_list = NULL;\n \tlio_dma_zone_free(lio_dev, droq->info_mz);\n@@ -172,10 +263,15 @@\n \t\tgoto init_droq_fail;\n \t}\n \n+\tif (lio_droq_setup_ring_buffers(lio_dev, droq))\n+\t\tgoto init_droq_fail;\n+\n \tdroq->refill_threshold = c_refill_threshold;\n \n \trte_spinlock_init(&droq->lock);\n \n+\tlio_dev->fn_list.setup_oq_regs(lio_dev, q_no);\n+\n \tlio_dev->io_qmask.oq |= (1ULL << q_no);\n \n \treturn 0;\ndiff --git a/drivers/net/liquidio/lio_rxtx.h b/drivers/net/liquidio/lio_rxtx.h\nindex 05f4704..fc623ad 100644\n--- a/drivers/net/liquidio/lio_rxtx.h\n+++ b/drivers/net/liquidio/lio_rxtx.h\n@@ -495,6 +495,26 @@ enum {\n \t}\n }\n \n+static inline uint64_t\n+lio_map_ring(void *buf)\n+{\n+\tphys_addr_t dma_addr;\n+\n+\tdma_addr = rte_mbuf_data_dma_addr_default(((struct rte_mbuf *)buf));\n+\n+\treturn (uint64_t)dma_addr;\n+}\n+\n+static inline uint64_t\n+lio_map_ring_info(struct lio_droq *droq, uint32_t i)\n+{\n+\tphys_addr_t dma_addr;\n+\n+\tdma_addr = droq->info_list_dma + (i * LIO_DROQ_INFO_SIZE);\n+\n+\treturn (uint64_t)dma_addr;\n+}\n+\n /* Macro to increment index.\n  * Index is incremented by count; if the sum exceeds\n  * max, index is wrapped-around to the start.\ndiff --git a/drivers/net/liquidio/lio_struct.h b/drivers/net/liquidio/lio_struct.h\nindex 3df79e1..7a7a4a6 100644\n--- a/drivers/net/liquidio/lio_struct.h\n+++ b/drivers/net/liquidio/lio_struct.h\n@@ -306,6 +306,7 @@ struct lio_io_enable {\n \n struct lio_fn_list {\n \tvoid (*setup_iq_regs)(struct lio_device *, uint32_t);\n+\tvoid (*setup_oq_regs)(struct lio_device *, uint32_t);\n \n \tint (*setup_mbox)(struct lio_device *);\n \tvoid (*free_mbox)(struct lio_device *);\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "21/46"
    ]
}