static int hdmi_tx_init_panel_info(uint32_t resolution, struct mdss_panel_info *pinfo) { const struct hdmi_disp_mode_timing_type *timing = hdmi_get_supported_mode(resolution); if (!timing || !pinfo) { DEV_ERR("%s: invalid input.\n", __func__); return -EINVAL; } pinfo->xres = timing->active_h; pinfo->yres = timing->active_v; pinfo->clk_rate = timing->pixel_freq*1000; pinfo->lcdc.h_back_porch = timing->back_porch_h; pinfo->lcdc.h_front_porch = timing->front_porch_h; pinfo->lcdc.h_pulse_width = timing->pulse_width_h; pinfo->lcdc.v_back_porch = timing->back_porch_v; pinfo->lcdc.v_front_porch = timing->front_porch_v; pinfo->lcdc.v_pulse_width = timing->pulse_width_v; pinfo->type = DTV_PANEL; pinfo->pdest = DISPLAY_2; pinfo->wait_cycle = 0; pinfo->bpp = 24; pinfo->fb_num = 1; pinfo->lcdc.border_clr = 0; /* blk */ pinfo->lcdc.underflow_clr = 0xff; /* blue */ pinfo->lcdc.hsync_skew = 0; return 0; } /* hdmi_tx_init_panel_info */
static void anx7808_setup_video_mode_lut(void) { int i; struct msm_hdmi_mode_timing_info *temp_timing; for (i = 0; i < HDMI_VFRMT_MAX; i++) { temp_timing = (struct msm_hdmi_mode_timing_info *) hdmi_get_supported_mode(i); if (!temp_timing) continue; /* formats that exceed max active_h */ if (temp_timing->active_h > ANX7808_MAX_ACTIVE_H) { pr_debug("disabled mode (%d)\n", temp_timing->active_h); hdmi_del_supported_mode(i); } } }