Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Mar 2011 03:03:12 +0000 (20:03 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Mar 2011 03:03:12 +0000 (20:03 -0700)
* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
  hwspinlock: depend on OMAP4
  ARM: OMAP2+: Fix warnings for GPMC interrupt
  OMAP4: PandaBoard: remove unused power regulators
  arm: mach-omap2: omap_l3_smx: fix irq handler setup
  arm: mach-omap2: devices: fix omap3_l3_init() return value

arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/gpmc.c
arch/arm/mach-omap2/omap_l3_smx.c
arch/arm/plat-omap/include/plat/irqs.h
drivers/hwspinlock/Kconfig

index c936c6d..f3a7b10 100644 (file)
@@ -285,19 +285,6 @@ static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
        return 0;
 }
 
-static struct regulator_init_data omap4_panda_vaux1 = {
-       .constraints = {
-               .min_uV                 = 1000000,
-               .max_uV                 = 3000000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask  = REGULATOR_CHANGE_VOLTAGE
-                                       | REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-};
-
 static struct regulator_init_data omap4_panda_vaux2 = {
        .constraints = {
                .min_uV                 = 1200000,
@@ -353,19 +340,6 @@ static struct regulator_init_data omap4_panda_vpp = {
        },
 };
 
-static struct regulator_init_data omap4_panda_vusim = {
-       .constraints = {
-               .min_uV                 = 1200000,
-               .max_uV                 = 2900000,
-               .apply_uV               = true,
-               .valid_modes_mask       = REGULATOR_MODE_NORMAL
-                                       | REGULATOR_MODE_STANDBY,
-               .valid_ops_mask  = REGULATOR_CHANGE_VOLTAGE
-                                       | REGULATOR_CHANGE_MODE
-                                       | REGULATOR_CHANGE_STATUS,
-       },
-};
-
 static struct regulator_init_data omap4_panda_vana = {
        .constraints = {
                .min_uV                 = 2100000,
@@ -424,12 +398,10 @@ static struct twl4030_platform_data omap4_panda_twldata = {
        /* Regulators */
        .vmmc           = &omap4_panda_vmmc,
        .vpp            = &omap4_panda_vpp,
-       .vusim          = &omap4_panda_vusim,
        .vana           = &omap4_panda_vana,
        .vcxio          = &omap4_panda_vcxio,
        .vdac           = &omap4_panda_vdac,
        .vusb           = &omap4_panda_vusb,
-       .vaux1          = &omap4_panda_vaux1,
        .vaux2          = &omap4_panda_vaux2,
        .vaux3          = &omap4_panda_vaux3,
        .clk32kg        = &omap4_panda_clk32kg,
index e978514..84d1b73 100644 (file)
@@ -66,7 +66,7 @@ static int __init omap3_l3_init(void)
 
        WARN(IS_ERR(od), "could not build omap_device for %s\n", oh_name);
 
-       return PTR_ERR(od);
+       return IS_ERR(od) ? PTR_ERR(od) : 0;
 }
 postcore_initcall(omap3_l3_init);
 
index 6741743..493505c 100644 (file)
@@ -693,6 +693,7 @@ static int __init gpmc_init(void)
 {
        u32 l, irq;
        int cs, ret = -EINVAL;
+       int gpmc_irq;
        char *ck = NULL;
 
        if (cpu_is_omap24xx()) {
@@ -701,12 +702,15 @@ static int __init gpmc_init(void)
                        l = OMAP2420_GPMC_BASE;
                else
                        l = OMAP34XX_GPMC_BASE;
+               gpmc_irq = INT_34XX_GPMC_IRQ;
        } else if (cpu_is_omap34xx()) {
                ck = "gpmc_fck";
                l = OMAP34XX_GPMC_BASE;
+               gpmc_irq = INT_34XX_GPMC_IRQ;
        } else if (cpu_is_omap44xx()) {
                ck = "gpmc_ck";
                l = OMAP44XX_GPMC_BASE;
+               gpmc_irq = OMAP44XX_IRQ_GPMC;
        }
 
        if (WARN_ON(!ck))
@@ -739,16 +743,17 @@ static int __init gpmc_init(void)
        /* initalize the irq_chained */
        irq = OMAP_GPMC_IRQ_BASE;
        for (cs = 0; cs < GPMC_CS_NUM; cs++) {
-               set_irq_handler(irq, handle_simple_irq);
+               set_irq_chip_and_handler(irq, &dummy_irq_chip,
+                                               handle_simple_irq);
                set_irq_flags(irq, IRQF_VALID);
                irq++;
        }
 
-       ret = request_irq(INT_34XX_GPMC_IRQ,
+       ret = request_irq(gpmc_irq,
                        gpmc_handle_irq, IRQF_SHARED, "gpmc", gpmc_base);
        if (ret)
                pr_err("gpmc: irq-%d could not claim: err %d\n",
-                                               INT_34XX_GPMC_IRQ, ret);
+                                               gpmc_irq, ret);
        return ret;
 }
 postcore_initcall(gpmc_init);
@@ -757,8 +762,6 @@ static irqreturn_t gpmc_handle_irq(int irq, void *dev)
 {
        u8 cs;
 
-       if (irq != INT_34XX_GPMC_IRQ)
-               return IRQ_HANDLED;
        /* check cs to invoke the irq */
        cs = ((gpmc_read_reg(GPMC_PREFETCH_CONFIG1)) >> CS_NUM_SHIFT) & 0x7;
        if (OMAP_GPMC_IRQ_BASE+cs <= OMAP_GPMC_IRQ_END)
index 265bff3..5f2da75 100644 (file)
@@ -226,7 +226,6 @@ static int __init omap3_l3_probe(struct platform_device *pdev)
        struct omap3_l3         *l3;
        struct resource         *res;
        int                     ret;
-       int                     irq;
 
        l3 = kzalloc(sizeof(*l3), GFP_KERNEL);
        if (!l3) {
@@ -249,18 +248,17 @@ static int __init omap3_l3_probe(struct platform_device *pdev)
                goto err2;
        }
 
-       irq = platform_get_irq(pdev, 0);
-       ret = request_irq(irq, omap3_l3_app_irq,
+       l3->debug_irq = platform_get_irq(pdev, 0);
+       ret = request_irq(l3->debug_irq, omap3_l3_app_irq,
                IRQF_DISABLED | IRQF_TRIGGER_RISING,
                "l3-debug-irq", l3);
        if (ret) {
                dev_err(&pdev->dev, "couldn't request debug irq\n");
                goto err3;
        }
-       l3->debug_irq = irq;
 
-       irq = platform_get_irq(pdev, 1);
-       ret = request_irq(irq, omap3_l3_app_irq,
+       l3->app_irq = platform_get_irq(pdev, 1);
+       ret = request_irq(l3->app_irq, omap3_l3_app_irq,
                IRQF_DISABLED | IRQF_TRIGGER_RISING,
                "l3-app-irq", l3);
 
@@ -269,7 +267,6 @@ static int __init omap3_l3_probe(struct platform_device *pdev)
                goto err4;
        }
 
-       l3->app_irq = irq;
        goto err0;
 
 err4:
index d779283..5a25098 100644 (file)
 
 /* GPMC related */
 #define OMAP_GPMC_IRQ_BASE     (TWL_IRQ_END)
-#define OMAP_GPMC_NR_IRQS      7
+#define OMAP_GPMC_NR_IRQS      8
 #define OMAP_GPMC_IRQ_END      (OMAP_GPMC_IRQ_BASE + OMAP_GPMC_NR_IRQS)
 
 
index eb4af28..1f29bab 100644 (file)
@@ -4,6 +4,7 @@
 
 config HWSPINLOCK
        tristate "Generic Hardware Spinlock framework"
+       depends on ARCH_OMAP4
        help
          Say y here to support the generic hardware spinlock framework.
          You only need to enable this if you have hardware spinlock module