]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge 'for-linus' branch of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/axboe...
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 17 Jun 2005 19:35:26 +0000 (12:35 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 17 Jun 2005 19:35:26 +0000 (12:35 -0700)
13 files changed:
arch/arm/mach-integrator/integrator_cp.c
arch/arm/mach-pxa/lubbock.c
arch/arm/mach-pxa/mainstone.c
arch/arm/mach-versatile/core.c
drivers/ieee1394/sbp2.c
drivers/input/mouse/alps.c
drivers/pci/pci-driver.c
drivers/usb/net/kaweth.c
fs/binfmt_elf.c
include/asm-arm/arch-integrator/platform.h
include/asm-arm/arch-versatile/platform.h
kernel/exit.c
kernel/posix-timers.c

index 3b948e8c27513f7896263a87a99123ad5394b860..e0a01eef099345efc0dd202b443867db6312cef1 100644 (file)
@@ -83,7 +83,6 @@ static struct map_desc intcp_io_desc[] __initdata = {
  { IO_ADDRESS(INTEGRATOR_UART1_BASE), INTEGRATOR_UART1_BASE, SZ_4K,  MT_DEVICE },
  { IO_ADDRESS(INTEGRATOR_DBG_BASE),   INTEGRATOR_DBG_BASE,   SZ_4K,  MT_DEVICE },
  { IO_ADDRESS(INTEGRATOR_GPIO_BASE),  INTEGRATOR_GPIO_BASE,  SZ_4K,  MT_DEVICE },
- { 0xfc900000, 0xc9000000, SZ_4K, MT_DEVICE },
  { 0xfca00000, 0xca000000, SZ_4K, MT_DEVICE },
  { 0xfcb00000, 0xcb000000, SZ_4K, MT_DEVICE },
 };
index dd012d6e2f5caecabc6792b3a7cee8e08b7994d3..f2c9e0d2b24b64517efb8c69391603d4ead0c58f 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/device.h>
+#include <linux/sysdev.h>
 #include <linux/major.h>
 #include <linux/fb.h>
 #include <linux/interrupt.h>
@@ -106,6 +107,35 @@ static void __init lubbock_init_irq(void)
        set_irq_type(IRQ_GPIO(0), IRQT_FALLING);
 }
 
