]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge current mainline tree into linux-omap tree
authorTony Lindgren <tony@atomide.com>
Mon, 9 Feb 2009 21:05:28 +0000 (13:05 -0800)
committerTony Lindgren <tony@atomide.com>
Mon, 9 Feb 2009 21:05:28 +0000 (13:05 -0800)
Merge branches 'master' and 'linus'

Conflicts:

arch/arm/mach-omap2/irq.c
arch/arm/plat-omap/devices.c
arch/arm/plat-omap/dma.c

1  2 
Makefile
arch/arm/mach-omap1/devices.c
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/irq.c
arch/arm/plat-omap/devices.c
arch/arm/plat-omap/include/mach/mmc.h
drivers/misc/Kconfig
drivers/mmc/host/Kconfig

diff --combined Makefile
index 96267700effc623b039715f29ae59297b013a75a,681c1d23b4d4f813703667516f9966d9d701d915..68ac1cdb8f7b34f9e3e13cba607cb4ec87b67e3c
+++ b/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  VERSION = 2
  PATCHLEVEL = 6
  SUBLEVEL = 29
- EXTRAVERSION = -rc3
+ EXTRAVERSION = -rc4
  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 b4b6106cc08bd19a651d7c00646e34c8d9ffb159,ba5d7c08dc17f16ca741f0913fdf39769431499a..bbbaeb0abcd394bb2a0c6feeb48ec62a3a345e7b
@@@ -86,7 -86,7 +86,7 @@@ static struct resource mbox_resources[
  };
  
  static struct platform_device mbox_device = {
 -      .name           = "mailbox",
 +      .name           = "omap1-mailbox",
        .id             = -1,
        .num_resources  = ARRAY_SIZE(mbox_resources),
        .resource       = mbox_resources,
@@@ -181,7 -181,7 +181,7 @@@ void __init omap1_init_mmc(struct omap_
                }
                size = OMAP1_MMC_SIZE;
  
-               omap_mmc_add(i, base, size, irq, mmc_data[i]);
+               omap_mmc_add("mmci-omap", i, base, size, irq, mmc_data[i]);
        };
  }
  
