OMAP3 Touchbook: fix board initialization
Subsystems (3)
PATCH 2/2 OMAP3 Touchbook: fix board initialization
init_early hook runs too early for omap3_mux_init(), so the board won't boot. Moved to init_machine, then it works just fine.
---arch/arm/mach-omap2/board-omap3touchbook.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/board-omap3touchbook.c +0 -0
@@ -416,7 +416,6 @@ static struct omap_board_mux board_mux[] __initdata = {
static void __init omap3_touchbook_init_early(void) {
- omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap_board_config = omap3_touchbook_config; omap_board_config_size = ARRAY_SIZE(omap3_touchbook_config); omap2_init_common_infrastructure();
@@ -513,6 +512,7 @@ static struct omap_musb_board_data musb_board_data = {
static void __init omap3_touchbook_init(void)
{
+ omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); pm_power_off = omap3_touchbook_poweroff; omap3_touchbook_i2c_init();
--
1.7.4.1
Tony Lindgren
maintainerQuoted 2 lines · Radek (Mrkva) Pilař
init_earlyhook runs too early foromap3_mux_init(), so the board won't boot. Moved toinit_machine, then it works just fine.
Thanks, applying this. Will do a similar fix for other boards too.
Tony
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Tony Lindgren
maintainerPATCH 1/1 omap2+: Minimize board specific init_early calls
We should only call init_common_infrastructure and init_common_devices from init_early.
---
This is done against the linux-omap devel-board branch
---
arch/arm/mach-omap2/board-2430sdp.c +3 -2
@@ -142,8 +142,6 @@ static struct omap_board_config_kernel sdp2430_config[] __initdata = {static void __init omap_2430sdp_init_early (void ) { - omap_board_config = sdp2430_config; - omap_board_config_size =ARRAY_SIZE (sdp2430_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -246,6 +244,9 @@ static void __init omap_2430sdp_init(void)omap2430_mux_init (board_mux,OMAP_PACKAGE_ZAC ); + omap_board_config = sdp2430_config; + omap_board_config_size =ARRAY_SIZE (sdp2430_config); +omap2430_i2c_init ();platform_add_devices (sdp2430_devices,ARRAY_SIZE (sdp2430_devices));
arch/arm/mach-omap2/board-3430sdp.c +3 -3
@@ -315,9 +315,6 @@ static struct omap_board_config_kernel sdp3430_config[] __initdata = {static void __init omap_3430sdp_init_early (void ) { - omap_board_config = sdp3430_config; - omap_board_config_size =ARRAY_SIZE (sdp3430_config); -omap3_pm_init_cpuidle (omap3_cpuidle_params_table);omap2_init_common_infrastructure ();omap2_init_common_devices (hyb18m512160af6_sdrc_params,NULL ); }
@@ -788,6 +785,9 @@ static struct omap_musb_board_data musb_board_data = {static void __init omap_3430sdp_init (void ) {omap3_mux_init (board_mux,OMAP_PACKAGE_CBB ); + omap_board_config = sdp3430_config; + omap_board_config_size =ARRAY_SIZE (sdp3430_config); +omap3_pm_init_cpuidle (omap3_cpuidle_params_table);omap3430_i2c_init ();omap_display_init (&sdp3430_dss_data);if (omap_rev () >OMAP3430_REV_ES1_0 )
arch/arm/mach-omap2/board-3630sdp.c +2 -2
@@ -72,8 +72,6 @@ static struct omap_board_config_kernel sdp_config[] __initdata = {static void __init omap_sdp_init_early (void ) { - omap_board_config = sdp_config; - omap_board_config_size =ARRAY_SIZE (sdp_config);omap2_init_common_infrastructure ();omap2_init_common_devices (h8mbx00u0mer0em_sdrc_params, h8mbx00u0mer0em_sdrc_params);
@@ -206,6 +204,8 @@ static struct flash_partitions sdp_flash_partitions[] = {static void __init omap_sdp_init (void ) {omap3_mux_init (board_mux,OMAP_PACKAGE_CBP ); + omap_board_config = sdp_config; + omap_board_config_size =ARRAY_SIZE (sdp_config);zoom_peripherals_init ();zoom_display_init ();board_smc91x_init ();
arch/arm/mach-omap2/board-4430sdp.c +3 -2
@@ -325,8 +325,6 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = {static void __init omap_4430sdp_init_early (void ) { - omap_board_config = sdp4430_config; - omap_board_config_size =ARRAY_SIZE (sdp4430_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL );#ifdef CONFIG_OMAP_32K_TIMER
@@ -640,6 +638,9 @@ static void __init omap_4430sdp_init(void) package =OMAP_PACKAGE_CBL ;omap4_mux_init (board_mux, package); + omap_board_config = sdp4430_config; + omap_board_config_size =ARRAY_SIZE (sdp4430_config); +omap4_i2c_init ();omap_sfh7741prox_init ();platform_add_devices (sdp4430_devices,ARRAY_SIZE (sdp4430_devices));
arch/arm/mach-omap2/board-am3517crane.c +3 -3
@@ -51,9 +51,6 @@ static struct omap_board_mux board_mux[] __initdata = {static void __init am3517_crane_init_early (void ) { - omap_board_config = am3517_crane_config; - omap_board_config_size =ARRAY_SIZE (am3517_crane_config); -omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -76,6 +73,9 @@ static void __init am3517_crane_init(void)omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );omap_serial_init (); + omap_board_config = am3517_crane_config; + omap_board_config_size =ARRAY_SIZE (am3517_crane_config); +/* Configure GPIO for EHCI port */ if (omap_mux_init_gpio (GPIO_USB_NRESET ,OMAP_PIN_OUTPUT )) { pr_err("Can not configure mux for GPIO_USB_NRESET %d\n",
arch/arm/mach-omap2/board-am3517evm.c +5 -5
@@ -381,13 +381,8 @@ static struct omap_dss_board_info am3517_evm_dss_data = {/* * Board initialization */ -static struct omap_board_config_kernel am3517_evm_config[]__initdata = { -}; -static void __init am3517_evm_init_early (void ) { - omap_board_config = am3517_evm_config; - omap_board_config_size =ARRAY_SIZE (am3517_evm_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -481,8 +476,13 @@ static void am3517_evm_hecc_init(struct ti_hecc_platform_data *pdata)platform_device_register (&am3517_hecc_device); } +static struct omap_board_config_kernel am3517_evm_config[]__initdata = { +}; +static void __init am3517_evm_init (void ) { + omap_board_config = am3517_evm_config; + omap_board_config_size =ARRAY_SIZE (am3517_evm_config);omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );am3517_evm_i2c_init ();
arch/arm/mach-omap2/board-apollon.c +2 -2
@@ -276,8 +276,6 @@ static struct omap_board_config_kernel apollon_config[] __initdata = {static void __init omap_apollon_init_early (void ) { - omap_board_config = apollon_config; - omap_board_config_size =ARRAY_SIZE (apollon_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -319,6 +317,8 @@ static void __init omap_apollon_init(void)u32 v;omap2420_mux_init (board_mux,OMAP_PACKAGE_ZAC ); + omap_board_config = apollon_config; + omap_board_config_size =ARRAY_SIZE (apollon_config);apollon_init_smc91x ();apollon_led_init ();
arch/arm/mach-omap2/board-cm-t35.c +5 -6
@@ -668,14 +668,8 @@ static void __init cm_t35_init_i2c(void) ARRAY_SIZE(cm_t35_i2c_boardinfo)); } -static struct omap_board_config_kernel cm_t35_config[]__initdata = { -}; -static void __init cm_t35_init_early (void ) { - omap_board_config = cm_t35_config; - omap_board_config_size =ARRAY_SIZE (cm_t35_config); -omap2_init_common_infrastructure ();omap2_init_common_devices (mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params);
@@ -785,8 +779,13 @@ static struct omap_musb_board_data musb_board_data = { .power = 100, }; +static struct omap_board_config_kernel cm_t35_config[]__initdata = { +}; +static void __init cm_t35_init (void ) { + omap_board_config = cm_t35_config; + omap_board_config_size =ARRAY_SIZE (cm_t35_config);omap3_mux_init (board_mux,OMAP_PACKAGE_CUS );omap_serial_init ();cm_t35_init_i2c ();
arch/arm/mach-omap2/board-cm-t3517.c +2 -3
@@ -256,9 +256,6 @@ static struct omap_board_config_kernel cm_t3517_config[] __initdata = {static void __init cm_t3517_init_early (void ) { - omap_board_config = cm_t3517_config; - omap_board_config_size =ARRAY_SIZE (cm_t3517_config); -omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -293,6 +290,8 @@ static void __init cm_t3517_init(void) {omap3_mux_init (board_mux,OMAP_PACKAGE_CBB );omap_serial_init (); + omap_board_config = cm_t3517_config; + omap_board_config_size =ARRAY_SIZE (cm_t3517_config);cm_t3517_init_leds ();cm_t3517_init_nand ();cm_t3517_init_rtc ();
arch/arm/mach-omap2/board-generic.c +2 -2
@@ -35,8 +35,6 @@ static struct omap_board_config_kernel generic_config[] = {static void __init omap_generic_init_early (void ) { - omap_board_config = generic_config; - omap_board_config_size =ARRAY_SIZE (generic_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -44,6 +42,8 @@ static void __init omap_generic_init_early(void)static void __init omap_generic_init (void ) {omap_serial_init (); + omap_board_config = generic_config; + omap_board_config_size =ARRAY_SIZE (generic_config); }static void __init omap_generic_map_io (void )
arch/arm/mach-omap2/board-h4.c +3 -2
@@ -292,8 +292,6 @@ static struct omap_board_config_kernel h4_config[] __initdata = {static void __init omap_h4_init_early (void ) { - omap_board_config = h4_config; - omap_board_config_size =ARRAY_SIZE (h4_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -334,6 +332,9 @@ static void __init omap_h4_init(void) {omap2420_mux_init (board_mux,OMAP_PACKAGE_ZAF ); + omap_board_config = h4_config; + omap_board_config_size =ARRAY_SIZE (h4_config); +/* * Make sure the serial ports are muxed on at this point. * You have to mux them off in device drivers later on
arch/arm/mach-omap2/board-ldp.c +2 -2
@@ -290,8 +290,6 @@ static struct omap_board_config_kernel ldp_config[] __initdata = {static void __init omap_ldp_init_early (void ) { - omap_board_config = ldp_config; - omap_board_config_size =ARRAY_SIZE (ldp_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -422,6 +420,8 @@ static struct mtd_partition ldp_nand_partitions[] = {static void __init omap_ldp_init (void ) {omap3_mux_init (board_mux,OMAP_PACKAGE_CBB ); + omap_board_config = ldp_config; + omap_board_config_size =ARRAY_SIZE (ldp_config);ldp_init_smsc911x ();omap_i2c_init ();platform_add_devices (ldp_devices,ARRAY_SIZE (ldp_devices));
arch/arm/mach-omap2/board-omap3evm.c +3 -2
@@ -732,8 +732,6 @@ static struct omap_board_config_kernel omap3_evm_config[] __initdata = {static void __init omap3_evm_init_early (void ) { - omap_board_config = omap3_evm_config; - omap_board_config_size =ARRAY_SIZE (omap3_evm_config);omap2_init_common_infrastructure ();omap2_init_common_devices (mt46h32m32lf6_sdrc_params,NULL ); }
@@ -824,6 +822,9 @@ static void __init omap3_evm_init(void)else omap3_mux_init (omap35x_board_mux,OMAP_PACKAGE_CBB ); + omap_board_config = omap3_evm_config; + omap_board_config_size =ARRAY_SIZE (omap3_evm_config); +omap3_evm_i2c_init ();omap_display_init (&omap3_evm_dss_data);
arch/arm/mach-omap2/board-omap3stalker.c +2 -2
@@ -581,8 +581,6 @@ static struct omap_board_config_kernel omap3_stalker_config[] __initdata = {static void __init omap3_stalker_init_early (void ) { - omap_board_config = omap3_stalker_config; - omap_board_config_size =ARRAY_SIZE (omap3_stalker_config);omap2_init_common_infrastructure ();omap2_init_common_devices (mt46h32m32lf6_sdrc_params,NULL ); }
@@ -629,6 +627,8 @@ static struct omap_musb_board_data musb_board_data = {static void __init omap3_stalker_init (void ) {omap3_mux_init (board_mux,OMAP_PACKAGE_CUS ); + omap_board_config = omap3_stalker_config; + omap_board_config_size =ARRAY_SIZE (omap3_stalker_config);omap3_stalker_i2c_init ();
arch/arm/mach-omap2/board-omap3touchbook.c +3 -2
@@ -417,8 +417,6 @@ static struct omap_board_mux board_mux[] __initdata = {static void __init omap3_touchbook_init_early (void ) { - omap_board_config = omap3_touchbook_config; - omap_board_config_size =ARRAY_SIZE (omap3_touchbook_config);omap2_init_common_infrastructure ();omap2_init_common_devices (mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params);
@@ -514,6 +512,9 @@ static struct omap_musb_board_data musb_board_data = {static void __init omap3_touchbook_init (void ) {omap3_mux_init (board_mux,OMAP_PACKAGE_CBB ); + omap_board_config = omap3_touchbook_config; + omap_board_config_size =ARRAY_SIZE (omap3_touchbook_config); + pm_power_off = omap3_touchbook_poweroff;omap3_touchbook_i2c_init ();
arch/arm/mach-omap2/board-overo.c +2 -2
@@ -411,8 +411,6 @@ static struct omap_board_config_kernel overo_config[] __initdata = {static void __init overo_init_early (void ) { - omap_board_config = overo_config; - omap_board_config_size =ARRAY_SIZE (overo_config);omap2_init_common_infrastructure ();omap2_init_common_devices (mt46h32m32lf6_sdrc_params, mt46h32m32lf6_sdrc_params);
@@ -448,6 +446,8 @@ static struct omap_musb_board_data musb_board_data = {static void __init overo_init (void ) {omap3_mux_init (board_mux,OMAP_PACKAGE_CBB ); + omap_board_config = overo_config; + omap_board_config_size =ARRAY_SIZE (overo_config);overo_i2c_init ();platform_add_devices (overo_devices,ARRAY_SIZE (overo_devices));omap_serial_init ();
arch/arm/mach-omap2/board-rx51.c +3 -3
@@ -102,9 +102,6 @@ static void __init rx51_init_early(void) {struct omap_sdrc_params *sdrc_params; - omap_board_config = rx51_config; - omap_board_config_size =ARRAY_SIZE (rx51_config); -omap3_pm_init_cpuidle (rx51_cpuidle_params);omap2_init_common_infrastructure (); sdrc_params =nokia_get_sdram_timings ();omap2_init_common_devices (sdrc_params, sdrc_params);
@@ -127,6 +124,9 @@ static struct omap_musb_board_data musb_board_data = {static void __init rx51_init (void ) {omap3_mux_init (board_mux,OMAP_PACKAGE_CBB ); + omap_board_config = rx51_config; + omap_board_config_size =ARRAY_SIZE (rx51_config); +omap3_pm_init_cpuidle (rx51_cpuidle_params);omap_serial_init ();usb_musb_init (&musb_board_data);rx51_peripherals_init ();
arch/arm/mach-omap2/board-ti8168evm.c +2 -2
@@ -29,8 +29,6 @@ static struct omap_board_config_kernel ti8168_evm_config[] __initdata = {static void __init ti8168_init_early (void ) { - omap_board_config = ti8168_evm_config; - omap_board_config_size =ARRAY_SIZE (ti8168_evm_config);omap2_init_common_infrastructure ();omap2_init_common_devices (NULL ,NULL ); }
@@ -43,6 +41,8 @@ static void __init ti8168_evm_init_irq(void)static void __init ti8168_evm_init (void ) {omap_serial_init (); + omap_board_config = ti8168_evm_config; + omap_board_config_size =ARRAY_SIZE (ti8168_evm_config); }static void __init ti8168_evm_map_io (void )