From patchwork Fri Mar 3 14:52:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Horia Geanta X-Patchwork-Id: 9603071 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2237960414 for ; Fri, 3 Mar 2017 15:11:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1478128631 for ; Fri, 3 Mar 2017 15:11:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0935E28646; Fri, 3 Mar 2017 15:11:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2F71428631 for ; Fri, 3 Mar 2017 15:11:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751160AbdCCPLI (ORCPT ); Fri, 3 Mar 2017 10:11:08 -0500 Received: from mail-dm3nam03on0076.outbound.protection.outlook.com ([104.47.41.76]:61037 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751903AbdCCPLH (ORCPT ); Fri, 3 Mar 2017 10:11:07 -0500 Received: from DM2PR03CA0045.namprd03.prod.outlook.com (10.141.96.44) by DM5PR03MB2954.namprd03.prod.outlook.com (10.175.106.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Fri, 3 Mar 2017 14:52:54 +0000 Received: from BL2FFO11OLC005.protection.gbl (2a01:111:f400:7c09::161) by DM2PR03CA0045.outlook.office365.com (2a01:111:e400:2428::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12 via Frontend Transport; Fri, 3 Mar 2017 14:52:54 +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 BL2FFO11OLC005.mail.protection.outlook.com (10.173.160.91) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.933.11 via Frontend Transport; Fri, 3 Mar 2017 14:52:53 +0000 Received: from enigma.ea.freescale.net (enigma.ea.freescale.net [10.171.77.120]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v23EqdQS018743; Fri, 3 Mar 2017 07:52:51 -0700 From: =?UTF-8?q?Horia=20Geant=C4=83?= To: Herbert Xu , Scott Wood , Roy Pledge CC: , , Dan Douglass , Alexandru Porosanu , Vakul Garg , Cristian Stoica , Claudiu Manoil Subject: [RFC 3/7] soc/qman: export non-programmable FQD fields query Date: Fri, 3 Mar 2017 16:52:09 +0200 Message-ID: <1488552733-20806-4-git-send-email-horia.geanta@nxp.com> X-Mailer: git-send-email 2.4.4 In-Reply-To: <1488552733-20806-1-git-send-email-horia.geanta@nxp.com> References: <1488552733-20806-1-git-send-email-horia.geanta@nxp.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131330263739522046; (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)(7916002)(336005)(39410400002)(39840400002)(39380400002)(39850400002)(39860400002)(39400400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(356003)(86362001)(626004)(106466001)(33646002)(104016004)(4326008)(77096006)(5820100001)(5660300001)(8656002)(6636002)(54906002)(189998001)(2950100002)(85426001)(6666003)(92566002)(38730400002)(47776003)(305945005)(7416002)(76176999)(53936002)(50226002)(81166006)(2870700001)(8936002)(2906002)(105606002)(50466002)(8676002)(23676002)(36756003)(50986999); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2954; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC005; 1:bMoxmpJMAcZJWjwK+62m6WZyqN6ucGPDkDSXnIX1erT9Bu96gtlJ6eEGcW5T3/8Emay9he3Osg1kKWEFVLw+qTaYTsMim9VKv40MIum7FVAmbEKgty1E+ltHynY5CjOZkcS19O2Vwp1AlxFsiG4KJRaMWxujLcafmGxEf6Dbl5IVvkYU2oejsEK1gRVs/1heYUY+Gx3hZruNuBPKLEC8nnPabBI4Zkxe7pODy4pyrs15dWPKjNVQhahDswsiWH9NlliJmG2l9WB8musOk+BBt7h+QT+dv6EJ06tpFuviyREn8nRx2CIsZ/f9UCwYsgxn7/kB7uQgCbIvY0WjVVFwhQ/UMGPuI/aqeptsNpI1LwhBQx1FSDqF8W2ekt9Uug5rmGmE2HPy0lxJqEIXjJTfiPFDnpT8I37jh8yHAkJhkfAy/hCyA9VTV0CLjxaq4ib5jm9EJbq1hLJzRPNoTrm28ondinKA3/22nQ0HyI9DtQqDJQxerjg0e+lVSKACZjja3ebGCaPTI9dTXac4hery9cPTpbofTK7mld4iAylGPIiW6cp2Qgv4dcisPkAgiNWUm5V4C6i0IlF+kRKjKu/dZrq1zPpTmvMd+RPoHs26gt53mMKqJLk91sI6AN5jMRraTmwKlS3UKmtLEE/Evgh1UaOT53ylYRsFVPpGAax/LJPTho+DHFALABxaywbWzjUaf6l9BCnyGZl7qdp0P0E1Cw== X-MS-Office365-Filtering-Correlation-Id: c64368e3-af70-4d2d-1948-08d46244f8e6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DM5PR03MB2954; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2954; 3:8vKZ5rpLagdw0TivFSV5h4DJGBqhnp+NFnPAGfV1Pm6I4imx+uQHqxJOZComKjsgnR39YZFWFEll0+Caku740lzloODE3NB2fw9ZFi3GpFVBY57/PtgUUedPMGfc7QqsDLiwYwCJYXgyz2aEblM/IMxK/fvEVIcaK0rNYed9djDr1u9P+1bcMb2dE7yQjt2Yjy88Ly6of7uHMOEa6G0pswD/t1NguOarr9jIoxuHXeCaro3lzlB36mIKrdwa5P2Jt2q9Vh9XNuFgK1TaDg2VgOWpXJB2HJQbZZ3vhv06uAaRFVG5S6Iw2io96/voygkXFOLN1g2nru7Ta9F9mBf3IvWLPlr0Ic4TEvL5BNGAXHBYCzyGrYDUE/5i39CXcZ2m; 25:Qf0E6eWFErGKxBB/JWbt6CuEL5ztLG+9tcAT5jQg1OET0TO0kST9LmS5fTssPkA5NGhQuEDH6YY2a95eIcewLEp1jlNAfaCEIiR6zKicf0y+Uewd5DoKQqcx4fBcF4cZpH7UEOm6CIHFK79K9PkdXL1ULEeO02fDMQijc/LwY4HZwMQKtQmFk+YX/SxoNWkM3EzEimlUKp/aOG/1oDVYwxzPcgm5i5pUa0I7J/BvzIGMtAZfTL+jj9N45GBpar1KPOguhWWjFgOkqDopsqDZMH4lmazBXFRTklH6HxIxVg3xyjfDblFnTicd6r0oh4G+rG7plvwI6oajToErrY0v3/RaLfrLxOxnKb2IVsx54+TSSAtqCGZzlbYRo4OtppxbXP9btzLzeDJDR+w65F8whPellMlqmOAeEJaGYFJVSgPoQfFuWwDfRdn7GhA6piIvr9nDBxfKWVPd9va9a/+0Ag== X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2954; 31:YCFlbogOQjXo6YbJgXOtx8ICEU1/jphopKXf1HaAuNTxkDCof7ol2LibkokLCdLfV3KiBUVPUc3rpx9G2i72zFwTtJ1dfc/6D5tP7d+MWUG+rhVokWmsPr1Kue/AmsiBbR8SeiqKLFo3pKgdW/OiShPpUIcS46+2TRfc4hMMIHClyCJqXS2jZJgUPACKo/zg7QNNKX+UtJlpfX9bAgHtc17KQdb+LE6s5Qz5uTkzJZGZfJ9unSRhu/x5VyzXDFIgdnyZCYEp3iSGXKI3N1t/5A== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(8121501046)(5005006)(13018025)(13017025)(13015025)(13023025)(13024025)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123563025)(20161123565025)(20161123559025)(20161123561025); SRVR:DM5PR03MB2954; BCL:0; PCL:0; RULEID:(400006); SRVR:DM5PR03MB2954; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2954; 4:4pXT4ErzXrUqFijUpWhWfhaEMg4Tpin4/ThMvpfLeEXnv/iWa/1HyuCYP9CIT1zfG5VJsqQhQ20RD+HE6sC53iXwMJ7zu5tKKr2d3wZcJLJVf82txX7hetKKnBcmku92zH7roKCGJYCWzq0sfv9KReR7ryNB4BtAzA4AAG9w5SrqnoRlSuBhtbN68uawP1II3hBAzAw0fzPCl0hyT+T/3n+dmZwXxSanvWn8OIgt46TjyXKI9U4fwW76XklbfOTTCUHkzhUlKSBefusOCirVwaKvNDK7gK4m2kW4lcj2qLZQjuULQpsOluWbYiJNouDbDBUJDUKNkuAUhv53f4YIeuVkB+aVYC3jaUjAJzUk8XLvLFD/3pp8gDc47G7LbvH1YNd4w2Oq5swQAIzlBrhPRbJ2lz6uNHZw80bqL2ur4VkNznmTXh+I8SSr3UKzTbyeV1/2IblQf+OKYtnt6krBWNDeIE5C2yTj+1+iGLkbHhQUF70JdzxVj9V1J3RnIbA5Wx7IthU8FcxzElNCKSVI8P3auVqnboOqVVlxAJNZyGjB147Ev8mir4rGUUkdBZ4hLh1nt+NEIcgAAxDeKTmOdlLrbBoeKy1ztcYfu0dxZRhEgqTbzJJuIoqRh/et74cm7sWAPMIoJBhO5/98FMjpWW77bFa8M+wDqzsUkPIwMELxzIzVi0Dcfz+40yqXjJ4M2bUcKp2oRUio1L+MSX1O3UjiFx24AKpxdtugGRGbb7Z4/EwGt+WfdGcbiri7klY/jRt0woWTh0XNKgAu91HfyA== X-Forefront-PRVS: 0235CBE7D0 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjAzTUIyOTU0OzIzOnF5WWpIaFFjUGNwZGZtM0REMnhSTk9QRi9F?= =?utf-8?B?YTBZeGNmY096T3hXRTJ1cEpoNDFHbVAzS1JiYnkwSlk2REZ6WHNYVFlpSlEz?= =?utf-8?B?RnRZNlFiNC9OTUZnOUpuMXhRTW9Hc0xPQ0t0eTVNZTRkOGFWU2Z6SGV0WmZQ?= =?utf-8?B?OWpWMVlvMzdsekNhb0NmTTJkL1JyL0Z5L3hMckdLY1dZaTNiWmdWdjNTbG80?= =?utf-8?B?UVJ0ZUlUcnFxNk5xOFJJTGNDczFHVDEwRnZwbUdvTTdvQlkvb1hOM283N0I5?= =?utf-8?B?Mkpxb2tvZWJRVjNMT3BwMXpWamI3WHJXZUsydU9XbUpzbjZHUXpMVmhOeGxV?= =?utf-8?B?NjRVVW0reGovL2VxUEZ1S0V1UkZzRVlLYk5nRUpwZzRCdVVIZTZxMXJuU24r?= =?utf-8?B?Tk5XZVFsSUN5cUtyMFk4aTRHdnFJUnlzRnNOVW5VMGgzVndQN1luRzkwRXow?= =?utf-8?B?MXVpMW9qM0hXdVR1aEJzaGhBOEgzNytNTFBacmE5eW9qNmdjbnB0RzB1bmV5?= =?utf-8?B?eXdvMmtOL2JIUnE1WlVrSFRkdFFjYnlQckU0YUZXUmk3MzExMVlnSi95eU9K?= =?utf-8?B?WGtraUgxaFh3S0tJV2ZuNEtMTmc0TTUyUVMrMGg4YzZZblJNRVN1MnRvc3VX?= =?utf-8?B?Wkx6SUQwTVlUNkp0NWlrMGprVmpmL2RpNmFWUitPUTN4NGNhQThPWW9Gendp?= =?utf-8?B?UjQ5VEhpcjZ0bW5qMjFWT2NEWHBVN204RFFGYnRXNWJFVCswRmU3cEwxSTgr?= =?utf-8?B?R1pzNFBxNHBHcFpqVHZlcnIyenhhVWxjVEFWQWtvYVByV0ZtbUV4bXVlYmhp?= =?utf-8?B?Z3hzdjVBTC9oaTFGR1MrVzFRdmdxd0hqZWg0TnhIdTJqVUdzSjhQMEtzVE5T?= =?utf-8?B?Y29pSGVWdVZjd3JqMTFlMkMxM1FGaW1uZ3NYSFBBS1FkODVBQWNQMDBUcVBF?= =?utf-8?B?bkpwS1B1TGhmY2FGOHc4SzVJSzA4R3l1dmp1dUd1U3hYUkdTM09MMUhISmlJ?= =?utf-8?B?bU13WFBJb2MyVjBBMmJyaDUvQkZOdHVBSDViUDFvTlEwRHJmL1dUQlBDY05Z?= =?utf-8?B?YlJzcE8ydGxFakMyR1lwQ0FOcUgwbEtseHpPb1J0NmtrUTdpa1lWNG1ISnNT?= =?utf-8?B?WFVRQlYwSW1LakJJS1B6emhCV05xWm5ra0d6QldCZWpYekVtV3R4RWVWWjVy?= =?utf-8?B?R2dNNFlqUVdEc0ZYVitpRGJDK2I2SkpveFNTNERDVEtDRnRCd2pQRDVKRUlt?= =?utf-8?B?MXRkTFBlbGE3SldGclBmWE1qY2JiNFNUamVGbFNDeHB2ZVIzS1NNalJ6bmd3?= =?utf-8?B?MzRBU2JHd05XU1p2THV4SlMxYWdDL21nYVo1Qm1QUkxmVU13S3Q0U2NXOGhL?= =?utf-8?B?eFdhRWVyWDFsbmFwbzgwMCtBbVVVSk1GVHhDNTBpcVBjaTkwYkF5Smg0cEFC?= =?utf-8?B?STNIUjBETGlJK1plclBSSUM2N09uOWJaU0hRMTNzTFN2V2I3aE9EN0ZPblFo?= =?utf-8?B?YTF5dVVlSG1Fd3BsNTcyWm5WQUtHa0dhc1FQZmd5UnZybTRES0FVb2UySG9u?= =?utf-8?B?akhEdWFnMVFXK2dJWStzSHA2Tk5DZVlicHlHYUpMQ05mdTVSa1hTdloxMmVN?= =?utf-8?B?Ti9iMXEyOVpkeGh6SmNiQWtzS1ZOcEV0K1lMMXF0bUxzak1RY2NCVW5YcXRL?= =?utf-8?Q?VOY/eEMEUkEEbQWqRQLyfW48rorrhxDfD/6ZXbN?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2954; 6:z4QY3c4RnUj18SHFMRkONW5TVJyaX9gzzZfzdcCbVgx3noRdLmSIoMgceBaipBbuNv1cz4KjHMDN1naEfoH588ljNQy4CcRP7Ukb+hCquorncBswIsp3imn+br98sfx1u6q9yJ2aDqy1csvy2ML5r/+7v/EGBVHn5dHHKTw7NGPtSg5hOUHivBDlRBoHp+DnwxjMZqIY1/kOollRHZYofHxXpADfC9SbyavEtXcQ5GgJt4d3PBmaEUO+tkaeYhKX0nEZ65hXnghE8Udkq+E9XAfHwnjPGNRzDc+RfsnnaXc3nqHtMsGvnrLdh9lwIdDYTnHvxiRr4P9M+WBPM5AGPt6VEyajCJGYaiIQFDozcWggn7bF4Np/3JI7nB14vaj42OEgxnMofQGJvy03cR6wmwSg7LOOMJ0QgyJteSKCPhw=; 5:ItuKEnsizz5S+tCS7/3pf3z54im7Q+2le5qcIB8x3u/Zuk+MY5PwbWWNU0xU/e2eDofpGCtUEVMZD6UL9e+gSKvgCOC5DwE4dUbJNRD8DSWNQzcWATD1+a5EzXV5nGmlQSRaYjbMV0esa1f+H2VKA91yAS44+cJj1WTjV3AoExGtutCzwyGUT1HVzF1VExEV; 24:GNGZRRJMnNq7pFHD8ubyuv9qchsA7/SQprj2bQli3GeDFyuznfoYU39BZsaFYLYDNAYwsM+1AGwpJJeoB2bE72k+edKjZ7xT4/I0/4e+5qM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2954; 7:Qs28fYhwWGLC4HZY3rSpXUKl3mvHPknjADIT1ET2U05Rszz4dqkmmtG/BG1UYIAo3wvoMcdQmEHAB3vt5lhUHjLO39x9Fy1EDPKnDky865X/UlCN1GGdhTWqhrQcm9trrAJMaXufbXTANGuSSEUofG/GAP5xkRYWt89xlgQS0JbVK5tBzKufGXf6u8muZfwZu+OXxfZk+rvLNDblgOBHZowNGcXZrM1BSjr03leIOuMQ9uWfpsx2FDfUdFLeNYj3g02BikHJPbZ/H9Bm/zTdkcBMs3+JdufHHQkPn98L9fT+oJdxNFcFRMUzeYEkothmnwZHAouTpmT1Ql8cwLpMtA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 14:52:53.6714 (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: DM5PR03MB2954 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Export qman_query_fq_np() function and related structures. This will be needed in the caam/qi driver, where "queue empty" condition will be decided based on the frm_cnt. Signed-off-by: Horia Geantă --- drivers/soc/fsl/qbman/qman.c | 4 +-- drivers/soc/fsl/qbman/qman_priv.h | 61 ----------------------------------- include/soc/fsl/qman.h | 68 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 63 deletions(-) diff --git a/drivers/soc/fsl/qbman/qman.c b/drivers/soc/fsl/qbman/qman.c index 6f509f68085e..3d891db57ee6 100644 --- a/drivers/soc/fsl/qbman/qman.c +++ b/drivers/soc/fsl/qbman/qman.c @@ -2019,8 +2019,7 @@ int qman_query_fq(struct qman_fq *fq, struct qm_fqd *fqd) return ret; } -static int qman_query_fq_np(struct qman_fq *fq, - struct qm_mcr_queryfq_np *np) +int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np) { union qm_mc_command *mcc; union qm_mc_result *mcr; @@ -2046,6 +2045,7 @@ static int qman_query_fq_np(struct qman_fq *fq, put_affine_portal(); return ret; } +EXPORT_SYMBOL(qman_query_fq_np); static int qman_query_cgr(struct qman_cgr *cgr, struct qm_mcr_querycgr *cgrd) diff --git a/drivers/soc/fsl/qbman/qman_priv.h b/drivers/soc/fsl/qbman/qman_priv.h index 64781eff6974..22725bdc6f15 100644 --- a/drivers/soc/fsl/qbman/qman_priv.h +++ b/drivers/soc/fsl/qbman/qman_priv.h @@ -89,67 +89,6 @@ static inline u64 qm_mcr_querycgr_a_get64(const struct qm_mcr_querycgr *q) return ((u64)q->a_bcnt_hi << 32) | be32_to_cpu(q->a_bcnt_lo); } -/* "Query FQ Non-Programmable Fields" */ - -struct qm_mcr_queryfq_np { - u8 verb; - u8 result; - u8 __reserved1; - u8 state; /* QM_MCR_NP_STATE_*** */ - u32 fqd_link; /* 24-bit, _res2[24-31] */ - u16 odp_seq; /* 14-bit, _res3[14-15] */ - u16 orp_nesn; /* 14-bit, _res4[14-15] */ - u16 orp_ea_hseq; /* 15-bit, _res5[15] */ - u16 orp_ea_tseq; /* 15-bit, _res6[15] */ - u32 orp_ea_hptr; /* 24-bit, _res7[24-31] */ - u32 orp_ea_tptr; /* 24-bit, _res8[24-31] */ - u32 pfdr_hptr; /* 24-bit, _res9[24-31] */ - u32 pfdr_tptr; /* 24-bit, _res10[24-31] */ - u8 __reserved2[5]; - u8 is; /* 1-bit, _res12[1-7] */ - u16 ics_surp; - u32 byte_cnt; - u32 frm_cnt; /* 24-bit, _res13[24-31] */ - u32 __reserved3; - u16 ra1_sfdr; /* QM_MCR_NP_RA1_*** */ - u16 ra2_sfdr; /* QM_MCR_NP_RA2_*** */ - u16 __reserved4; - u16 od1_sfdr; /* QM_MCR_NP_OD1_*** */ - u16 od2_sfdr; /* QM_MCR_NP_OD2_*** */ - u16 od3_sfdr; /* QM_MCR_NP_OD3_*** */ -} __packed; - -#define QM_MCR_NP_STATE_FE 0x10 -#define QM_MCR_NP_STATE_R 0x08 -#define QM_MCR_NP_STATE_MASK 0x07 /* Reads FQD::STATE; */ -#define QM_MCR_NP_STATE_OOS 0x00 -#define QM_MCR_NP_STATE_RETIRED 0x01 -#define QM_MCR_NP_STATE_TEN_SCHED 0x02 -#define QM_MCR_NP_STATE_TRU_SCHED 0x03 -#define QM_MCR_NP_STATE_PARKED 0x04 -#define QM_MCR_NP_STATE_ACTIVE 0x05 -#define QM_MCR_NP_PTR_MASK 0x07ff /* for RA[12] & OD[123] */ -#define QM_MCR_NP_RA1_NRA(v) (((v) >> 14) & 0x3) /* FQD::NRA */ -#define QM_MCR_NP_RA2_IT(v) (((v) >> 14) & 0x1) /* FQD::IT */ -#define QM_MCR_NP_OD1_NOD(v) (((v) >> 14) & 0x3) /* FQD::NOD */ -#define QM_MCR_NP_OD3_NPC(v) (((v) >> 14) & 0x3) /* FQD::NPC */ - -enum qm_mcr_queryfq_np_masks { - qm_mcr_fqd_link_mask = BIT(24)-1, - qm_mcr_odp_seq_mask = BIT(14)-1, - qm_mcr_orp_nesn_mask = BIT(14)-1, - qm_mcr_orp_ea_hseq_mask = BIT(15)-1, - qm_mcr_orp_ea_tseq_mask = BIT(15)-1, - qm_mcr_orp_ea_hptr_mask = BIT(24)-1, - qm_mcr_orp_ea_tptr_mask = BIT(24)-1, - qm_mcr_pfdr_hptr_mask = BIT(24)-1, - qm_mcr_pfdr_tptr_mask = BIT(24)-1, - qm_mcr_is_mask = BIT(1)-1, - qm_mcr_frm_cnt_mask = BIT(24)-1, -}; -#define qm_mcr_np_get(np, field) \ - ((np)->field & (qm_mcr_##field##_mask)) - /* Congestion Groups */ /* diff --git a/include/soc/fsl/qman.h b/include/soc/fsl/qman.h index 10b549783ec5..0252c32f7421 100644 --- a/include/soc/fsl/qman.h +++ b/include/soc/fsl/qman.h @@ -811,6 +811,67 @@ struct qman_cgr { #define QMAN_VOLATILE_FLAG_WAIT_INT 0x00000002 /* if wait, interruptible? */ #define QMAN_VOLATILE_FLAG_FINISH 0x00000004 /* wait till VDQCR completes */ +/* "Query FQ Non-Programmable Fields" */ +struct qm_mcr_queryfq_np { + u8 verb; + u8 result; + u8 __reserved1; + u8 state; /* QM_MCR_NP_STATE_*** */ + u32 fqd_link; /* 24-bit, _res2[24-31] */ + u16 odp_seq; /* 14-bit, _res3[14-15] */ + u16 orp_nesn; /* 14-bit, _res4[14-15] */ + u16 orp_ea_hseq; /* 15-bit, _res5[15] */ + u16 orp_ea_tseq; /* 15-bit, _res6[15] */ + u32 orp_ea_hptr; /* 24-bit, _res7[24-31] */ + u32 orp_ea_tptr; /* 24-bit, _res8[24-31] */ + u32 pfdr_hptr; /* 24-bit, _res9[24-31] */ + u32 pfdr_tptr; /* 24-bit, _res10[24-31] */ + u8 __reserved2[5]; + u8 is; /* 1-bit, _res12[1-7] */ + u16 ics_surp; + u32 byte_cnt; + u32 frm_cnt; /* 24-bit, _res13[24-31] */ + u32 __reserved3; + u16 ra1_sfdr; /* QM_MCR_NP_RA1_*** */ + u16 ra2_sfdr; /* QM_MCR_NP_RA2_*** */ + u16 __reserved4; + u16 od1_sfdr; /* QM_MCR_NP_OD1_*** */ + u16 od2_sfdr; /* QM_MCR_NP_OD2_*** */ + u16 od3_sfdr; /* QM_MCR_NP_OD3_*** */ +} __packed; + +#define QM_MCR_NP_STATE_FE 0x10 +#define QM_MCR_NP_STATE_R 0x08 +#define QM_MCR_NP_STATE_MASK 0x07 /* Reads FQD::STATE; */ +#define QM_MCR_NP_STATE_OOS 0x00 +#define QM_MCR_NP_STATE_RETIRED 0x01 +#define QM_MCR_NP_STATE_TEN_SCHED 0x02 +#define QM_MCR_NP_STATE_TRU_SCHED 0x03 +#define QM_MCR_NP_STATE_PARKED 0x04 +#define QM_MCR_NP_STATE_ACTIVE 0x05 +#define QM_MCR_NP_PTR_MASK 0x07ff /* for RA[12] & OD[123] */ +#define QM_MCR_NP_RA1_NRA(v) (((v) >> 14) & 0x3) /* FQD::NRA */ +#define QM_MCR_NP_RA2_IT(v) (((v) >> 14) & 0x1) /* FQD::IT */ +#define QM_MCR_NP_OD1_NOD(v) (((v) >> 14) & 0x3) /* FQD::NOD */ +#define QM_MCR_NP_OD3_NPC(v) (((v) >> 14) & 0x3) /* FQD::NPC */ + +enum qm_mcr_queryfq_np_masks { + qm_mcr_fqd_link_mask = BIT(24) - 1, + qm_mcr_odp_seq_mask = BIT(14) - 1, + qm_mcr_orp_nesn_mask = BIT(14) - 1, + qm_mcr_orp_ea_hseq_mask = BIT(15) - 1, + qm_mcr_orp_ea_tseq_mask = BIT(15) - 1, + qm_mcr_orp_ea_hptr_mask = BIT(24) - 1, + qm_mcr_orp_ea_tptr_mask = BIT(24) - 1, + qm_mcr_pfdr_hptr_mask = BIT(24) - 1, + qm_mcr_pfdr_tptr_mask = BIT(24) - 1, + qm_mcr_is_mask = BIT(1) - 1, + qm_mcr_frm_cnt_mask = BIT(24) - 1, +}; + +#define qm_mcr_np_get(np, field) \ + ((np)->field & (qm_mcr_##field##_mask)) + /* Portal Management */ /** * qman_p_irqsource_add - add processing sources to be interrupt-driven @@ -1033,6 +1094,13 @@ int qman_alloc_fqid_range(u32 *result, u32 count); */ int qman_release_fqid(u32 fqid); +/** + * qman_query_fq_np - Queries non-programmable FQD fields + * @fq: the frame queue object to be queried + * @np: storage for the queried FQD fields + */ +int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np); + /* Pool-channel management */ /** * qman_alloc_pool_range - Allocate a contiguous range of pool-channel IDs