diff for duplicates of <56E398F1.7090500@synopsys.com> diff --git a/a/1.txt b/N1/1.txt index e3bd147..d957dad 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -7,70 +7,3 @@ Noam please give this a spin - you might have to revert those native-endian DT bindings from UART DT. -----> -From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001 -From: Lada Trimasova <ltrimas@synopsys.com> -Date: Wed, 9 Mar 2016 20:21:04 +0300 -Subject: [PATCH] ARC: [BE] readl()/writel() to work in Big Endian CPU - configuration - -read{l,w}() write{l,w}() primitives should use le{16,32}_to_cpu() and -cpu_to_le{16,32}() respectively to ensure device registers are read -correctly in Big Endian CPU configuration. - -Per Arnd Bergmann -| Most drivers using readl() or readl_relaxed() expect those to perform byte -| swaps on big-endian architectures, as the registers tend to be fixed endian - -This was needed for getting UART to work correctly on a Big Endian ARC. - -The ARC accessors originally were fine, and the bug got introduced -inadventently by commit b8a033023994 ("ARCv2: barriers") - -Fixes: b8a033023994 ("ARCv2: barriers") -Link: http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de -Cc: Alexey Brodkin <abrodkin@synopsys.com> -Cc: stable@vger.kernel.org [4.2+] -Cc: Arnd Bergmann <arnd@arndb.de> -Signed-off-by: Lada Trimasova <ltrimas@synopsys.com> -[vgupta: beefed up changelog, added Fixes/stable tags] -Signed-off-by: Vineet Gupta <vgupta@synopsys.com> ---- - arch/arc/include/asm/io.h | 18 +++++++++++++----- - 1 file changed, 13 insertions(+), 5 deletions(-) - -diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h -index 694ece8a0243..27b17adea50d 100644 ---- a/arch/arc/include/asm/io.h -+++ b/arch/arc/include/asm/io.h -@@ -129,15 +129,23 @@ static inline void __raw_writel(u32 w, volatile void __iomem -*addr) - #define writel(v,c) ({ __iowmb(); writel_relaxed(v,c); }) - - /* -- * Relaxed API for drivers which can handle any ordering themselves -+ * Relaxed API for drivers which can handle barrier ordering themselves -+ * -+ * Also these are defined to perform little endian accesses. -+ * To provide the typical device register semantics of fixed endian, -+ * swap the byte order for Big Endian -+ * -+ * http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de - */ - #define readb_relaxed(c) __raw_readb(c) --#define readw_relaxed(c) __raw_readw(c) --#define readl_relaxed(c) __raw_readl(c) -+#define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \ -+ __raw_readw(c)); __r; }) -+#define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \ -+ __raw_readl(c)); __r; }) - - #define writeb_relaxed(v,c) __raw_writeb(v,c) --#define writew_relaxed(v,c) __raw_writew(v,c) --#define writel_relaxed(v,c) __raw_writel(v,c) -+#define writew_relaxed(v,c) __raw_writew((__force u16) cpu_to_le16(v),c) -+#define writel_relaxed(v,c) __raw_writel((__force u32) cpu_to_le32(v),c) - - #include <asm-generic/io.h> - --- -2.5.0 diff --git a/a/content_digest b/N1/content_digest index 2b2635e..11bf3cb 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -23,73 +23,6 @@ "Noam please give this a spin - you might have to revert those native-endian DT\n" "bindings from UART DT.\n" "\n" - "----->\n" - "From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001\n" - "From: Lada Trimasova <ltrimas@synopsys.com>\n" - "Date: Wed, 9 Mar 2016 20:21:04 +0300\n" - "Subject: [PATCH] ARC: [BE] readl()/writel() to work in Big Endian CPU\n" - " configuration\n" - "\n" - "read{l,w}() write{l,w}() primitives should use le{16,32}_to_cpu() and\n" - "cpu_to_le{16,32}() respectively to ensure device registers are read\n" - "correctly in Big Endian CPU configuration.\n" - "\n" - "Per Arnd Bergmann\n" - "| Most drivers using readl() or readl_relaxed() expect those to perform byte\n" - "| swaps on big-endian architectures, as the registers tend to be fixed endian\n" - "\n" - "This was needed for getting UART to work correctly on a Big Endian ARC.\n" - "\n" - "The ARC accessors originally were fine, and the bug got introduced\n" - "inadventently by commit b8a033023994 (\"ARCv2: barriers\")\n" - "\n" - "Fixes: b8a033023994 (\"ARCv2: barriers\")\n" - "Link: http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de\n" - "Cc: Alexey Brodkin <abrodkin@synopsys.com>\n" - "Cc: stable@vger.kernel.org [4.2+]\n" - "Cc: Arnd Bergmann <arnd@arndb.de>\n" - "Signed-off-by: Lada Trimasova <ltrimas@synopsys.com>\n" - "[vgupta: beefed up changelog, added Fixes/stable tags]\n" - "Signed-off-by: Vineet Gupta <vgupta@synopsys.com>\n" - "---\n" - " arch/arc/include/asm/io.h | 18 +++++++++++++-----\n" - " 1 file changed, 13 insertions(+), 5 deletions(-)\n" - "\n" - "diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h\n" - "index 694ece8a0243..27b17adea50d 100644\n" - "--- a/arch/arc/include/asm/io.h\n" - "+++ b/arch/arc/include/asm/io.h\n" - "@@ -129,15 +129,23 @@ static inline void __raw_writel(u32 w, volatile void __iomem\n" - "*addr)\n" - " #define writel(v,c)\t\t({ __iowmb(); writel_relaxed(v,c); })\n" - "\n" - " /*\n" - "- * Relaxed API for drivers which can handle any ordering themselves\n" - "+ * Relaxed API for drivers which can handle barrier ordering themselves\n" - "+ *\n" - "+ * Also these are defined to perform little endian accesses.\n" - "+ * To provide the typical device register semantics of fixed endian,\n" - "+ * swap the byte order for Big Endian\n" - "+ *\n" - "+ * http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de\n" - " */\n" - " #define readb_relaxed(c)\t__raw_readb(c)\n" - "-#define readw_relaxed(c)\t__raw_readw(c)\n" - "-#define readl_relaxed(c)\t__raw_readl(c)\n" - "+#define readw_relaxed(c) ({ u16 __r = le16_to_cpu((__force __le16) \\\n" - "+\t\t\t\t\t__raw_readw(c)); __r; })\n" - "+#define readl_relaxed(c) ({ u32 __r = le32_to_cpu((__force __le32) \\\n" - "+\t\t\t\t\t__raw_readl(c)); __r; })\n" - "\n" - " #define writeb_relaxed(v,c)\t__raw_writeb(v,c)\n" - "-#define writew_relaxed(v,c)\t__raw_writew(v,c)\n" - "-#define writel_relaxed(v,c)\t__raw_writel(v,c)\n" - "+#define writew_relaxed(v,c)\t__raw_writew((__force u16) cpu_to_le16(v),c)\n" - "+#define writel_relaxed(v,c)\t__raw_writel((__force u32) cpu_to_le32(v),c)\n" - "\n" - " #include <asm-generic/io.h>\n" - "\n" - "-- \n" - 2.5.0 + -----> -6a15e90b8cda05bcf0a96258a1989815204419157370ef42a134a405e3b248fd +0aa440f90a7d82cddf0a2fbca38244d26196628609f3c48aff33b259009c844c
diff --git a/a/1.txt b/N2/1.txt index e3bd147..f9aa58b 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -7,7 +7,7 @@ Noam please give this a spin - you might have to revert those native-endian DT bindings from UART DT. -----> -From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001 +>From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001 From: Lada Trimasova <ltrimas@synopsys.com> Date: Wed, 9 Mar 2016 20:21:04 +0300 Subject: [PATCH] ARC: [BE] readl()/writel() to work in Big Endian CPU @@ -27,13 +27,13 @@ The ARC accessors originally were fine, and the bug got introduced inadventently by commit b8a033023994 ("ARCv2: barriers") Fixes: b8a033023994 ("ARCv2: barriers") -Link: http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de -Cc: Alexey Brodkin <abrodkin@synopsys.com> -Cc: stable@vger.kernel.org [4.2+] -Cc: Arnd Bergmann <arnd@arndb.de> -Signed-off-by: Lada Trimasova <ltrimas@synopsys.com> +Link: http://lkml.kernel.org/r/201603100845.30602.arnd at arndb.de +Cc: Alexey Brodkin <abrodkin at synopsys.com> +Cc: stable at vger.kernel.org [4.2+] +Cc: Arnd Bergmann <arnd at arndb.de> +Signed-off-by: Lada Trimasova <ltrimas at synopsys.com> [vgupta: beefed up changelog, added Fixes/stable tags] -Signed-off-by: Vineet Gupta <vgupta@synopsys.com> +Signed-off-by: Vineet Gupta <vgupta at synopsys.com> --- arch/arc/include/asm/io.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) @@ -54,7 +54,7 @@ index 694ece8a0243..27b17adea50d 100644 + * To provide the typical device register semantics of fixed endian, + * swap the byte order for Big Endian + * -+ * http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de ++ * http://lkml.kernel.org/r/201603100845.30602.arnd at arndb.de */ #define readb_relaxed(c) __raw_readb(c) -#define readw_relaxed(c) __raw_readw(c) diff --git a/a/content_digest b/N2/content_digest index 2b2635e..b02afd8 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -3,16 +3,10 @@ "ref\01457636268.457.34.camel@synopsys.com\0" "ref\0201603102023.59425.arnd@arndb.de\0" "ref\0C2D7FE5348E1B147BCA15975FBA23075F4E8F790@us01wembx1.internal.synopsys.com\0" - "From\0Vineet Gupta <Vineet.Gupta1@synopsys.com>\0" - "Subject\0Re: [PATCH] arc: use little endian accesses\0" + "From\0Vineet.Gupta1@synopsys.com (Vineet Gupta)\0" + "Subject\0[PATCH] arc: use little endian accesses\0" "Date\0Sat, 12 Mar 2016 09:50:01 +0530\0" - "To\0Arnd Bergmann <arnd@arndb.de>" - Lada Trimasova <Lada.Trimasova@synopsys.com> - " noamc@ezchip.com <noamc@ezchip.com>\0" - "Cc\0linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>" - linux-arch@vger.kernel.org <linux-arch@vger.kernel.org> - Alexey Brodkin <Alexey.Brodkin@synopsys.com> - " linux-snps-arc@lists.infradead.org <linux-snps-arc@lists.infradead.org>\0" + "To\0linux-snps-arc@lists.infradead.org\0" "\00:1\0" "b\0" "On Friday 11 March 2016 06:14 PM, Vineet Gupta wrote:\n" @@ -24,7 +18,7 @@ "bindings from UART DT.\n" "\n" "----->\n" - "From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001\n" + ">From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001\n" "From: Lada Trimasova <ltrimas@synopsys.com>\n" "Date: Wed, 9 Mar 2016 20:21:04 +0300\n" "Subject: [PATCH] ARC: [BE] readl()/writel() to work in Big Endian CPU\n" @@ -44,13 +38,13 @@ "inadventently by commit b8a033023994 (\"ARCv2: barriers\")\n" "\n" "Fixes: b8a033023994 (\"ARCv2: barriers\")\n" - "Link: http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de\n" - "Cc: Alexey Brodkin <abrodkin@synopsys.com>\n" - "Cc: stable@vger.kernel.org [4.2+]\n" - "Cc: Arnd Bergmann <arnd@arndb.de>\n" - "Signed-off-by: Lada Trimasova <ltrimas@synopsys.com>\n" + "Link: http://lkml.kernel.org/r/201603100845.30602.arnd at arndb.de\n" + "Cc: Alexey Brodkin <abrodkin at synopsys.com>\n" + "Cc: stable at vger.kernel.org [4.2+]\n" + "Cc: Arnd Bergmann <arnd at arndb.de>\n" + "Signed-off-by: Lada Trimasova <ltrimas at synopsys.com>\n" "[vgupta: beefed up changelog, added Fixes/stable tags]\n" - "Signed-off-by: Vineet Gupta <vgupta@synopsys.com>\n" + "Signed-off-by: Vineet Gupta <vgupta at synopsys.com>\n" "---\n" " arch/arc/include/asm/io.h | 18 +++++++++++++-----\n" " 1 file changed, 13 insertions(+), 5 deletions(-)\n" @@ -71,7 +65,7 @@ "+ * To provide the typical device register semantics of fixed endian,\n" "+ * swap the byte order for Big Endian\n" "+ *\n" - "+ * http://lkml.kernel.org/r/201603100845.30602.arnd@arndb.de\n" + "+ * http://lkml.kernel.org/r/201603100845.30602.arnd at arndb.de\n" " */\n" " #define readb_relaxed(c)\t__raw_readb(c)\n" "-#define readw_relaxed(c)\t__raw_readw(c)\n" @@ -92,4 +86,4 @@ "-- \n" 2.5.0 -6a15e90b8cda05bcf0a96258a1989815204419157370ef42a134a405e3b248fd +d0093fcf8e25903d96ef713c8bedabc81830fb67bbb62805d6d3eea83456a736
diff --git a/a/1.txt b/N3/1.txt index e3bd147..a695952 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -7,7 +7,7 @@ Noam please give this a spin - you might have to revert those native-endian DT bindings from UART DT. -----> -From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001 +>From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001 From: Lada Trimasova <ltrimas@synopsys.com> Date: Wed, 9 Mar 2016 20:21:04 +0300 Subject: [PATCH] ARC: [BE] readl()/writel() to work in Big Endian CPU diff --git a/a/content_digest b/N3/content_digest index 2b2635e..938fc95 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -24,7 +24,7 @@ "bindings from UART DT.\n" "\n" "----->\n" - "From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001\n" + ">From f778cc65717687a3d3f26dd21bef62cd059f1b8b Mon Sep 17 00:00:00 2001\n" "From: Lada Trimasova <ltrimas@synopsys.com>\n" "Date: Wed, 9 Mar 2016 20:21:04 +0300\n" "Subject: [PATCH] ARC: [BE] readl()/writel() to work in Big Endian CPU\n" @@ -92,4 +92,4 @@ "-- \n" 2.5.0 -6a15e90b8cda05bcf0a96258a1989815204419157370ef42a134a405e3b248fd +f87945a6f873605716c33e70d84dce8885081f318bd8a1ffa1d82c458a9d1545
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.