]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge current mainline tree into linux-omap tree
authorTony Lindgren <tony@atomide.com>
Wed, 4 Mar 2009 17:45:26 +0000 (09:45 -0800)
committerTony Lindgren <tony@atomide.com>
Wed, 4 Mar 2009 17:45:26 +0000 (09:45 -0800)
Merge branches 'master' and 'linus'

1  2 
Makefile
drivers/input/keyboard/omap-keypad.c
drivers/mtd/maps/Kconfig
drivers/usb/host/ehci-hcd.c

diff --combined Makefile
index 1bfcf7295ab69cdc37d9eae65213dba4b89b2b8d,d04ee0ad1dccce7ea2503637ffbe6d8753074ffe..83ef7834be0e51ebd4e041202f4a433bce0f4371
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 29
- EXTRAVERSION = -rc6
+ EXTRAVERSION = -rc7
  NAME = Erotic Pickled Herring
  
  # *DOCUMENTATION*
@@@ -16,9 -16,6 +16,9 @@@
  # o  print "Entering directory ...";
  MAKEFLAGS += -rR --no-print-directory
  
 +# Add custom flags here to avoid conflict with updates
 +EXTRAVERSION := $(EXTRAVERSION)-omap1
 +
  # We are using a recursive build, so we need to do a little thinking
  # to get the ordering right.
  #
@@@ -174,8 -171,6 +174,8 @@@ SUBARCH := $(shell uname -m | sed -e s/
                                  -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
                                  -e s/sh.*/sh/ )
  
 +SUBARCH := arm
 +
  # Cross compiling and selecting different set of gcc/bin-utils
  # ---------------------------------------------------------------------------
  #
  # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
  export KBUILD_BUILDHOST := $(SUBARCH)
  ARCH          ?= $(SUBARCH)
 -CROSS_COMPILE ?=
 +CROSS_COMPILE ?= arm-linux-
  
  # Architecture as present in compile.h
  UTS_MACHINE   := $(ARCH)
index 3c411b60b2543e0949864137f176c26fe0b6c39e,058fa8b02c21ee1b939085c024c23884e2f6ca1d..98da278a1cc46ee1f5c8413d7b7b936ada3304bb
  #include <linux/delay.h>
  #include <linux/platform_device.h>
  #include <linux/mutex.h>
 +#include <linux/spinlock.h>
  #include <linux/errno.h>
 +#include <linux/i2c/menelaus.h>
  #include <mach/gpio.h>
  #include <mach/keypad.h>
 -#include <mach/menelaus.h>
  #include <asm/irq.h>
  #include <mach/hardware.h>
  #include <asm/io.h>
 +#include <asm/mach-types.h>
  #include <mach/mux.h>
  
  #undef NEW_BOARD_LEARNING_MODE
@@@ -62,8 -60,6 +62,8 @@@ struct omap_kp 
        unsigned int cols;
        unsigned long delay;
        unsigned int debounce;
 +      int suspended;
 +      spinlock_t suspend_lock;
  };
  
  static DECLARE_TASKLET_DISABLED(kp_tasklet, omap_kp_tasklet, 0);
