aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-02-13 17:15:22 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-02-13 17:15:22 -0500
commita269c2f5a5ad2b24a19fdd723363daf18394ec85 (patch)
tree5d5e2871bc83a4def56beb86400c68e6ce1dc27f /drivers
parented5016d772b84348cb86ab3cdbc533bd4812f2bb (diff)
parent6252547b8a7acced581b649af4ebf6d65f63a34b (diff)
Merge branch 'omap-fixes-urgent' of git://git.linaro.org/people/rmk/linux-arm
This pull request covers the major oopsing issues with OMAP, caused by the lack of the TWL driver. Even when the TWL driver is not built in, we shouldn't oops. * 'omap-fixes-urgent' of git://git.linaro.org/people/rmk/linux-arm: ARM: omap: fix broken twl-core dependencies and ifdefs ARM: omap: fix oops in drivers/video/omap2/dss/dpi.c ARM: omap: fix oops in arch/arm/mach-omap2/vp.c when pmic is not found
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/Kconfig2
-rw-r--r--drivers/mfd/twl-core.c6
-rw-r--r--drivers/video/omap2/dss/dpi.c5
3 files changed, 10 insertions, 3 deletions
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index cd13e9f2f5e6..f147395bac9a 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -200,7 +200,7 @@ config MENELAUS
200 200
201config TWL4030_CORE 201config TWL4030_CORE
202 bool "Texas Instruments TWL4030/TWL5030/TWL6030/TPS659x0 Support" 202 bool "Texas Instruments TWL4030/TWL5030/TWL6030/TPS659x0 Support"
203 depends on I2C=y && GENERIC_HARDIRQS && IRQ_DOMAIN 203 depends on I2C=y && GENERIC_HARDIRQS
204 help 204 help
205 Say yes here if you have TWL4030 / TWL6030 family chip on your board. 205 Say yes here if you have TWL4030 / TWL6030 family chip on your board.
206 This core driver provides register access and IRQ handling 206 This core driver provides register access and IRQ handling
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index e04e04ddc15e..8ce3959c6919 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -263,7 +263,9 @@ struct twl_client {
263 263
264static struct twl_client twl_modules[TWL_NUM_SLAVES]; 264static struct twl_client twl_modules[TWL_NUM_SLAVES];
265 265
266#ifdef CONFIG_IRQ_DOMAIN
266static struct irq_domain domain; 267static struct irq_domain domain;
268#endif
267 269
268/* mapping the module id to slave id and base address */ 270/* mapping the module id to slave id and base address */
269struct twl_mapping { 271struct twl_mapping {
@@ -1226,13 +1228,13 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
1226 pdata->irq_base = status; 1228 pdata->irq_base = status;
1227 pdata->irq_end = pdata->irq_base + nr_irqs; 1229 pdata->irq_end = pdata->irq_base + nr_irqs;
1228 1230
1231#ifdef CONFIG_IRQ_DOMAIN
1229 domain.irq_base = pdata->irq_base; 1232 domain.irq_base = pdata->irq_base;
1230 domain.nr_irq = nr_irqs; 1233 domain.nr_irq = nr_irqs;
1231#ifdef CONFIG_OF_IRQ
1232 domain.of_node = of_node_get(node); 1234 domain.of_node = of_node_get(node);
1233 domain.ops = &irq_domain_simple_ops; 1235 domain.ops = &irq_domain_simple_ops;
1234#endif
1235 irq_domain_add(&domain); 1236 irq_domain_add(&domain);
1237#endif
1236 1238
1237 if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C) == 0) { 1239 if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C) == 0) {
1238 dev_dbg(&client->dev, "can't talk I2C?\n"); 1240 dev_dbg(&client->dev, "can't talk I2C?\n");
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
index 395d658a94fc..faaf305fda27 100644
--- a/drivers/video/omap2/dss/dpi.c
+++ b/drivers/video/omap2/dss/dpi.c
@@ -180,6 +180,11 @@ int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
180{ 180{
181 int r; 181 int r;
182 182
183 if (cpu_is_omap34xx() && !dpi.vdds_dsi_reg) {
184 DSSERR("no VDSS_DSI regulator\n");
185 return -ENODEV;
186 }
187
183 if (dssdev->manager == NULL) { 188 if (dssdev->manager == NULL) {
184 DSSERR("failed to enable display: no manager\n"); 189 DSSERR("failed to enable display: no manager\n");
185 return -ENODEV; 190 return -ENODEV;