aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/sh_mobile_hdmi.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c
index ef41c215abae..3adffe6acafc 100644
--- a/drivers/video/sh_mobile_hdmi.c
+++ b/drivers/video/sh_mobile_hdmi.c
@@ -466,7 +466,7 @@ static void sh_hdmi_audio_config(struct sh_hdmi *hdmi)
466 */ 466 */
467static void sh_hdmi_phy_config(struct sh_hdmi *hdmi) 467static void sh_hdmi_phy_config(struct sh_hdmi *hdmi)
468{ 468{
469 if (hdmi->var.yres > 480) { 469 if (hdmi->var.pixclock < 30000) {
470 /* 720p, 8bit, 74.25MHz. Might need to be adjusted for other formats */ 470 /* 720p, 8bit, 74.25MHz. Might need to be adjusted for other formats */
471 /* 471 /*
472 * [1:0] Speed_A 472 * [1:0] Speed_A
@@ -570,8 +570,12 @@ static void sh_hdmi_avi_infoframe_setup(struct sh_hdmi *hdmi)
570 */ 570 */
571 if (hdmi->var.yres == 1080 && hdmi->var.xres == 1920) 571 if (hdmi->var.yres == 1080 && hdmi->var.xres == 1920)
572 vic = 16; 572 vic = 16;
573 else if (hdmi->var.yres == 576 && hdmi->var.xres == 720)
574 vic = 17;
573 else if (hdmi->var.yres == 480 && hdmi->var.xres == 720) 575 else if (hdmi->var.yres == 480 && hdmi->var.xres == 720)
574 vic = 2; 576 vic = 2;
577 else if (hdmi->var.yres == 480 && hdmi->var.xres == 640)
578 vic = 1;
575 else 579 else
576 vic = 4; 580 vic = 4;
577 hdmi_write(hdmi, vic, HDMI_CTRL_PKT_BUF_ACCESS_PB4); 581 hdmi_write(hdmi, vic, HDMI_CTRL_PKT_BUF_ACCESS_PB4);
@@ -824,9 +828,11 @@ static int sh_hdmi_read_edid(struct sh_hdmi *hdmi, unsigned long *hdmi_rate,
824 if (!found) 828 if (!found)
825 return -ENXIO; 829 return -ENXIO;
826 830
827 if ((found->xres == 720 && found->yres == 480) || 831 if ((found->xres == 640 && found->yres == 480 && found->refresh == 60) ||
828 (found->xres == 1280 && found->yres == 720) || 832 (found->xres == 720 && found->yres == 480 && found->refresh == 60) ||
829 (found->xres == 1920 && found->yres == 1080)) 833 (found->xres == 720 && found->yres == 576 && found->refresh == 50) ||
834 (found->xres == 1280 && found->yres == 720 && found->refresh == 60) ||
835 (found->xres == 1920 && found->yres == 1080 && found->refresh == 60))
830 hdmi->preprogrammed_mode = true; 836 hdmi->preprogrammed_mode = true;
831 else 837 else
832 hdmi->preprogrammed_mode = false; 838 hdmi->preprogrammed_mode = false;