@@@ -100,14 -96,6 +100,14 @@@ static u8 get_row_gpio_val(struct omap_
  static irqreturn_t omap_kp_interrupt(int irq, void *dev_id)
  {
        struct omap_kp *omap_kp = dev_id;
 +      unsigned long flags;
 +
 +      spin_lock_irqsave(&omap_kp->suspend_lock, flags);
 +      if (omap_kp->suspended) {
 +              spin_unlock_irqrestore(&omap_kp->suspend_lock, flags);
 +              return IRQ_HANDLED;
 +      }
 +      spin_unlock_irqrestore(&omap_kp->suspend_lock, flags);
  
        /* disable keyboard interrupt and schedule for handling */
        if (cpu_is_omap24xx()) {
@@@ -275,29 -263,15 +275,29 @@@ static DEVICE_ATTR(enable, S_IRUGO | S_
  #ifdef CONFIG_PM
  static int omap_kp_suspend(struct platform_device *dev, pm_message_t state)
  {
 -      /* Nothing yet */
 +      struct omap_kp *omap_kp = platform_get_drvdata(dev);
 +      unsigned long flags;
 +      spin_lock_irqsave(&omap_kp->suspend_lock, flags);
 +
 +      /*
 +       * Re-enable the interrupt in case it has been masked by the
 +       * handler and a key is still pressed.  We need the interrupt
 +       * to wake us up from suspended.
 +       */
 +      if (cpu_class_is_omap1())
 +              omap_writew(0, OMAP_MPUIO_BASE + OMAP_MPUIO_KBD_MASKIT);
 +
 +      omap_kp->suspended = 1;
  
 +      spin_unlock_irqrestore(&omap_kp->suspend_lock, flags);
        return 0;
  }
  
  static int omap_kp_resume(struct platform_device *dev)
  {
 -      /* Nothing yet */
 +      struct omap_kp *omap_kp = platform_get_drvdata(dev);
  
 +      omap_kp->suspended = 0;
        return 0;
  }
  #else
  #define omap_kp_resume        NULL
  #endif
  
- static int __init omap_kp_probe(struct platform_device *pdev)
+ static int __devinit omap_kp_probe(struct platform_device *pdev)
  {
        struct omap_kp *omap_kp;
        struct input_dev *input_dev;
        struct omap_kp_platform_data *pdata =  pdev->dev.platform_data;
 -      int i, col_idx, row_idx, irq_idx, ret;
 +      int i, col_idx = 0, row_idx = 0, irq_idx, ret;
  
        if (!pdata->rows || !pdata->cols || !pdata->keymap) {
                printk(KERN_ERR "No rows, cols or keymap from pdata\n");
  
        platform_set_drvdata(pdev, omap_kp);
  
 +      spin_lock_init(&omap_kp->suspend_lock);
        omap_kp->input = input_dev;
 +      omap_kp->suspended = 0;
  
        /* Disable the interrupt for the MPUIO keyboard */
        if (!cpu_is_omap24xx())
@@@ -450,7 -422,7 +450,7 @@@ err1
        return -EINVAL;
  }
  
- static int omap_kp_remove(struct platform_device *pdev)
+ static int __devexit omap_kp_remove(struct platform_device *pdev)
  {
        struct omap_kp *omap_kp = platform_get_drvdata(pdev);
  
  
  static struct platform_driver omap_kp_driver = {
        .probe          = omap_kp_probe,
-       .remove         = omap_kp_remove,
+       .remove         = __devexit_p(omap_kp_remove),
        .suspend        = omap_kp_suspend,
        .resume         = omap_kp_resume,
        .driver         = {
        },
  };
  
- static int __devinit omap_kp_init(void)
+ static int __init omap_kp_init(void)
  {
        printk(KERN_INFO "OMAP Keypad Driver\n");
        return platform_driver_register(&omap_kp_driver);
diff --combined drivers/mtd/maps/Kconfig
index 6b1ffea3da617cce12bb3831778a54aeecf25eff,043d50fb6ef65abd085a98cc42fe8ca6942dc85c..f96e408a0b08f9fa3ad338112eaf0ed258174b24
@@@ -445,13 -445,6 +445,13 @@@ config MTD_CEIV
          PhotoMax Digital Picture Frame.
          If you have such a device, say 'Y'.
  
 +config MTD_NOR_TOTO
 +      tristate "NOR Flash device on TOTO board"
 +      depends on ARCH_OMAP && OMAP_TOTO
 +      help
 +        This enables access to the NOR flash on the Texas Instruments
 +        TOTO board.
 +
  config MTD_H720X
        tristate "Hynix evaluation board mappings"
        depends on MTD_CFI && ( ARCH_H7201 || ARCH_H7202 )
@@@ -498,7 -491,7 +498,7 @@@ config MTD_PCMCIA_ANONYMOU
  
  config MTD_BFIN_ASYNC
        tristate "Blackfin BF533-STAMP Flash Chip Support"
-       depends on BFIN533_STAMP && MTD_CFI
+       depends on BFIN533_STAMP && MTD_CFI && MTD_COMPLEX_MAPPINGS
        select MTD_PARTITIONS
        default y
        help
index d2cb45ac0097de1a7e9ec9778bdb1d675cd2dfff,e551bb38852be35eefeb532a23c260ecff6109ff..d832a94ee98b63ef7697145fc2933044e6ac9769
@@@ -485,6 -485,7 +485,7 @@@ static int ehci_init(struct usb_hcd *hc
         * periodic_size can shrink by USBCMD update if hcc_params allows.
         */
        ehci->periodic_size = DEFAULT_I_TDPS;
+       INIT_LIST_HEAD(&ehci->cached_itd_list);
        if ((retval = ehci_mem_init(ehci, GFP_KERNEL)) < 0)
                return retval;
  
  
        ehci->reclaim = NULL;
        ehci->next_uframe = -1;
+       ehci->clock_frame = -1;
  
        /*
         * dedicate a qh for the async ring head, since we couldn't unlink
@@@ -1014,11 -1016,6 +1016,11 @@@ MODULE_LICENSE ("GPL")
  #define       PLATFORM_DRIVER         ehci_hcd_au1xxx_driver
  #endif
  
 +#ifdef CONFIG_ARCH_OMAP34XX
 +#include "ehci-omap.c"
 +#define       PLATFORM_DRIVER         ehci_hcd_omap_driver
 +#endif
 +
  #ifdef CONFIG_PPC_PS3
  #include "ehci-ps3.c"
  #define       PS3_SYSTEM_BUS_DRIVER   ps3_ehci_driver