[PATCH] rt_sigaction.h: adjust for ARC

2016-03-04 Thread Vineet Gupta
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

2016-03-04 Thread Vineet Gupta
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

2016-03-04 Thread Rob Herring
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