Browse Source

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

Linus Torvalds 19 years ago
parent
commit
abf914208a

+ 1 - 1
arch/arm/Kconfig.debug

@@ -53,7 +53,7 @@ config DEBUG_LL
 	bool "Kernel low-level debugging functions"
 	bool "Kernel low-level debugging functions"
 	depends on DEBUG_KERNEL
 	depends on DEBUG_KERNEL
 	help
 	help
-	  Say Y here to include definitions of printascii, printchar, printhex
+	  Say Y here to include definitions of printascii, printch, printhex
 	  in the kernel.  This is helpful if you are debugging code that
 	  in the kernel.  This is helpful if you are debugging code that
 	  executes before the console is initialized.
 	  executes before the console is initialized.
 
 

+ 1 - 1
arch/arm/common/scoop.c

@@ -91,7 +91,7 @@ EXPORT_SYMBOL(read_scoop_reg);
 EXPORT_SYMBOL(write_scoop_reg);
 EXPORT_SYMBOL(write_scoop_reg);
 
 
 #ifdef CONFIG_PM
 #ifdef CONFIG_PM
-static int scoop_suspend(struct device *dev, uint32_t state, uint32_t level)
+static int scoop_suspend(struct device *dev, pm_message_t state, uint32_t level)
 {
 {
 	if (level == SUSPEND_POWER_DOWN) {
 	if (level == SUSPEND_POWER_DOWN) {
 		struct scoop_dev *sdev = dev_get_drvdata(dev);
 		struct scoop_dev *sdev = dev_get_drvdata(dev);

+ 4 - 1
arch/arm/kernel/calls.S

@@ -10,7 +10,7 @@
  *  This file is included twice in entry-common.S
  *  This file is included twice in entry-common.S
  */
  */
 #ifndef NR_syscalls
 #ifndef NR_syscalls
-#define NR_syscalls 320
+#define NR_syscalls 328
 #else
 #else
 
 
 __syscall_start:
 __syscall_start:
@@ -333,6 +333,9 @@ __syscall_start:
 		.long	sys_inotify_init
 		.long	sys_inotify_init
 		.long	sys_inotify_add_watch
 		.long	sys_inotify_add_watch
 		.long	sys_inotify_rm_watch
 		.long	sys_inotify_rm_watch
+		.long	sys_mbind_wrapper
+/* 320 */	.long	sys_get_mempolicy
+		.long	sys_set_mempolicy
 __syscall_end:
 __syscall_end:
 
 
 		.rept	NR_syscalls - (__syscall_end - __syscall_start) / 4
 		.rept	NR_syscalls - (__syscall_end - __syscall_start) / 4

+ 4 - 0
arch/arm/kernel/entry-common.S

@@ -269,6 +269,10 @@ sys_arm_fadvise64_64_wrapper:
 		str	r5, [sp, #4]		@ push r5 to stack
 		str	r5, [sp, #4]		@ push r5 to stack
 		b	sys_arm_fadvise64_64
 		b	sys_arm_fadvise64_64
 
 
+sys_mbind_wrapper:
+		str	r5, [sp, #4]
+		b	sys_mbind
+
 /*
 /*
  * Note: off_4k (r5) is always units of 4K.  If we can't do the requested
  * Note: off_4k (r5) is always units of 4K.  If we can't do the requested
  * offset, we return EINVAL.
  * offset, we return EINVAL.

+ 5 - 23
arch/arm/mach-pxa/corgi.c

@@ -131,27 +131,12 @@ static struct platform_device corgits_device = {
 /*
 /*
  * MMC/SD Device
  * MMC/SD Device
  *
  *
- * The card detect interrupt isn't debounced so we delay it by HZ/4
+ * The card detect interrupt isn't debounced so we delay it by 250ms
  * to give the card a chance to fully insert/eject.
  * to give the card a chance to fully insert/eject.
  */
  */
-static struct mmc_detect {
-	struct timer_list detect_timer;
-	void *devid;
-} mmc_detect;
+static struct pxamci_platform_data corgi_mci_platform_data;
 
 
-static void mmc_detect_callback(unsigned long data)
-{
-	mmc_detect_change(mmc_detect.devid);
-}
-
-static irqreturn_t corgi_mmc_detect_int(int irq, void *devid, struct pt_regs *regs)
-{
-	mmc_detect.devid=devid;
-	mod_timer(&mmc_detect.detect_timer, jiffies + HZ/4);
-	return IRQ_HANDLED;
-}
-
-static int corgi_mci_init(struct device *dev, irqreturn_t (*unused_detect_int)(int, void *, struct pt_regs *), void *data)
+static int corgi_mci_init(struct device *dev, irqreturn_t (*corgi_detect_int)(int, void *, struct pt_regs *), void *data)
 {
 {
 	int err;
 	int err;
 
 
@@ -161,11 +146,9 @@ static int corgi_mci_init(struct device *dev, irqreturn_t (*unused_detect_int)(i
 	pxa_gpio_mode(CORGI_GPIO_nSD_DETECT | GPIO_IN);
 	pxa_gpio_mode(CORGI_GPIO_nSD_DETECT | GPIO_IN);
 	pxa_gpio_mode(CORGI_GPIO_SD_PWR | GPIO_OUT);
 	pxa_gpio_mode(CORGI_GPIO_SD_PWR | GPIO_OUT);
 
 
-	init_timer(&mmc_detect.detect_timer);
-	mmc_detect.detect_timer.function = mmc_detect_callback;
-	mmc_detect.detect_timer.data = (unsigned long) &mmc_detect;
+	corgi_mci_platform_data.detect_delay = msecs_to_jiffies(250);
 
 
-	err = request_irq(CORGI_IRQ_GPIO_nSD_DETECT, corgi_mmc_detect_int, SA_INTERRUPT,
+	err = request_irq(CORGI_IRQ_GPIO_nSD_DETECT, corgi_detect_int, SA_INTERRUPT,
 			     "MMC card detect", data);
 			     "MMC card detect", data);
 	if (err) {
 	if (err) {
 		printk(KERN_ERR "corgi_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
 		printk(KERN_ERR "corgi_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
@@ -198,7 +181,6 @@ static int corgi_mci_get_ro(struct device *dev)
 static void corgi_mci_exit(struct device *dev, void *data)
 static void corgi_mci_exit(struct device *dev, void *data)
 {
 {
 	free_irq(CORGI_IRQ_GPIO_nSD_DETECT, data);
 	free_irq(CORGI_IRQ_GPIO_nSD_DETECT, data);
-	del_timer(&mmc_detect.detect_timer);
 }
 }
 
 
 static struct pxamci_platform_data corgi_mci_platform_data = {
 static struct pxamci_platform_data corgi_mci_platform_data = {

+ 3 - 0
include/asm-arm/unistd.h

@@ -355,6 +355,9 @@
 #define __NR_inotify_init		(__NR_SYSCALL_BASE+316)
 #define __NR_inotify_init		(__NR_SYSCALL_BASE+316)
 #define __NR_inotify_add_watch		(__NR_SYSCALL_BASE+317)
 #define __NR_inotify_add_watch		(__NR_SYSCALL_BASE+317)
 #define __NR_inotify_rm_watch		(__NR_SYSCALL_BASE+318)
 #define __NR_inotify_rm_watch		(__NR_SYSCALL_BASE+318)
+#define __NR_mbind			(__NR_SYSCALL_BASE+319)
+#define __NR_get_mempolicy		(__NR_SYSCALL_BASE+320)
+#define __NR_set_mempolicy		(__NR_SYSCALL_BASE+321)
 
 
 /*
 /*
  * The following SWIs are ARM private.
  * The following SWIs are ARM private.