bool target_display_panel_node(char *panel_name, char *pbuf, uint16_t buf_size) { int prefix_string_len = strlen(DISPLAY_CMDLINE_PREFIX); bool ret = true; panel_name += strspn(panel_name, " "); if (!strcmp(panel_name, HDMI_PANEL_NAME)) { if (buf_size < (prefix_string_len + LK_OVERRIDE_PANEL_LEN + HDMI_CONTROLLER_STRING)) { dprintf(CRITICAL, "command line argument is greater than buffer size\n"); return false; } strlcpy(pbuf, DISPLAY_CMDLINE_PREFIX, buf_size); buf_size -= prefix_string_len; strlcat(pbuf, LK_OVERRIDE_PANEL, buf_size); buf_size -= LK_OVERRIDE_PANEL_LEN; strlcat(pbuf, HDMI_CONTROLLER_STRING, buf_size); } else { ret = gcdb_display_cmdline_arg(pbuf, buf_size); } return ret; }
bool target_display_panel_node(char *panel_name, char *pbuf, uint16_t buf_size) { return gcdb_display_cmdline_arg(panel_name, pbuf, buf_size); }
static int msm8974_edp_panel_power(int enable) { struct pm8x41_gpio gpio36_param = { .direction = PM_GPIO_DIR_OUT, .function = PM_GPIO_FUNC_2, .vin_sel = 2, /* VIN_2 */ .pull = PM_GPIO_PULL_UP_1_5 | PM_GPIO_PULLDOWN_10, .output_buffer = PM_GPIO_OUT_CMOS, .out_strength = PM_GPIO_OUT_DRIVE_HIGH, }; struct pm8x41_ldo ldo12 = LDO(PM8x41_LDO12, PLDO_TYPE); if (enable) { /* Enable backlight */ dprintf(SPEW, "Enable Backlight\n"); msm8974_pwm_backlight_ctrl(36, 8, 1); dprintf(SPEW, "Enable Backlight Done\n"); /* Turn on LDO12 for edp vdda */ dprintf(SPEW, "Setting LDO12 n"); pm8x41_ldo_set_voltage(&ldo12, 1800000); pm8x41_ldo_control(&ldo12, enable); dprintf(SPEW, "Setting LDO12 Done\n"); /* Panel Enable */ dprintf(SPEW, "Panel Enable\n"); gpio_tlmm_config(58, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA, GPIO_DISABLE); gpio_set(58, 2); dprintf(SPEW, "Panel Enable Done\n"); } else { /* Keep LDO12 on, otherwise kernel will not boot */ gpio_set(58, 0); msm8974_pwm_backlight_ctrl(36, 8, 0); } return 0; } bool target_display_panel_node(char *panel_name, char *pbuf, uint16_t buf_size) { int prefix_string_len = strlen(DISPLAY_CMDLINE_PREFIX); bool ret = true; panel_name += strspn(panel_name, " "); if (!strcmp(panel_name, HDMI_PANEL_NAME)) { if (buf_size < (prefix_string_len + LK_OVERRIDE_PANEL_LEN + HDMI_CONTROLLER_STRING)) { dprintf(CRITICAL, "command line argument is greater than buffer size\n"); return false; } strlcpy(pbuf, DISPLAY_CMDLINE_PREFIX, buf_size); buf_size -= prefix_string_len; strlcat(pbuf, LK_OVERRIDE_PANEL, buf_size); buf_size -= LK_OVERRIDE_PANEL_LEN; strlcat(pbuf, HDMI_CONTROLLER_STRING, buf_size); } else { ret = gcdb_display_cmdline_arg(panel_name, pbuf, buf_size); } return ret; }