Commit 1f0e14bb authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  ARM: Ensure ARMv6/7 mm files are built using appropriate assembler options
  ARM: Fix wrong dmb
  ARM: 5874/1: serial21285: fix disable_irq-from-interrupt-handler deadlock
  ARM: 5873/1: ARM: Fix the reset logic for ARM RealView boards
  ARM: 5872/1: ARM: include needed linux/cpu.h in asm/cpu.h
  ARM: 5871/1: arch/arm: Fix build failure for lpd7a404_defconfig caused by missing includes
  ARM: 5870/1: arch/arm: Fix build failure for defconfigs without CONFIG_ISA_DMA_API set
  ARM: 5868/1: ARM: fix "BUG: using smp_processor_id() in preemptible code"
  ARM: 5867/1: Update U300 defconfig
  ARM: 5866/1: arm ptrace: use unsigned types for kernel pt_regs
  [ARM] pxa: fix strange characters in zaurus gpio .desc
  ARM: add missing recvmmsg syscall number
  [ARM] pxa: fix compiler warnings of unused variable 'id' in cpu_is_pxa9*()
  [ARM] pxa: update pwm_backlight->notify() to include missed 'struct device *'
  [ARM] pxa: enable L2 if present in XSC3
  [ARM] pxa: do not enable L2 after MMU is enabled