+#ifdef CONFIG_PM
+
+static int lubbock_irq_resume(struct sys_device *dev)
+{
+       LUB_IRQ_MASK_EN = lubbock_irq_enabled;
+       return 0;
+}
+
+static struct sysdev_class lubbock_irq_sysclass = {
+       set_kset_name("cpld_irq"),
+       .resume = lubbock_irq_resume,
+};
+
+static struct sys_device lubbock_irq_device = {
+       .cls = &lubbock_irq_sysclass,
+};
+
+static int __init lubbock_irq_device_init(void)
+{
+       int ret = sysdev_class_register(&lubbock_irq_sysclass);
+       if (ret == 0)
+               ret = sysdev_register(&lubbock_irq_device);
+       return ret;
+}
+
+device_initcall(lubbock_irq_device_init);
+
+#endif
+
 static int lubbock_udc_is_connected(void)
 {
        return (LUB_MISC_RD & (1 << 9)) == 0;
index 6823ae28ae6a2c9de157c15637198ae0b5eb77be..9896afca751fc580bb6692a946d014919713a1c4 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <linux/init.h>
 #include <linux/device.h>
+#include <linux/sysdev.h>
 #include <linux/interrupt.h>
 #include <linux/sched.h>
 #include <linux/bitops.h>
@@ -62,7 +63,6 @@ static struct irqchip mainstone_irq_chip = {
        .unmask         = mainstone_unmask_irq,
 };
 
-
 static void mainstone_irq_handler(unsigned int irq, struct irqdesc *desc,
                                  struct pt_regs *regs)
 {
@@ -100,6 +100,35 @@ static void __init mainstone_init_irq(void)
        set_irq_type(IRQ_GPIO(0), IRQT_FALLING);
 }
 
+#ifdef CONFIG_PM
+
+static int mainstone_irq_resume(struct sys_device *dev)
+{
+       MST_INTMSKENA = mainstone_irq_enabled;
+       return 0;
+}
+
+static struct sysdev_class mainstone_irq_sysclass = {
+       set_kset_name("cpld_irq"),
+       .resume = mainstone_irq_resume,
+};
+
+static struct sys_device mainstone_irq_device = {
+       .cls = &mainstone_irq_sysclass,
+};
+
+static int __init mainstone_irq_device_init(void)
+{
+       int ret = sysdev_class_register(&mainstone_irq_sysclass);
+       if (ret == 0)
+               ret = sysdev_register(&mainstone_irq_device);
+       return ret;
+}
+
+device_initcall(mainstone_irq_device_init);
+
+#endif
+
 
 static struct resource smc91x_resources[] = {
        [0] = {
index 554e1bd30d6e631ce2959f0ccac136f4d1b325f0..302c2a7b9b63745bbeae0f59cd49fad31c259435 100644 (file)
@@ -543,7 +543,7 @@ static void versatile_clcd_enable(struct clcd_fb *fb)
                val |= SYS_CLCD_MODE_5551;
                break;
        case 6:
-               val |= SYS_CLCD_MODE_565_BLSB;
+               val |= SYS_CLCD_MODE_565_RLSB;
                break;
        case 8:
                val |= SYS_CLCD_MODE_888;
index 00c7b958361ada06432ffe96173b23222d591b5e..ab82d6addd7fb78bca4cf0d83da3e14a09aa88d6 100644 (file)
@@ -745,7 +745,8 @@ static struct scsi_id_instance_data *sbp2_alloc_device(struct unit_directory *ud
        list_add_tail(&scsi_id->scsi_list, &hi->scsi_ids);
 
        /* Register our host with the SCSI stack. */
-       scsi_host = scsi_host_alloc(&scsi_driver_template, 0);
+       scsi_host = scsi_host_alloc(&scsi_driver_template,
+                                   sizeof (unsigned long));
        if (!scsi_host) {
                SBP2_ERR("failed to register scsi host");
                goto failed_alloc;
index 42a9f7f6f8cb2a9b31e65404959dfbb1305be942..7bf4be733e9a89f6646ccf979503d8e4797e4400 100644 (file)
@@ -352,7 +352,7 @@ static int alps_reconnect(struct psmouse *psmouse)
        if (alps_get_status(psmouse, param))
                return -1;
 
-       if (param[0] & 0x04)
+       if (!(param[0] & 0x04))
                alps_tap_mode(psmouse, 1);
 
        if (alps_absolute_mode(psmouse)) {
index fe98553c978f335dae47646cee5df32c8f69b42e..f315df2005bca0ca85e4c2bfaa531641ba983933 100644 (file)
@@ -393,7 +393,10 @@ int pci_register_driver(struct pci_driver *drv)
        drv->driver.bus = &pci_bus_type;
        drv->driver.probe = pci_device_probe;
        drv->driver.remove = pci_device_remove;
-       drv->driver.shutdown = pci_device_shutdown,
+       /* FIXME, once all of the existing PCI drivers have been fixed to set
+        * the pci shutdown function, this test can go away. */
+       if (!drv->driver.shutdown)
+               drv->driver.shutdown = pci_device_shutdown,
        drv->driver.owner = drv->owner;
        drv->driver.kobj.ktype = &pci_driver_kobj_type;
        pci_init_dynids(&drv->dynids);
index a9a7cf4a38ebd2035cbaf5f1c842f259953583aa..fd6ff4cb2c6273d753d4daaaffebb230ce22b498 100644 (file)
@@ -520,7 +520,7 @@ static void int_callback(struct urb *u, struct pt_regs *regs)
 
        /* we check the link state to report changes */
        if (kaweth->linkstate != (act_state = ( kaweth->intbuffer[STATE_OFFSET] | STATE_MASK) >> STATE_SHIFT)) {
-               if (!act_state)
+               if (act_state)
                        netif_carrier_on(kaweth->net);
                else
                        netif_carrier_off(kaweth->net);
index c374be51b041a698341ddbda6b9fc5fe1329df46..f8f6b6b76179da87bfca266adadf360b10f2e91a 100644 (file)
@@ -1125,7 +1125,7 @@ static int dump_write(struct file *file, const void *addr, int nr)
        return file->f_op->write(file, addr, nr, &file->f_pos) == nr;
 }
 
-static int dump_seek(struct file *file, off_t off)
+static int dump_seek(struct file *file, loff_t off)
 {
        if (file->f_op->llseek) {
                if (file->f_op->llseek(file, off, 0) != off)
index bd364f5a99bcc221f8e55bcb8f582737f977accc..96ad3d2a66d1ead1ce639fb47569e642ebbb6050 100644 (file)
 #define INTEGRATOR_DBG_SWITCH           (INTEGRATOR_DBG_BASE + INTEGRATOR_DBG_SWITCH_OFFSET)
 
 
+#if defined(CONFIG_ARCH_INTEGRATOR_AP)
 #define INTEGRATOR_GPIO_BASE            0x1B000000      /*  GPIO */
+#elif defined(CONFIG_ARCH_INTEGRATOR_CP)
+#define INTEGRATOR_GPIO_BASE            0xC9000000      /*  GPIO */
+#endif
 
 /* ------------------------------------------------------------------------
  *  KMI keyboard/mouse definitions
index 2598d1f08548a1258e33a06e354886866fc1ef4a..a71093e44c58b0c0854ee381ff8dae8d7d358902 100644 (file)
 /*
  * IB2 Versatile/AB expansion board definitions
  */
-#define VERSATILE_IB2_CAMERA_BANK      0x24000000
-#define VERSATILE_IB2_KBD_DATAREG      0x25000000
-#define VERSATILE_IB2_IER              0x26000000      /* for VICINTSOURCE27 */
-#define VERSATILE_IB2_CTRL             0x27000000
-#define VERSATILE_IB2_STAT             0x27000004
+#define VERSATILE_IB2_CAMERA_BANK      VERSATILE_IB2_BASE
+#define VERSATILE_IB2_KBD_DATAREG      (VERSATILE_IB2_BASE + 0x01000000)
+
+/* VICINTSOURCE27 */
+#define VERSATILE_IB2_INT_BASE         (VERSATILE_IB2_BASE + 0x02000000)
+#define VERSATILE_IB2_IER              (VERSATILE_IB2_INT_BASE + 0)
+#define VERSATILE_IB2_ISR              (VERSATILE_IB2_INT_BASE + 4)
+
+#define VERSATILE_IB2_CTL_BASE         (VERSATILE_IB2_BASE + 0x03000000)
+#define VERSATILE_IB2_CTRL             (VERSATILE_IB2_CTL_BASE + 0)
+#define VERSATILE_IB2_STAT             (VERSATILE_IB2_CTL_BASE + 4)
 #endif
 
 #endif
index edaa50b5bbfaecc36f1e492e28d9b80ef55b5dae..2ef2ad54020177cd355174b8d4a52656edebd6d2 100644 (file)
@@ -811,10 +811,8 @@ fastcall NORET_TYPE void do_exit(long code)
        acct_update_integrals(tsk);
        update_mem_hiwater(tsk);
        group_dead = atomic_dec_and_test(&tsk->signal->live);
-       if (group_dead) {
-               del_timer_sync(&tsk->signal->real_timer);
+       if (group_dead)
                acct_process(code);
-       }
        exit_mm(tsk);
 
        exit_sem(tsk);
index fd316c2722604a866b359548db9659aa5c1eefbc..cabb63fc9e16c5437b6ea879074a9a6c0783cf9d 100644 (file)
@@ -1197,6 +1197,7 @@ void exit_itimers(struct signal_struct *sig)
                tmr = list_entry(sig->posix_timers.next, struct k_itimer, list);
                itimer_delete(tmr);
        }
+       del_timer_sync(&sig->real_timer);
 }
 
 /*