index d7e848e80bf6b27e828a87f84b61f8bd8a775ca0,ce03fa750775d25d4d715175218354e90a8d2567..dad4528d345166cc731e1ee4f408858846edb2b0
  #include <mach/eac.h>
  #include <mach/mmc.h>
  
 -#if defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE)
 -#define OMAP2_MBOX_BASE               IO_ADDRESS(OMAP24XX_MAILBOX_BASE)
 +#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
  
 -static struct resource mbox_resources[] = {
 +static struct resource cam_resources[] = {
        {
 -              .start          = OMAP2_MBOX_BASE,
 -              .end            = OMAP2_MBOX_BASE + 0x11f,
 +              .start          = OMAP24XX_CAMERA_BASE,
 +              .end            = OMAP24XX_CAMERA_BASE + 0xfff,
 +              .flags          = IORESOURCE_MEM,
 +      },
 +      {
 +              .start          = INT_24XX_CAM_IRQ,
 +              .flags          = IORESOURCE_IRQ,
 +      }
 +};
 +
 +static struct platform_device omap_cam_device = {
 +      .name           = "omap24xxcam",
 +      .id             = -1,
 +      .num_resources  = ARRAY_SIZE(cam_resources),
 +      .resource       = cam_resources,
 +};
 +
 +static inline void omap_init_camera(void)
 +{
 +      platform_device_register(&omap_cam_device);
 +}
 +
 +#elif defined(CONFIG_VIDEO_OMAP3) || defined(CONFIG_VIDEO_OMAP3_MODULE)
 +
 +static struct resource cam_resources[] = {
 +      {
 +              .start          = OMAP34XX_CAMERA_BASE,
 +              .end            = OMAP34XX_CAMERA_BASE + 0x1B70,
 +              .flags          = IORESOURCE_MEM,
 +      },
 +      {
 +              .start          = INT_34XX_CAM_IRQ,
 +              .flags          = IORESOURCE_IRQ,
 +      }
 +};
 +
 +static struct platform_device omap_cam_device = {
 +      .name           = "omap34xxcam",
 +      .id             = -1,
 +      .num_resources  = ARRAY_SIZE(cam_resources),
 +      .resource       = cam_resources,
 +};
 +
 +static inline void omap_init_camera(void)
 +{
 +      platform_device_register(&omap_cam_device);
 +}
 +#else
 +static inline void omap_init_camera(void)
 +{
 +}
 +#endif
 +
 +#if defined(CONFIG_OMAP_MBOX_FWK) || defined(CONFIG_OMAP_MBOX_FWK_MODULE)
 +
 +#define MBOX_REG_SIZE 0x120
 +
 +static struct resource omap2_mbox_resources[] = {
 +      {
 +              .start          = OMAP24XX_MAILBOX_BASE,
 +              .end            = OMAP24XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
                .flags          = IORESOURCE_MEM,
        },
        {
        },
  };
  
 +static struct resource omap3_mbox_resources[] = {
 +      {
 +              .start          = OMAP34XX_MAILBOX_BASE,
 +              .end            = OMAP34XX_MAILBOX_BASE + MBOX_REG_SIZE - 1,
 +              .flags          = IORESOURCE_MEM,
 +      },
 +      {
 +              .start          = INT_24XX_MAIL_U0_MPU,
 +              .flags          = IORESOURCE_IRQ,
 +      },
 +};
 +
  static struct platform_device mbox_device = {
 -      .name           = "mailbox",
 +      .name           = "omap2-mailbox",
        .id             = -1,
 -      .num_resources  = ARRAY_SIZE(mbox_resources),
 -      .resource       = mbox_resources,
  };
  
  static inline void omap_init_mbox(void)
  {
 +      if (cpu_is_omap2420()) {
 +              mbox_device.num_resources = ARRAY_SIZE(omap2_mbox_resources);
 +              mbox_device.resource = omap2_mbox_resources;
 +      } else if (cpu_is_omap3430()) {
 +              mbox_device.num_resources = ARRAY_SIZE(omap3_mbox_resources);
 +              mbox_device.resource = omap3_mbox_resources;
 +      } else {
 +              return;
 +      }
        platform_device_register(&mbox_device);
  }
  #else
  static inline void omap_init_mbox(void) { }
 -#endif
 +#endif /* CONFIG_OMAP_MBOX_FWK */
  
  #if defined(CONFIG_OMAP_STI)
  
@@@ -304,12 -227,10 +304,12 @@@ static void omap_init_mcspi(void
        platform_device_register(&omap2_mcspi1);
        platform_device_register(&omap2_mcspi2);
  #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3)
 -      platform_device_register(&omap2_mcspi3);
 +      if (cpu_is_omap2430() || cpu_is_omap343x())
 +              platform_device_register(&omap2_mcspi3);
  #endif
  #ifdef CONFIG_ARCH_OMAP3
 -      platform_device_register(&omap2_mcspi4);
 +      if (cpu_is_omap343x())
 +              platform_device_register(&omap2_mcspi4);
  #endif
  }
  
@@@ -319,12 -240,12 +319,12 @@@ static inline void omap_init_mcspi(void
  
  #ifdef CONFIG_SND_OMAP24XX_EAC
  
 -#define OMAP2_EAC_BASE                        0x48090000
 +#define OMAP2_EAC_BASE                        (L4_24XX_BASE + 0x90000)
  
  static struct resource omap2_eac_resources[] = {
        {
                .start          = OMAP2_EAC_BASE,
 -              .end            = OMAP2_EAC_BASE + 0x109,
 +              .end            = OMAP2_EAC_BASE + 0xfff,
                .flags          = IORESOURCE_MEM,
        },
  };
@@@ -500,6 -421,7 +500,7 @@@ void __init omap2_init_mmc(struct omap_
                        int nr_controllers)
  {
        int i;
+       char *name;
  
        for (i = 0; i < nr_controllers; i++) {
                unsigned long base, size;
                        continue;
                }
  
-               if (cpu_is_omap2420())
+               if (cpu_is_omap2420()) {
                        size = OMAP2420_MMC_SIZE;
-               else
+                       name = "mmci-omap";
+               } else {
                        size = HSMMC_SIZE;
-               omap_mmc_add(i, base, size, irq, mmc_data[i]);
+                       name = "mmci-omap-hs";
+               }
+               omap_mmc_add(name, i, base, size, irq, mmc_data[i]);
        };
  }
  
@@@ -582,7 -506,6 +585,7 @@@ static int __init omap2_init_devices(vo
         * in alphabetical order so they're easier to sort through.
         */
        omap_hsmmc_reset();
 +      omap_init_camera();
        omap_init_mbox();
        omap_init_mcspi();
        omap_hdq_init();
index b44dcaeef738b06140a54437dee4dc91a67a1b77,9ba20d985dda252f5a38bb54f478d543454e4599..2842fe8dc362bfc7e09db08c34703055d5c89235
@@@ -123,11 -123,6 +123,6 @@@ static void omap_unmask_irq(unsigned in
        intc_bank_write_reg(1 << irq, &irq_banks[0], INTC_MIR_CLEAR0 + offset);
  }
  
- static void omap_disable_irq(unsigned int irq)
- {
-       omap_mask_irq(irq);
- }
  static void omap_mask_ack_irq(unsigned int irq)
  {
        omap_mask_irq(irq);
@@@ -139,7 -134,7 +134,7 @@@ static struct irq_chip omap_irq_chip = 
        .ack    = omap_mask_ack_irq,
        .mask   = omap_mask_irq,
        .unmask = omap_unmask_irq,
-       .disable = omap_disable_irq,
+       .disable = omap_mask_irq,
  };
  
  static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank)
        intc_bank_write_reg(1 << 0, bank, INTC_SYSCONFIG);
  }
  
 +int omap_irq_pending(void)
 +{
 +      int i;
 +
 +      for (i = 0; i < ARRAY_SIZE(irq_banks); i++) {
 +              struct omap_irq_bank *bank = irq_banks + i;
 +              int irq;
 +
 +              for (irq = 0; irq < bank->nr_irqs; irq += IRQ_BITS_PER_REG) {
 +                      int offset = irq & (~(IRQ_BITS_PER_REG - 1));
 +
 +                      if (intc_bank_read_reg(bank, (INTC_PENDING_IRQ0 +
 +                                                    offset)))
 +                              return 1;
 +              }
 +      }
 +
 +      return 0;
 +}
 +
  void __init omap_init_irq(void)
  {
        unsigned long nr_of_irqs = 0;
index dd836e2dbf8c89c20717810a56fb9c7b9ee56794,208dbb121f477e11d2eb4d79601633f379bcc313..6b742a8ee4e53be2125c75ac231cd2840f9f9ca1
  #include <linux/init.h>
  #include <linux/platform_device.h>
  #include <linux/io.h>
 +#include <linux/i2c/menelaus.h>
  
  #include <mach/hardware.h>
  #include <asm/mach-types.h>
  #include <asm/mach/map.h>
  
  #include <mach/tc.h>
 -#include <mach/control.h>
  #include <mach/board.h>
  #include <mach/mmc.h>
  #include <mach/mux.h>
  #include <mach/gpio.h>
 -#include <mach/menelaus.h>
 -#include <mach/mcbsp.h>
  #include <mach/dsp_common.h>
 +#include <mach/mcbsp.h>
  
  #if   defined(CONFIG_OMAP_DSP) || defined(CONFIG_OMAP_DSP_MODULE)
  
@@@ -199,19 -200,14 +199,14 @@@ void omap_mcbsp_register_board_cfg(stru
  /*
   * Register MMC devices. Called from mach-omap1 and mach-omap2 device init.
   */
- int __init omap_mmc_add(int id, unsigned long base, unsigned long size,
-               unsigned int irq, struct omap_mmc_platform_data *data)
+ int __init omap_mmc_add(const char *name, int id, unsigned long base,
+                               unsigned long size, unsigned int irq,
+                               struct omap_mmc_platform_data *data)
  {
        struct platform_device *pdev;
        struct resource res[OMAP_MMC_NR_RES];
-       char *name;
        int ret;
  
-       if (cpu_class_is_omap1() || cpu_is_omap242x())
-               name = "mmci-omap";
-       else
-               name = "mmci-omap-hs";
        pdev = platform_device_alloc(name, id);
        if (!pdev)
                return -ENOMEM;
        ret = platform_device_add(pdev);
        if (ret)
                goto fail;
 +
 +      /* return device handle to board setup code */
 +      data->dev = &pdev->dev;
        return 0;
  
  fail:
index dae1920e1126dfe3c47a62d267764c4bc94daf16,73a9e15031b18e1c022ec372c5f04b8a97e49f69..4435bd434e179b995adfbec2944ac24436aa6119
@@@ -37,8 -37,6 +37,8 @@@
  #define OMAP_MMC_MAX_SLOTS    2
  
  struct omap_mmc_platform_data {
 +      /* back-link to device */
 +      struct device *dev;
  
        /* number of slots per controller */
        unsigned nr_slots:2;
@@@ -117,8 -115,9 +117,9 @@@ void omap1_init_mmc(struct omap_mmc_pla
                                int nr_controllers);
  void omap2_init_mmc(struct omap_mmc_platform_data **mmc_data,
                                int nr_controllers);
- int omap_mmc_add(int id, unsigned long base, unsigned long size,
-                       unsigned int irq, struct omap_mmc_platform_data *data);
+ int omap_mmc_add(const char *name, int id, unsigned long base,
+                               unsigned long size, unsigned int irq,
+                               struct omap_mmc_platform_data *data);
  #else
  static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
                                int nr_controllers)
@@@ -128,8 -127,9 +129,9 @@@ static inline void omap2_init_mmc(struc
                                int nr_controllers)
  {
  }
- static inline int omap_mmc_add(int id, unsigned long base, unsigned long size,
-               unsigned int irq, struct omap_mmc_platform_data *data)
+ static inline int omap_mmc_add(const char *name, int id, unsigned long base,
+                               unsigned long size, unsigned int irq,
+                               struct omap_mmc_platform_data *data)
  {
        return 0;
  }
diff --combined drivers/misc/Kconfig
index 920fa20622e0e7986c105cf53fef6fb196493862,c64e6798878a529035154426c3db9af0d587bdb3..3c74d733ee39414bc1f3eff8b35d52754f134173
@@@ -150,20 -150,6 +150,20 @@@ config ATMEL_SS
  
          If unsure, say N.
  
 +config OMAP_STI
 +      bool "Serial Trace Interface support"
 +      depends on ARCH_OMAP16XX || ARCH_OMAP24XX || ARCH_OMAP34XX
 +      default n
 +      help
 +        Serial Trace Interface. The protocols suported for OMAP1/2/3 are
 +        STI/CSTI/XTIv2 correspondingly.
 +
 +config OMAP_STI_CONSOLE
 +      bool "STI console support"
 +      depends on OMAP_STI
 +      help
 +        This enables a console driver by way of STI/XTI.
 +
  config ENCLOSURE_SERVICES
        tristate "Enclosure Services"
        default n
@@@ -231,6 -217,7 +231,7 @@@ config DELL_LAPTO
        depends on EXPERIMENTAL
        depends on BACKLIGHT_CLASS_DEVICE
        depends on RFKILL
+       depends on POWER_SUPPLY
        default n
        ---help---
        This driver adds support for rfkill and backlight control to Dell
diff --combined drivers/mmc/host/Kconfig
index d320dd9186f5a6620a040695a574fd90f1f6effa,99d4b28d52ed33673468d692f34d08421e5d1a18..ff8836306e77176cee4c3ddef4b458726b76a0dd
@@@ -67,9 -67,8 +67,9 @@@ config MMC_RICOH_MM
  
  config MMC_OMAP
        tristate "TI OMAP Multimedia Card Interface support"
 -      depends on ARCH_OMAP
 +      depends on ARCH_OMAP1 || (ARCH_OMAP2 && ARCH_OMAP2420)
        select TPS65010 if MACH_OMAP_H2
 +      select OMAP_GPIO_SWITCH if MACH_NOKIA_N800
        help
          This selects the TI OMAP Multimedia card Interface.
          If you have an OMAP board with a Multimedia Card slot,
@@@ -142,6 -141,16 +142,16 @@@ config MMC_IM
        help
          This selects the Motorola i.MX Multimedia card Interface.
          If you have a i.MX platform with a Multimedia Card slot,
+         say Y or M here.
+         If unsure, say N.
+ config MMC_MXC
+       tristate "Freescale i.MX2/3 Multimedia Card Interface support"
+       depends on ARCH_MXC
+       help
+         This selects the Freescale i.MX2/3 Multimedia card Interface.
+         If you have a i.MX platform with a Multimedia Card slot,
          say Y or M here.
  
          If unsure, say N.