/* * In boot loader, mddi is powered on already. * So, we just detect panel here, setting different power function for each * panel. Then we did not have to detect panel in each time mddi_client_power * or panel_power is called. * * jay: Nov 20, 08' */ int __init heroc_init_panel(void) { int panel, rc; struct panel_data *config = &eid_client_data.panel_conf; if (!machine_is_heroc()) return -1; B(KERN_INFO "%s: enter.\n", __func__); vreg_lcm_2v6 = vreg_get(0, "synt"); if (IS_ERR(vreg_lcm_2v6)) return PTR_ERR(vreg_lcm_2v6); vreg_lcm_2v85 = vreg_get(0, "gp5"); if (IS_ERR(vreg_lcm_2v85)) return PTR_ERR(vreg_lcm_2v85); panel = heroc_panel_detect(); if (panel == PANEL_HEROC_EID_BOTTOM || panel == PANEL_EIDII || panel == PANEL_HEROC_TPO) { printk(KERN_INFO "%s: init %s panel\n", __func__, panel == PANEL_HEROC_TPO ? "TPO" : "EID"); config->panel_id = panel; config->caps = MSMFB_CAP_CABC; if (panel == PANEL_HEROC_EID_BOTTOM || panel == PANEL_EIDII) config->pwm = pwm_eid; else config->pwm = pwm_tpo; config->shrink = 1; config->min_level = 3; } else { printk(KERN_ERR "unknown panel type!\n"); return -EIO; } rc = platform_device_register(&msm_device_mdp); if (rc) return rc; rc = config_vsync(); if (rc) return rc; msm_device_mddi0.dev.platform_data = &heroc_pdata; rc = platform_device_register(&msm_device_mddi0); if (rc) return rc; led_trigger_register_simple("lcd-backlight-gate", &heroc_lcd_backlight); if (IS_ERR(heroc_lcd_backlight)) printk(KERN_ERR "%s: backlight registration failed!\n", __func__); return 0; }
static int __init heroc_wifi_init(void) { int ret; int rc = 0; if (!machine_is_heroc()) return 0; #ifdef CONFIG_WIFI_MEM_PREALLOC rc = heroc_init_wifi_mem(); if (rc) { printk(KERN_CRIT "%s: WiFi memory init failure (%d)\n", __func__, rc); } #endif ret = platform_device_register(&wifi_ctrl_dev); return ret; }