Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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.

Signed-off-by: Christopher Covington <cov@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Christopher Covington and committed by
Greg Kroah-Hartman
4061f498 15a27431

+43 -40
+41
arch/arm/include/asm/dcc.h
··· 1 + /* Copyright (c) 2010, 2014 The Linux Foundation. All rights reserved. 2 + * 3 + * This program is free software; you can redistribute it and/or modify 4 + * it under the terms of the GNU General Public License version 2 and 5 + * only version 2 as published by the Free Software Foundation. 6 + * 7 + * This program is distributed in the hope that it will be useful, 8 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 + * GNU General Public License for more details. 11 + */ 12 + 13 + #include <asm/barrier.h> 14 + 15 + static inline u32 __dcc_getstatus(void) 16 + { 17 + u32 __ret; 18 + asm volatile("mrc p14, 0, %0, c0, c1, 0 @ read comms ctrl reg" 19 + : "=r" (__ret) : : "cc"); 20 + 21 + return __ret; 22 + } 23 + 24 + static inline char __dcc_getchar(void) 25 + { 26 + char __c; 27 + 28 + asm volatile("mrc p14, 0, %0, c0, c5, 0 @ read comms data reg" 29 + : "=r" (__c)); 30 + isb(); 31 + 32 + return __c; 33 + } 34 + 35 + static inline void __dcc_putchar(char c) 36 + { 37 + asm volatile("mcr p14, 0, %0, c0, c5, 0 @ write a char" 38 + : /* no output register */ 39 + : "r" (c)); 40 + isb(); 41 + }
+2 -40
drivers/tty/hvc/hvc_dcc.c
··· 1 - /* Copyright (c) 2010, Code Aurora Forum. All rights reserved. 1 + /* Copyright (c) 2010, 2014 The Linux Foundation. All rights reserved. 2 2 * 3 3 * This program is free software; you can redistribute it and/or modify 4 4 * it under the terms of the GNU General Public License version 2 and ··· 8 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 10 * GNU General Public License for more details. 11 - * 12 - * You should have received a copy of the GNU General Public License 13 - * along with this program; if not, write to the Free Software 14 - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 15 - * 02110-1301, USA. 16 11 */ 17 12 18 - #include <linux/console.h> 19 - #include <linux/delay.h> 20 - #include <linux/err.h> 21 13 #include <linux/init.h> 22 - #include <linux/moduleparam.h> 23 - #include <linux/types.h> 24 14 15 + #include <asm/dcc.h> 25 16 #include <asm/processor.h> 26 17 27 18 #include "hvc_console.h" ··· 20 29 /* DCC Status Bits */ 21 30 #define DCC_STATUS_RX (1 << 30) 22 31 #define DCC_STATUS_TX (1 << 29) 23 - 24 - static inline u32 __dcc_getstatus(void) 25 - { 26 - u32 __ret; 27 - asm volatile("mrc p14, 0, %0, c0, c1, 0 @ read comms ctrl reg" 28 - : "=r" (__ret) : : "cc"); 29 - 30 - return __ret; 31 - } 32 - 33 - 34 - static inline char __dcc_getchar(void) 35 - { 36 - char __c; 37 - 38 - asm volatile("mrc p14, 0, %0, c0, c5, 0 @ read comms data reg" 39 - : "=r" (__c)); 40 - isb(); 41 - 42 - return __c; 43 - } 44 - 45 - static inline void __dcc_putchar(char c) 46 - { 47 - asm volatile("mcr p14, 0, %0, c0, c5, 0 @ write a char" 48 - : /* no output register */ 49 - : "r" (c)); 50 - isb(); 51 - } 52 32 53 33 static int hvc_dcc_put_chars(uint32_t vt, const char *buf, int count) 54 34 {