get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 806237,
    "url": "http://patchwork.ozlabs.org/api/patches/806237/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1503839623-3906-4-git-send-email-madalin.bucur@nxp.com/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1503839623-3906-4-git-send-email-madalin.bucur@nxp.com>",
    "list_archive_url": null,
    "date": "2017-08-27T13:13:39",
    "name": "[v4,3/7] dpaa_eth: use multiple Rx frame queues",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "d91687e376d9945cb385f825e2ee339f5caded6d",
    "submitter": {
        "id": 70042,
        "url": "http://patchwork.ozlabs.org/api/people/70042/?format=api",
        "name": "Madalin Bucur",
        "email": "madalin.bucur@nxp.com"
    },
    "delegate": {
        "id": 34,
        "url": "http://patchwork.ozlabs.org/api/users/34/?format=api",
        "username": "davem",
        "first_name": "David",
        "last_name": "Miller",
        "email": "davem@davemloft.net"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1503839623-3906-4-git-send-email-madalin.bucur@nxp.com/mbox/",
    "series": [
        {
            "id": 20,
            "url": "http://patchwork.ozlabs.org/api/series/20/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=20",
            "date": "2017-08-27T13:13:37",
            "name": "Add RSS to DPAA 1.x Ethernet driver",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/20/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/806237/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/806237/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": "patchwork-incoming@ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "spf=fail (sender IP is 192.88.168.50)\n\tsmtp.mailfrom=nxp.com; vger.kernel.org; dkim=none (message not signed)\n\theader.d=none; vger.kernel.org;\n\tdmarc=fail action=none header.from=nxp.com; "
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xgFl93Gzbz9s7M\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun, 27 Aug 2017 23:15:49 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751822AbdH0NPO (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSun, 27 Aug 2017 09:15:14 -0400",
            "from mail-bn3nam01on0066.outbound.protection.outlook.com\n\t([104.47.33.66]:43704\n\t\"EHLO NAM01-BN3-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1751415AbdH0NNw (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tSun, 27 Aug 2017 09:13:52 -0400",
            "from BN6PR03CA0015.namprd03.prod.outlook.com (10.168.230.153) by\n\tCY1PR03MB2268.namprd03.prod.outlook.com (10.166.207.20) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.1.1385.9; Sun, 27 Aug 2017 13:13:51 +0000",
            "from BY2FFO11FD005.protection.gbl (2a01:111:f400:7c0c::194) by\n\tBN6PR03CA0015.outlook.office365.com (2603:10b6:404:23::25) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9 via\n\tFrontend Transport; Sun, 27 Aug 2017 13:13:50 +0000",
            "from tx30smr01.am.freescale.net (192.88.168.50) by\n\tBY2FFO11FD005.mail.protection.outlook.com (10.1.14.126) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1341.15\n\tvia Frontend Transport; Sun, 27 Aug 2017 13:13:50 +0000",
            "from fsr-fed2164-101.ea.freescale.net\n\t(fsr-fed2164-101.ea.freescale.net [10.171.73.197])\n\tby tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv7RDDhJl028627; Sun, 27 Aug 2017 06:13:48 -0700"
        ],
        "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.168.50 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;",
        "From": "Madalin Bucur <madalin.bucur@nxp.com>",
        "To": "<netdev@vger.kernel.org>, <davem@davemloft.net>",
        "CC": "<linuxppc-dev@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>",
        "Subject": "[PATCH v4 3/7] dpaa_eth: use multiple Rx frame queues",
        "Date": "Sun, 27 Aug 2017 16:13:39 +0300",
        "Message-ID": "<1503839623-3906-4-git-send-email-madalin.bucur@nxp.com>",
        "X-Mailer": "git-send-email 2.1.0",
        "In-Reply-To": "<1503839623-3906-1-git-send-email-madalin.bucur@nxp.com>",
        "References": "<1503839623-3906-1-git-send-email-madalin.bucur@nxp.com>",
        "Reply-To": "<madalin.bucur@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131483132306180106;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(2950100002)(85426001)(2906002)(106466001)(6666003)(104016004)(53936002)(305945005)(626005)(97736004)(356003)(50466002)(48376002)(3450700001)(8676002)(50226002)(105606002)(54906002)(76176999)(50986999)(68736007)(33646002)(5660300001)(81156014)(81166006)(77096006)(189998001)(8936002)(5003940100001)(43066003)(4326008)(498600001)(86362001)(47776003)(36756003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2268;\n\tH:tx30smr01.am.freescale.net; FPR:; SPF:Fail;\n\tPTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BY2FFO11FD005;\n\t1:sy8vwHIcHgEXIchE1Xyaj4aSXrRyaMSfKGJfM9vS0NHoB2+6H6zU8BmiSnaFUkZV27IS13kzLlZJRE27djWqAdn3w+sjpJF21NPr0BbWJM5/q/y5XHsxvJAeeDGfP4BD",
            "1; CY1PR03MB2268;\n\t3:N60q+efL6lZJ2XYPcPpjhOgC6GGxZVkXVDOXDuJIWVXEZL3WisBP47P6fJtBMQFcstjBB4KTjWOMR/PovzSevgdTOV15225W3HgzDbzAx6qzrv6AVkjxTCwv6xtK7xjJ+lxxe03yMizdydmDncIqZ/7fCVAjYAJ5C4p0Am+hU/S4z2qdr9HyVzWjRnzeJcNa/8TjotPgPo5WEWJGqUQ8FIAe00HHV/gV9uuahDOJs5Rm3aMbiXcL6Bayzdc05u2SLVZZIroSnBtG4SqxC06w7z+x4r+tVvb5Kqlw7s8cspxqq2UbB+qGzFqAu9Uw+Kp8o1Tb/Kt2XnMGxqftQn2OFhCYsZhPhaCTxU2IGHTpGPA=;\n\t25:H+GwGP2B5KgCDwlzCRJMgACi9n1xlpJuOhHzcjOLLbXYBHzdlTvClwr0g17x1o7wJtnar6CviBAraEz0cpqTQIFYfjiEIvDcpj1u+Rycp6wLc0a+7exX/e2EvgkSlpIWNC43BKUDkPVbPB/moG/anYuXUeJBQmkxk0lBTkOeld37VWCewYstQn7h1LZKEE5JewTqgFk5k3g9o83nSjWfxCF72JuUrMjveVqSgIoJoMwB4PwC0rqgc3a7O2mtQ2q129Z/R2vX3qipRER5d5l0S9sb3t0gEVJHu6zP/2zTljSxPL6/2RJazIv3E3PTpRyLfLlWM2krCpa53grHY4rzhA==",
            "1; CY1PR03MB2268;\n\t31:+HBq28iT4g7D38ll88ycLE0BP8fBacu/+n9VS5AtNzNk3AB/FSXcMOCXF1eEZ09VxlKr7pQ1Klmnwp8hZMoW5srcm6NPxLEAUd5kEDOk+xnMTEolxHgiQIjvRQxGs+rg5/1HS6YzOAD2LsSdv0aucteUVIUHnq1mAYucTKGMH/s/T0QxNvKO85tb4QAMI/slpssECiN9nmd+6ZvUhDqPRRL/+thZil0UYaQfNfXYWdc=;\n\t4:giBVQiM5hKC3n0CbYcYmyeJKHjyDS1SabrzXJmnUIYbWxcbhwwTIAGvqSXpJB9pDIJieiqwyDEY1xsksh0f6XyAwwTc5kMfFgLwHwWtvQiv2vsBHZyGIJsoUR3jmvGTEIo6lD+1SYGIcsJ1JH1ahrr4NrUNGcvHlovMhajlL1LjIQ3DfOuRxlV20AodSmOOs1bw77iUz4kZ8eW0p9pdYx3QZtBrao6FtZUbmuK7RjqVG2aCCvxHexx03cY2Ay2awgj0JXSHraG8yLR+qB2QMDB0HlDYkWlNv7OmbGVg5T4nF6gx9rDzx2RmxoDTEHqBmLWAcajhqh0Nrk7B+tuWoN7dpMPK4edg5kJ29Xh96HJ0=",
            "1; CY1PR03MB2268;\n\t23:bWmf4G4z1Oz5W7dXqePfRFnHiRosm5+dr/GK28tjbYNQ0R82K+Soc+ZYNPwpM6eo29txQlUmw13GUsH2hyg6WLQC6M0jH746JTjGDPH6uPJ+RLwUFzC7X/3s4iFxHl9d/FYOsNN+eLiJoFRqX/1yg7QqYRkRkaZvplsnjCRMmkcEtw7T87F3bk7tALAA3joN86jhqVzVqC50YaVB/h8bOw7YHtT6DsP0/zUcRk/fK0RJyoygSDuOhsEqjWE51ureqQHXGV6i3BN98tKpOwcdAsAmqzKcdJc3z6Qnr3HOYAPbitTdim7Lk+hpHOL1l1W3GsUAnIa2ZHLy/3O+9yGAxYCtOKT1NWy2zmV11ib3msLU/OIn37R9rRobANMOU+NFZbz2NLxf/NiIUTtUdS4/YEwbp/vMj+MTSjKi708pFvAN084wk5PxCw/eB2BKuUhDbqOYk63dgFvOowXO9nID9P3nZJwaO8bOOHQgmqXJTgMXd86gZIFgY3FwaSXEgcPTlHtuSi2gsueyQVE4Qn5p98HOf/yq005IgN6GrlEyhhFd9Np9N2B97fQeEaFoiMPI/ar5JzjJNbnpwDGM0A6epQwYWWOPcqFIKLnK8yILeARxDyG3F0Xb1K5NF34OFMzPA1TxNxYPA9slMtT8SJ04+9qZXmEAQcm1Kx//RiTO6741yoCFwSEYK8U//qINpZ3cps+ZJmHQw0npvyIawxA4BSv6AWBbMNn6I4BIBpy7hzhag5MQXUhYoKbicrOoUw/zrIhiKGjOp9YwW5Q7mD0SzeRv75ZbKAt7Gic3hj5UIJCnJiX3a4vdNfmUf3AkGWGZ374IKb9jqmEbspTE06DlDIfvtI/8uuelgWULU7fE9dEyGPeWHVGvoDit/ic0s6Jng645mwZN1lXodoPnOS7RUdZ3jFCS5AMri4oXOVBWXawQhSBx95QMJ0ywIxavtkOW7mNkQRTWOiGz8W6JUkR2/aMz4BxLQbAl1nESCty+w1NXKGPxcuFdh57FsXreIIknGCmxOb0ZwFDiPyVaiFygBbOk66bNJFkz+7ZBosRcEJyxKVEcB7LOQ60yPCDTmtDSrSAP5hdNfo9y6Ngq5wUo9Q==",
            "1; CY1PR03MB2268;\n\t6:hd5b1D3d4UJovdUlpPqArpa/3WfXBToUgeo55z3AZYKG6QRCjjc7cdDsJNgj8F9vwwmLST+QZ0wgC3GkEHDa5raRBKh3mn850JweFtBKB1jgY7JZxYMt3NPF4fXsVLGDDOh0tRzuOV64VJRw8KxzIwzTKwFuciH+XHPTDnIRG7wm3hwwr2MR2UbIM5/8vddSeA53TAzdPNwTQoKTzVQ6MXz6MbjpzowgfsCsl11+qlLXjgcSnQCRQqXMRTlitptul+0Gr53u4lAxydWJGtklWlHbIQAoX9m2onnvxZWMPP4srg8ZzT17Ibwpjaj6EK7qgfMLFAOmJMgMP+0W1a64Ug==;\n\t5:mP2oWoKWD3NiAzpxC23M5aoD4YP+XimmqYog6g4E2ntb71nhNpbrR5pnpqq4eyQmHheUQso75ZpYYf/ZCPrTE2loVHpDDdnkXC9wjmP//fTo0LtpdAWllg8vhPg1fVPKJFUDaoGJqan6Y81nlS3AGw==;\n\t24:BFSTKDaQyhHgEKYkgHBi751hHBTpN2a/goHlB0lD+tPspyWszDOEDnVuLMsRDNs3SLh0DBQjQv5/3JnpP0DmFdpwADNJ+c+bJarSyFkYVkw=;\n\t7:Sn3GEMWfl15DzaddntwjuPcxjSCfp6zV09A0kASkYa1p57qGIBkjlyBZdEI3CUpWv/+YlV4DCQ5Np4xK1LMJtTpXwGh+CH4dNIGWdEO/ZWlgpNGIhPr2VuOStBWy+DzhOHRciL3f6XfyDy7nXOmkYON7KQuF2VjLj4v9KxHBXyyp3MzVsJ4CPPwin/myNXkAUUpHN4lgXMvtQ1wjZ8Dl1+PzBnjXfmtVaItGluIpeck="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "de7185a8-9ecb-475b-66ab-08d4ed4d7585",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:CY1PR03MB2268; ",
        "X-MS-TrafficTypeDiagnostic": "CY1PR03MB2268:",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197)(227817650892897)(275809806118684); ",
        "X-Microsoft-Antispam-PRVS": "<CY1PR03MB2268A488CE176FEE007CDAD0EC990@CY1PR03MB2268.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13016025)(8121501046)(5005006)(13018025)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6055026)(6096035)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123565025)(20161123559100)(20161123563025)(20161123556025)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY1PR03MB2268; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY1PR03MB2268; ",
        "X-Forefront-PRVS": "0412A98A59",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Aug 2017 13:13:50.4152\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CY1PR03MB2268",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "Add a block of 128 Rx frame queues per port. The FMan hardware will\nsend traffic on one of these queues based on the FMan port Parse\nClassify Distribute setup. The hash computed by the FMan Keygen\nblock will select the Rx FQ.\n\nSigned-off-by: Madalin Bucur <madalin.bucur@nxp.com>\n---\n drivers/net/ethernet/freescale/dpaa/dpaa_eth.c     | 50 +++++++++++++++++++---\n drivers/net/ethernet/freescale/dpaa/dpaa_eth.h     |  1 +\n .../net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c   |  3 ++\n 3 files changed, 47 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c\nindex c7fa285..6d89e74 100644\n--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c\n+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c\n@@ -158,7 +158,7 @@ MODULE_PARM_DESC(tx_timeout, \"The Tx timeout in ms\");\n #define DPAA_RX_PRIV_DATA_SIZE\t(u16)(DPAA_TX_PRIV_DATA_SIZE + \\\n \t\t\t\t\tdpaa_rx_extra_headroom)\n \n-#define DPAA_ETH_RX_QUEUES\t128\n+#define DPAA_ETH_PCD_RXQ_NUM\t128\n \n #define DPAA_ENQUEUE_RETRIES\t100000\n \n@@ -169,6 +169,7 @@ struct fm_port_fqs {\n \tstruct dpaa_fq *tx_errq;\n \tstruct dpaa_fq *rx_defq;\n \tstruct dpaa_fq *rx_errq;\n+\tstruct dpaa_fq *rx_pcdq;\n };\n \n /* All the dpa bps in use at any moment */\n@@ -628,6 +629,7 @@ static inline void dpaa_assign_wq(struct dpaa_fq *fq, int idx)\n \t\tfq->wq = 5;\n \t\tbreak;\n \tcase FQ_TYPE_RX_DEFAULT:\n+\tcase FQ_TYPE_RX_PCD:\n \t\tfq->wq = 6;\n \t\tbreak;\n \tcase FQ_TYPE_TX:\n@@ -688,6 +690,7 @@ static int dpaa_alloc_all_fqs(struct device *dev, struct list_head *list,\n \t\t\t      struct fm_port_fqs *port_fqs)\n {\n \tstruct dpaa_fq *dpaa_fq;\n+\tu32 fq_base, fq_base_aligned, i;\n \n \tdpaa_fq = dpaa_fq_alloc(dev, 0, 1, list, FQ_TYPE_RX_ERROR);\n \tif (!dpaa_fq)\n@@ -701,6 +704,26 @@ static int dpaa_alloc_all_fqs(struct device *dev, struct list_head *list,\n \n \tport_fqs->rx_defq = &dpaa_fq[0];\n \n+\t/* the PCD FQIDs range needs to be aligned for correct operation */\n+\tif (qman_alloc_fqid_range(&fq_base, 2 * DPAA_ETH_PCD_RXQ_NUM))\n+\t\tgoto fq_alloc_failed;\n+\n+\tfq_base_aligned = ALIGN(fq_base, DPAA_ETH_PCD_RXQ_NUM);\n+\n+\tfor (i = fq_base; i < fq_base_aligned; i++)\n+\t\tqman_release_fqid(i);\n+\n+\tfor (i = fq_base_aligned + DPAA_ETH_PCD_RXQ_NUM;\n+\t     i < (fq_base + 2 * DPAA_ETH_PCD_RXQ_NUM); i++)\n+\t\tqman_release_fqid(i);\n+\n+\tdpaa_fq = dpaa_fq_alloc(dev, fq_base_aligned, DPAA_ETH_PCD_RXQ_NUM,\n+\t\t\t\tlist, FQ_TYPE_RX_PCD);\n+\tif (!dpaa_fq)\n+\t\tgoto fq_alloc_failed;\n+\n+\tport_fqs->rx_pcdq = &dpaa_fq[0];\n+\n \tif (!dpaa_fq_alloc(dev, 0, DPAA_ETH_TXQ_NUM, list, FQ_TYPE_TX_CONF_MQ))\n \t\tgoto fq_alloc_failed;\n \n@@ -870,13 +893,14 @@ static void dpaa_fq_setup(struct dpaa_priv *priv,\n \t\t\t  const struct dpaa_fq_cbs *fq_cbs,\n \t\t\t  struct fman_port *tx_port)\n {\n-\tint egress_cnt = 0, conf_cnt = 0, num_portals = 0, cpu;\n+\tint egress_cnt = 0, conf_cnt = 0, num_portals = 0, portal_cnt = 0, cpu;\n \tconst cpumask_t *affine_cpus = qman_affine_cpus();\n-\tu16 portals[NR_CPUS];\n+\tu16 channels[NR_CPUS];\n \tstruct dpaa_fq *fq;\n \n \tfor_each_cpu(cpu, affine_cpus)\n-\t\tportals[num_portals++] = qman_affine_channel(cpu);\n+\t\tchannels[num_portals++] = qman_affine_channel(cpu);\n+\n \tif (num_portals == 0)\n \t\tdev_err(priv->net_dev->dev.parent,\n \t\t\t\"No Qman software (affine) channels found\");\n@@ -890,6 +914,12 @@ static void dpaa_fq_setup(struct dpaa_priv *priv,\n \t\tcase FQ_TYPE_RX_ERROR:\n \t\t\tdpaa_setup_ingress(priv, fq, &fq_cbs->rx_errq);\n \t\t\tbreak;\n+\t\tcase FQ_TYPE_RX_PCD:\n+\t\t\tif (!num_portals)\n+\t\t\t\tcontinue;\n+\t\t\tdpaa_setup_ingress(priv, fq, &fq_cbs->rx_defq);\n+\t\t\tfq->channel = channels[portal_cnt++ % num_portals];\n+\t\t\tbreak;\n \t\tcase FQ_TYPE_TX:\n \t\t\tdpaa_setup_egress(priv, fq, tx_port,\n \t\t\t\t\t  &fq_cbs->egress_ern);\n@@ -1039,7 +1069,8 @@ static int dpaa_fq_init(struct dpaa_fq *dpaa_fq, bool td_enable)\n \t\t/* Put all the ingress queues in our \"ingress CGR\". */\n \t\tif (priv->use_ingress_cgr &&\n \t\t    (dpaa_fq->fq_type == FQ_TYPE_RX_DEFAULT ||\n-\t\t     dpaa_fq->fq_type == FQ_TYPE_RX_ERROR)) {\n+\t\t     dpaa_fq->fq_type == FQ_TYPE_RX_ERROR ||\n+\t\t     dpaa_fq->fq_type == FQ_TYPE_RX_PCD)) {\n \t\t\tinitfq.we_mask |= cpu_to_be16(QM_INITFQ_WE_CGID);\n \t\t\tinitfq.fqd.fq_ctrl |= cpu_to_be16(QM_FQCTRL_CGE);\n \t\t\tinitfq.fqd.cgid = (u8)priv->ingress_cgr.cgrid;\n@@ -1170,7 +1201,7 @@ static int dpaa_eth_init_tx_port(struct fman_port *port, struct dpaa_fq *errq,\n \n static int dpaa_eth_init_rx_port(struct fman_port *port, struct dpaa_bp **bps,\n \t\t\t\t size_t count, struct dpaa_fq *errq,\n-\t\t\t\t struct dpaa_fq *defq,\n+\t\t\t\t struct dpaa_fq *defq, struct dpaa_fq *pcdq,\n \t\t\t\t struct dpaa_buffer_layout *buf_layout)\n {\n \tstruct fman_buffer_prefix_content buf_prefix_content;\n@@ -1190,6 +1221,10 @@ static int dpaa_eth_init_rx_port(struct fman_port *port, struct dpaa_bp **bps,\n \trx_p = &params.specific_params.rx_params;\n \trx_p->err_fqid = errq->fqid;\n \trx_p->dflt_fqid = defq->fqid;\n+\tif (pcdq) {\n+\t\trx_p->pcd_base_fqid = pcdq->fqid;\n+\t\trx_p->pcd_fqs_count = DPAA_ETH_PCD_RXQ_NUM;\n+\t}\n \n \tcount = min(ARRAY_SIZE(rx_p->ext_buf_pools.ext_buf_pool), count);\n \trx_p->ext_buf_pools.num_of_pools_used = (u8)count;\n@@ -1234,7 +1269,8 @@ static int dpaa_eth_init_ports(struct mac_device *mac_dev,\n \t\treturn err;\n \n \terr = dpaa_eth_init_rx_port(rxport, bps, count, port_fqs->rx_errq,\n-\t\t\t\t    port_fqs->rx_defq, &buf_layout[RX]);\n+\t\t\t\t    port_fqs->rx_defq, port_fqs->rx_pcdq,\n+\t\t\t\t    &buf_layout[RX]);\n \n \treturn err;\n }\ndiff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h\nindex 9941a78..496a12c 100644\n--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h\n+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.h\n@@ -52,6 +52,7 @@\n enum dpaa_fq_type {\n \tFQ_TYPE_RX_DEFAULT = 1, /* Rx Default FQs */\n \tFQ_TYPE_RX_ERROR,\t/* Rx Error FQs */\n+\tFQ_TYPE_RX_PCD,\t\t/* Rx Parse Classify Distribute FQs */\n \tFQ_TYPE_TX,\t\t/* \"Real\" Tx FQs */\n \tFQ_TYPE_TX_CONFIRM,\t/* Tx default Conf FQ (actually an Rx FQ) */\n \tFQ_TYPE_TX_CONF_MQ,\t/* Tx conf FQs (one for each Tx FQ) */\ndiff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c\nindex ec75d1c..0d9b185 100644\n--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c\n+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth_sysfs.c\n@@ -71,6 +71,9 @@ static ssize_t dpaa_eth_show_fqids(struct device *dev,\n \t\tcase FQ_TYPE_RX_ERROR:\n \t\t\tstr = \"Rx error\";\n \t\t\tbreak;\n+\t\tcase FQ_TYPE_RX_PCD:\n+\t\t\tstr = \"Rx PCD\";\n+\t\t\tbreak;\n \t\tcase FQ_TYPE_TX_CONFIRM:\n \t\t\tstr = \"Tx default confirmation\";\n \t\t\tbreak;\n",
    "prefixes": [
        "v4",
        "3/7"
    ]
}