From patchwork Fri Mar 3 14:52:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Horia_Geant=C4=83?= X-Patchwork-Id: 735131 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vZXKf4P6vz9rxw for ; Sat, 4 Mar 2017 01:55:18 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="H3Arb3D0"; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=h4lIsshSzr54M3SiICYVl0Abj6Y/DEO6u9EWBIdUYxs=; b=H3Arb3D0cNbrWL TWNfVsxBRvY88bpn8PwHV51puZ1ErO1XcJjHMmqJnPkpbijdbc3GhLDxxlxQ+ZttAp92ycBd1uzO8 3QWSs+4u1nSdGgZi4gYyHj0SoqrX3LvwnRwPIbPEEOQqcyHun2xL94F533IrQH+6MKQ/3FhHKoQA3 AFWPcC6al+99uB5b91TSWn9x8oc8sGVuVzys3qBeGBLc/TrTtZFTepiFfe1E+c7nSoZCksGnIKC6J WFg03tWEUYts9v7DUDxOmallfQwNvo4TmndZMUEDhfQXci7w/T+7aElWFdikzqQwNdm+vdVvVI467 QvuROOlkHNDSuY4SF2Aw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1cjobx-0002Re-Dc; Fri, 03 Mar 2017 14:55:13 +0000 Received: from mail-co1nam03on0071.outbound.protection.outlook.com ([104.47.40.71] helo=NAM03-CO1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cjoa7-0008Pu-7X for linux-arm-kernel@lists.infradead.org; Fri, 03 Mar 2017 14:53:21 +0000 Received: from CY4PR03CA0012.namprd03.prod.outlook.com (10.168.162.22) by SN2PR03MB1951.namprd03.prod.outlook.com (10.164.114.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Fri, 3 Mar 2017 14:52:56 +0000 Received: from BN1AFFO11FD030.protection.gbl (2a01:111:f400:7c10::190) by CY4PR03CA0012.outlook.office365.com (2603:10b6:903:33::22) 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:56 +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 BN1AFFO11FD030.mail.protection.outlook.com (10.58.52.168) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.947.7 via Frontend Transport; Fri, 3 Mar 2017 14:52:55 +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 v23EqdQT018743; Fri, 3 Mar 2017 07:52:53 -0700 From: =?UTF-8?q?Horia=20Geant=C4=83?= To: Herbert Xu , Scott Wood , Roy Pledge Subject: [RFC 4/7] soc/qman: add helper functions needed by caam/qi driver Date: Fri, 3 Mar 2017 16:52:10 +0200 Message-ID: <1488552733-20806-5-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: 131330263759158043; (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)(39850400002)(39450400003)(39860400002)(39410400002)(39380400002)(39840400002)(39400400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(47776003)(77096006)(105606002)(106466001)(104016004)(50986999)(50226002)(92566002)(38730400002)(4326008)(54906002)(76176999)(50466002)(8676002)(86362001)(2870700001)(356003)(5820100001)(23676002)(33646002)(8656002)(2906002)(189998001)(5660300001)(36756003)(2950100002)(305945005)(8936002)(626004)(81166006)(7416002)(6666003)(53936002)(6636002)(85426001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB1951; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD030; 1:vhMQ50+jAz4vNjH4kNp4yvqAgt8nT2nm0KxsdwKHWKPjLgHTSU2VFv0h+km39Lei25ahESU4fHeRPlU4ctzHWLOfNQcSrIN1BiA937rYAKmvfnrPEMuIPTyudHd3i93VAVDwpmk/y3xYZnRLuLyTbi7BCLBHIdssOx+N31PvZaocA6IcXG0bKMyByzk9GmgKAYGDOWAcgLpaJMgqKHrUbv0HCmS4hmeBMUK9E97bvlFlzotq9tEPmWbZpb9fMBIGa6Ad23+ffi0lfNfijUxUR2BCR66vjh3Cwo7R5oihn3GzLSYQqZlKmsdEttDar7DF1LwxnBm3ehiFYXwophJR2ar0sDVaJBaBh32wYG4cRaFmR/e5ZyO5TTRjGpc6niqRlmxc5ql9a2rynA6Su7pvUJC8mMpRMF6CURccEniAC9pIUvGM7Llv0Rtsdxu3s9+zoCX4nkJjemOkzLREN7Y04UC9Qx3+ruPPjmC/4NsPFpizpB6F3K9zF9+G0OmwmSFJOP19vDrSmBYN+ogJcaTcgD0Y8ZllO0ekVR+qU9t/ZbVAXkLaNLsdbl++o2uaqZrJzAD9TMZLIaAH1mOkC7OaDQ6nVzNfUpv9EbhJw8TlrA1ZcCejbYpg9l+AHkxF094zcwc0FzJ94AH5d7f+lRZEmlbc5M4uSxHSGSUgZYu/lZmrdivVpM9Giv9qIqiJ0l+0UNoaTlU4PmyxxVwkkwRivA== X-MS-Office365-Filtering-Correlation-Id: bfb517df-177d-4194-19bc-08d46244fa14 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:SN2PR03MB1951; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB1951; 3:dYejWMdLalhC0EWN1pG4i2MY9dfP2CH5TGdcBa7C3+GSjkKGNFbne9YOtTVqLHLS+VFf1ZR8KD3thJ0F7XyBi3dR3T9rh6aa0uprIv26uaPeMmC5o4H0oYr8lIY6V2GthqivW2fA/sQ8RSh1/W05YC31RvcwUaW/SJBlqPbaPrqD0QcIoMLwg9MxLfZGGO11KWemMT5SCiS4Xom3V21I0Rv+JB/GXJgQirSqECNbbJab5IDSjLB+HXdLA+kQ539M2E/LmziOnWnUPNpaD0dQF9xyT7+iaqVQndcHqSnNaKw/y68MVtA9hKq6bcBxl7/TceRS4Qug3R62xok+unwt94jnsVc9mCKQrdcO0YhNxW0upqMyvDnHsUGIW6IZNO8l; 25:hxImXU/K4hNZEU6KKNoAAgKL3DtssD6XRrPPLgsbwQVXCOGVfZ7HrGcexbR0G6Sip/8/T4PBlMP8jbsfTwVxacfF9wonJgQk5G+6I1TymM4owbV8Dxwj58fs5OdGgB6mYeYMRRHWM+wqveZrVclxeMrW9pDwTgWQxgLG+DrpwQaxONsNvxL06MW6nzorof5aXTcw4gH44uQuF4pmvVJC96j3l3EYSZMhOaTwczluQdrIBSoHrV/jkvsUAzXV2HomOvcArzxi4mOPt6++wlKrezEA8gX8PJEtPxCPgyWu23aFR4QvM39Lq6tTcbV3Q9MFjxgR6DfD4ogCRQZkPD1cJ7tiyYWyzzzRXEKFdQJ7gjbXBKaBb41w6gtkHTbd8ClyAUyJXziSaR6/hR86VwFGFIOchssn96DCUWfYq14dPMgwKeg6vS8hWG9l5qDv34kiJMfuhip/V2N49ibqSVjI5A== X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB1951; 31:huRfB67RA7KumNlD5E2m/nGB9oyhOraWP+lvCKGg4FhS/0l5J4bjrXvVuekXug+vwbCXKg3BVCGuh/0p3zun/oNvX9KB2VUE4WZrvkUUN8LN3g2Q0V/u0yKfERDwQaWSJxFqiy8y4lJkphtX1WvWYZYxE5bmJiT/cLkiCw4AgcwAkb8Pfj7jI9GJ9Wl6FioeoQVcIr0JPInw4rNYrWinjDjmk5NeXNQ480qVeKhBk8AzCuVq5938QLbRrLV/OyY4 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)(13023025)(13015025)(13017025)(13018025)(13024025)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123561025)(20161123563025)(20161123559025)(20161123565025); SRVR:SN2PR03MB1951; BCL:0; PCL:0; RULEID:(400006); SRVR:SN2PR03MB1951; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB1951; 4:mFzAgEg0SGL+Rg05eTzQKSGhzF3qm2Sj2tb61royzrIBVbHBmvl+gtHXFeelEGTRdwI1FdugAmW5OGmcCwUSPhgo9WcAqiXVWLv9+MzDT0J2x/R86J1gkB4ZHNYHcolNu3wIOjWUon4OLa90l5v4i6FbYjWuXcdMaOPmF3rO2xGLrp0O22O5w4FQesIH8oP2TcJAIwfbjztjLHao7gVpxxxuwCuf/e+TZya7XVglZa10E/YTZYyj9vz7BaQdIoi4uZCGoIs3A411D+zWa067Mc8XE0815ZfAuvojiVCvtNgA2n8ZRy1RMAfWpREz7SHStcpkHHBVzTFuGu6Epf+jH+Q0iSBEkRAnteP85tP5j3tBxYVN5fMsExz4av86huawxW+cqLONV1YvR11heWyb++rAbcMUmUwgte41khrVhnhvJog/KKWcKIcBIFiLYmv3++Bfc5OfR7M/6fQQtIcZKzFCQMVIWfKHiDEuiWXG58yrPpA+BTjjczzyQ0EKEhHfBpGgn8Ly7zTo6yayPFJDdIjHDkmV5SIapzzo/1hyeSIDDCWwbXxgA4TrG5KvnyEc/2rEudLs/yHjl16eA9Kwsr1dHSgqcaMlCaqfc2BUKkzE/a+0reycg6hRLU+OnF1GtWbYyPAGEG8M+f7ldwShvs6p6Fwz3ido4MXg4WKPz8k/o7hCmfhrUN1uFESa2FGCDbna9KASo6Zj25j7hDMqK8GDOWvwmM8RX9hh5d1BNVrQ8In5iKCfgxo6I2bHrdQOyWP0gZV4kFiL5B/OS6cFpg== X-Forefront-PRVS: 0235CBE7D0 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjJQUjAzTUIxOTUxOzIzOm9YV3hCYTZLbGlWVWkrL2ROdS9UaTBFbUs1?= =?utf-8?B?ZzZUVCtOTURuQ1J5b29Qa2dkYTRQMlFqZmNYOHF1dGxlV1lsNDhjLzFVQzEw?= =?utf-8?B?WEtJV1FjK2xIU0hoZWd1NlRWUVdaaUpHS080c1ROSHdxVWZnVUdoWFR0WWEw?= =?utf-8?B?WXVFdkJxNzJ4NmYwQkE5K1hGcjRTSDY0WlVPd0UrTFNsT1dncXZqcUhzUGFs?= =?utf-8?B?N2JTaXNOYXNKcEcrQWE1alYrNGlRTVlIWnpNVitDcDI5Y0w0WkdOWmI3WWlY?= =?utf-8?B?SzIxOHNRN2lYV3NHZDJHODVLamlsLzc0TlRObU9LMFAzai9oQkZpbzVTbXdD?= =?utf-8?B?TGJEVGFvZG9sSW5HekN2VE8rSXVvNlFRdjZMZUZEUGJTK2taV3VaVUoreEdu?= =?utf-8?B?N1kwd1VEVnY5RlRsdjJhTDdLOXBCMXdzYklrS1BvbUNSek9oR01uMDZXN2VH?= =?utf-8?B?K1VJV3VRTzJYb3RQS3FaQVVmMlJTRmF1clRRaC9zSFVielNBYkUwNGZHRDRB?= =?utf-8?B?bVhUc09wMEJ4ZmRwMlZSSnhqRy9NbURXS1NHQmJvMUhCQU94bTRrNVN4MmUz?= =?utf-8?B?cjEwbmgwZFQrMnlYK1QzWHduVWZEUzRmS1QvZ3BDbytVd1RzNGwzV2U5Qloz?= =?utf-8?B?bGZ4Ukx2YXRKNS9TNkVBYWlUb1NBVHhLYitzRlV1RGFPR0Y2T3orRW9qWWsz?= =?utf-8?B?SFU4RzgzNklnS3FJdXBNOUJUVUJjYzJBSmU1aFBqSmFNcVRaekRPcWZ0dit6?= =?utf-8?B?VU93ek5XZzlQSDgrdWFOZDdISjhCZDloMVc5OFhJMUtrUXcva2xINS9jSnNq?= =?utf-8?B?WkdQTWhlWkFPQU5BamZoUkxPbDlWbFVFMXN3MkF0VVREdzRYTHEzTHJZdlFX?= =?utf-8?B?ZjJzMllhUDVTQVhkRVFqZHlVVTE0Q1B2SStKTGJMbngrRjQvWDhTR29Ja3ZI?= =?utf-8?B?YjJ2c0l1NDdkakJIQkhKMmx4NjVvV0dRcDhFUTJEeVFUdzFjWnM2a0JnY0hm?= =?utf-8?B?djVZemxHd2RZWUtReFNUV1YyN1BmTmcvUVVnUjdNdnh6b1R5eGN1WWR1djV3?= =?utf-8?B?Wk45Umx2SE8xdS9EamJjR1JVTTMxVWN1ZnY3RnQxM0dPb2tyYnN2QkpIUWVs?= =?utf-8?B?ZmZZbVRhd3dieEVpdkU1OW0wYnV3WHBJNVk0SUpEbk5XUFJNY05jWUhyWDBo?= =?utf-8?B?azBoZlFXSk8xeGpZajFQcFF0aEhxVkdyeDJGQ2dkR3NwQVBzSkFUcjFVTzNu?= =?utf-8?B?Und3U29rZFdXWVBVWDI5TEJ5eXg0OThPMUd0dUZPM3kzUWIrQW8wcWF1aTNx?= =?utf-8?B?ejR4NEYzeXBvK3o4T1dzRWl1a1IvbTFCODd4WWVZZHUrL0wyNUNyL2VJN0J1?= =?utf-8?B?NGpnWkVsNklqVDlJaDVsWHF0OS9pd2s3U3JpUkJDeXRmWjVoVit1RlFEbDBp?= =?utf-8?B?ODVmdUlEaUhEZjNEVXRWeHlmcjdyRWU2TFpRYkJpcFpVTm5NR3lKcTAzU2dQ?= =?utf-8?B?bFoxUXBFOW1KNWw3dHRtMjh3U1djNnpnT0s2T3ZZalBIdnFiQ0RNM241M2pL?= =?utf-8?B?NWY1SmJXaWRBQlJ1dnhYaFkvcGdFQ25PNytrODZYTklEWWFwNVIwenFDQzZG?= =?utf-8?B?ZG5JYmVsVjV4RVJXNkEwT3VkMXdlVGpzL2UwaEQ4QThWYkhCOTVWTkZ5MElL?= =?utf-8?Q?a0Rq9M/5H4+AjKWo7D2K2VmJrE+FBNGuE8kQsfO?= X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB1951; 6:qWpOzZzmw9z7O2LxIQKg7yP14VbuAxN/Ei2pvBHbis5fxxGoK4ZQOVaWlfhBXgBc+5V3EFveZB759p+pleESxS8B0HvRULEfJb4WcDfd50NW7jUwlq7u3P9tzOutf7nVGXREvu4tJTgSqwvDEzlYzWxN5A9O19zXb7rgv5R65q361JYEuA7wF8HudBvKpT/7R4XKTf14G433+CYoB26BCngo0t0G6cOQZXsGjsOYon2hKFzVUpRNclCrGMGX30GSOGJZUfqMkwm0emtlAZmCqcX9QP324ksrTLYH0BMJtrLhhEh21mrJoyXfi2APmJRaPzZqwXZ/Egc0vu4SFwkqvffJwA4JssqB1Pg4YT2JypmsbuxwR/FnbUFzPxxNcr7epKSX1BfRHnoXJgQZROLesxr+lkuFYswnzpUBy7OM8xo=; 5:VIRsUbg6rJZfHq6Bss7dQ/uqaIL3VRFh3HteUdiRRjuK2/CFVV7OPm+bbrsk9WXDy8MsTjXF6LMoGyilCCeMsVfUrgVxQv8njs5TX0g/9YGcKqtlH9e3j3o6f6Vj+4/5wqOFyaBK+3RAFJ1Ea/6gdia8mfwgSpxarLxZ4v/hLA2E4EzDkTbI5cVVL2Gfgbms; 24:aK3ww6Iv5UWlCgAyHhhbQwxp2tYN1BFSEPMCVjDuf54IVlE5RRWVh+2zI3R6QTeSKAohpUdV6ql69hYHCLdjzcZS6Gwis0DDG4BhqRZYUdw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB1951; 7:mNLZ9RDt75qkunJj43dutdNzmlb7MO2Gr/9YUSs2tXD652zGi6qpYe3u8UIBXU/OZY7IgIL1W4riSdUILsSY4QElRwnYnoeeTnzMrFHGfDi+tGRl/VWxpsa+LhGWFb9H7AnlW/jeV5KXBQeK4Sw8oyP8GPnhLTguVXs17JKFgLPEC4LTmnweW0N6qk6nmBpWTRlcuWDwhkTGsOaTK1KJKNqnJZiPrCK8ehvMoz/o9dtp7/HUEORHDwaKbVUFc1aDueobjUIEmat3mqvP+AtuyKknc4dmW5/JGgysMqhaLPCdzxtZbkiMffc06LEBySAhsI0N9B4uy/ZH+Zqvo5Vgow== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 14:52:55.6350 (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: SN2PR03MB1951 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170303_065319_395946_FBC84593 X-CRM114-Status: GOOD ( 14.59 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.40.71 listed in list.dnswl.org] -0.1 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [104.47.40.71 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arm-kernel@lists.infradead.org, Claudiu Manoil , Cristian Stoica , Dan Douglass , linux-crypto@vger.kernel.org, Vakul Garg , Alexandru Porosanu Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org Add helper functions, macros, #defines for accessing / enabling qman functionality from caam/qi driver, such that this driver is not aware of the need for data conversion to big endian. qman is updated to use these helpers internally. Signed-off-by: Horia Geantă --- drivers/soc/fsl/qbman/qman.c | 16 +++++------ drivers/soc/fsl/qbman/qman_test_stash.c | 5 ++-- include/soc/fsl/qman.h | 47 +++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 12 deletions(-) diff --git a/drivers/soc/fsl/qbman/qman.c b/drivers/soc/fsl/qbman/qman.c index 3d891db57ee6..7668ff53cd90 100644 --- a/drivers/soc/fsl/qbman/qman.c +++ b/drivers/soc/fsl/qbman/qman.c @@ -1764,16 +1764,15 @@ int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts) if (fq_isclear(fq, QMAN_FQ_FLAG_TO_DCPORTAL)) { dma_addr_t phys_fq; - mcc->initfq.we_mask |= cpu_to_be16(QM_INITFQ_WE_CONTEXTB); - mcc->initfq.fqd.context_b = cpu_to_be32(fq_to_tag(fq)); + qm_initfq_setbits(&mcc->initfq, QM_INITFQ_WE_CONTEXTB); + qm_fqd_set_contextb(&mcc->initfq.fqd, fq_to_tag(fq)); /* * and the physical address - NB, if the user wasn't trying to * set CONTEXTA, clear the stashing settings. */ if (!(be16_to_cpu(mcc->initfq.we_mask) & QM_INITFQ_WE_CONTEXTA)) { - mcc->initfq.we_mask |= - cpu_to_be16(QM_INITFQ_WE_CONTEXTA); + qm_initfq_setbits(&mcc->initfq, QM_INITFQ_WE_CONTEXTA); memset(&mcc->initfq.fqd.context_a, 0, sizeof(mcc->initfq.fqd.context_a)); } else { @@ -1795,8 +1794,7 @@ int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts) if (!(be16_to_cpu(mcc->initfq.we_mask) & QM_INITFQ_WE_DESTWQ)) { - mcc->initfq.we_mask |= - cpu_to_be16(QM_INITFQ_WE_DESTWQ); + qm_initfq_setbits(&mcc->initfq, QM_INITFQ_WE_DESTWQ); wq = 4; } qm_fqd_set_destwq(&mcc->initfq.fqd, p->config->channel, wq); @@ -1816,7 +1814,7 @@ int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts) } if (opts) { if (be16_to_cpu(opts->we_mask) & QM_INITFQ_WE_FQCTRL) { - if (be16_to_cpu(opts->fqd.fq_ctrl) & QM_FQCTRL_CGE) + if (qm_fqd_isset_fqctrl(&opts->fqd, QM_FQCTRL_CGE)) fq_set(fq, QMAN_FQ_STATE_CGR_EN); else fq_clear(fq, QMAN_FQ_STATE_CGR_EN); @@ -2321,7 +2319,7 @@ int qman_create_cgr(struct qman_cgr *cgr, u32 flags, qm_cgr_cscn_targ_set(&local_opts.cgr, PORTAL_IDX(p), be32_to_cpu(cgr_state.cgr.cscn_targ)); - local_opts.we_mask |= cpu_to_be16(QM_CGR_WE_CSCN_TARG); + qm_initcgr_setbits(&local_opts, QM_CGR_WE_CSCN_TARG); /* send init if flags indicate so */ if (flags & QMAN_CGR_FLAG_USE_INIT) @@ -2840,7 +2838,7 @@ static int cgr_cleanup(u32 cgrid) err = qman_query_fq(&fq, &fqd); if (WARN_ON(err)) return err; - if (be16_to_cpu(fqd.fq_ctrl) & QM_FQCTRL_CGE && + if (qm_fqd_isset_fqctrl(&fqd, QM_FQCTRL_CGE) && fqd.cgid == cgrid) { pr_err("CRGID 0x%x is being used by FQID 0x%x, CGR will be leaked\n", cgrid, fq.fqid); diff --git a/drivers/soc/fsl/qbman/qman_test_stash.c b/drivers/soc/fsl/qbman/qman_test_stash.c index e87b65403b67..d2bf453092d7 100644 --- a/drivers/soc/fsl/qbman/qman_test_stash.c +++ b/drivers/soc/fsl/qbman/qman_test_stash.c @@ -406,9 +406,8 @@ static int init_handler(void *h) goto failed; } memset(&opts, 0, sizeof(opts)); - opts.we_mask = cpu_to_be16(QM_INITFQ_WE_FQCTRL | - QM_INITFQ_WE_CONTEXTA); - opts.fqd.fq_ctrl = cpu_to_be16(QM_FQCTRL_CTXASTASHING); + qm_initfq_setbits(&opts, QM_INITFQ_WE_FQCTRL | QM_INITFQ_WE_CONTEXTA); + qm_fqd_set_fqctrl(&opts.fqd, QM_FQCTRL_CTXASTASHING); qm_fqd_set_stashing(&opts.fqd, 0, STASH_DATA_CL, STASH_CTX_CL); err = qman_init_fq(&handler->rx, QMAN_INITFQ_FLAG_SCHED | QMAN_INITFQ_FLAG_LOCAL, &opts); diff --git a/include/soc/fsl/qman.h b/include/soc/fsl/qman.h index 0252c32f7421..fc133c658385 100644 --- a/include/soc/fsl/qman.h +++ b/include/soc/fsl/qman.h @@ -168,6 +168,12 @@ static inline void qm_fd_set_param(struct qm_fd *fd, enum qm_fd_format fmt, #define qm_fd_set_contig_big(fd, len) \ qm_fd_set_param(fd, qm_fd_contig_big, 0, len) #define qm_fd_set_sg_big(fd, len) qm_fd_set_param(fd, qm_fd_sg_big, 0, len) +#define qm_fd_set_compound(fd, len) qm_fd_set_param(fd, qm_fd_compound, 0, len) + +static inline int qm_fd_get_status(const struct qm_fd *fd) +{ + return be32_to_cpu(fd->status); +} static inline void qm_fd_clear_fd(struct qm_fd *fd) { @@ -233,16 +239,31 @@ static inline void qm_sg_entry_set_len(struct qm_sg_entry *sg, int len) sg->cfg = cpu_to_be32(len & QM_SG_LEN_MASK); } +static inline void qm_sg_entry_set_e(struct qm_sg_entry *sg, int len) +{ + sg->cfg = cpu_to_be32(QM_SG_EXT | (len & QM_SG_LEN_MASK)); +} + static inline void qm_sg_entry_set_f(struct qm_sg_entry *sg, int len) { sg->cfg = cpu_to_be32(QM_SG_FIN | (len & QM_SG_LEN_MASK)); } +static inline void qm_sg_entry_set_ef(struct qm_sg_entry *sg, int len) +{ + sg->cfg = cpu_to_be32(QM_SG_EXT | QM_SG_FIN | (len & QM_SG_LEN_MASK)); +} + static inline int qm_sg_entry_get_off(const struct qm_sg_entry *sg) { return be32_to_cpu(sg->offset) & QM_SG_OFF_MASK; } +static inline void qm_sg_entry_set_off(struct qm_sg_entry *sg, int off) +{ + sg->offset = cpu_to_be16(off & QM_SG_OFF_MASK); +} + /* "Frame Dequeue Response" */ struct qm_dqrr_entry { u8 verb; @@ -494,6 +515,21 @@ static inline int qm_fqd_get_wq(const struct qm_fqd *fqd) return be16_to_cpu(fqd->dest_wq) & QM_FQD_WQ_MASK; } +static inline bool qm_fqd_isset_fqctrl(const struct qm_fqd *fqd, u16 mask) +{ + return be16_to_cpu(fqd->fq_ctrl) & mask; +} + +static inline void qm_fqd_set_fqctrl(struct qm_fqd *fqd, int val) +{ + fqd->fq_ctrl = cpu_to_be16(val); +} + +static inline void qm_fqd_set_contextb(struct qm_fqd *fqd, int val) +{ + fqd->context_b = cpu_to_be32(val); +} + /* See "Frame Queue Descriptor (FQD)" */ /* Frame Queue Descriptor (FQD) field 'fq_ctrl' uses these constants */ #define QM_FQCTRL_MASK 0x07ff /* 'fq_ctrl' flags; */ @@ -616,6 +652,16 @@ struct qm_mcc_initcgr { u8 __reserved3[32]; } __packed; +static inline void qm_initfq_setbits(struct qm_mcc_initfq *p, u16 we_mask) +{ + p->we_mask |= cpu_to_be16(we_mask); +} + +static inline void qm_initcgr_setbits(struct qm_mcc_initcgr *p, u16 we_mask) +{ + p->we_mask |= cpu_to_be16(we_mask); +} + /* INITFQ-specific flags */ #define QM_INITFQ_WE_MASK 0x01ff /* 'Write Enable' flags; */ #define QM_INITFQ_WE_OAC 0x0100 @@ -642,6 +688,7 @@ struct qm_mcc_initcgr { #define QM_CGR_WE_MODE 0x0001 #define QMAN_CGR_FLAG_USE_INIT 0x00000001 +#define QMAN_CGR_MODE_FRAME 0x00000001 /* Portal and Frame Queues */ /* Represents a managed portal */