From patchwork Thu May 5 15:35:56 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Horia Geanta X-Patchwork-Id: 9025461 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: X-Original-To: patchwork-linux-crypto@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 3A0029F30C for ; Thu, 5 May 2016 15:37:16 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 2C8B4203A4 for ; Thu, 5 May 2016 15:37:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 12769203B0 for ; Thu, 5 May 2016 15:37:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932136AbcEEPhK (ORCPT ); Thu, 5 May 2016 11:37:10 -0400 Received: from mail-bn1bon0067.outbound.protection.outlook.com ([157.56.111.67]:2176 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757638AbcEEPgG (ORCPT ); Thu, 5 May 2016 11:36:06 -0400 Received: from BLUPR0301CA0025.namprd03.prod.outlook.com (10.162.113.163) by CY1PR0301MB0716.namprd03.prod.outlook.com (10.160.159.146) with Microsoft SMTP Server (TLS) id 15.1.477.8; Thu, 5 May 2016 15:36:03 +0000 Received: from BY2FFO11FD047.protection.gbl (2a01:111:f400:7c0c::185) by BLUPR0301CA0025.outlook.office365.com (2a01:111:e400:5259::35) with Microsoft SMTP Server (TLS) id 15.1.485.9 via Frontend Transport; Thu, 5 May 2016 15:36:03 +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=none 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 BY2FFO11FD047.mail.protection.outlook.com (10.1.15.175) with Microsoft SMTP Server (TLS) id 15.1.485.4 via Frontend Transport; Thu, 5 May 2016 15:36:02 +0000 Received: from enigma.ea.freescale.net (enigma.ea.freescale.net [10.171.77.120]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u45FZwwg029215; Thu, 5 May 2016 08:35:59 -0700 From: =?UTF-8?q?Horia=20Geant=C4=83?= To: Herbert Xu , Arnd Bergmann CC: , , , "David S. Miller" , Scott Wood , Alexandru Porosanu , Tudor Ambarus , Cristian Stoica Subject: [PATCH v2 2/8] asm-generic/io.h: add io{read,write}64 accessors Date: Thu, 5 May 2016 18:35:56 +0300 Message-ID: <1462462556-27684-1-git-send-email-horia.geanta@nxp.com> X-Mailer: git-send-email 2.4.4 In-Reply-To: <1462462435-27403-1-git-send-email-horia.geanta@nxp.com> References: <1462462435-27403-1-git-send-email-horia.geanta@nxp.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131069361624638517; (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)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(2950100001)(104016004)(86362001)(50226002)(8936002)(189998001)(4326007)(76176999)(85426001)(47776003)(50986999)(77096005)(5008740100001)(50466002)(6806005)(33646002)(23676002)(106466001)(5820100001)(19580405001)(229853001)(1220700001)(19580395003)(586003)(92566002)(2870700001)(36756003)(5001770100001)(2906002)(81166005)(105606002)(11100500001)(87936001)(7059030)(41533002)(142933001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0716; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD047; 1:skS6RFOYeKnIp/9iaafyMaVu4COkr2hB7E+VlebUDD88Wly/WGT71mszRfTjKpwmgXa9L7KnUFKMb4MCAcQGvdiijvHFlgSz1j6UpxcbI8XFujtx9mKrQsNhqthjXJcgbI1fsoSLtxxOXz9QWSDLAXHPAuzIgyM1NTS+QvVEKxgHeFHfMIaaE28RMsXzXY0YJ/eM321OEudrn5yMN1RK/gNUTU9HY3vYRr6Y0L/bCyR/C6YYuESdYbPv8stBtfmL3RhyrnJqdEA0DFeoRRg8lXud6dQJqeC5nwOy0Hl7Ri9nov3w6ByKdlrLVyP3rk7GFCFbu+99PnFhspOciVVhqT/bqq4C5ZxjcxhYCBtkebUjOYtD4RbeEyO2kjfxRzaXEidYX/DxI2XqM9vHtCl5LGiL5jRGJ+vrRpkWXVkKiLPIKZ4yglf0RWcMSsvU/BSnahkLKDRmK3Vsq6hw48J+9Y5QlGFQjj08DvNCSbky8w2D7soETJAyN57jEZ9zANfKrbNTDa709raIZD19/2614dbKRmJpuNcgIIK80O9cuxhe787TlZqGr/CrbYxef7PQ7JfyLcdUPu8GaSVxybb+C8/faCfHP1DPhGMwh/NK1qqTi43PxNO2i/EiT+jhit2BPya8saUudyT19V0tccEG2LbsSvL4OrDhtvjE6LkIVjhEazOUXx2vUo0SdvrNXSMfxXXH5w7sCGtavHnrLJTpPw== X-MS-Office365-Filtering-Correlation-Id: 7a61318c-19ba-4238-82d5-08d374faf707 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0716; 2:jNZXCmilewGtXVRnWg4LL95PnqufnQ64GcQD/b7b9AorY2VNebxBnrECHlr6+8kKaEiXLjWdeg22x0Rp6VS+67HyWI4/VIhPl4vpzvMLz6ubsb6QTz+VnT8LqyO83+wHJ2sHgkSwcZyrmFumffTW+tEvpHM79BUQBVWrIIbQzilrEu3joF5581xfnxr5B957; 3:9NBtvJ4T+WjQoSYxX54sTI4j4mKuzWBfqCSyX0/9IJ7MlkLIF/KSWZG49KfqmJocwc4FueUiA0joUrgZQcoMoCdKjc0Z7yAGITncSZ5SsZ8s9VMXsN6D04IIBVLFMVDXm9ZVlC/Gp/Hfd6lX62N9PJPYL87Ar7hUXxmSNhcqMyA2+Mi0pgroBvXKnRr+heOrYRYXAZPRHKk8ku2IUYDuJxqqEVzMiAWjjq61tOO/rjA= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB0716; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0716; 25:DT74xR/i3eDfpnGeDoUJ7zklFnoyvfWoVywB+GmVXKB1Zsoe/UA+ZGtypPFiL7thZqhQ1vZDBOnZgFjOQoi5CNbf/cGscTp+fht3GuVO++aoNQdaF5qddxFSELCIVStw0TvmcDSMY+zOPVa1+xlIEmKcJbldGB4msv081nI+wpJUEVfMb/zN9t6ey1aZkVdi5W6u55LC3pVFT1F2BiXjUJLqnqt5INYZPjTxmxKDMTtQH8XxnagW6iuxjRa+Coez8vmIU5h5PCYP5CTl6maEqlGO/4iOANTmCseO5UImFHktxQTaUnyTGKlng7YuCu/5jtJ11BhgnoQsGqJLgSrXSibjWIVpE/cj75A/+k7ROzHnZtA8Uidr5LhECwsfsjYAkrK5pUot91khIaufaD/0DkNLv5Rz1X8L+Fm/hZWp6AJDQDRTGQEPqMvoc5zUdyaTs5H4ZwErJZPw9mYjbH4HlhS3MgJnlh3AFIsCwP2MnDy9oG/rwqDkyyoAkP2ZGBGaqrEX/NxIqKotE0FvvpBk1IJtrv5yCyNqh8tdUV4BQv6PxHcVULVrVN0vGCrSpvlZEVWrbEMWdr0Tvx6fGKOSu/6zGSR/DYROH99JzZHnTyF0VYK5GmsDXKeLyW467XDWH8bYnkOiYz52iYP2nJ46P/vxQ86fcmyW+S35noBUM04= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(13017025)(5005006)(13023025)(13024025)(13015025)(8121501046)(13018025)(10201501046)(3002001)(6055026); SRVR:CY1PR0301MB0716; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB0716; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0716; 4:UUYC0MVdX0zi8yv67lQL65oZZkg1IUuFDK8IMyQII6jfpmZ2Zo07L1Jvb++NDndMy9se3tfPWoRfRXpTQRs62k7ssEJAL9OLIzUai7HqhyR3ihjul+3SfhIsrd5JBj8MwQKLmHVlGOktc6pMBLzLK7hD+c93O2xATsM5cxq4/l2CyWINwDoswIH9ULsrrv3wAauwczgikl7DbiqLET90jzl5BNzXkwD3oTJ0Z/tYmrv2TJI1w3W2rb5zQJVJh2AhV3ts3n0jRkTpnyeNOk7W+F1gydOE2SlMfah6CWSPURT47gUCcvu0Siwwq2tViDelCG97po5XEIyHCbDFncRglNaX9mtldnjF5/wLP2hbVaxNYtyx6yh72jvE1OBDlD8kv9GtcrqsUyX/gVTDL0Ti5lgDJnwr7pU66/CUvASyxwTzXXI1SEDbzlV/pVB0MmnJxGFAqAZ2zDURpI2836Mg7cYZ2qhDlLAw70XHJ/pT07w= X-Forefront-PRVS: 0933E9FD8D X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAzMDFNQjA3MTY7MjM6VmFtUlAzdUpjQ0YwUU9CRGFGZzFVa3dP?= =?utf-8?B?UlJTb0pjRDREc0tETjlTS1ZrdkNkczNoaEZKeWdvMFJ3eGJTNmYrdFR4WTAx?= =?utf-8?B?d0xDc2M4a2ZsendmK2VLOUNmeUNVakQ4azlUbCtWOUsrVGZkK0JiZVNNMUdi?= =?utf-8?B?VDRjazdhZWt2TVRqQWZTcGF0M09NcmMxbVdkQVhtVEI2N3ZDQXZGUk9yT0Z4?= =?utf-8?B?Y0FpM0o4NTgvQzJsZHBKMld6RFQ2QXVuYnhDd0NOQkJjeHlYb0ZuTEVMaEZO?= =?utf-8?B?NkxIREYvbFdCTnA3V1V6eFJZZlVWOHQ0bUtFNlVEVGdZSXpyVkZRYnZtanRJ?= =?utf-8?B?M3doZ1YvN0JiK2V5RlhEUmNQVkRadVV4SlFxRmR3Y3p1czZEUzVNVWMwb2di?= =?utf-8?B?OXF2WStWbkJuc0JBdWpKZ1FzZ1U2RURPZHVTc2RMalBvcmVnY25VNWt4QUVx?= =?utf-8?B?a2VHbmRZakpzc00rSGNqWWtpNzVmYWlNTUk0SHpFd215djM1Y21rYzJRNUw4?= =?utf-8?B?RlM2MitBMlhkNHVkK09pZGVValNnREErSjR6M1J5blQybERFT21NYkhyTDFl?= =?utf-8?B?VUltNWdYYmQvZmpPWFhFVEY1Qk55aVdBNFJoc2VuSG53ekdZQklwVEpPZWY2?= =?utf-8?B?VXBiZnAxRFBsYjM5dzJhWlY2Q1d1amYrUDBRTEN2YkhWMkdXdnBnNWdibFRv?= =?utf-8?B?K2NEWDRkYjNzZUh6TFAwakhyVFNkS1QzS21TY3B0RVlpYTNBOUhJcGZiUk9r?= =?utf-8?B?b3U5clZkTmpqcS9iWHROL1N0V0l2ZE5adTNNNERGNUR0WWdhU1JrenRzUjJG?= =?utf-8?B?Um1LdWZqaW5paDJ5TnBjK0ZzK29aQks2cDFvcWlOY2VTeERQejF6Sm8vN2dk?= =?utf-8?B?TXJkQm1IdTdzc0VRanVSTUdRSEExZE90dnFVbmttNDM2UzFiaGdhNWNqYUpN?= =?utf-8?B?ODl5eTJtSldVRmhGRFc2MzFBZnMrSVpBOGhoNXEzdEVMVlF6cHIrbnIxZkpn?= =?utf-8?B?elhCSllwNW9aWVRNbysrc2J4WjRjSGV1VmUxeGJ2ZU8veG10S2liWGFORk9T?= =?utf-8?B?Qkdtdk9hWDZLRXJGekVkdG1hNXk3R3NTc2dEaU5FRVNrOW1SUlRYRWNDclBO?= =?utf-8?B?bE9jdEZLWEsvZlBpQ0tXYk1idHd1bzdCeHZJY0RmYlRtbkpoQlE2aTZzcStB?= =?utf-8?B?NHU1b1V2ekJXcC9teW1uQUZtSUxzWWY2aEE5WWQ4SElmTCsrVzJtejFaNk1x?= =?utf-8?B?dlU2R2FaeCtORVRIZUIzN0RzR1RxSy80MktOU1dkS1JHZnQrMnZCVkFLZ045?= =?utf-8?B?bm1OUDRMV3pVdndLL2FaRXB1U0puU2huNUMrT1Q2eVlpUlZnMFNObkQ3STZJ?= =?utf-8?B?NXFWUmZaOWhraVNrUTFXdVJ5L3VObkx2T2UzWmR4djZJeTUyOG5QNHNEcVU2?= =?utf-8?B?ZkJxaVJ5eXR1ZnNWTTBGS3Q2SEhvRnV5YUdtUlU2emxqTW5LZi92OCtwa1NK?= =?utf-8?Q?Wig0wewKJZFmThAWMQIcgKlEVT8=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0716; 5:Fvffj8ahnUC/wj7imUr0A5Bpoq1cFjekcmCdMp2HtJGkF7Py2J4EojmHXDZkX6bQxCWB1lKak0aSFQgkIz44XjnrmYX7DrTm9ZL8gbQw8GXFEv0gLDodNG1TO/4zUIrmR81GgYjeluTj7oGSM3JH141uYeqC7KasJDHxl998Fd0=; 24:Kor8Um1r2Z1zT4IKUkdj6pJop92uED9Xh2HxyVmRhwqQNltNTd53T90fM+R225NPp5xrtPJr7AL2Ptp4gHsG6A9EA4bsbt/JOyrqs/DjS8c=; 7:D9iyN24/LoC/aKlq4FaTiwT/7xIETJYBV/hQXy/r4U6mPnEJDcDsxZKwyyzePzOo/PR/O6ihh4Lf6NEpx9QVShJAWWA4SoEbwPV3PJ8uqUm6jx4OSeTsH2xOuVEAFxVNbZ3z5aHB3yAKp/3pi8r4xS4VwBcFc0+kqrG33KVFG57UOFtcRdAasVlUHOX4TGHQ SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2016 15:36:02.3234 (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: CY1PR0301MB0716 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This will allow device drivers to consistently use io{read,write}XX also for 64-bit accesses. Signed-off-by: Horia Geant? Acked-by: Arnd Bergmann --- include/asm-generic/io.h | 63 +++++++++++++++++++++++++++++++++++++++++++++ include/asm-generic/iomap.h | 8 ++++++ 2 files changed, 71 insertions(+) diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index b79fb2c248a1..2af6ea95762d 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h @@ -585,6 +585,16 @@ static inline u32 ioread32(const volatile void __iomem *addr) } #endif +#ifdef CONFIG_64BIT +#ifndef ioread64 +#define ioread64 ioread64 +static inline u64 ioread64(const volatile void __iomem *addr) +{ + return readq(addr); +} +#endif +#endif /* CONFIG_64BIT */ + #ifndef iowrite8 #define iowrite8 iowrite8 static inline void iowrite8(u8 value, volatile void __iomem *addr) @@ -609,6 +619,16 @@ static inline void iowrite32(u32 value, volatile void __iomem *addr) } #endif +#ifdef CONFIG_64BIT +#ifndef iowrite64 +#define iowrite64 iowrite64 +static inline void iowrite64(u64 value, volatile void __iomem *addr) +{ + writeq(value, addr); +} +#endif +#endif /* CONFIG_64BIT */ + #ifndef ioread16be #define ioread16be ioread16be static inline u16 ioread16be(const volatile void __iomem *addr) @@ -625,6 +645,16 @@ static inline u32 ioread32be(const volatile void __iomem *addr) } #endif +#ifdef CONFIG_64BIT +#ifndef ioread64be +#define ioread64be ioread64be +static inline u64 ioread64be(const volatile void __iomem *addr) +{ + return swab64(readq(addr)); +} +#endif +#endif /* CONFIG_64BIT */ + #ifndef iowrite16be #define iowrite16be iowrite16be static inline void iowrite16be(u16 value, void volatile __iomem *addr) @@ -641,6 +671,16 @@ static inline void iowrite32be(u32 value, volatile void __iomem *addr) } #endif +#ifdef CONFIG_64BIT +#ifndef iowrite64be +#define iowrite64be iowrite64be +static inline void iowrite64be(u64 value, volatile void __iomem *addr) +{ + writeq(swab64(value), addr); +} +#endif +#endif /* CONFIG_64BIT */ + #ifndef ioread8_rep #define ioread8_rep ioread8_rep static inline void ioread8_rep(const volatile void __iomem *addr, void *buffer, @@ -668,6 +708,17 @@ static inline void ioread32_rep(const volatile void __iomem *addr, } #endif +#ifdef CONFIG_64BIT +#ifndef ioread64_rep +#define ioread64_rep ioread64_rep +static inline void ioread64_rep(const volatile void __iomem *addr, + void *buffer, unsigned int count) +{ + readsq(addr, buffer, count); +} +#endif +#endif /* CONFIG_64BIT */ + #ifndef iowrite8_rep #define iowrite8_rep iowrite8_rep static inline void iowrite8_rep(volatile void __iomem *addr, @@ -697,6 +748,18 @@ static inline void iowrite32_rep(volatile void __iomem *addr, writesl(addr, buffer, count); } #endif + +#ifdef CONFIG_64BIT +#ifndef iowrite64_rep +#define iowrite64_rep iowrite64_rep +static inline void iowrite64_rep(volatile void __iomem *addr, + const void *buffer, + unsigned int count) +{ + writesq(addr, buffer, count); +} +#endif +#endif /* CONFIG_64BIT */ #endif /* CONFIG_GENERIC_IOMAP */ #ifdef __KERNEL__ diff --git a/include/asm-generic/iomap.h b/include/asm-generic/iomap.h index d8f8622fa044..650fede33c25 100644 --- a/include/asm-generic/iomap.h +++ b/include/asm-generic/iomap.h @@ -30,12 +30,20 @@ extern unsigned int ioread16(void __iomem *); extern unsigned int ioread16be(void __iomem *); extern unsigned int ioread32(void __iomem *); extern unsigned int ioread32be(void __iomem *); +#ifdef CONFIG_64BIT +extern u64 ioread64(void __iomem *); +extern u64 ioread64be(void __iomem *); +#endif extern void iowrite8(u8, void __iomem *); extern void iowrite16(u16, void __iomem *); extern void iowrite16be(u16, void __iomem *); extern void iowrite32(u32, void __iomem *); extern void iowrite32be(u32, void __iomem *); +#ifdef CONFIG_64BIT +extern void iowrite64(u64, void __iomem *); +extern void iowrite64be(u64, void __iomem *); +#endif /* * "string" versions of the above. Note that they