parents f25bb39f aff7b4f8
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.32-rc5 # Linux kernel version: 2.6.33-rc2
# Sat Oct 17 23:32:24 2009 # Wed Jan 6 00:01:36 2010
# #
CONFIG_ARM=y CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y
...@@ -46,6 +46,7 @@ CONFIG_SYSVIPC_SYSCTL=y ...@@ -46,6 +46,7 @@ CONFIG_SYSVIPC_SYSCTL=y
# #
CONFIG_TREE_RCU=y CONFIG_TREE_RCU=y
# CONFIG_TREE_PREEMPT_RCU is not set # CONFIG_TREE_PREEMPT_RCU is not set
# CONFIG_TINY_RCU is not set
# CONFIG_RCU_TRACE is not set # CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32 CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_RCU_FANOUT_EXACT is not set
...@@ -119,14 +120,41 @@ CONFIG_BLOCK=y ...@@ -119,14 +120,41 @@ CONFIG_BLOCK=y
# IO Schedulers # IO Schedulers
# #
CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_AS is not set
CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_DEADLINE=y
# CONFIG_IOSCHED_CFQ is not set # CONFIG_IOSCHED_CFQ is not set
# CONFIG_DEFAULT_AS is not set
CONFIG_DEFAULT_DEADLINE=y CONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set # CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="deadline" CONFIG_DEFAULT_IOSCHED="deadline"
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
# CONFIG_INLINE_SPIN_UNLOCK is not set
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
# CONFIG_INLINE_READ_UNLOCK is not set
# CONFIG_INLINE_READ_UNLOCK_BH is not set
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
# CONFIG_INLINE_WRITE_UNLOCK is not set
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
# CONFIG_FREEZER is not set # CONFIG_FREEZER is not set
# #
...@@ -155,6 +183,7 @@ CONFIG_MMU=y ...@@ -155,6 +183,7 @@ CONFIG_MMU=y
# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set # CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_DOVE is not set
# CONFIG_ARCH_KIRKWOOD is not set # CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_LOKI is not set # CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_MV78XX0 is not set
...@@ -177,6 +206,7 @@ CONFIG_ARCH_U300=y ...@@ -177,6 +206,7 @@ CONFIG_ARCH_U300=y
# CONFIG_ARCH_DAVINCI is not set # CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_OMAP is not set # CONFIG_ARCH_OMAP is not set
# CONFIG_ARCH_BCMRING is not set # CONFIG_ARCH_BCMRING is not set
# CONFIG_ARCH_U8500 is not set
# #
# ST-Ericsson AB U300/U330/U335/U365 Platform # ST-Ericsson AB U300/U330/U335/U365 Platform
...@@ -265,12 +295,10 @@ CONFIG_FLATMEM_MANUAL=y ...@@ -265,12 +295,10 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4096 CONFIG_SPLIT_PTLOCK_CPUS=999999
# CONFIG_PHYS_ADDR_T_64BIT is not set # CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0 CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
# CONFIG_KSM is not set # CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ALIGNMENT_TRAP=y CONFIG_ALIGNMENT_TRAP=y
...@@ -499,14 +527,21 @@ CONFIG_MTD_NAND_IDS=y ...@@ -499,14 +527,21 @@ CONFIG_MTD_NAND_IDS=y
CONFIG_BLK_DEV=y CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not set # CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_LOOP is not set
#
# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
#
# CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set # CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set # CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set # CONFIG_ATA_OVER_ETH is not set
CONFIG_MISC_DEVICES=y CONFIG_MISC_DEVICES=y
# CONFIG_AD525X_DPOT is not set
# CONFIG_ICS932S401 is not set # CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set # CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_ISL29003 is not set # CONFIG_ISL29003 is not set
# CONFIG_DS1682 is not set
# CONFIG_TI_DAC7512 is not set
# CONFIG_C2PORT is not set # CONFIG_C2PORT is not set
# #
...@@ -517,6 +552,7 @@ CONFIG_MISC_DEVICES=y ...@@ -517,6 +552,7 @@ CONFIG_MISC_DEVICES=y
# CONFIG_EEPROM_LEGACY is not set # CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set # CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set # CONFIG_EEPROM_93CX6 is not set
# CONFIG_IWMC3200TOP is not set
CONFIG_HAVE_IDE=y CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set # CONFIG_IDE is not set
...@@ -539,6 +575,7 @@ CONFIG_HAVE_IDE=y ...@@ -539,6 +575,7 @@ CONFIG_HAVE_IDE=y
CONFIG_INPUT=y CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set # CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
# #
# Userland interfaces # Userland interfaces
...@@ -645,7 +682,6 @@ CONFIG_I2C_STU300=y ...@@ -645,7 +682,6 @@ CONFIG_I2C_STU300=y
# #
# Miscellaneous I2C Chip support # Miscellaneous I2C Chip support
# #
# CONFIG_DS1682 is not set
# CONFIG_SENSORS_TSL2550 is not set # CONFIG_SENSORS_TSL2550 is not set
# CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_ALGO is not set
...@@ -661,6 +697,8 @@ CONFIG_SPI_MASTER=y ...@@ -661,6 +697,8 @@ CONFIG_SPI_MASTER=y
# CONFIG_SPI_BITBANG is not set # CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_GPIO is not set # CONFIG_SPI_GPIO is not set
CONFIG_SPI_PL022=y CONFIG_SPI_PL022=y
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_DESIGNWARE is not set
# #
# SPI Protocol Masters # SPI Protocol Masters
...@@ -708,6 +746,7 @@ CONFIG_SSB_POSSIBLE=y ...@@ -708,6 +746,7 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_MFD_T7L66XB is not set # CONFIG_MFD_T7L66XB is not set
# CONFIG_MFD_TC6387XB is not set # CONFIG_MFD_TC6387XB is not set
# CONFIG_PMIC_DA903X is not set # CONFIG_PMIC_DA903X is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X is not set # CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8350_I2C is not set
...@@ -716,6 +755,8 @@ CONFIG_SSB_POSSIBLE=y ...@@ -716,6 +755,8 @@ CONFIG_SSB_POSSIBLE=y
CONFIG_AB3100_CORE=y CONFIG_AB3100_CORE=y
CONFIG_AB3100_OTP=y CONFIG_AB3100_OTP=y
# CONFIG_EZX_PCAP is not set # CONFIG_EZX_PCAP is not set
# CONFIG_MFD_88PM8607 is not set
# CONFIG_AB4500_CORE is not set
CONFIG_REGULATOR=y CONFIG_REGULATOR=y
# CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FIXED_VOLTAGE is not set # CONFIG_REGULATOR_FIXED_VOLTAGE is not set
...@@ -723,6 +764,7 @@ CONFIG_REGULATOR=y ...@@ -723,6 +764,7 @@ CONFIG_REGULATOR=y
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
# CONFIG_REGULATOR_BQ24022 is not set # CONFIG_REGULATOR_BQ24022 is not set
# CONFIG_REGULATOR_MAX1586 is not set # CONFIG_REGULATOR_MAX1586 is not set
# CONFIG_REGULATOR_MAX8660 is not set
# CONFIG_REGULATOR_LP3971 is not set # CONFIG_REGULATOR_LP3971 is not set
CONFIG_REGULATOR_AB3100=y CONFIG_REGULATOR_AB3100=y
# CONFIG_REGULATOR_TPS65023 is not set # CONFIG_REGULATOR_TPS65023 is not set
...@@ -840,7 +882,9 @@ CONFIG_LEDS_CLASS=y ...@@ -840,7 +882,9 @@ CONFIG_LEDS_CLASS=y
# CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_LP3944 is not set
# CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_PCA955X is not set
# CONFIG_LEDS_DAC124S085 is not set # CONFIG_LEDS_DAC124S085 is not set
# CONFIG_LEDS_REGULATOR is not set
# CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_BD2802 is not set
# CONFIG_LEDS_LT3593 is not set
# #
# LED Triggers # LED Triggers
...@@ -882,6 +926,7 @@ CONFIG_RTC_INTF_DEV=y ...@@ -882,6 +926,7 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set # CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set # CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8581 is not set
...@@ -911,7 +956,9 @@ CONFIG_RTC_INTF_DEV=y ...@@ -911,7 +956,9 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_M48T86 is not set # CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set # CONFIG_RTC_DRV_M48T35 is not set
# CONFIG_RTC_DRV_M48T59 is not set # CONFIG_RTC_DRV_M48T59 is not set
# CONFIG_RTC_DRV_MSM6242 is not set
# CONFIG_RTC_DRV_BQ4802 is not set # CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set # CONFIG_RTC_DRV_V3020 is not set
CONFIG_RTC_DRV_AB3100=y CONFIG_RTC_DRV_AB3100=y
...@@ -926,6 +973,15 @@ CONFIG_DMADEVICES=y ...@@ -926,6 +973,15 @@ CONFIG_DMADEVICES=y
# #
# DMA Devices # DMA Devices
# #
CONFIG_COH901318=y
CONFIG_DMA_ENGINE=y
#
# DMA Clients
#
# CONFIG_NET_DMA is not set
# CONFIG_ASYNC_TX_DMA is not set
# CONFIG_DMATEST is not set
# CONFIG_AUXDISPLAY is not set # CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set # CONFIG_UIO is not set
...@@ -1018,7 +1074,7 @@ CONFIG_MISC_FILESYSTEMS=y ...@@ -1018,7 +1074,7 @@ CONFIG_MISC_FILESYSTEMS=y
CONFIG_MSDOS_PARTITION=y CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set # CONFIG_NLS_CODEPAGE_850 is not set
...@@ -1135,6 +1191,7 @@ CONFIG_ARM_UNWIND=y ...@@ -1135,6 +1191,7 @@ CONFIG_ARM_UNWIND=y
# CONFIG_DEBUG_ERRORS is not set # CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_LL is not set # CONFIG_DEBUG_LL is not set
# CONFIG_OC_ETM is not set
# #
# Security options # Security options
...@@ -1142,7 +1199,11 @@ CONFIG_ARM_UNWIND=y ...@@ -1142,7 +1199,11 @@ CONFIG_ARM_UNWIND=y
# CONFIG_KEYS is not set # CONFIG_KEYS is not set
# CONFIG_SECURITY is not set # CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set # CONFIG_SECURITYFS is not set
# CONFIG_SECURITY_FILE_CAPABILITIES is not set # CONFIG_DEFAULT_SECURITY_SELINUX is not set
# CONFIG_DEFAULT_SECURITY_SMACK is not set
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
# CONFIG_CRYPTO is not set # CONFIG_CRYPTO is not set
# CONFIG_BINARY_PRINTF is not set # CONFIG_BINARY_PRINTF is not set
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#define __ASM_ARM_CPU_H #define __ASM_ARM_CPU_H
#include <linux/percpu.h> #include <linux/percpu.h>
#include <linux/cpu.h>
struct cpuinfo_arm { struct cpuinfo_arm {
struct cpu cpu; struct cpu cpu;
......
...@@ -138,12 +138,12 @@ extern int get_dma_residue(unsigned int chan); ...@@ -138,12 +138,12 @@ extern int get_dma_residue(unsigned int chan);
#define NO_DMA 255 #define NO_DMA 255
#endif #endif
#endif /* CONFIG_ISA_DMA_API */
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
extern int isa_dma_bridge_buggy; extern int isa_dma_bridge_buggy;
#else #else
#define isa_dma_bridge_buggy (0) #define isa_dma_bridge_buggy (0)
#endif #endif
#endif /* CONFIG_ISA_DMA_API */
#endif /* __ASM_ARM_DMA_H */ #endif /* __ASM_ARM_DMA_H */
...@@ -97,9 +97,15 @@ ...@@ -97,9 +97,15 @@
* stack during a system call. Note that sizeof(struct pt_regs) * stack during a system call. Note that sizeof(struct pt_regs)
* has to be a multiple of 8. * has to be a multiple of 8.
*/ */
#ifndef __KERNEL__
struct pt_regs { struct pt_regs {
long uregs[18]; long uregs[18];
}; };
#else /* __KERNEL__ */
struct pt_regs {
unsigned long uregs[18];
};
#endif /* __KERNEL__ */
#define ARM_cpsr uregs[16] #define ARM_cpsr uregs[16]
#define ARM_pc uregs[15] #define ARM_pc uregs[15]
......
...@@ -391,6 +391,7 @@ ...@@ -391,6 +391,7 @@
#define __NR_pwritev (__NR_SYSCALL_BASE+362) #define __NR_pwritev (__NR_SYSCALL_BASE+362)
#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363) #define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363)
#define __NR_perf_event_open (__NR_SYSCALL_BASE+364) #define __NR_perf_event_open (__NR_SYSCALL_BASE+364)
#define __NR_recvmmsg (__NR_SYSCALL_BASE+365)
/* /*
* The following SWIs are ARM private. * The following SWIs are ARM private.
......
...@@ -957,9 +957,7 @@ kuser_cmpxchg_fixup: ...@@ -957,9 +957,7 @@ kuser_cmpxchg_fixup:
#else #else
#ifdef CONFIG_SMP smp_dmb
mcr p15, 0, r0, c7, c10, 5 @ dmb
#endif
1: ldrex r3, [r2] 1: ldrex r3, [r2]
subs r3, r3, r0 subs r3, r3, r0
strexeq r3, r1, [r2] strexeq r3, r1, [r2]
......
...@@ -212,7 +212,8 @@ void __show_regs(struct pt_regs *regs) ...@@ -212,7 +212,8 @@ void __show_regs(struct pt_regs *regs)
char buf[64]; char buf[64];
printk("CPU: %d %s (%s %.*s)\n", printk("CPU: %d %s (%s %.*s)\n",
smp_processor_id(), print_tainted(), init_utsname()->release, raw_smp_processor_id(), print_tainted(),
init_utsname()->release,
(int)strcspn(init_utsname()->version, " "), (int)strcspn(init_utsname()->version, " "),
init_utsname()->version); init_utsname()->version);
print_symbol("PC is at %s\n", instruction_pointer(regs)); print_symbol("PC is at %s\n", instruction_pointer(regs));
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/clocks.h> #include <mach/clocks.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/device.h>
#include <linux/string.h>
struct module; struct module;
......
...@@ -250,20 +250,17 @@ ...@@ -250,20 +250,17 @@
#define cpu_is_pxa930() \ #define cpu_is_pxa930() \
({ \ ({ \
unsigned int id = read_cpuid(CPUID_ID); \ __cpu_is_pxa930(read_cpuid_id()); \
__cpu_is_pxa930(id); \
}) })
#define cpu_is_pxa935() \ #define cpu_is_pxa935() \
({ \ ({ \
unsigned int id = read_cpuid(CPUID_ID); \ __cpu_is_pxa935(read_cpuid_id()); \
__cpu_is_pxa935(id); \
}) })
#define cpu_is_pxa950() \ #define cpu_is_pxa950() \
({ \ ({ \
unsigned int id = read_cpuid(CPUID_ID); \ __cpu_is_pxa950(read_cpuid_id()); \
__cpu_is_pxa950(id); \
}) })
......
...@@ -381,7 +381,7 @@ static int magician_backlight_init(struct device *dev) ...@@ -381,7 +381,7 @@ static int magician_backlight_init(struct device *dev)
return ret; return ret;
} }
static int magician_backlight_notify(int brightness) static int magician_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(EGPIO_MAGICIAN_BL_POWER, brightness); gpio_set_value(EGPIO_MAGICIAN_BL_POWER, brightness);
if (brightness >= 200) { if (brightness >= 200) {
......
...@@ -270,7 +270,7 @@ static int palmld_backlight_init(struct device *dev) ...@@ -270,7 +270,7 @@ static int palmld_backlight_init(struct device *dev)
return ret; return ret;
} }
static int palmld_backlight_notify(int brightness) static int palmld_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(GPIO_NR_PALMLD_BL_POWER, brightness); gpio_set_value(GPIO_NR_PALMLD_BL_POWER, brightness);
gpio_set_value(GPIO_NR_PALMLD_LCD_POWER, brightness); gpio_set_value(GPIO_NR_PALMLD_LCD_POWER, brightness);
......
...@@ -209,7 +209,7 @@ static int palmt5_backlight_init(struct device *dev) ...@@ -209,7 +209,7 @@ static int palmt5_backlight_init(struct device *dev)
return ret; return ret;
} }
static int palmt5_backlight_notify(int brightness) static int palmt5_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(GPIO_NR_PALMT5_BL_POWER, brightness); gpio_set_value(GPIO_NR_PALMT5_BL_POWER, brightness);
gpio_set_value(GPIO_NR_PALMT5_LCD_POWER, brightness); gpio_set_value(GPIO_NR_PALMT5_LCD_POWER, brightness);
......
...@@ -185,7 +185,7 @@ static int palmtc_backlight_init(struct device *dev) ...@@ -185,7 +185,7 @@ static int palmtc_backlight_init(struct device *dev)
return ret; return ret;
} }
static int palmtc_backlight_notify(int brightness) static int palmtc_backlight_notify(struct device *dev, int brightness)
{ {
/* backlight is on when GPIO16 AF0 is high */ /* backlight is on when GPIO16 AF0 is high */
gpio_set_value(GPIO_NR_PALMTC_BL_POWER, brightness); gpio_set_value(GPIO_NR_PALMTC_BL_POWER, brightness);
......
...@@ -181,7 +181,7 @@ static int palmte2_backlight_init(struct device *dev) ...@@ -181,7 +181,7 @@ static int palmte2_backlight_init(struct device *dev)
return ret; return ret;
} }
static int palmte2_backlight_notify(int brightness) static int palmte2_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(GPIO_NR_PALMTE2_BL_POWER, brightness); gpio_set_value(GPIO_NR_PALMTE2_BL_POWER, brightness);
gpio_set_value(GPIO_NR_PALMTE2_LCD_POWER, brightness); gpio_set_value(GPIO_NR_PALMTE2_LCD_POWER, brightness);
......
...@@ -375,7 +375,7 @@ static int treo_backlight_init(struct device *dev) ...@@ -375,7 +375,7 @@ static int treo_backlight_init(struct device *dev)
return ret; return ret;
} }
static int treo_backlight_notify(int brightness) static int treo_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(GPIO_NR_TREO_BL_POWER, brightness); gpio_set_value(GPIO_NR_TREO_BL_POWER, brightness);
return TREO_MAX_INTENSITY - brightness; return TREO_MAX_INTENSITY - brightness;
......
...@@ -269,7 +269,7 @@ static int palmtx_backlight_init(struct device *dev) ...@@ -269,7 +269,7 @@ static int palmtx_backlight_init(struct device *dev)
return ret; return ret;
} }
static int palmtx_backlight_notify(int brightness) static int palmtx_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(GPIO_NR_PALMTX_BL_POWER, brightness); gpio_set_value(GPIO_NR_PALMTX_BL_POWER, brightness);
gpio_set_value(GPIO_NR_PALMTX_LCD_POWER, brightness); gpio_set_value(GPIO_NR_PALMTX_LCD_POWER, brightness);
......
...@@ -196,7 +196,7 @@ static int palmz72_backlight_init(struct device *dev) ...@@ -196,7 +196,7 @@ static int palmz72_backlight_init(struct device *dev)
return ret; return ret;
} }
static int palmz72_backlight_notify(int brightness) static int palmz72_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(GPIO_NR_PALMZ72_BL_POWER, brightness); gpio_set_value(GPIO_NR_PALMZ72_BL_POWER, brightness);
gpio_set_value(GPIO_NR_PALMZ72_LCD_POWER, brightness); gpio_set_value(GPIO_NR_PALMZ72_LCD_POWER, brightness);
......
...@@ -389,13 +389,13 @@ static struct gpio_keys_button spitz_gpio_keys[] = { ...@@ -389,13 +389,13 @@ static struct gpio_keys_button spitz_gpio_keys[] = {
.type = EV_SW, .type = EV_SW,
.code = 0, .code = 0,
.gpio = SPITZ_GPIO_SWA, .gpio = SPITZ_GPIO_SWA,
.desc = "Display Down", .desc = "Display Down",
}, },
{ {
.type = EV_SW, .type = EV_SW,
.code = 1, .code = 1,
.gpio = SPITZ_GPIO_SWB, .gpio = SPITZ_GPIO_SWB,
.desc = "Lid Closed", .desc = "Lid Closed",
}, },
}; };
......
...@@ -379,7 +379,7 @@ static int viper_backlight_init(struct device *dev) ...@@ -379,7 +379,7 @@ static int viper_backlight_init(struct device *dev)
return ret; return ret;
} }
static int viper_backlight_notify(int brightness) static int viper_backlight_notify(struct device *dev, int brightness)
{ {
gpio_set_value(VIPER_LCD_EN_GPIO, !!brightness); gpio_set_value(VIPER_LCD_EN_GPIO, !!brightness);
gpio_set_value(VIPER_BCKLIGHT_EN_GPIO, !!brightness); gpio_set_value(VIPER_BCKLIGHT_EN_GPIO, !!brightness);
......
...@@ -74,8 +74,8 @@ ...@@ -74,8 +74,8 @@
#define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */ #define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */
/* /*
* Control register SYS_RESETCTL is set to 1 to force a soft reset * Control register SYS_RESETCTL Bit 8 is set to 1 to force a soft reset
*/ */
#define REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL 0x0100 #define REALVIEW_PB1176_SYS_SOFT_RESET 0x0100
#endif /* __ASM_ARCH_BOARD_PB1176_H */ #endif /* __ASM_ARCH_BOARD_PB1176_H */
...@@ -140,7 +140,7 @@ ...@@ -140,7 +140,7 @@
* SYS_CLD, SYS_BOOTCS * SYS_CLD, SYS_BOOTCS
*/ */
#define REALVIEW_SYS_LOCK_LOCKED (1 << 16) #define REALVIEW_SYS_LOCK_LOCKED (1 << 16)
#define REALVIEW_SYS_LOCKVAL_MASK 0xA05F /* Enable write access */ #define REALVIEW_SYS_LOCK_VAL 0xA05F /* Enable write access */
/* /*
* REALVIEW_SYS_FLASH * REALVIEW_SYS_FLASH
......
...@@ -381,6 +381,20 @@ static struct sys_timer realview_eb_timer = { ...@@ -381,6 +381,20 @@ static struct sys_timer realview_eb_timer = {
.init = realview_eb_timer_init, .init = realview_eb_timer_init,
}; };
static void realview_eb_reset(char mode)
{
void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL);
void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK);
/*
* To reset, we hit the on-board reset register
* in the system FPGA
*/
__raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl);
if (core_tile_eb11mp())
__raw_writel(0x0008, reset_ctrl);
}
static void __init realview_eb_init(void) static void __init realview_eb_init(void)
{ {
int i; int i;
...@@ -408,6 +422,7 @@ static void __init realview_eb_init(void) ...@@ -408,6 +422,7 @@ static void __init realview_eb_init(void)
#ifdef CONFIG_LEDS #ifdef CONFIG_LEDS
leds_event = realview_leds_event; leds_event = realview_leds_event;
#endif #endif
realview_reset = realview_eb_reset;
} }
MACHINE_START(REALVIEW_EB, "ARM-RealView EB") MACHINE_START(REALVIEW_EB, "ARM-RealView EB")
......
...@@ -292,12 +292,10 @@ static struct sys_timer realview_pb1176_timer = { ...@@ -292,12 +292,10 @@ static struct sys_timer realview_pb1176_timer = {
static void realview_pb1176_reset(char mode) static void realview_pb1176_reset(char mode)
{ {
void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL);
REALVIEW_SYS_RESETCTL_OFFSET; void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK);
void __iomem *rst_hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl);
REALVIEW_SYS_LOCK_OFFSET; __raw_writel(REALVIEW_PB1176_SYS_SOFT_RESET, reset_ctrl);
__raw_writel(REALVIEW_SYS_LOCKVAL_MASK, rst_hdr_ctrl);
__raw_writel(REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL, hdr_ctrl);
} }
static void realview_pb1176_fixup(struct machine_desc *mdesc, static void realview_pb1176_fixup(struct machine_desc *mdesc,
......
...@@ -301,17 +301,16 @@ static struct sys_timer realview_pb11mp_timer = { ...@@ -301,17 +301,16 @@ static struct sys_timer realview_pb11mp_timer = {
static void realview_pb11mp_reset(char mode) static void realview_pb11mp_reset(char mode)
{ {
void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL);
REALVIEW_SYS_RESETCTL_OFFSET; void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK);
unsigned int val;
/* /*
* To reset, we hit the on-board reset register * To reset, we hit the on-board reset register
* in the system FPGA * in the system FPGA
*/ */
val = __raw_readl(hdr_ctrl); __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl);
val |= REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGCLR; __raw_writel(0x0000, reset_ctrl);
__raw_writel(val, hdr_ctrl); __raw_writel(0x0004, reset_ctrl);
} }
static void __init realview_pb11mp_init(void) static void __init realview_pb11mp_init(void)
......
...@@ -272,6 +272,20 @@ static struct sys_timer realview_pba8_timer = { ...@@ -272,6 +272,20 @@ static struct sys_timer realview_pba8_timer = {
.init = realview_pba8_timer_init, .init = realview_pba8_timer_init,
}; };
static void realview_pba8_reset(char mode)
{
void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL);
void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK);
/*
* To reset, we hit the on-board reset register
* in the system FPGA
*/
__raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl);
__raw_writel(0x0000, reset_ctrl);
__raw_writel(0x0004, reset_ctrl);
}
static void __init realview_pba8_init(void) static void __init realview_pba8_init(void)
{ {
int i; int i;
...@@ -291,6 +305,7 @@ static void __init realview_pba8_init(void) ...@@ -291,6 +305,7 @@ static void __init realview_pba8_init(void)
#ifdef CONFIG_LEDS #ifdef CONFIG_LEDS
leds_event = realview_leds_event; leds_event = realview_leds_event;
#endif #endif
realview_reset = realview_pba8_reset;
} }
MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8")
......
...@@ -324,6 +324,20 @@ static void realview_pbx_fixup(struct machine_desc *mdesc, struct tag *tags, ...@@ -324,6 +324,20 @@ static void realview_pbx_fixup(struct machine_desc *mdesc, struct tag *tags,
#endif #endif
} }
static void realview_pbx_reset(char mode)
{
void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL);
void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK);
/*
* To reset, we hit the on-board reset register
* in the system FPGA
*/
__raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl);
__raw_writel(0x0000, reset_ctrl);
__raw_writel(0x0004, reset_ctrl);
}
static void __init realview_pbx_init(void) static void __init realview_pbx_init(void)
{ {
int i; int i;
...@@ -358,6 +372,7 @@ static void __init realview_pbx_init(void) ...@@ -358,6 +372,7 @@ static void __init realview_pbx_init(void)
#ifdef CONFIG_LEDS #ifdef CONFIG_LEDS
leds_event = realview_leds_event; leds_event = realview_leds_event;
#endif #endif
realview_reset = realview_pbx_reset;
} }
MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX")
......
...@@ -27,6 +27,9 @@ obj-$(CONFIG_CPU_ABRT_EV5TJ) += abort-ev5tj.o ...@@ -27,6 +27,9 @@ obj-$(CONFIG_CPU_ABRT_EV5TJ) += abort-ev5tj.o
obj-$(CONFIG_CPU_ABRT_EV6) += abort-ev6.o obj-$(CONFIG_CPU_ABRT_EV6) += abort-ev6.o
obj-$(CONFIG_CPU_ABRT_EV7) += abort-ev7.o obj-$(CONFIG_CPU_ABRT_EV7) += abort-ev7.o
AFLAGS_abort-ev6.o :=-Wa,-march=armv6k
AFLAGS_abort-ev7.o :=-Wa,-march=armv7-a
obj-$(CONFIG_CPU_PABRT_LEGACY) += pabort-legacy.o obj-$(CONFIG_CPU_PABRT_LEGACY) += pabort-legacy.o
obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o
obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o
...@@ -39,6 +42,9 @@ obj-$(CONFIG_CPU_CACHE_V6) += cache-v6.o ...@@ -39,6 +42,9 @@ obj-$(CONFIG_CPU_CACHE_V6) += cache-v6.o
obj-$(CONFIG_CPU_CACHE_V7) += cache-v7.o obj-$(CONFIG_CPU_CACHE_V7) += cache-v7.o
obj-$(CONFIG_CPU_CACHE_FA) += cache-fa.o obj-$(CONFIG_CPU_CACHE_FA) += cache-fa.o
AFLAGS_cache-v6.o :=-Wa,-march=armv6
AFLAGS_cache-v7.o :=-Wa,-march=armv7-a
obj-$(CONFIG_CPU_COPY_V3) += copypage-v3.o obj-$(CONFIG_CPU_COPY_V3) += copypage-v3.o
obj-$(CONFIG_CPU_COPY_V4WT) += copypage-v4wt.o obj-$(CONFIG_CPU_COPY_V4WT) += copypage-v4wt.o
obj-$(CONFIG_CPU_COPY_V4WB) += copypage-v4wb.o obj-$(CONFIG_CPU_COPY_V4WB) += copypage-v4wb.o
...@@ -58,6 +64,9 @@ obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o ...@@ -58,6 +64,9 @@ obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o
obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o
obj-$(CONFIG_CPU_TLB_FA) += tlb-fa.o obj-$(CONFIG_CPU_TLB_FA) += tlb-fa.o
AFLAGS_tlb-v6.o :=-Wa,-march=armv6
AFLAGS_tlb-v7.o :=-Wa,-march=armv7-a
obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o
obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o
obj-$(CONFIG_CPU_ARM7TDMI) += proc-arm7tdmi.o obj-$(CONFIG_CPU_ARM7TDMI) += proc-arm7tdmi.o
...@@ -84,6 +93,9 @@ obj-$(CONFIG_CPU_FEROCEON) += proc-feroceon.o ...@@ -84,6 +93,9 @@ obj-$(CONFIG_CPU_FEROCEON) += proc-feroceon.o
obj-$(CONFIG_CPU_V6) += proc-v6.o obj-$(CONFIG_CPU_V6) += proc-v6.o
obj-$(CONFIG_CPU_V7) += proc-v7.o obj-$(CONFIG_CPU_V7) += proc-v7.o
AFLAGS_proc-v6.o :=-Wa,-march=armv6
AFLAGS_proc-v7.o :=-Wa,-march=armv7-a
obj-$(CONFIG_CACHE_FEROCEON_L2) += cache-feroceon-l2.o obj-$(CONFIG_CACHE_FEROCEON_L2) += cache-feroceon-l2.o
obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o
obj-$(CONFIG_CACHE_XSC3L2) += cache-xsc3l2.o obj-$(CONFIG_CACHE_XSC3L2) += cache-xsc3l2.o
......
...@@ -221,15 +221,14 @@ static int __init xsc3_l2_init(void) ...@@ -221,15 +221,14 @@ static int __init xsc3_l2_init(void)
if (!cpu_is_xsc3() || !xsc3_l2_present()) if (!cpu_is_xsc3() || !xsc3_l2_present())
return 0; return 0;
if (!(get_cr() & CR_L2)) { if (get_cr() & CR_L2) {
pr_info("XScale3 L2 cache enabled.\n"); pr_info("XScale3 L2 cache enabled.\n");
adjust_cr(CR_L2, CR_L2);
xsc3_l2_inv_all(); xsc3_l2_inv_all();
}
outer_cache.inv_range = xsc3_l2_inv_range; outer_cache.inv_range = xsc3_l2_inv_range;
outer_cache.clean_range = xsc3_l2_clean_range; outer_cache.clean_range = xsc3_l2_clean_range;
outer_cache.flush_range = xsc3_l2_flush_range; outer_cache.flush_range = xsc3_l2_flush_range;
}
return 0; return 0;
} }
......
...@@ -407,6 +407,13 @@ __xsc3_setup: ...@@ -407,6 +407,13 @@ __xsc3_setup:
adr r5, xsc3_crval adr r5, xsc3_crval
ldmia r5, {r5, r6} ldmia r5, {r5, r6}
#ifdef CONFIG_CACHE_XSC3L2
mrc p15, 1, r0, c0, c0, 1 @ get L2 present information
ands r0, r0, #0xf8
orrne r6, r6, #(1 << 26) @ enable L2 if present
#endif
mrc p15, 0, r0, c1, c0, 0 @ get control register mrc p15, 0, r0, c1, c0, 0 @ get control register
bic r0, r0, r5 @ ..V. ..R. .... ..A. bic r0, r0, r5 @ ..V. ..R. .... ..A.
orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu) orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu)
......
...@@ -58,7 +58,7 @@ static const char serial21285_name[] = "Footbridge UART"; ...@@ -58,7 +58,7 @@ static const char serial21285_name[] = "Footbridge UART";
static void serial21285_stop_tx(struct uart_port *port) static void serial21285_stop_tx(struct uart_port *port)
{ {
if (tx_enabled(port)) { if (tx_enabled(port)) {
disable_irq(IRQ_CONTX); disable_irq_nosync(IRQ_CONTX);
tx_enabled(port) = 0; tx_enabled(port) = 0;
} }
} }
...@@ -74,7 +74,7 @@ static void serial21285_start_tx(struct uart_port *port) ...@@ -74,7 +74,7 @@ static void serial21285_start_tx(struct uart_port *port)
static void serial21285_stop_rx(struct uart_port *port) static void serial21285_stop_rx(struct uart_port *port)
{ {
if (rx_enabled(port)) { if (rx_enabled(port)) {
disable_irq(IRQ_CONRX); disable_irq_nosync(IRQ_CONRX);
rx_enabled(port) = 0; rx_enabled(port) = 0;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment