ARM: tty: Move HVC DCC assembly to arch/arm
Subsystems (4)
RFC 1/1 ARM: tty: Move HVC DCC assembly to arch/arm
Put architecture-specific assembly code where it belongs, allowing for support of additional architectures such as arm64 in the future.
--- arch/arm/include/asm/dcc.h | 45 +++++++++++++++++++++++++++++++++++++++++++ drivers/tty/hvc/hvc_dcc.c | 48 ++-------------------------------------------- 2 files changed, 47 insertions(+), 46 deletions(-) create mode 100644 arch/arm/include/asm/dcc.h
arch/arm/include/asm/dcc.h new file +45 -0
@@ -0,0 +1,45 @@ +/* Copyright (c) 2010, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +#include <asm/barrier.h> + +/* DCC Status Bits */ +#define DCC_STATUS_RX (1 << 30) +#define DCC_STATUS_TX (1 << 29) + +static inline u32 __dcc_getstatus (void ) +{ +u32 __ret; + asmvolatile ("mrc p14, 0, %0, c0, c1, 0 @ read comms ctrl reg" + :"=r" (__ret) : :"cc" ); + +return __ret; +} + +static inline char __dcc_getchar (void ) +{ +char __c; + + asmvolatile ("mrc p14, 0, %0, c0, c5, 0 @ read comms data reg" + :"=r" (__c)); +isb (); + +return __c; +} + +static inline void __dcc_putchar (char c) +{ + asmvolatile ("mcr p14, 0, %0, c0, c5, 0 @ write a char" + :/* no output register */ + :"r" (c)); +isb (); +}
drivers/tty/hvc/hvc_dcc.c +2 -46
63 lines not on this page · raw message
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by the Linux Foundation.
Quoted 3 lines · Christopher Covington
Put architecture-specific assembly code where it belongs, allowing for support of additional architectures such as arm64 in the future.
Do you have that patch too? There was also a patch a year ago to add armv5/v4 support to this driver. Maybe we can resurrect that too.
Quoted 9 lines
drivers/tty/hvc/hvc_dcc.c +0
-1@@ -8,57 +8,13 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -*
drivers/tty/hvc/hvc_dcc.c line 21
Quoted 10 lines
drivers/tty/hvc/hvc_dcc.c +0
-8-* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -* 02110-1301, USA. */ -#include <linux/console.h> -#include <linux/delay.h> -#include <linux/err.h> -#include <linux/init.h>
We still need init.h
Quoted 9 lines
drivers/tty/hvc/hvc_dcc.c +1
-3-#include <linux/moduleparam.h> -#include <linux/types.h> - +#include <asm/dcc.h> #include <asm/processor.h> #include "hvc_console.h"
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Hi Stephen,
Quoted 7 lines · Stephen Boyd
Quoted 3 lines · Christopher Covington
Put architecture-specific assembly code where it belongs, allowing for support of additional architectures such as arm64 in the future.
Do you have that patch too? There was also a patch a year ago to add armv5/v4 support to this driver. Maybe we can resurrect that too.
I still haven't gotten around to testing that one.
Quoted 15 lines
Quoted 15 lines
drivers/tty/hvc/hvc_dcc.c +0
-5@@ -8,57 +8,13 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -* 02110-1301, USA. */
Quoted 6 lines
drivers/tty/hvc/hvc_dcc.c line 21
Quoted 4 lines
drivers/tty/hvc/hvc_dcc.c +0
-4-#include <linux/console.h> -#include <linux/delay.h> -#include <linux/err.h> -#include <linux/init.h> We still need
init.h
Fixed in v2.
Christopher
Signature · 3 lines
Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation.
Quoted 10 lines · Christopher Covington
Hi Stephen,
Quoted 6 lines · Stephen Boyd
Quoted 3 lines · Christopher Covington
Put architecture-specific assembly code where it belongs, allowing for support of additional architectures such as arm64 in the future.
Do you have that patch too? There was also a patch a year ago to add armv5/v4 support to this driver. Maybe we can resurrect that too.
I still haven't gotten around to testing that one.
It would be nice if that patch was sent along with this one, or if you have some armv8 patch that works too. This patch by itself doesn't seem too useful because we're just moving code around in preparation for supporting this driver on multiple arches.
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Quoted 25 lines · Christopher Covington
Put architecture-specific assembly code where it belongs, allowing for support of additional architectures such as arm64 in the future.
Signed-off-by Christopher Covington <[email protected]>---
arch/arm/include/asm/dcc.h| 45 +++++++++++++++++++++++++++++++++++++++++++drivers/tty/hvc/hvc_dcc.c| 48 ++--------------------------------------------2 files changed, 47 insertions(+), 46 deletions(-)create mode 100644
arch/arm/include/asm/dcc.harch/arm/include/asm/dcc.h new file +8
-0@@ -0,0 +1,45 @@ +/* Copyright (c) 2010, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of
arch/arm/include/asm/dcc.h line 18
Quoted 10 lines
arch/arm/include/asm/dcc.h new file +10
-0+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +#include <asm/barrier.h> + +/* DCC Status Bits */ +#define DCC_STATUS_RX (1 << 30) +#define DCC_STATUS_TX (1 << 29) +
Why'd you move these define's here? They don't seem to be arch specific and I don't see them used in the asm anywhere.
Quoted 104 lines
arch/arm/include/asm/dcc.h new file +27
-0+static inline u32 __dcc_getstatus (void ) +{ +u32 __ret; + asmvolatile ("mrc p14, 0, %0, c0, c1, 0 @ read comms ctrl reg" + :"=r" (__ret) : :"cc" ); + +return __ret; +} + +static inline char __dcc_getchar (void ) +{ +char __c; + + asmvolatile ("mrc p14, 0, %0, c0, c5, 0 @ read comms data reg" + :"=r" (__c)); +isb (); + +return __c; +} + +static inline void __dcc_putchar (char c) +{ + asmvolatile ("mcr p14, 0, %0, c0, c5, 0 @ write a char" + :/* no output register */ + :"r" (c)); +isb (); +}drivers/tty/hvc/hvc_dcc.c +2
-46@@ -1,4 +1,4 @@ -/* Copyright (c) 2010, Code Aurora Forum. All rights reserved. +/* Copyright (c) 2010, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -8,57 +8,13 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -* 02110-1301, USA. */ -#include <linux/console.h> -#include <linux/delay.h> -#include <linux/err.h> -#include <linux/init.h> -#include <linux/moduleparam.h> -#include <linux/types.h> - +#include <asm/dcc.h> #include <asm/processor.h> #include "hvc_console.h" -/* DCC Status Bits */ -#define DCC_STATUS_RX (1 << 30) -#define DCC_STATUS_TX (1 << 29) - -static inline u32 __dcc_getstatus (void ) -{ -u32 __ret; - asmvolatile ("mrc p14, 0, %0, c0, c1, 0 @ read comms ctrl reg" - :"=r" (__ret) : :"cc" ); - -return __ret; -} - - -static inline char __dcc_getchar (void ) -{ -char __c; - - asmvolatile ("mrc p14, 0, %0, c0, c5, 0 @ read comms data reg" - :"=r" (__c)); -isb (); - -return __c; -} - -static inline void __dcc_putchar (char c) -{ - asmvolatile ("mcr p14, 0, %0, c0, c5, 0 @ write a char" - :/* no output register */ - :"r" (c)); -isb (); -} -static int hvc_dcc_put_chars (uint32_t vt,const char *buf,int count) {int i;Signature · 7 lines
Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by the Linux Foundation. -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 2 lines
Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Hi Kumar,
Quoted 33 lines · Kumar Gala
Quoted 30 lines · Christopher Covington
Put architecture-specific assembly code where it belongs, allowing for support of additional architectures such as arm64 in the future.
Signed-off-by Christopher Covington <[email protected]>---
arch/arm/include/asm/dcc.h| 45 +++++++++++++++++++++++++++++++++++++++++++drivers/tty/hvc/hvc_dcc.c| 48 ++--------------------------------------------2 files changed, 47 insertions(+), 46 deletions(-)create mode 100644
arch/arm/include/asm/dcc.harch/arm/include/asm/dcc.h new file +13
-0@@ -0,0 +1,45 @@ +/* Copyright (c) 2010, The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +#include <asm/barrier.h>
Quoted 8 lines
arch/arm/include/asm/dcc.h line 18
Quoted 5 lines
arch/arm/include/asm/dcc.h new file +5
-0+ +/* DCC Status Bits */ +#define DCC_STATUS_RX (1 << 30) +#define DCC_STATUS_TX (1 << 29) +Why'd you move these define's here? They don't seem to be arch specific and I don't see them used in the asm anywhere.
Fixed in v2.
Christopher
Signature · 3 lines
Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation.
PATCH v2 1/1 ARM: tty: Move HVC DCC assembly to arch/arm
In reply to Christopher CovingtonPut architecture-specific assembly code where it belongs, allowing for support of additional architectures such as arm64 in the future.
--- arch/arm/include/asm/dcc.h | 41 +++++++++++++++++++++++++++++++++++++++++ drivers/tty/hvc/hvc_dcc.c | 42 ++---------------------------------------- 2 files changed, 43 insertions(+), 40 deletions(-) create mode 100644 arch/arm/include/asm/dcc.h
arch/arm/include/asm/dcc.h new file +41 -0
@@ -0,0 +1,41 @@ +/* Copyright (c) 2010, 2014 The Linux Foundation. All rights reserved. +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 and +* only version 2 as published by the Free Software Foundation. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +*/ + +#include <asm/barrier.h> + +static inline u32 __dcc_getstatus (void ) +{ +u32 __ret; + asmvolatile ("mrc p14, 0, %0, c0, c1, 0 @ read comms ctrl reg" + :"=r" (__ret) : :"cc" ); + +return __ret; +} + +static inline char __dcc_getchar (void ) +{ +char __c; + + asmvolatile ("mrc p14, 0, %0, c0, c5, 0 @ read comms data reg" + :"=r" (__c)); +isb (); + +return __c; +} + +static inline void __dcc_putchar (char c) +{ + asmvolatile ("mcr p14, 0, %0, c0, c5, 0 @ write a char" + :/* no output register */ + :"r" (c)); +isb (); +}
drivers/tty/hvc/hvc_dcc.c +2 -40
61 lines not on this page · raw message
Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by the Linux Foundation.