diff options
| author | Olof Johansson <olof@lixom.net> | 2012-01-29 17:40:19 -0500 |
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2012-01-29 17:40:19 -0500 |
| commit | 4a81220a61d0cb67880078298485b68da87d8a34 (patch) | |
| tree | 2c814ed8d96316748093fb84ec7e39aa7e0d0a33 | |
| parent | 50b47c4919f586dfc45a77a4ced907e21dd0d9c5 (diff) | |
| parent | cd3a2ba070804c519ada9f7afecc9a2d65546900 (diff) | |
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: arch/arm/mach-omap2/smartreflex.c: add missing iounmap
ARM: OMAP2+: arch/arm/mach-omap2/devices.c: introduce missing kfree
ARM: OMAP: fix MMC2 loopback clock handling
ARM: OMAP: fix erroneous mmc2 clock change on mmc3 setup
ARM: OMAP2+: GPMC: fix device size setup
ARM: OMAP2+: timer: Fix crash due to wrong arg to __omap_dm_timer_read_counter
ARM: OMAP3: hwmod data: register dss hwmods after dss_core
ARM: OMAP2/3: PRM: fix missing plat/irqs.h build breakage
ARM: OMAP2+: io: fix compilation breakage on 2420-only configs
ARM: OMAP4: hwmod data: Add names for DMIC memory address space
ARM: OMAP3: hwmod data: add SYSC_HAS_ENAWAKEUP for dispc
ARM: OMAP2+: hwmod data: split omap2/3 dispc hwmod class
ARM: OMAP2: fix regulator warnings
ARM: OMAP2: fix omap3 touchbook kconfig warning
i2c: OMAP: Fix OMAP1 build error
| -rw-r--r-- | arch/arm/mach-omap2/Kconfig | 11 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/devices.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/hsmmc.c | 16 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/io.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c | 21 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 22 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 54 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/prm2xxx_3xxx.c | 1 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/smartreflex.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/timer.c | 2 | ||||
| -rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 2 |
13 files changed, 98 insertions, 46 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 41e6612ecbaf..d965da45160e 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
| @@ -213,13 +213,12 @@ config MACH_OMAP3_PANDORA | |||
| 213 | depends on ARCH_OMAP3 | 213 | depends on ARCH_OMAP3 |
| 214 | default y | 214 | default y |
| 215 | select OMAP_PACKAGE_CBB | 215 | select OMAP_PACKAGE_CBB |
| 216 | select REGULATOR_FIXED_VOLTAGE | 216 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
| 217 | 217 | ||
| 218 | config MACH_OMAP3_TOUCHBOOK | 218 | config MACH_OMAP3_TOUCHBOOK |
| 219 | bool "OMAP3 Touch Book" | 219 | bool "OMAP3 Touch Book" |
| 220 | depends on ARCH_OMAP3 | 220 | depends on ARCH_OMAP3 |
| 221 | default y | 221 | default y |
| 222 | select BACKLIGHT_CLASS_DEVICE | ||
| 223 | 222 | ||
| 224 | config MACH_OMAP_3430SDP | 223 | config MACH_OMAP_3430SDP |
| 225 | bool "OMAP 3430 SDP board" | 224 | bool "OMAP 3430 SDP board" |
| @@ -265,7 +264,7 @@ config MACH_OMAP_ZOOM2 | |||
| 265 | select SERIAL_8250 | 264 | select SERIAL_8250 |
| 266 | select SERIAL_CORE_CONSOLE | 265 | select SERIAL_CORE_CONSOLE |
| 267 | select SERIAL_8250_CONSOLE | 266 | select SERIAL_8250_CONSOLE |
| 268 | select REGULATOR_FIXED_VOLTAGE | 267 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
| 269 | 268 | ||
| 270 | config MACH_OMAP_ZOOM3 | 269 | config MACH_OMAP_ZOOM3 |
| 271 | bool "OMAP3630 Zoom3 board" | 270 | bool "OMAP3630 Zoom3 board" |
| @@ -275,7 +274,7 @@ config MACH_OMAP_ZOOM3 | |||
| 275 | select SERIAL_8250 | 274 | select SERIAL_8250 |
| 276 | select SERIAL_CORE_CONSOLE | 275 | select SERIAL_CORE_CONSOLE |
| 277 | select SERIAL_8250_CONSOLE | 276 | select SERIAL_8250_CONSOLE |
| 278 | select REGULATOR_FIXED_VOLTAGE | 277 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
| 279 | 278 | ||
| 280 | config MACH_CM_T35 | 279 | config MACH_CM_T35 |
| 281 | bool "CompuLab CM-T35/CM-T3730 modules" | 280 | bool "CompuLab CM-T35/CM-T3730 modules" |
| @@ -334,7 +333,7 @@ config MACH_OMAP_4430SDP | |||
| 334 | depends on ARCH_OMAP4 | 333 | depends on ARCH_OMAP4 |
| 335 | select OMAP_PACKAGE_CBL | 334 | select OMAP_PACKAGE_CBL |
| 336 | select OMAP_PACKAGE_CBS | 335 | select OMAP_PACKAGE_CBS |
| 337 | select REGULATOR_FIXED_VOLTAGE | 336 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
| 338 | 337 | ||
| 339 | config MACH_OMAP4_PANDA | 338 | config MACH_OMAP4_PANDA |
| 340 | bool "OMAP4 Panda Board" | 339 | bool "OMAP4 Panda Board" |
| @@ -342,7 +341,7 @@ config MACH_OMAP4_PANDA | |||
| 342 | depends on ARCH_OMAP4 | 341 | depends on ARCH_OMAP4 |
| 343 | select OMAP_PACKAGE_CBL | 342 | select OMAP_PACKAGE_CBL |
| 344 | select OMAP_PACKAGE_CBS | 343 | select OMAP_PACKAGE_CBS |
| 345 | select REGULATOR_FIXED_VOLTAGE | 344 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
| 346 | 345 | ||
| 347 | config OMAP3_EMU | 346 | config OMAP3_EMU |
| 348 | bool "OMAP3 debugging peripherals" | 347 | bool "OMAP3 debugging peripherals" |
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 0b510ad01a00..283d11eae693 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
| @@ -405,6 +405,7 @@ static int omap_mcspi_init(struct omap_hwmod *oh, void *unused) | |||
| 405 | break; | 405 | break; |
| 406 | default: | 406 | default: |
| 407 | pr_err("Invalid McSPI Revision value\n"); | 407 | pr_err("Invalid McSPI Revision value\n"); |
| 408 | kfree(pdata); | ||
| 408 | return -EINVAL; | 409 | return -EINVAL; |
| 409 | } | 410 | } |
| 410 | 411 | ||
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 130034bf01d5..dfffbbf4c009 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
| @@ -528,7 +528,13 @@ int gpmc_cs_configure(int cs, int cmd, int wval) | |||
| 528 | 528 | ||
| 529 | case GPMC_CONFIG_DEV_SIZE: | 529 | case GPMC_CONFIG_DEV_SIZE: |
| 530 | regval = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1); | 530 | regval = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1); |
| 531 | |||
| 532 | /* clear 2 target bits */ | ||
| 533 | regval &= ~GPMC_CONFIG1_DEVICESIZE(3); | ||
| 534 | |||
| 535 | /* set the proper value */ | ||
| 531 | regval |= GPMC_CONFIG1_DEVICESIZE(wval); | 536 | regval |= GPMC_CONFIG1_DEVICESIZE(wval); |
| 537 | |||
| 532 | gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, regval); | 538 | gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, regval); |
| 533 | break; | 539 | break; |
| 534 | 540 | ||
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index bd844af13af5..ad0adb5a1e0e 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c | |||
| @@ -175,14 +175,15 @@ static void hsmmc2_select_input_clk_src(struct omap_mmc_platform_data *mmc) | |||
| 175 | { | 175 | { |
| 176 | u32 reg; | 176 | u32 reg; |
| 177 | 177 | ||
| 178 | if (mmc->slots[0].internal_clock) { | 178 | reg = omap_ctrl_readl(control_devconf1_offset); |
| 179 | reg = omap_ctrl_readl(control_devconf1_offset); | 179 | if (mmc->slots[0].internal_clock) |
| 180 | reg |= OMAP2_MMCSDIO2ADPCLKISEL; | 180 | reg |= OMAP2_MMCSDIO2ADPCLKISEL; |
| 181 | omap_ctrl_writel(reg, control_devconf1_offset); | 181 | else |
| 182 | } | 182 | reg &= ~OMAP2_MMCSDIO2ADPCLKISEL; |
| 183 | omap_ctrl_writel(reg, control_devconf1_offset); | ||
| 183 | } | 184 | } |
| 184 | 185 | ||
| 185 | static void hsmmc23_before_set_reg(struct device *dev, int slot, | 186 | static void hsmmc2_before_set_reg(struct device *dev, int slot, |
| 186 | int power_on, int vdd) | 187 | int power_on, int vdd) |
| 187 | { | 188 | { |
| 188 | struct omap_mmc_platform_data *mmc = dev->platform_data; | 189 | struct omap_mmc_platform_data *mmc = dev->platform_data; |
| @@ -407,14 +408,13 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c, | |||
| 407 | c->caps &= ~MMC_CAP_8_BIT_DATA; | 408 | c->caps &= ~MMC_CAP_8_BIT_DATA; |
| 408 | c->caps |= MMC_CAP_4_BIT_DATA; | 409 | c->caps |= MMC_CAP_4_BIT_DATA; |
| 409 | } | 410 | } |
| 410 | /* FALLTHROUGH */ | ||
| 411 | case 3: | ||
| 412 | if (mmc->slots[0].features & HSMMC_HAS_PBIAS) { | 411 | if (mmc->slots[0].features & HSMMC_HAS_PBIAS) { |
| 413 | /* off-chip level shifting, or none */ | 412 | /* off-chip level shifting, or none */ |
| 414 | mmc->slots[0].before_set_reg = hsmmc23_before_set_reg; | 413 | mmc->slots[0].before_set_reg = hsmmc2_before_set_reg; |
| 415 | mmc->slots[0].after_set_reg = NULL; | 414 | mmc->slots[0].after_set_reg = NULL; |
| 416 | } | 415 | } |
| 417 | break; | 416 | break; |
| 417 | case 3: | ||
| 418 | case 4: | 418 | case 4: |
| 419 | case 5: | 419 | case 5: |
| 420 | mmc->slots[0].before_set_reg = NULL; | 420 | mmc->slots[0].before_set_reg = NULL; |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 3f174d51f67f..eb50c29fb644 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
| @@ -388,7 +388,7 @@ static void __init omap_hwmod_init_postsetup(void) | |||
| 388 | omap_pm_if_early_init(); | 388 | omap_pm_if_early_init(); |
| 389 | } | 389 | } |
| 390 | 390 | ||
| 391 | #ifdef CONFIG_ARCH_OMAP2 | 391 | #ifdef CONFIG_SOC_OMAP2420 |
| 392 | void __init omap2420_init_early(void) | 392 | void __init omap2420_init_early(void) |
| 393 | { | 393 | { |
| 394 | omap2_set_globals_242x(); | 394 | omap2_set_globals_242x(); |
| @@ -400,7 +400,9 @@ void __init omap2420_init_early(void) | |||
| 400 | omap_hwmod_init_postsetup(); | 400 | omap_hwmod_init_postsetup(); |
| 401 | omap2420_clk_init(); | 401 | omap2420_clk_init(); |
| 402 | } | 402 | } |
| 403 | #endif | ||
| 403 | 404 | ||
| 405 | #ifdef CONFIG_SOC_OMAP2430 | ||
| 404 | void __init omap2430_init_early(void) | 406 | void __init omap2430_init_early(void) |
| 405 | { | 407 | { |
| 406 | omap2_set_globals_243x(); | 408 | omap2_set_globals_243x(); |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c index c11273da5dcc..f08e442af397 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c | |||
| @@ -56,27 +56,6 @@ struct omap_hwmod_class omap2_dss_hwmod_class = { | |||
| 56 | }; | 56 | }; |
| 57 | 57 | ||
| 58 | /* | 58 | /* |
| 59 | * 'dispc' class | ||
| 60 | * display controller | ||
| 61 | */ | ||
| 62 | |||
| 63 | static struct omap_hwmod_class_sysconfig omap2_dispc_sysc = { | ||
| 64 | .rev_offs = 0x0000, | ||
| 65 | .sysc_offs = 0x0010, | ||
| 66 | .syss_offs = 0x0014, | ||
| 67 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE | | ||
| 68 | SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE), | ||
| 69 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
| 70 | MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART), | ||
| 71 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
| 72 | }; | ||
| 73 | |||
| 74 | struct omap_hwmod_class omap2_dispc_hwmod_class = { | ||
| 75 | .name = "dispc", | ||
| 76 | .sysc = &omap2_dispc_sysc, | ||
| 77 | }; | ||
| 78 | |||
| 79 | /* | ||
| 80 | * 'rfbi' class | 59 | * 'rfbi' class |
| 81 | * remote frame buffer interface | 60 | * remote frame buffer interface |
| 82 | */ | 61 | */ |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c index 177dee20faef..2a6729741b06 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | |||
| @@ -28,6 +28,28 @@ struct omap_hwmod_dma_info omap2xxx_dss_sdma_chs[] = { | |||
| 28 | { .name = "dispc", .dma_req = 5 }, | 28 | { .name = "dispc", .dma_req = 5 }, |
| 29 | { .dma_req = -1 } | 29 | { .dma_req = -1 } |
| 30 | }; | 30 | }; |
| 31 | |||
| 32 | /* | ||
| 33 | * 'dispc' class | ||
| 34 | * display controller | ||
| 35 | */ | ||
| 36 | |||
| 37 | static struct omap_hwmod_class_sysconfig omap2_dispc_sysc = { | ||
| 38 | .rev_offs = 0x0000, | ||
| 39 | .sysc_offs = 0x0010, | ||
| 40 | .syss_offs = 0x0014, | ||
| 41 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE | | ||
| 42 | SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE), | ||
| 43 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
| 44 | MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART), | ||
| 45 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
| 46 | }; | ||
| 47 | |||
| 48 | struct omap_hwmod_class omap2_dispc_hwmod_class = { | ||
| 49 | .name = "dispc", | ||
| 50 | .sysc = &omap2_dispc_sysc, | ||
| 51 | }; | ||
| 52 | |||
| 31 | /* OMAP2xxx Timer Common */ | 53 | /* OMAP2xxx Timer Common */ |
| 32 | static struct omap_hwmod_class_sysconfig omap2xxx_timer_sysc = { | 54 | static struct omap_hwmod_class_sysconfig omap2xxx_timer_sysc = { |
| 33 | .rev_offs = 0x0000, | 55 | .rev_offs = 0x0000, |
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index 5324e8d93bc0..3c8dd928628e 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | |||
| @@ -1480,6 +1480,28 @@ static struct omap_hwmod omap3xxx_dss_core_hwmod = { | |||
| 1480 | .masters_cnt = ARRAY_SIZE(omap3xxx_dss_masters), | 1480 | .masters_cnt = ARRAY_SIZE(omap3xxx_dss_masters), |
| 1481 | }; | 1481 | }; |
| 1482 | 1482 | ||
| 1483 | /* | ||
| 1484 | * 'dispc' class | ||
| 1485 | * display controller | ||
| 1486 | */ | ||
| 1487 | |||
| 1488 | static struct omap_hwmod_class_sysconfig omap3_dispc_sysc = { | ||
| 1489 | .rev_offs = 0x0000, | ||
| 1490 | .sysc_offs = 0x0010, | ||
| 1491 | .syss_offs = 0x0014, | ||
| 1492 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE | | ||
| 1493 | SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE | | ||
| 1494 | SYSC_HAS_ENAWAKEUP), | ||
| 1495 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
| 1496 | MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART), | ||
| 1497 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
| 1498 | }; | ||
| 1499 | |||
| 1500 | static struct omap_hwmod_class omap3_dispc_hwmod_class = { | ||
| 1501 | .name = "dispc", | ||
| 1502 | .sysc = &omap3_dispc_sysc, | ||
| 1503 | }; | ||
| 1504 | |||
| 1483 | /* l4_core -> dss_dispc */ | 1505 | /* l4_core -> dss_dispc */ |
| 1484 | static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_dispc = { | 1506 | static struct omap_hwmod_ocp_if omap3xxx_l4_core__dss_dispc = { |
| 1485 | .master = &omap3xxx_l4_core_hwmod, | 1507 | .master = &omap3xxx_l4_core_hwmod, |
| @@ -1503,7 +1525,7 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_dispc_slaves[] = { | |||
| 1503 | 1525 | ||
| 1504 | static struct omap_hwmod omap3xxx_dss_dispc_hwmod = { | 1526 | static struct omap_hwmod omap3xxx_dss_dispc_hwmod = { |
| 1505 | .name = "dss_dispc", | 1527 | .name = "dss_dispc", |
| 1506 | .class = &omap2_dispc_hwmod_class, | 1528 | .class = &omap3_dispc_hwmod_class, |
| 1507 | .mpu_irqs = omap2_dispc_irqs, | 1529 | .mpu_irqs = omap2_dispc_irqs, |
| 1508 | .main_clk = "dss1_alwon_fck", | 1530 | .main_clk = "dss1_alwon_fck", |
| 1509 | .prcm = { | 1531 | .prcm = { |
| @@ -3523,12 +3545,6 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { | |||
| 3523 | &omap3xxx_uart2_hwmod, | 3545 | &omap3xxx_uart2_hwmod, |
| 3524 | &omap3xxx_uart3_hwmod, | 3546 | &omap3xxx_uart3_hwmod, |
| 3525 | 3547 | ||
| 3526 | /* dss class */ | ||
| 3527 | &omap3xxx_dss_dispc_hwmod, | ||
| 3528 | &omap3xxx_dss_dsi1_hwmod, | ||
| 3529 | &omap3xxx_dss_rfbi_hwmod, | ||
| 3530 | &omap3xxx_dss_venc_hwmod, | ||
| 3531 | |||
| 3532 | /* i2c class */ | 3548 | /* i2c class */ |
| 3533 | &omap3xxx_i2c1_hwmod, | 3549 | &omap3xxx_i2c1_hwmod, |
| 3534 | &omap3xxx_i2c2_hwmod, | 3550 | &omap3xxx_i2c2_hwmod, |
| @@ -3635,6 +3651,15 @@ static __initdata struct omap_hwmod *am35xx_hwmods[] = { | |||
| 3635 | NULL | 3651 | NULL |
| 3636 | }; | 3652 | }; |
| 3637 | 3653 | ||
| 3654 | static __initdata struct omap_hwmod *omap3xxx_dss_hwmods[] = { | ||
| 3655 | /* dss class */ | ||
| 3656 | &omap3xxx_dss_dispc_hwmod, | ||
| 3657 | &omap3xxx_dss_dsi1_hwmod, | ||
| 3658 | &omap3xxx_dss_rfbi_hwmod, | ||
| 3659 | &omap3xxx_dss_venc_hwmod, | ||
| 3660 | NULL | ||
| 3661 | }; | ||
| 3662 | |||
| 3638 | int __init omap3xxx_hwmod_init(void) | 3663 | int __init omap3xxx_hwmod_init(void) |
| 3639 | { | 3664 | { |
| 3640 | int r; | 3665 | int r; |
| @@ -3708,6 +3733,21 @@ int __init omap3xxx_hwmod_init(void) | |||
| 3708 | 3733 | ||
| 3709 | if (h) | 3734 | if (h) |
| 3710 | r = omap_hwmod_register(h); | 3735 | r = omap_hwmod_register(h); |
| 3736 | if (r < 0) | ||
| 3737 | return r; | ||
| 3738 | |||
| 3739 | /* | ||
| 3740 | * DSS code presumes that dss_core hwmod is handled first, | ||
| 3741 | * _before_ any other DSS related hwmods so register common | ||
| 3742 | * DSS hwmods last to ensure that dss_core is already registered. | ||
| 3743 | * Otherwise some change things may happen, for ex. if dispc | ||
| 3744 | * is handled before dss_core and DSS is enabled in bootloader | ||
| 3745 | * DIPSC will be reset with outputs enabled which sometimes leads | ||
| 3746 | * to unrecoverable L3 error. | ||
| 3747 | * XXX The long-term fix to this is to ensure modules are set up | ||
| 3748 | * in dependency order in the hwmod core code. | ||
| 3749 | */ | ||
| 3750 | r = omap_hwmod_register(omap3xxx_dss_hwmods); | ||
| 3711 | 3751 | ||
| 3712 | return r; | 3752 | return r; |
| 3713 | } | 3753 | } |
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index f9f151081760..ef0524c10a84 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
| @@ -1031,6 +1031,7 @@ static struct omap_hwmod_dma_info omap44xx_dmic_sdma_reqs[] = { | |||
| 1031 | 1031 | ||
| 1032 | static struct omap_hwmod_addr_space omap44xx_dmic_addrs[] = { | 1032 | static struct omap_hwmod_addr_space omap44xx_dmic_addrs[] = { |
| 1033 | { | 1033 | { |
| 1034 | .name = "mpu", | ||
| 1034 | .pa_start = 0x4012e000, | 1035 | .pa_start = 0x4012e000, |
| 1035 | .pa_end = 0x4012e07f, | 1036 | .pa_end = 0x4012e07f, |
| 1036 | .flags = ADDR_TYPE_RT | 1037 | .flags = ADDR_TYPE_RT |
| @@ -1049,6 +1050,7 @@ static struct omap_hwmod_ocp_if omap44xx_l4_abe__dmic = { | |||
| 1049 | 1050 | ||
| 1050 | static struct omap_hwmod_addr_space omap44xx_dmic_dma_addrs[] = { | 1051 | static struct omap_hwmod_addr_space omap44xx_dmic_dma_addrs[] = { |
| 1051 | { | 1052 | { |
| 1053 | .name = "dma", | ||
| 1052 | .pa_start = 0x4902e000, | 1054 | .pa_start = 0x4902e000, |
| 1053 | .pa_end = 0x4902e07f, | 1055 | .pa_end = 0x4902e07f, |
| 1054 | .flags = ADDR_TYPE_RT | 1056 | .flags = ADDR_TYPE_RT |
diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c index c1c4d86a79a8..9ce765407ad5 100644 --- a/arch/arm/mach-omap2/prm2xxx_3xxx.c +++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include "common.h" | 19 | #include "common.h" |
| 20 | #include <plat/cpu.h> | 20 | #include <plat/cpu.h> |
| 21 | #include <plat/prcm.h> | 21 | #include <plat/prcm.h> |
| 22 | #include <plat/irqs.h> | ||
| 22 | 23 | ||
| 23 | #include "vp.h" | 24 | #include "vp.h" |
| 24 | 25 | ||
diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c index 9dd93453e563..7e755bb0ffc4 100644 --- a/arch/arm/mach-omap2/smartreflex.c +++ b/arch/arm/mach-omap2/smartreflex.c | |||
| @@ -897,7 +897,7 @@ static int __init omap_sr_probe(struct platform_device *pdev) | |||
| 897 | ret = sr_late_init(sr_info); | 897 | ret = sr_late_init(sr_info); |
| 898 | if (ret) { | 898 | if (ret) { |
| 899 | pr_warning("%s: Error in SR late init\n", __func__); | 899 | pr_warning("%s: Error in SR late init\n", __func__); |
| 900 | return ret; | 900 | goto err_iounmap; |
| 901 | } | 901 | } |
| 902 | } | 902 | } |
| 903 | 903 | ||
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 6eeff0e0ae01..5c9acea95761 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
| @@ -270,7 +270,7 @@ static struct clocksource clocksource_gpt = { | |||
| 270 | static u32 notrace dmtimer_read_sched_clock(void) | 270 | static u32 notrace dmtimer_read_sched_clock(void) |
| 271 | { | 271 | { |
| 272 | if (clksrc.reserved) | 272 | if (clksrc.reserved) |
| 273 | return __omap_dm_timer_read_counter(clksrc.io_base, 1); | 273 | return __omap_dm_timer_read_counter(&clksrc, 1); |
| 274 | 274 | ||
| 275 | return 0; | 275 | return 0; |
| 276 | } | 276 | } |
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index f713eac55047..801df6000e9b 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
| @@ -1018,7 +1018,7 @@ omap_i2c_probe(struct platform_device *pdev) | |||
| 1018 | goto err_release_region; | 1018 | goto err_release_region; |
| 1019 | } | 1019 | } |
| 1020 | 1020 | ||
| 1021 | match = of_match_device(omap_i2c_of_match, &pdev->dev); | 1021 | match = of_match_device(of_match_ptr(omap_i2c_of_match), &pdev->dev); |
| 1022 | if (match) { | 1022 | if (match) { |
| 1023 | u32 freq = 100000; /* default to 100000 Hz */ | 1023 | u32 freq = 100000; /* default to 100000 Hz */ |
| 1024 | 1024 | ||
