Browse Source

Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6

* '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
Linus Torvalds 14 years ago
parent
commit
17c6dd8144

+ 0 - 28
arch/arm/mach-omap2/board-omap4panda.c

@@ -285,19 +285,6 @@ static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers)
 	return 0;
 	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 = {
 static struct regulator_init_data omap4_panda_vaux2 = {
 	.constraints = {
 	.constraints = {
 		.min_uV			= 1200000,
 		.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 = {
 static struct regulator_init_data omap4_panda_vana = {
 	.constraints = {
 	.constraints = {
 		.min_uV			= 2100000,
 		.min_uV			= 2100000,
@@ -424,12 +398,10 @@ static struct twl4030_platform_data omap4_panda_twldata = {
 	/* Regulators */
 	/* Regulators */
 	.vmmc		= &omap4_panda_vmmc,
 	.vmmc		= &omap4_panda_vmmc,
 	.vpp		= &omap4_panda_vpp,
 	.vpp		= &omap4_panda_vpp,
-	.vusim		= &omap4_panda_vusim,
 	.vana		= &omap4_panda_vana,
 	.vana		= &omap4_panda_vana,
 	.vcxio		= &omap4_panda_vcxio,
 	.vcxio		= &omap4_panda_vcxio,
 	.vdac		= &omap4_panda_vdac,
 	.vdac		= &omap4_panda_vdac,
 	.vusb		= &omap4_panda_vusb,
 	.vusb		= &omap4_panda_vusb,
-	.vaux1		= &omap4_panda_vaux1,
 	.vaux2		= &omap4_panda_vaux2,
 	.vaux2		= &omap4_panda_vaux2,
 	.vaux3		= &omap4_panda_vaux3,
 	.vaux3		= &omap4_panda_vaux3,
 	.clk32kg	= &omap4_panda_clk32kg,
 	.clk32kg	= &omap4_panda_clk32kg,

+ 1 - 1
arch/arm/mach-omap2/devices.c

@@ -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);
 	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);
 postcore_initcall(omap3_l3_init);
 
 

+ 8 - 5
arch/arm/mach-omap2/gpmc.c

@@ -693,6 +693,7 @@ static int __init gpmc_init(void)
 {
 {
 	u32 l, irq;
 	u32 l, irq;
 	int cs, ret = -EINVAL;
 	int cs, ret = -EINVAL;
+	int gpmc_irq;
 	char *ck = NULL;
 	char *ck = NULL;
 
 
 	if (cpu_is_omap24xx()) {
 	if (cpu_is_omap24xx()) {
@@ -701,12 +702,15 @@ static int __init gpmc_init(void)
 			l = OMAP2420_GPMC_BASE;
 			l = OMAP2420_GPMC_BASE;
 		else
 		else
 			l = OMAP34XX_GPMC_BASE;
 			l = OMAP34XX_GPMC_BASE;
+		gpmc_irq = INT_34XX_GPMC_IRQ;
 	} else if (cpu_is_omap34xx()) {
 	} else if (cpu_is_omap34xx()) {
 		ck = "gpmc_fck";
 		ck = "gpmc_fck";
 		l = OMAP34XX_GPMC_BASE;
 		l = OMAP34XX_GPMC_BASE;
+		gpmc_irq = INT_34XX_GPMC_IRQ;
 	} else if (cpu_is_omap44xx()) {
 	} else if (cpu_is_omap44xx()) {
 		ck = "gpmc_ck";
 		ck = "gpmc_ck";
 		l = OMAP44XX_GPMC_BASE;
 		l = OMAP44XX_GPMC_BASE;
+		gpmc_irq = OMAP44XX_IRQ_GPMC;
 	}
 	}
 
 
 	if (WARN_ON(!ck))
 	if (WARN_ON(!ck))
@@ -739,16 +743,17 @@ static int __init gpmc_init(void)
 	/* initalize the irq_chained */
 	/* initalize the irq_chained */
 	irq = OMAP_GPMC_IRQ_BASE;
 	irq = OMAP_GPMC_IRQ_BASE;
 	for (cs = 0; cs < GPMC_CS_NUM; cs++) {
 	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);
 		set_irq_flags(irq, IRQF_VALID);
 		irq++;
 		irq++;
 	}
 	}
 
 
-	ret = request_irq(INT_34XX_GPMC_IRQ,
+	ret = request_irq(gpmc_irq,
 			gpmc_handle_irq, IRQF_SHARED, "gpmc", gpmc_base);
 			gpmc_handle_irq, IRQF_SHARED, "gpmc", gpmc_base);
 	if (ret)
 	if (ret)
 		pr_err("gpmc: irq-%d could not claim: err %d\n",
 		pr_err("gpmc: irq-%d could not claim: err %d\n",
-						INT_34XX_GPMC_IRQ, ret);
+						gpmc_irq, ret);
 	return ret;
 	return ret;
 }
 }
 postcore_initcall(gpmc_init);
 postcore_initcall(gpmc_init);
@@ -757,8 +762,6 @@ static irqreturn_t gpmc_handle_irq(int irq, void *dev)
 {
 {
 	u8 cs;
 	u8 cs;
 
 
-	if (irq != INT_34XX_GPMC_IRQ)
-		return IRQ_HANDLED;
 	/* check cs to invoke the irq */
 	/* check cs to invoke the irq */
 	cs = ((gpmc_read_reg(GPMC_PREFETCH_CONFIG1)) >> CS_NUM_SHIFT) & 0x7;
 	cs = ((gpmc_read_reg(GPMC_PREFETCH_CONFIG1)) >> CS_NUM_SHIFT) & 0x7;
 	if (OMAP_GPMC_IRQ_BASE+cs <= OMAP_GPMC_IRQ_END)
 	if (OMAP_GPMC_IRQ_BASE+cs <= OMAP_GPMC_IRQ_END)

+ 4 - 7
arch/arm/mach-omap2/omap_l3_smx.c

@@ -226,7 +226,6 @@ static int __init omap3_l3_probe(struct platform_device *pdev)
 	struct omap3_l3         *l3;
 	struct omap3_l3         *l3;
 	struct resource         *res;
 	struct resource         *res;
 	int                     ret;
 	int                     ret;
-	int                     irq;
 
 
 	l3 = kzalloc(sizeof(*l3), GFP_KERNEL);
 	l3 = kzalloc(sizeof(*l3), GFP_KERNEL);
 	if (!l3) {
 	if (!l3) {
@@ -249,18 +248,17 @@ static int __init omap3_l3_probe(struct platform_device *pdev)
 		goto err2;
 		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,
 		IRQF_DISABLED | IRQF_TRIGGER_RISING,
 		"l3-debug-irq", l3);
 		"l3-debug-irq", l3);
 	if (ret) {
 	if (ret) {
 		dev_err(&pdev->dev, "couldn't request debug irq\n");
 		dev_err(&pdev->dev, "couldn't request debug irq\n");
 		goto err3;
 		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,
 		IRQF_DISABLED | IRQF_TRIGGER_RISING,
 		"l3-app-irq", l3);
 		"l3-app-irq", l3);
 
 
@@ -269,7 +267,6 @@ static int __init omap3_l3_probe(struct platform_device *pdev)
 		goto err4;
 		goto err4;
 	}
 	}
 
 
-	l3->app_irq = irq;
 	goto err0;
 	goto err0;
 
 
 err4:
 err4:

+ 1 - 1
arch/arm/plat-omap/include/plat/irqs.h

@@ -416,7 +416,7 @@
 
 
 /* GPMC related */
 /* GPMC related */
 #define OMAP_GPMC_IRQ_BASE	(TWL_IRQ_END)
 #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)
 #define OMAP_GPMC_IRQ_END	(OMAP_GPMC_IRQ_BASE + OMAP_GPMC_NR_IRQS)
 
 
 
 

+ 1 - 0
drivers/hwspinlock/Kconfig

@@ -4,6 +4,7 @@
 
 
 config HWSPINLOCK
 config HWSPINLOCK
 	tristate "Generic Hardware Spinlock framework"
 	tristate "Generic Hardware Spinlock framework"
+	depends on ARCH_OMAP4
 	help
 	help
 	  Say y here to support the generic hardware spinlock framework.
 	  Say y here to support the generic hardware spinlock framework.
 	  You only need to enable this if you have hardware spinlock module
 	  You only need to enable this if you have hardware spinlock module