diff options
| -rw-r--r-- | arch/arm/configs/shark_defconfig | 85 | ||||
| -rw-r--r-- | arch/arm/lib/io-shark.c | 70 | ||||
| -rw-r--r-- | arch/arm/mach-shark/core.c | 4 | ||||
| -rw-r--r-- | include/asm-arm/arch-shark/io.h | 147 | 
4 files changed, 55 insertions, 251 deletions
diff --git a/arch/arm/configs/shark_defconfig b/arch/arm/configs/shark_defconfig index 1d9bcbbc8df..271823f0d70 100644 --- a/arch/arm/configs/shark_defconfig +++ b/arch/arm/configs/shark_defconfig @@ -1,22 +1,21 @@  #  # Automatically generated make config: don't edit -# Linux kernel version: 2.6.12-rc1-bk2 -# Sun Mar 27 23:59:14 2005 +# Linux kernel version: 2.6.12-git3 +# Sat Jul 16 15:21:47 2005  #  CONFIG_ARM=y  CONFIG_MMU=y  CONFIG_UID16=y  CONFIG_RWSEM_GENERIC_SPINLOCK=y  CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_IOMAP=y  #  # Code maturity level options  #  CONFIG_EXPERIMENTAL=y -# CONFIG_CLEAN_COMPILE is not set -CONFIG_BROKEN=y +CONFIG_CLEAN_COMPILE=y  CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32  #  # General setup @@ -33,7 +32,10 @@ CONFIG_KOBJECT_UEVENT=y  # CONFIG_IKCONFIG is not set  # CONFIG_EMBEDDED is not set  CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set  # CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_PRINTK=y +CONFIG_BUG=y  CONFIG_BASE_FULL=y  CONFIG_FUTEX=y  CONFIG_EPOLL=y @@ -81,6 +83,7 @@ CONFIG_ARCH_SHARK=y  # CONFIG_ARCH_VERSATILE is not set  # CONFIG_ARCH_IMX is not set  # CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set  #  # Processor Type @@ -103,10 +106,12 @@ CONFIG_CPU_TLB_V4WB=y  #  CONFIG_ISA=y  CONFIG_ISA_DMA=y +CONFIG_ISA_DMA_API=y  CONFIG_PCI=y  CONFIG_PCI_HOST_VIA82C505=y  CONFIG_PCI_LEGACY_PROC=y  # CONFIG_PCI_NAMES is not set +# CONFIG_PCI_DEBUG is not set  #  # PCCARD (PCMCIA/CardBus) support @@ -116,7 +121,9 @@ CONFIG_PCI_LEGACY_PROC=y  #  # Kernel Features  # +# CONFIG_SMP is not set  # CONFIG_PREEMPT is not set +# CONFIG_DISCONTIGMEM is not set  CONFIG_LEDS=y  CONFIG_LEDS_TIMER=y  # CONFIG_LEDS_CPU is not set @@ -163,6 +170,7 @@ CONFIG_BINFMT_ELF=y  # CONFIG_STANDALONE is not set  CONFIG_PREVENT_FIRMWARE_BUILD=y  # CONFIG_FW_LOADER is not set +# CONFIG_DEBUG_DRIVER is not set  #  # Memory Technology Devices (MTD) @@ -172,8 +180,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y  #  # Parallel port support  # -CONFIG_PARPORT=y -CONFIG_PARPORT_PC=y +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m  # CONFIG_PARPORT_SERIAL is not set  # CONFIG_PARPORT_PC_FIFO is not set  # CONFIG_PARPORT_PC_SUPERIO is not set @@ -189,7 +197,6 @@ CONFIG_PARPORT_PC=y  #  # Block devices  # -# CONFIG_BLK_DEV_FD is not set  # CONFIG_BLK_DEV_XD is not set  # CONFIG_PARIDE is not set  # CONFIG_BLK_CPQ_DA is not set @@ -229,7 +236,7 @@ CONFIG_BLK_DEV_IDE=y  # CONFIG_BLK_DEV_IDE_SATA is not set  CONFIG_BLK_DEV_IDEDISK=y  # CONFIG_IDEDISK_MULTI_MODE is not set -CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD=m  # CONFIG_BLK_DEV_IDETAPE is not set  CONFIG_BLK_DEV_IDEFLOPPY=y  # CONFIG_BLK_DEV_IDESCSI is not set @@ -261,6 +268,7 @@ CONFIG_CHR_DEV_ST=m  CONFIG_BLK_DEV_SR=m  # CONFIG_BLK_DEV_SR_VENDOR is not set  CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set  #  # Some SCSI devices (e.g. CD jukebox) support multiple LUNs @@ -290,17 +298,14 @@ CONFIG_CHR_DEV_SG=m  # CONFIG_SCSI_AIC7XXX_OLD is not set  # CONFIG_SCSI_AIC79XX is not set  # CONFIG_SCSI_DPT_I2O is not set -# CONFIG_SCSI_ADVANSYS is not set  # CONFIG_SCSI_IN2000 is not set  # CONFIG_MEGARAID_NEWGEN is not set  # CONFIG_MEGARAID_LEGACY is not set  # CONFIG_SCSI_SATA is not set  # CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_CPQFCTS is not set  # CONFIG_SCSI_DMX3191D is not set  # CONFIG_SCSI_DTC3280 is not set  # CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_EATA_PIO is not set  # CONFIG_SCSI_FUTURE_DOMAIN is not set  # CONFIG_SCSI_GDTH is not set  # CONFIG_SCSI_GENERIC_NCR5380 is not set @@ -314,11 +319,8 @@ CONFIG_CHR_DEV_SG=m  # CONFIG_SCSI_SYM53C8XX_2 is not set  # CONFIG_SCSI_IPR is not set  # CONFIG_SCSI_PAS16 is not set -# CONFIG_SCSI_PCI2000 is not set -# CONFIG_SCSI_PCI2220I is not set  # CONFIG_SCSI_PSI240I is not set  # CONFIG_SCSI_QLOGIC_FAS is not set -# CONFIG_SCSI_QLOGIC_ISP is not set  # CONFIG_SCSI_QLOGIC_FC is not set  # CONFIG_SCSI_QLOGIC_1280 is not set  CONFIG_SCSI_QLA2XXX=m @@ -327,6 +329,7 @@ CONFIG_SCSI_QLA2XXX=m  # CONFIG_SCSI_QLA2300 is not set  # CONFIG_SCSI_QLA2322 is not set  # CONFIG_SCSI_QLA6312 is not set +# CONFIG_SCSI_LPFC is not set  # CONFIG_SCSI_SYM53C416 is not set  # CONFIG_SCSI_DC395x is not set  # CONFIG_SCSI_DC390T is not set @@ -344,6 +347,8 @@ CONFIG_SCSI_QLA2XXX=m  # Fusion MPT device support  #  # CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set  #  # IEEE 1394 (FireWire) support @@ -365,7 +370,6 @@ CONFIG_NET=y  #  CONFIG_PACKET=y  # CONFIG_PACKET_MMAP is not set -# CONFIG_NETLINK_DEV is not set  CONFIG_UNIX=y  # CONFIG_NET_KEY is not set  CONFIG_INET=y @@ -380,7 +384,7 @@ CONFIG_INET=y  # CONFIG_INET_ESP is not set  # CONFIG_INET_IPCOMP is not set  # CONFIG_INET_TUNNEL is not set -# CONFIG_IP_TCPDIAG is not set +CONFIG_IP_TCPDIAG=y  # CONFIG_IP_TCPDIAG_IPV6 is not set  # CONFIG_IPV6 is not set  # CONFIG_NETFILTER is not set @@ -439,6 +443,7 @@ CONFIG_NET_ETHERNET=y  # CONFIG_LANCE is not set  # CONFIG_NET_VENDOR_SMC is not set  # CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set  # CONFIG_NET_VENDOR_RACAL is not set  # @@ -483,9 +488,11 @@ CONFIG_CS89x0=y  # CONFIG_HAMACHI is not set  # CONFIG_YELLOWFIN is not set  # CONFIG_R8169 is not set +# CONFIG_SKGE is not set  # CONFIG_SK98LIN is not set  # CONFIG_VIA_VELOCITY is not set  # CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set  #  # Ethernet (10000 Mbit) @@ -569,7 +576,6 @@ CONFIG_SERIO_I8042=y  CONFIG_SERIO_LIBPS2=y  # CONFIG_SERIO_RAW is not set  # CONFIG_GAMEPORT is not set -CONFIG_SOUND_GAMEPORT=y  #  # Character devices @@ -592,6 +598,7 @@ CONFIG_SERIAL_8250_NR_UARTS=4  #  CONFIG_SERIAL_CORE=y  CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set  CONFIG_UNIX98_PTYS=y  CONFIG_LEGACY_PTYS=y  CONFIG_LEGACY_PTY_COUNT=256 @@ -653,6 +660,7 @@ CONFIG_FB_CFB_FILLRECT=y  CONFIG_FB_CFB_COPYAREA=y  CONFIG_FB_CFB_IMAGEBLIT=y  CONFIG_FB_SOFT_CURSOR=y +# CONFIG_FB_MACMODES is not set  # CONFIG_FB_MODE_HELPERS is not set  # CONFIG_FB_TILEBLITTING is not set  # CONFIG_FB_CIRRUS is not set @@ -674,7 +682,7 @@ CONFIG_FB_CYBER2000=y  # CONFIG_FB_3DFX is not set  # CONFIG_FB_VOODOO1 is not set  # CONFIG_FB_TRIDENT is not set -# CONFIG_FB_PM3 is not set +# CONFIG_FB_S1D13XXX is not set  # CONFIG_FB_VIRTUAL is not set  # @@ -808,7 +816,7 @@ CONFIG_DNOTIFY=y  #  # CD-ROM/DVD Filesystems  # -CONFIG_ISO9660_FS=y +CONFIG_ISO9660_FS=m  CONFIG_JOLIET=y  # CONFIG_ZISOFS is not set  # CONFIG_UDF_FS is not set @@ -816,9 +824,9 @@ CONFIG_JOLIET=y  #  # DOS/FAT/NT Filesystems  # -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m  CONFIG_FAT_DEFAULT_CODEPAGE=437  CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"  # CONFIG_NTFS_FS is not set @@ -833,7 +841,6 @@ CONFIG_DEVFS_MOUNT=y  # CONFIG_DEVFS_DEBUG is not set  # CONFIG_DEVPTS_FS_XATTR is not set  # CONFIG_TMPFS is not set -# CONFIG_HUGETLBFS is not set  # CONFIG_HUGETLB_PAGE is not set  CONFIG_RAMFS=y @@ -857,13 +864,14 @@ CONFIG_RAMFS=y  #  # Network File Systems  # -CONFIG_NFS_FS=y -# CONFIG_NFS_V3 is not set +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y  # CONFIG_NFS_V4 is not set  # CONFIG_NFS_DIRECTIO is not set  # CONFIG_NFSD is not set -CONFIG_LOCKD=y -CONFIG_SUNRPC=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_SUNRPC=m  # CONFIG_RPCSEC_GSS_KRB5 is not set  # CONFIG_RPCSEC_GSS_SPKM3 is not set  # CONFIG_SMB_FS is not set @@ -895,12 +903,12 @@ CONFIG_MSDOS_PARTITION=y  #  # Native Language Support  # -CONFIG_NLS=y +CONFIG_NLS=m  CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_437=m  # CONFIG_NLS_CODEPAGE_737 is not set  # CONFIG_NLS_CODEPAGE_775 is not set -CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_CODEPAGE_850=m  # CONFIG_NLS_CODEPAGE_852 is not set  # CONFIG_NLS_CODEPAGE_855 is not set  # CONFIG_NLS_CODEPAGE_857 is not set @@ -921,7 +929,7 @@ CONFIG_NLS_CODEPAGE_850=y  # CONFIG_NLS_CODEPAGE_1250 is not set  # CONFIG_NLS_CODEPAGE_1251 is not set  # CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_1=m  # CONFIG_NLS_ISO8859_2 is not set  # CONFIG_NLS_ISO8859_3 is not set  # CONFIG_NLS_ISO8859_4 is not set @@ -945,11 +953,22 @@ CONFIG_NLS_ISO8859_1=y  # Kernel hacking  #  # CONFIG_PRINTK_TIME is not set -# CONFIG_DEBUG_KERNEL is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_MAGIC_SYSRQ is not set  CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_KOBJECT is not set  CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_FS is not set  CONFIG_FRAME_POINTER=y  CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_WAITQ is not set +# CONFIG_DEBUG_ERRORS is not set +# CONFIG_DEBUG_LL is not set  #  # Security options diff --git a/arch/arm/lib/io-shark.c b/arch/arm/lib/io-shark.c index 108d4573e97..824253948f5 100644 --- a/arch/arm/lib/io-shark.c +++ b/arch/arm/lib/io-shark.c @@ -11,73 +11,3 @@   * it under the terms of the GNU General Public License version 2 as   * published by the Free Software Foundation.   */ -#include <linux/kernel.h> - -#include <asm/io.h> - -void print_warning(void) -{ -	printk(KERN_WARNING "ins?/outs? not implemented on this architecture\n"); -} - -void insl(unsigned int port, void *to, int len) -{ -	print_warning(); -} - -void insb(unsigned int port, void *to, int len) -{ -	print_warning(); -} - -void outsl(unsigned int port, const void *from, int len) -{ -	print_warning(); -} - -void outsb(unsigned int port, const void *from, int len) -{ -	print_warning(); -} - -/* these should be in assembler again */ - -/* - * Purpose: read a block of data from a hardware register to memory. - * Proto  : insw(int from_port, void *to, int len_in_words); - * Proto  : inswb(int from_port, void *to, int len_in_bytes); - * Notes  : increment to - */ - -void insw(unsigned int port, void *to, int len) -{ -	int i; - -	for (i = 0; i < len; i++) -		((unsigned short *) to)[i] = inw(port); -} - -void inswb(unsigned int port, void *to, int len) -{ -	insw(port, to, len >> 2); -} - -/* - * Purpose: write a block of data from memory to a hardware register. - * Proto  : outsw(int to_reg, void *from, int len_in_words); - * Proto  : outswb(int to_reg, void *from, int len_in_bytes); - * Notes  : increments from - */ - -void outsw(unsigned int port, const void *from, int len) -{ -	int i; - -	for (i = 0; i < len; i++) -		outw(((unsigned short *) from)[i], port); -} - -void outswb(unsigned int port, const void *from, int len) -{ -	outsw(port, from, len >> 2); -} diff --git a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c index 726445895b5..e737eae4521 100644 --- a/arch/arm/mach-shark/core.c +++ b/arch/arm/mach-shark/core.c @@ -24,7 +24,7 @@ static struct plat_serial8250_port serial_platform_data[] = {  		.iobase		= 0x3f8,  		.irq		= 4,  		.uartclk	= 1843200, -		.regshift	= 2, +		.regshift	= 0,  		.iotype		= UPIO_PORT,  		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,  	}, @@ -32,7 +32,7 @@ static struct plat_serial8250_port serial_platform_data[] = {  		.iobase		= 0x2f8,  		.irq		= 3,  		.uartclk	= 1843200, -		.regshift	= 2, +		.regshift	= 0,  		.iotype		= UPIO_PORT,  		.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,  	}, diff --git a/include/asm-arm/arch-shark/io.h b/include/asm-arm/arch-shark/io.h index 1e7f26bc2e1..5e6ed0038b2 100644 --- a/include/asm-arm/arch-shark/io.h +++ b/include/asm-arm/arch-shark/io.h @@ -21,38 +21,8 @@   */  #define __PORT_PCIO(x)	(!((x) & 0x80000000)) -/* - * Dynamic IO functions - let the compiler - * optimize the expressions - */ -#define DECLARE_DYN_OUT(fnsuffix,instr)						\ -static inline void __out##fnsuffix (unsigned int value, unsigned int port)	\ -{										\ -	unsigned long temp;							\ -	__asm__ __volatile__(							\ -	"tst	%2, #0x80000000\n\t"						\ -	"mov	%0, %4\n\t"							\ -	"addeq	%0, %0, %3\n\t"							\ -	"str" instr "	%1, [%0, %2]	@ out" #fnsuffix			\ -	: "=&r" (temp)								\ -	: "r" (value), "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE)	\ -	: "cc");								\ -} +#define __io(a)                 ((void __iomem *)(PCIO_BASE + (a))) -#define DECLARE_DYN_IN(sz,fnsuffix,instr)					\ -static inline unsigned sz __in##fnsuffix (unsigned int port)		\ -{										\ -	unsigned long temp, value;						\ -	__asm__ __volatile__(							\ -	"tst	%2, #0x80000000\n\t"						\ -	"mov	%0, %4\n\t"							\ -	"addeq	%0, %0, %3\n\t"							\ -	"ldr" instr "	%1, [%0, %2]	@ in" #fnsuffix				\ -	: "=&r" (temp), "=r" (value)						\ -	: "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE)		\ -	: "cc");								\ -	return (unsigned sz)value;						\ -}  static inline unsigned int __ioaddr (unsigned int port)			\  {										\ @@ -62,123 +32,8 @@ static inline unsigned int __ioaddr (unsigned int port)			\  		return (unsigned int)(IO_BASE + (port));			\  } -#define DECLARE_IO(sz,fnsuffix,instr)	\ -	DECLARE_DYN_OUT(fnsuffix,instr)	\ -	DECLARE_DYN_IN(sz,fnsuffix,instr) - -DECLARE_IO(char,b,"b") -DECLARE_IO(short,w,"h") -DECLARE_IO(long,l,"") - -#undef DECLARE_IO -#undef DECLARE_DYN_OUT -#undef DECLARE_DYN_IN - -/* - * Constant address IO functions - * - * These have to be macros for the 'J' constraint to work - - * +/-4096 immediate operand. - */ -#define __outbc(value,port)							\ -({										\ -	if (__PORT_PCIO((port)))						\ -		__asm__ __volatile__(						\ -		"strb	%0, [%1, %2]		@ outbc"			\ -		: : "r" (value), "r" (PCIO_BASE), "Jr" (port));		\ -	else									\ -		__asm__ __volatile__(						\ -		"strb	%0, [%1, %2]		@ outbc"			\ -		: : "r" (value), "r" (IO_BASE), "r" (port));		\ -}) - -#define __inbc(port)								\ -({										\ -	unsigned char result;                                                   \ -	if (__PORT_PCIO((port)))						\ -		__asm__ __volatile__(						\ -		"ldrb	%0, [%1, %2]		@ inbc"				\ -		: "=r" (result) : "r" (PCIO_BASE), "Jr" (port));		\ -	else									\ -		__asm__ __volatile__(						\ -		"ldrb	%0, [%1, %2]		@ inbc"				\ -		: "=r" (result) : "r" (IO_BASE), "r" (port));		\ -	result;									\ -}) - -#define __outwc(value,port)							\ -({										\ -	unsigned long v = value;						\ -	if (__PORT_PCIO((port)))						\ -		__asm__ __volatile__(						\ -		"strh	%0, [%1, %2]		@ outwc"			\ -		: : "r" (v|v<<16), "r" (PCIO_BASE), "Jr" (port));	\ -	else									\ -		__asm__ __volatile__(						\ -		"strh	%0, [%1, %2]		@ outwc"			\ -		: : "r" (v|v<<16), "r" (IO_BASE), "r" (port));		\ -}) - -#define __inwc(port)								\ -({										\ -	unsigned short result;							\ -	if (__PORT_PCIO((port)))						\ -		__asm__ __volatile__(						\ -		"ldrh	%0, [%1, %2]		@ inwc"				\ -		: "=r" (result) : "r" (PCIO_BASE), "Jr" (port));		\ -	else									\ -		__asm__ __volatile__(						\ -		"ldrh	%0, [%1, %2]		@ inwc"				\ -		: "=r" (result) : "r" (IO_BASE), "r" (port));		\ -	result & 0xffff;							\ -}) - -#define __outlc(value,port)								\ -({										\ -	unsigned long v = value;						\ -	if (__PORT_PCIO((port)))						\ -		__asm__ __volatile__(						\ -		"str	%0, [%1, %2]		@ outlc"			\ -		: : "r" (v), "r" (PCIO_BASE), "Jr" (port));		\ -	else									\ -		__asm__ __volatile__(						\ -		"str	%0, [%1, %2]		@ outlc"			\ -		: : "r" (v), "r" (IO_BASE), "r" (port));			\ -}) - -#define __inlc(port)								\ -({										\ -	unsigned long result;							\ -	if (__PORT_PCIO((port)))						\ -		__asm__ __volatile__(						\ -		"ldr	%0, [%1, %2]		@ inlc"				\ -		: "=r" (result) : "r" (PCIO_BASE), "Jr" (port));		\ -	else									\ -		__asm__ __volatile__(						\ -		"ldr	%0, [%1, %2]		@ inlc"				\ -		: "=r" (result) : "r" (IO_BASE), "r" (port));		\ -	result;									\ -}) - -#define __ioaddrc(port)								\ -({										\ -	unsigned long addr;							\ -	if (__PORT_PCIO((port)))						\ -		addr = PCIO_BASE + (port);				\ -	else									\ -		addr = IO_BASE + (port);					\ -	addr;									\ -}) -  #define __mem_pci(addr) (addr) -#define inb(p)	 	(__builtin_constant_p((p)) ? __inbc(p)    : __inb(p)) -#define inw(p)	 	(__builtin_constant_p((p)) ? __inwc(p)    : __inw(p)) -#define inl(p)	 	(__builtin_constant_p((p)) ? __inlc(p)    : __inl(p)) -#define outb(v,p)	(__builtin_constant_p((p)) ? __outbc(v,p) : __outb(v,p)) -#define outw(v,p)	(__builtin_constant_p((p)) ? __outwc(v,p) : __outw(v,p)) -#define outl(v,p)	(__builtin_constant_p((p)) ? __outlc(v,p) : __outl(v,p)) -  /*   * Translated address IO functions   *  |