From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: [PATCH v2 3/5] x86/io: Remove mem*io() duplications Date: Fri, 30 Jun 2017 20:09:32 +0300 Message-ID: <20170630170934.83028-4-andriy.shevchenko@linux.intel.com> References: <20170630170934.83028-1-andriy.shevchenko@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170630170934.83028-1-andriy.shevchenko@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ingo Molnar , x86@kernel.org, Thomas Gleixner , "H . Peter Anvin" , linux-kernel@vger.kernel.org, Baolin Wang , wsa@the-dreams.de, linux-i2c@vger.kernel.org, Mika Westerberg , intel-gfx@lists.freedesktop.org Cc: Andy Shevchenko List-Id: linux-i2c@vger.kernel.org R2VuZXJpYyBoZWFkZXIgZGVmaW5lcyBtZW1zZXRfaW8sIG1lbWNweV9mcm9taW8oKS4gYW5kIG1l bWNweV90b2lvKCkuCgpSZXVzZSB0aGVtIGZyb20gZ2VuZXJpYyBoZWFkZXIgYW5kIHJlbW92ZSBp biB4ODYgY29kZS4KTW92ZSB0aGUgZGVzY3JpcHRpb25zIHRvIHRoZSBnZW5lcmljIGhlYWRlciBh cyB3ZWxsLgoKU2lnbmVkLW9mZi1ieTogQW5keSBTaGV2Y2hlbmtvIDxhbmRyaXkuc2hldmNoZW5r b0BsaW51eC5pbnRlbC5jb20+Ci0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vaW8uaCB8IDQ1IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9hc20t Z2VuZXJpYy9pby5oICB8IDI0ICsrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFu Z2VkLCAyNCBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9pby5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vaW8uaAppbmRleCAw NTU4ZDgxYzE3N2UuLjI1MjQzNGIwMGZkYiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9h c20vaW8uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pby5oCkBAIC0yMjAsNTEgKzIyMCw2 IEBAIGV4dGVybiB2b2lkIHNldF9pb3VubWFwX25vbmxhenkodm9pZCk7CiAgKi8KICNkZWZpbmUg eGxhdGVfZGV2X2ttZW1fcHRyKHApCXAKIAotLyoqCi0gKiBtZW1zZXRfaW8JU2V0IGEgcmFuZ2Ug b2YgSS9PIG1lbW9yeSB0byBhIGNvbnN0YW50IHZhbHVlCi0gKiBAYWRkcjoJVGhlIGJlZ2lubmlu ZyBvZiB0aGUgSS9PLW1lbW9yeSByYW5nZSB0byBzZXQKLSAqIEB2YWw6CVRoZSB2YWx1ZSB0byBz ZXQgdGhlIG1lbW9yeSB0bwotICogQGNvdW50OglUaGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHNldAot ICoKLSAqIFNldCBhIHJhbmdlIG9mIEkvTyBtZW1vcnkgdG8gYSBnaXZlbiB2YWx1ZS4KLSAqLwot c3RhdGljIGlubGluZSB2b2lkCi1tZW1zZXRfaW8odm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRy LCB1bnNpZ25lZCBjaGFyIHZhbCwgc2l6ZV90IGNvdW50KQotewotCW1lbXNldCgodm9pZCBfX2Zv cmNlICopYWRkciwgdmFsLCBjb3VudCk7Ci19Ci0jZGVmaW5lIG1lbXNldF9pbyhkc3QsYyxjb3Vu dCkgbWVtc2V0X2lvKGRzdCxjLGNvdW50KQotCi0vKioKLSAqIG1lbWNweV9mcm9taW8JQ29weSBh IGJsb2NrIG9mIGRhdGEgZnJvbSBJL08gbWVtb3J5Ci0gKiBAZHN0OgkJVGhlIChSQU0pIGRlc3Rp bmF0aW9uIGZvciB0aGUgY29weQotICogQHNyYzoJCVRoZSAoSS9PIG1lbW9yeSkgc291cmNlIGZv ciB0aGUgZGF0YQotICogQGNvdW50OgkJVGhlIG51bWJlciBvZiBieXRlcyB0byBjb3B5Ci0gKgot ICogQ29weSBhIGJsb2NrIG9mIGRhdGEgZnJvbSBJL08gbWVtb3J5LgotICovCi1zdGF0aWMgaW5s aW5lIHZvaWQKLW1lbWNweV9mcm9taW8odm9pZCAqZHN0LCBjb25zdCB2b2xhdGlsZSB2b2lkIF9f aW9tZW0gKnNyYywgc2l6ZV90IGNvdW50KQotewotCW1lbWNweShkc3QsIChjb25zdCB2b2lkIF9f Zm9yY2UgKilzcmMsIGNvdW50KTsKLX0KLSNkZWZpbmUgbWVtY3B5X2Zyb21pbyh0byxmcm9tLGNv dW50KSBtZW1jcHlfZnJvbWlvKHRvLGZyb20sY291bnQpCi0KLS8qKgotICogbWVtY3B5X3RvaW8J CUNvcHkgYSBibG9jayBvZiBkYXRhIGludG8gSS9PIG1lbW9yeQotICogQGRzdDoJCVRoZSAoSS9P IG1lbW9yeSkgZGVzdGluYXRpb24gZm9yIHRoZSBjb3B5Ci0gKiBAc3JjOgkJVGhlIChSQU0pIHNv dXJjZSBmb3IgdGhlIGRhdGEKLSAqIEBjb3VudDoJCVRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gY29w eQotICoKLSAqIENvcHkgYSBibG9jayBvZiBkYXRhIHRvIEkvTyBtZW1vcnkuCi0gKi8KLXN0YXRp YyBpbmxpbmUgdm9pZAotbWVtY3B5X3RvaW8odm9sYXRpbGUgdm9pZCBfX2lvbWVtICpkc3QsIGNv bnN0IHZvaWQgKnNyYywgc2l6ZV90IGNvdW50KQotewotCW1lbWNweSgodm9pZCBfX2ZvcmNlICop ZHN0LCBzcmMsIGNvdW50KTsKLX0KLSNkZWZpbmUgbWVtY3B5X3RvaW8odG8sZnJvbSxjb3VudCkg bWVtY3B5X3RvaW8odG8sZnJvbSxjb3VudCkKLQogLyoKICAqIElTQSBzcGFjZSBpcyAnYWx3YXlz IG1hcHBlZCcgb24gYSB0eXBpY2FsIHg4NiBzeXN0ZW0sIG5vIG5lZWQgdG8KICAqIGV4cGxpY2l0 bHkgaW9yZW1hcCgpIGl0LiBUaGUgZmFjdCB0aGF0IHRoZSBJU0EgSU8gc3BhY2UgaXMgbWFwcGVk CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL2lvLmggYi9pbmNsdWRlL2FzbS1nZW5l cmljL2lvLmgKaW5kZXggN2VmMDE1ZWIzNDAzLi4zOTVhZmM4Mjk0MDkgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvYXNtLWdlbmVyaWMvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL2lvLmgKQEAg LTk1NCw2ICs5NTQsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkICpidXNfdG9fdmlydCh1bnNpZ25l ZCBsb25nIGFkZHJlc3MpCiAKICNpZm5kZWYgbWVtc2V0X2lvCiAjZGVmaW5lIG1lbXNldF9pbyBt ZW1zZXRfaW8KKy8qKgorICogbWVtc2V0X2lvCVNldCBhIHJhbmdlIG9mIEkvTyBtZW1vcnkgdG8g YSBjb25zdGFudCB2YWx1ZQorICogQGFkZHI6CVRoZSBiZWdpbm5pbmcgb2YgdGhlIEkvTy1tZW1v cnkgcmFuZ2UgdG8gc2V0CisgKiBAdmFsOglUaGUgdmFsdWUgdG8gc2V0IHRoZSBtZW1vcnkgdG8K KyAqIEBjb3VudDoJVGhlIG51bWJlciBvZiBieXRlcyB0byBzZXQKKyAqCisgKiBTZXQgYSByYW5n ZSBvZiBJL08gbWVtb3J5IHRvIGEgZ2l2ZW4gdmFsdWUuCisgKi8KIHN0YXRpYyBpbmxpbmUgdm9p ZCBtZW1zZXRfaW8odm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCBpbnQgdmFsdWUsCiAJCQkg ICAgIHNpemVfdCBzaXplKQogewpAQCAtOTYzLDYgKzk3MSwxNCBAQCBzdGF0aWMgaW5saW5lIHZv aWQgbWVtc2V0X2lvKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkciwgaW50IHZhbHVlLAogCiAj aWZuZGVmIG1lbWNweV9mcm9taW8KICNkZWZpbmUgbWVtY3B5X2Zyb21pbyBtZW1jcHlfZnJvbWlv CisvKioKKyAqIG1lbWNweV9mcm9taW8JQ29weSBhIGJsb2NrIG9mIGRhdGEgZnJvbSBJL08gbWVt b3J5CisgKiBAZHN0OgkJVGhlIChSQU0pIGRlc3RpbmF0aW9uIGZvciB0aGUgY29weQorICogQHNy YzoJCVRoZSAoSS9PIG1lbW9yeSkgc291cmNlIGZvciB0aGUgZGF0YQorICogQGNvdW50OgkJVGhl IG51bWJlciBvZiBieXRlcyB0byBjb3B5CisgKgorICogQ29weSBhIGJsb2NrIG9mIGRhdGEgZnJv bSBJL08gbWVtb3J5LgorICovCiBzdGF0aWMgaW5saW5lIHZvaWQgbWVtY3B5X2Zyb21pbyh2b2lk ICpidWZmZXIsCiAJCQkJIGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkciwKIAkJCQkg c2l6ZV90IHNpemUpCkBAIC05NzMsNiArOTg5LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1j cHlfZnJvbWlvKHZvaWQgKmJ1ZmZlciwKIAogI2lmbmRlZiBtZW1jcHlfdG9pbwogI2RlZmluZSBt ZW1jcHlfdG9pbyBtZW1jcHlfdG9pbworLyoqCisgKiBtZW1jcHlfdG9pbwkJQ29weSBhIGJsb2Nr IG9mIGRhdGEgaW50byBJL08gbWVtb3J5CisgKiBAZHN0OgkJVGhlIChJL08gbWVtb3J5KSBkZXN0 aW5hdGlvbiBmb3IgdGhlIGNvcHkKKyAqIEBzcmM6CQlUaGUgKFJBTSkgc291cmNlIGZvciB0aGUg ZGF0YQorICogQGNvdW50OgkJVGhlIG51bWJlciBvZiBieXRlcyB0byBjb3B5CisgKgorICogQ29w eSBhIGJsb2NrIG9mIGRhdGEgdG8gSS9PIG1lbW9yeS4KKyAqLwogc3RhdGljIGlubGluZSB2b2lk IG1lbWNweV90b2lvKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkciwgY29uc3Qgdm9pZCAqYnVm ZmVyLAogCQkJICAgICAgIHNpemVfdCBzaXplKQogewotLSAKMi4xMS4wCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752365AbdF3RJn (ORCPT ); Fri, 30 Jun 2017 13:09:43 -0400 Received: from mga05.intel.com ([192.55.52.43]:54850 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752265AbdF3RJl (ORCPT ); Fri, 30 Jun 2017 13:09:41 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,287,1496127600"; d="scan'208";a="987308747" From: Andy Shevchenko To: Ingo Molnar , x86@kernel.org, Thomas Gleixner , "H . Peter Anvin" , linux-kernel@vger.kernel.org, Baolin Wang , wsa@the-dreams.de, linux-i2c@vger.kernel.org, Mika Westerberg , intel-gfx@lists.freedesktop.org Cc: Andy Shevchenko Subject: [PATCH v2 3/5] x86/io: Remove mem*io() duplications Date: Fri, 30 Jun 2017 20:09:32 +0300 Message-Id: <20170630170934.83028-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170630170934.83028-1-andriy.shevchenko@linux.intel.com> References: <20170630170934.83028-1-andriy.shevchenko@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Generic header defines memset_io, memcpy_fromio(). and memcpy_toio(). Reuse them from generic header and remove in x86 code. Move the descriptions to the generic header as well. Signed-off-by: Andy Shevchenko --- arch/x86/include/asm/io.h | 45 --------------------------------------------- include/asm-generic/io.h | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 45 deletions(-) diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h index 0558d81c177e..252434b00fdb 100644 --- a/arch/x86/include/asm/io.h +++ b/arch/x86/include/asm/io.h @@ -220,51 +220,6 @@ extern void set_iounmap_nonlazy(void); */ #define xlate_dev_kmem_ptr(p) p -/** - * memset_io Set a range of I/O memory to a constant value - * @addr: The beginning of the I/O-memory range to set - * @val: The value to set the memory to - * @count: The number of bytes to set - * - * Set a range of I/O memory to a given value. - */ -static inline void -memset_io(volatile void __iomem *addr, unsigned char val, size_t count) -{ - memset((void __force *)addr, val, count); -} -#define memset_io(dst,c,count) memset_io(dst,c,count) - -/** - * memcpy_fromio Copy a block of data from I/O memory - * @dst: The (RAM) destination for the copy - * @src: The (I/O memory) source for the data - * @count: The number of bytes to copy - * - * Copy a block of data from I/O memory. - */ -static inline void -memcpy_fromio(void *dst, const volatile void __iomem *src, size_t count) -{ - memcpy(dst, (const void __force *)src, count); -} -#define memcpy_fromio(to,from,count) memcpy_fromio(to,from,count) - -/** - * memcpy_toio Copy a block of data into I/O memory - * @dst: The (I/O memory) destination for the copy - * @src: The (RAM) source for the data - * @count: The number of bytes to copy - * - * Copy a block of data to I/O memory. - */ -static inline void -memcpy_toio(volatile void __iomem *dst, const void *src, size_t count) -{ - memcpy((void __force *)dst, src, count); -} -#define memcpy_toio(to,from,count) memcpy_toio(to,from,count) - /* * ISA space is 'always mapped' on a typical x86 system, no need to * explicitly ioremap() it. The fact that the ISA IO space is mapped diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index 7ef015eb3403..395afc829409 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h @@ -954,6 +954,14 @@ static inline void *bus_to_virt(unsigned long address) #ifndef memset_io #define memset_io memset_io +/** + * memset_io Set a range of I/O memory to a constant value + * @addr: The beginning of the I/O-memory range to set + * @val: The value to set the memory to + * @count: The number of bytes to set + * + * Set a range of I/O memory to a given value. + */ static inline void memset_io(volatile void __iomem *addr, int value, size_t size) { @@ -963,6 +971,14 @@ static inline void memset_io(volatile void __iomem *addr, int value, #ifndef memcpy_fromio #define memcpy_fromio memcpy_fromio +/** + * memcpy_fromio Copy a block of data from I/O memory + * @dst: The (RAM) destination for the copy + * @src: The (I/O memory) source for the data + * @count: The number of bytes to copy + * + * Copy a block of data from I/O memory. + */ static inline void memcpy_fromio(void *buffer, const volatile void __iomem *addr, size_t size) @@ -973,6 +989,14 @@ static inline void memcpy_fromio(void *buffer, #ifndef memcpy_toio #define memcpy_toio memcpy_toio +/** + * memcpy_toio Copy a block of data into I/O memory + * @dst: The (I/O memory) destination for the copy + * @src: The (RAM) source for the data + * @count: The number of bytes to copy + * + * Copy a block of data to I/O memory. + */ static inline void memcpy_toio(volatile void __iomem *addr, const void *buffer, size_t size) { -- 2.11.0