From patchwork Thu Apr 20 19:34:17 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haiying Wang X-Patchwork-Id: 9691185 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 0C754601D4 for ; Thu, 20 Apr 2017 19:36:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EE4611FE6A for ; Thu, 20 Apr 2017 19:36:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E08D12018F; Thu, 20 Apr 2017 19:36:04 +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=-1.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id CEE641FE6A for ; Thu, 20 Apr 2017 19:36:03 +0000 (UTC) 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=ITDHoiVn6QnLL3XxI6Db3Jw9KzRPDSIhpKpgUlKqQy8=; b=gYOQbzSVWLQMUK +1PKJYdNj5SLRA1qseyEwQxVi2UCfVbUijGyRnNAEtie826wRX98G2+EXC92a3URFdHtWmjhJG29R yuGh/cnEN/GrkXQV2WIh2JiSIUUxAd/1Me0TZ69XefD8q4zTev8hXvilDZcvmb2Hp3OttVKzYbcTM JSlj5K9A9KpluDbPg5Hd36dlKo5kJCzb8gQSiYtQz6ntIgrDxFi7oqDD5hK7azPLYTvuANeHIF+5e qtPRdUn57YID9Ras5wO1mufvKzl8VnxQh8DanGSMSgA5s8VEJopR+Egf6pb9yfe5E8SbNRvq0zPFL FCaHnnV85JDkQa11rnMQ==; 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 1d1Hrs-0000p0-IB; Thu, 20 Apr 2017 19:35:52 +0000 Received: from mail-bn3nam01on0055.outbound.protection.outlook.com ([104.47.33.55] helo=NAM01-BN3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1d1Hrb-0000Ir-Pq for linux-arm-kernel@lists.infradead.org; Thu, 20 Apr 2017 19:35:38 +0000 Received: from BY2PR03CA054.namprd03.prod.outlook.com (10.141.249.27) by DM2PR0301MB0606.namprd03.prod.outlook.com (10.160.95.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10; Thu, 20 Apr 2017 19:35:13 +0000 Received: from BN1AFFO11FD031.protection.gbl (2a01:111:f400:7c10::170) by BY2PR03CA054.outlook.office365.com (2a01:111:e400:2c5d::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13 via Frontend Transport; Thu, 20 Apr 2017 19:35:13 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) 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.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1AFFO11FD031.mail.protection.outlook.com (10.58.52.185) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1019.14 via Frontend Transport; Thu, 20 Apr 2017 19:35:12 +0000 Received: from otc-sw1.am.freescale.net (otc-sw1.am.freescale.net [10.29.200.182]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v3KJYxw7009624; Thu, 20 Apr 2017 12:35:11 -0700 From: Haiying Wang To: , , Subject: [PATCH 2/3] bus: fsl-mc: dpio: enable qbman CENA portal memory access Date: Thu, 20 Apr 2017 15:34:17 -0400 Message-ID: <1492716858-24509-3-git-send-email-Haiying.Wang@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1492716858-24509-1-git-send-email-Haiying.Wang@nxp.com> References: <1492716858-24509-1-git-send-email-Haiying.Wang@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131371905127389076; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39410400002)(39380400002)(39850400002)(39400400002)(39860400002)(39840400002)(39450400003)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(38730400002)(39060400002)(189998001)(85426001)(8676002)(48376002)(105606002)(106466001)(77096006)(8656002)(50466002)(2950100002)(36756003)(4326008)(2906002)(54906002)(2201001)(50226002)(86362001)(47776003)(8936002)(53936002)(50986999)(5003940100001)(104016004)(81166006)(76176999)(5660300001)(305945005)(356003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0606; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD031; 1:vxSuz+Pk5+Rx59oJQK8igK8dH/ytBQMD3X9qAomLdg7oS4nDjmKu1GMJhEGpqUeBJmg+W7mV7OnNtPU5lP9bGQDr8ja+9wMdWwj0RTJeU3MYcbneglsrnO9ForC8wmT2z5/rrvAK3KZpZ7CZkvT46VlisMBgQF+DlwVkQGJjetX3jlrR/uA2yqjD48ja3Xj/gMW3Ip2O0rsmGI+LvZbWpyrqgwzAqi4zL1a6rarX0rN91SUM8/eQ3c1y6NbAVrJ8QnnOx5hq3Xg9dzNEbAWi79pBsncdqcyWPCn7hJMJQQZ6t/w/G2+ZlltygvLgcljpBGlRdsXIWqSyzlZVZ+3eyUTsHVUbJyZ3Ch8Fr9cRXbwL7D7j1XCgb65sR4+tNsl3a1BxvyXFGvSGSMpldkvaPaPbgGcFJ36ah3bWEaNz1Q5dfKdPYWqDWag67ZcVijRizzGXg7MWKzgz47te2IapFyxOd/Hy9yc2BDudgXMn5y/RfnQdTq7X9LLhWox4Hd+xR/hlc+Zym/NUJwyWQCiHa9GtdpeNRF5hilC5XZWLpR13rf8Nczjc21H8OYfzb8LPIgKW9J5ekcrBS9UMVbRe6XdrM9dWho9DNqQDFYRIVu/JlRTcw1YJ0nV4lkAWV73Qqyi+hwzZbf5v9aYv+j5Fi/JDnBWY7tcxwqlDtfJAo+CY/8PT6qyT5ytFp/MIEk2DXE1rkRBU5K9/I3Q3Fm4WTukgWA+lBEVnTZNvUNUy6Xc= MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5fe79bbb-69ab-4fbe-d4d2-08d488245d07 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:DM2PR0301MB0606; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0606; 3:wu/uU4Oy28+oyIPA3+csP5bgMbcR98S3vRmX9Yt6+9tSSKDgeZR9MqUWgt1ISvb788esuc7bWt+Njq+y7xZqgiuUFQXmULZTasm8q89nYgEcGY8Qg+SXzMZFBcuwOy2LKh5ImHnqCI+nB4Kqp0cYnSoNRp8SvsTUgw5XWkoQpVtwuEzlvePW7r1XnrA8k5ETUGumJUxjPT/ME6h1HqE4lZX0dSY5p5RuqE8iskd5HElFxnCym1oPVzRvu4FndquWTSKr8PU1XVkiK5zD6fPCt/V8Nofm/bZcH0kpphjpab7F0sfO+9BWV/wSzmGl0X1zbjX2sSOxFRtkw2L9WXup2wRr7eVIQkadAn/q3xxBN37fL/0KHPRJu9Pi3Pz9864LPGCysmHd1GcclkZk1XpsKcuuZ3LA8IjdqfhdUa5jEyjQFDH1MOnviNy/Z4NB3xM1; 25:U93gVtlnN4gBjgaqx80Rl2S/EO4HUlSuBrsbI9rgELFFwdGKuhr4pBsJxRgluks5SDYb1pvNT8uvzft53ZEv0s1zqx5Cnb4usVXJ4tt8/EYNlYsI0bA9LrxIGJoNsoQdx0qlyl1qAepzefwfER+sdTTGpHDW4vBL1vwkPz7MBt7b/zM6Kx0+W7A23BAryaZrZ7BqZRipbJYeZYG/7oaOyGRd7t1EsPm0fsQe12h90dkxkvkEAHf2GXGvaMX03MznzWy0qUVGVTqXmHKi9lhf6oNJoZEtpJ8IIfStnWZsscG9p3k5NxehJ6m75lORThqenEH3uIynnoaU1XrOqtJL7nKX4YKqVHwMVa3A/APuYIdwj+a3Ck/qzcb37YvHm2E8u8knh+MUAMTKfHCk36myZaYjWv/+L0s7vABgREDkgQiUA6W6/4Eusoenxf1wiL/q3h1iEx0ytfFr7uYfurWTNw== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0606; 31:fJ84v/8FwuwTSh6REBZKXzt0ZTod3smBvfHPoFUKlL5poWqHrLzFgGMvH2+AGcwrXiauoPnnRXEeioqzkhAf3PescnFMWadeLCq9AlkfOXXko10wW6sXYBavI+xqKiCb8xSTZYFqO8HQhza9rYvYqO9H/T9ewE54ctgWF67+OQslksvEhgELSjBgrnzKj8WNEXhLWZrcy8ga1ZtoR00EhcePGx4GAYBtn8Jt5UX3BIEHkG9oz2p7agO47cWWx1QT 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)(13023025)(13024025)(13018025)(13017025)(13015025)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123565025)(20161123556025)(20161123561025)(20161123563025); SRVR:DM2PR0301MB0606; BCL:0; PCL:0; RULEID:(400006); SRVR:DM2PR0301MB0606; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0606; 4:IpIJ26e1a/iRHDK7Ds1U4ko38DdPbw9AxPIt3vxy?= =?us-ascii?Q?gRxbcEIDoMQ2Qp2xQ9L99NB4eXT7irLEbjiDAIuJ3tIveCTSygl5zBKqGeob?= =?us-ascii?Q?weksfrqfVf9fYrq5duVwQK8Vqe3O9VOUuDDP92FAC/+zSLEHjLQVyHeJDi9M?= =?us-ascii?Q?oddEtULbWnRSOqwSCyuyu9SECFo0+UsOscXmR3a6i26aR0YUP7WPlM7otzwA?= =?us-ascii?Q?y/RorovgLmuAJQtrLHhix3eowmI8PuF/hegyujB8RwC4dfj6P0XsqvCjbvt0?= =?us-ascii?Q?fdotYpaQqvl5YtQl6ghEzFLMee9JdIMVm+2ERW0DBCZ2+kJR0jYQX22h5plz?= =?us-ascii?Q?WX+u2l8XrJwdfl3WNCdkY8I9kmSC28LBv5n+iq5wXbszKcuf457ue+5Rw0vK?= =?us-ascii?Q?R2AQ0HeHaEHHZr4Id4Ltiaui7BynxyfHLTDSiCeiRup2W2DbW5mKQnWPD5bG?= =?us-ascii?Q?zqd5JQktRiiP76p4yblPleXi08/95jbJGrk608OEBAwkT6NOQnfPK3r0Eb0k?= =?us-ascii?Q?JK6Xu7PNd9p8iQzdmp3vyAlYZBT2JTjPbT+QW5MrV6h41mFEOnwxeOLchFe9?= =?us-ascii?Q?RxvngCx0I2upq3qkoUX/EiP8MgcQbZhX2n2mbqFqZuzPnFn86ew9Dw31qZ65?= =?us-ascii?Q?vuWIN2RZbTQDrYxsuW1qQVK7WnL8d57yBrSpdxstWwocA5PI9/ToYmRV5LyC?= =?us-ascii?Q?iOgHrUz0xlh5viXf0KcU1TTkyWqCuCNYOCwPemkVuGJteGCTuEGcIwjtN3ds?= =?us-ascii?Q?PmO/SPPqLpd2Ar7q/Al1Kmqatz1d5zugcBlVaz8vwQtmar/iKwGaFyy4zXoi?= =?us-ascii?Q?CKrZiuF4uFqcAYGGxmk2YcWWVFntO4RF3DHOtwH1lhqN/4gJuZRCsFgb+tMH?= =?us-ascii?Q?1qPqeJmYafCtnoQ7NLssp35ubUXid2hVjRqiXZ2LH6WnALOnqrZYrPYe1G4C?= =?us-ascii?Q?WmALOzO2w92ih/ocdEh6a0cvSjubmm6ZY1ug0PoDpw=3D=3D?= X-Forefront-PRVS: 02830F0362 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0606; 23:EJ1Pz0fkQHrVRWEmRnmgohPAG8W6Y8067Ygjs3w?= =?us-ascii?Q?G1lhOdVN8g6VwUeCQM0SjZQILjWU1ABl6tpN+oSj3PlL5qopVh+6z2NNXPAR?= =?us-ascii?Q?egoLAp6xt+aTdXdi0EaD0oLlyLwiLxgynEz0krFv2JeSCMITKAv1cKwYgjt/?= =?us-ascii?Q?etgSBHRmNpB1PI78RVTrIie3n+lOAzK4+Uvl7z9hipPeKUTWL8b/fHlYOET+?= =?us-ascii?Q?mI+XkTxPCWI1U2ljwM1xm5XhjPmlnzr1oJPeCOrU/cM38habOBisG91KA74x?= =?us-ascii?Q?/rldaBtyCS6Ix9N2AWSQCrwoMv2zV7an2e77FQyEbJpOwwffzrCryVsddl1E?= =?us-ascii?Q?jRl/X8GWHtnPFsQIKI3Kt4X6Oaj9QB9RzBMxXWekpA/sZhORUkFagc5bVb6e?= =?us-ascii?Q?C9wJb69lEsfR5h2FgzC5qS6wCXymGfIkGPDHwR3RE3uMHvMvH5nUJ5bxgWmE?= =?us-ascii?Q?DdvC7QpnxBlqr1WEOgGUmZv4C7mLJPYd6CUbYE8vLAxkslPy95zE/nIFCAGR?= =?us-ascii?Q?GhkyDaCPBmxh9g/AtVe9Jfl9gWJU3vsFQG0rgjJBWde606n3ahKHnYXZP74C?= =?us-ascii?Q?co3SnblUILhFkhowMkOwR7vqiBPRCRz9v5dFGjb/PlrVCex1fnVgd6Vn/PnQ?= =?us-ascii?Q?RGduO+91Kqmo4sgAH2AK51rXttzH9rYALawNO1fpJ5pssrcdlupStA5pC+eL?= =?us-ascii?Q?qdhiwryQyEBUhk1khUcYLv3rYh4dwQBzpe+vmH3NoaBQCPnx0wdiRa2Ia1uO?= =?us-ascii?Q?HEI2gXvoFjK1uQXP2yCfQIhLRsAqvDkgcXnGhTmCW1Vhuc4PkZMps+59Lpb5?= =?us-ascii?Q?GYVTWE8VmDi2zUGiIgzfjZBf/APvQRbvg3WWMVLIutPeZZ+4SxGvXDgSF3iS?= =?us-ascii?Q?LrD2hwMFQPvcjRnwFLKxl/gXY5KotJ5JK0OYXcH7aCQFbdWfXoNELsmqxr1q?= =?us-ascii?Q?9/DcNQDnxM/WTrzdK12AESEmhUeLhWhxCbLFZTd3LUipgyB1p5wN+xuWglwU?= =?us-ascii?Q?glaTWsMo6DlZXzRcXOz5rTCvqw1HUlmYimRfL08pOwJrYt8Y4URasa29eqzK?= =?us-ascii?Q?sEPmnPv0T1kENl/bdxigcUCHl/ehKABgJfLlVY6pSmtzVCNW8GDogGhQ6Uxn?= =?us-ascii?Q?rQmolvVyW4d67TVfwUVXXpS3Jp2GwG4+t9FAxPcAYIC8w9J7UgQrD6g=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0606; 6:t2xMjnPvrEbwleki3OQ4XvW0w4TDNRCiACEqSUSfmHmuROg+9OlIl5P5gkowlEM0jwqRApUlTBJun2KtRzev4Jm1SI0vepry0+OUcTkn04Z+cJdIyNVPCiPI+3Qed12pwl6fKcz5owdoUMSTiL8bCMAm3c+80f/S5+GTrGqOqveHG/OouTFaE5+O49maXjOIq/Z1bunsW0yFgyDa1IbUaOB6hIsFcFKB2DjR/Lu7zvq8A6BTME3+pGGpFInR/qZlTzoU92trJpnfOaC8A9Rvc+WyjZ51HKEHPNI0XHugf11qqKJwASSWyJTTsUKMpHA2rdpcHorHJh90q5rDt5QwYkOyvUise9vjlqEcFa93CbKx+lBoFmR2HBtKAIDpNR5GX7DJ5kCfF1nOEcTR497CMqMAp4QG9Ai2UHZBjIxjq+8vUIeE+Um0qot0jI8RZJ4MsE3mlqUr0e1wKH8QsAPcjO1EMY7bwaPWbLMiilkwJhWsUJo+9PQf2IH00nNmTvVh; 5:Fo4fPdP4F0wQZTBiLiGLLrhwsmZy8X280jnLLjAAHovel+7U+ekQEPL6T2dZ2Q8mTC/COj7GrbReJoyooKLK/+VWlUPzT6+1Qg0b35oiRHQpgJoX2xiqzACxSWFHibLsEZfC2dld+qZowE1M/Ve0tm26gfou8+n4NO9GL5d543aY94n6KueAS7s3t6ZOSY4Q; 24:sluc/tsPyYgpYuhUMkscAijvVS6W7sn5b5GlsEH8/UJ/4iKf6kLvlTPbMFJU30mqGe9Th3ip5vqraMCuZc5UFXLtUXqe8a/tUiYFSlHUwnE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0606; 7:sd/lbbRuOTdYLOjTODE5x3RUN9snkklNCmJdMnznIJE4dLRKQ7h6W8E1oJFC4Ep+1usYT5h1lJdU4yhmXOvRjTsGr3YFWZeoq3M5Wuh7JGc6iAyFvV6V/tlIudnssCNg62zsQbWTRLcfT4+ggJ727BDOUL/cQR94CmSavclu3L8JKAEidEGvNYit3eFWw3bMTiRGOB7+4VZ2TlCpv/+ZZEMUH8ZhllgKH/Ec1PsIGq2a2ef1C37bEwUlXvUc/iH5Q0gLtiwhx8LE6QWb2rUNaPMxCgGtk1DbJu6mIv8JvTNLeL7+zf10e1EVy3awN2z7gw5vNdH2OVLsG4MftLwkTg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2017 19:35:12.4893 (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.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0606 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170420_123536_263835_37C10B0E X-CRM114-Status: GOOD ( 11.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: roy.pledge@nxp.com, stuyoder@gmail.com, Haiying Wang Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Once we enable the cacheable portal memory, we need to do cache flush for enqueue, vdq, buffer release, and management commands, as well as invalidate and prefetch for the valid bit of management command response and next index of dqrr. Signed-off-by: Haiying Wang --- drivers/staging/fsl-mc/bus/dpio/qbman-portal.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c b/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c index 2a3ea29..e16121c 100644 --- a/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c +++ b/drivers/staging/fsl-mc/bus/dpio/qbman-portal.c @@ -99,6 +99,14 @@ enum qbman_sdqcr_fc { qbman_sdqcr_fc_up_to_3 = 1 }; +#define dccvac(p) { asm volatile("dc cvac, %0;" : : "r" (p) : "memory"); } +#define dcivac(p) { asm volatile("dc ivac, %0" : : "r"(p) : "memory"); } +static inline void qbman_inval_prefetch(struct qbman_swp *p, uint32_t offset) +{ + dcivac(p->addr_cena + offset); + prefetch(p->addr_cena + offset); +} + /* Portal Access */ static inline u32 qbman_read_register(struct qbman_swp *p, u32 offset) @@ -189,7 +197,7 @@ struct qbman_swp *qbman_swp_init(const struct qbman_swp_desc *d) p->addr_cinh = d->cinh_bar; reg = qbman_set_swp_cfg(p->dqrr.dqrr_size, - 1, /* Writes Non-cacheable */ + 0, /* Writes cacheable */ 0, /* EQCR_CI stashing threshold */ 3, /* RPM: Valid bit mode, RCR in array mode */ 2, /* DCM: Discrete consumption ack mode */ @@ -315,6 +323,7 @@ void qbman_swp_mc_submit(struct qbman_swp *p, void *cmd, u8 cmd_verb) dma_wmb(); *v = cmd_verb | p->mc.valid_bit; + dccvac(cmd); } /* @@ -325,6 +334,7 @@ void *qbman_swp_mc_result(struct qbman_swp *p) { u32 *ret, verb; + qbman_inval_prefetch(p, QBMAN_CENA_SWP_RR(p->mc.valid_bit)); ret = qbman_get_cmd(p, QBMAN_CENA_SWP_RR(p->mc.valid_bit)); /* Remove the valid-bit - command completed if the rest is non-zero */ @@ -435,6 +445,7 @@ int qbman_swp_enqueue(struct qbman_swp *s, const struct qbman_eq_desc *d, /* Set the verb byte, have to substitute in the valid-bit */ dma_wmb(); p->verb = d->verb | EQAR_VB(eqar); + dccvac(p); return 0; } @@ -627,6 +638,7 @@ int qbman_swp_pull(struct qbman_swp *s, struct qbman_pull_desc *d) /* Set the verb byte, have to substitute in the valid-bit */ p->verb = d->verb | s->vdq.valid_bit; s->vdq.valid_bit ^= QB_VALID_BIT; + dccvac(p); return 0; } @@ -680,8 +692,7 @@ const struct dpaa2_dq *qbman_swp_dqrr_next(struct qbman_swp *s) s->dqrr.next_idx, pi); s->dqrr.reset_bug = 0; } - prefetch(qbman_get_cmd(s, - QBMAN_CENA_SWP_DQRR(s->dqrr.next_idx))); + qbman_inval_prefetch(s, QBMAN_CENA_SWP_DQRR(s->dqrr.next_idx)); } p = qbman_get_cmd(s, QBMAN_CENA_SWP_DQRR(s->dqrr.next_idx)); @@ -696,8 +707,7 @@ const struct dpaa2_dq *qbman_swp_dqrr_next(struct qbman_swp *s) * knew from reading PI. */ if ((verb & QB_VALID_BIT) != s->dqrr.valid_bit) { - prefetch(qbman_get_cmd(s, - QBMAN_CENA_SWP_DQRR(s->dqrr.next_idx))); + qbman_inval_prefetch(s, QBMAN_CENA_SWP_DQRR(s->dqrr.next_idx)); return NULL; } /* @@ -720,7 +730,7 @@ const struct dpaa2_dq *qbman_swp_dqrr_next(struct qbman_swp *s) (flags & DPAA2_DQ_STAT_EXPIRED)) atomic_inc(&s->vdq.available); - prefetch(qbman_get_cmd(s, QBMAN_CENA_SWP_DQRR(s->dqrr.next_idx))); + qbman_inval_prefetch(s, QBMAN_CENA_SWP_DQRR(s->dqrr.next_idx)); return p; } @@ -848,6 +858,7 @@ int qbman_swp_release(struct qbman_swp *s, const struct qbman_release_desc *d, */ dma_wmb(); p->verb = d->verb | RAR_VB(rar) | num_buffers; + dccvac(p); return 0; }