[PATCH] rt_sigaction.h: adjust for ARC
ARC uses the no-legacy syscall ABI where there is no need for kernel_sigaction interworking. Further we rely on default SA_RESTORER in libc for sigreturn. To me all the song-and-dance in ltp_rt_sigaction() doesn't make sense. The intent it to test whatever platform libc + kernel combination provides and to that end any fixups in LTP seem odd to me. So for ARC just call what libc provides and don't claim to support more/less. e.g. rt_sigaction02 fails for ARC, since libc sigaction does following | int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) | { | struct sigaction kact; | | if (act && !(act->sa_flags & SA_RESTORER)) { | kact.sa_restorer = __default_rt_sa_restorer; So we don't get the EFAULT for @act == -1 which kernel would provide. Instead we get a segv rightawat. But that's fine, that is how our system works. Signed-off-by: Vineet Gupta --- include/lapi/rt_sigaction.h | 8 1 file changed, 8 insertions(+) diff --git a/include/lapi/rt_sigaction.h b/include/lapi/rt_sigaction.h index 3a5a763ce094..12af3c3b7b27 100644 --- a/include/lapi/rt_sigaction.h +++ b/include/lapi/rt_sigaction.h @@ -155,6 +155,13 @@ static void __attribute__((used)) __sigreturn_stub(void) static int ltp_rt_sigaction(int signum, const struct sigaction *act, struct sigaction *oact, size_t sigsetsize) { +#ifdef __arc__ + /* +* No playing games with various internals of sigaction / fields +* just use whatever libc + kernel provide +*/ + return sigaction(signum, act, oact); +#else int ret; struct kernel_sigaction kact, koact; struct kernel_sigaction *kact_p = NULL; @@ -218,6 +225,7 @@ static int ltp_rt_sigaction(int signum, const struct sigaction *act, } return ret; +#endif } #endif /* LTP_RT_SIGACTION_H */ -- 2.5.0 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] ARC: build: Better way to detect ISA compatible toolchain
Hi Michal, Can u please take a look at patch below ! Thx, -Vineet On Friday 26 February 2016 01:59 PM, Vineet Gupta wrote: > ARC architecture has 2 instruction sets: ARCompact/ARCv2. > While same gcc supports compiling for either (using appropriate toggles), > we can't use the same toolchain to build kernel because libgcc needs > to be unique and the toolchian (uClibc based) is not multilibed. > > uClibc toolchain is convenient since it allows all userspace and > kernel to be built with a single install for an ISA. > > This however means 2 gnu installs (with same triplet prefix) are needed > for building for 2 ISA and need to be in PATH. > As developers we keep switching the builds, but would occassionally fail > to update the PATH leading to usage of wrong tools. And this would only > show up at the end of kernel build when linking incompatible libgcc. > > So the initial solution was to have gcc define a special preprocessor macro > DEFAULT_CPU_xxx which is unique for default toolchain configuration. > Claudiu proposed using grep for an existing preprocessor macro which is > again uniquely defined per ISA. > > Cc: Michal Marek > Suggested-by: Claudiu Zissulescu > Signed-off-by: Vineet Gupta > --- > arch/arc/Makefile | 14 ++ > arch/arc/include/asm/arcregs.h | 6 -- > 2 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/arch/arc/Makefile b/arch/arc/Makefile > index c8230f3395f2..21682e047c00 100644 > --- a/arch/arc/Makefile > +++ b/arch/arc/Makefile > @@ -18,6 +18,20 @@ cflags-y += -fno-common -pipe -fno-builtin -D__linux__ > cflags-$(CONFIG_ISA_ARCOMPACT) += -mA7 > cflags-$(CONFIG_ISA_ARCV2) += -mcpu=archs > > +is_700 = $(shell $(CC) -dM -E - < /dev/null | grep -q "ARC700" && echo 1 || > echo 0) > + > +ifdef CONFIG_ISA_ARCOMPACT > +ifeq ($(is_700), 0) > +$(error Toolchain not configured for ARCompact builds) > +endif > +endif > + > +ifdef CONFIG_ISA_ARCV2 > +ifeq ($(is_700), 1) > +$(error Toolchain not configured for ARCv2 builds) > +endif > +endif > + > ifdef CONFIG_ARC_CURR_IN_REG > # For a global register defintion, make sure it gets passed to every file > # We had a customer reported bug where some code built in kernel was NOT > using > diff --git a/arch/arc/include/asm/arcregs.h b/arch/arc/include/asm/arcregs.h > index f9f4c6f59fdb..7fbaea00a336 100644 > --- a/arch/arc/include/asm/arcregs.h > +++ b/arch/arc/include/asm/arcregs.h > @@ -381,12 +381,6 @@ static inline int is_isa_arcompact(void) > return IS_ENABLED(CONFIG_ISA_ARCOMPACT); > } > > -#if defined(CONFIG_ISA_ARCOMPACT) && !defined(_CPU_DEFAULT_A7) > -#error "Toolchain not configured for ARCompact builds" > -#elif defined(CONFIG_ISA_ARCV2) && !defined(_CPU_DEFAULT_HS) > -#error "Toolchain not configured for ARCv2 builds" > -#endif > - > #endif /* __ASEMBLY__ */ > > #endif /* _ASM_ARC_ARCREGS_H */ > ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH 2/4 v2] drm: Add DT bindings documentation for ARC PGU display controller
On Thu, Mar 03, 2016 at 05:39:14PM +0300, Alexey Brodkin wrote: > This add DT bindings documentation for ARC PGU display controller. > > Signed-off-by: Alexey Brodkin > Cc: Rob Herring > Cc: Pawel Moll > Cc: Mark Rutland > Cc: Ian Campbell > Cc: Kumar Gala > Cc: devicet...@vger.kernel.org > Cc: linux-snps-arc@lists.infradead.org > --- > > Changes v1 -> v2: > * Clean-up Not really useful. What we like to see is what changed. Maintainers have short memories and don't remember what they said previously (unless comments are ignored). > > .../devicetree/bindings/display/snps,arcpgu.txt| 33 > ++ > 1 file changed, 33 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/snps,arcpgu.txt > > diff --git a/Documentation/devicetree/bindings/display/snps,arcpgu.txt > b/Documentation/devicetree/bindings/display/snps,arcpgu.txt > new file mode 100644 > index 000..57f3bc8 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/snps,arcpgu.txt > @@ -0,0 +1,33 @@ > +ARC PGU > + > +This is a display controller found on several development boards produced > +by Synopsys. The ARC PGU is an RGB streamer that reads the data from a > +framebuffer and sends it to a single digital encoder (usually HDMI). > + > +Required properties: > + - compatible: "snps,arcpgu" > + - reg: Physical base address and length of the controller's registers. > + - clocks: A list of phandle + clock-specifier pairs, one for each > +entry in 'clock-names'. > + - clock-names: A list of clock names. For ARC PGU it should contain: > + - "pxlclk" for the clock feeding the output PLL of the controller. > + > +Required sub-nodes: > + - port: The PGU connection to an encoder chip. The connection is modelled > +using the OF graph bindings specified in > +Documentation/devicetree/bindings/graph.txt. > + > +Example: > + > +/ { > + ... > + > + pgu@ { > + compatible = "snps,arcpgu"; > + reg = <0x 0x400>; > + clocks = <&clock_node>; > + clock-names = "pxlclk"; Where's the port? Didn't you previously say it was optional? > + }; > + > + ... > +}; > -- > 2.5.0 > ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc