video: tegra: dc: fix typo in tmds_config names
Jon Mayo [Tue, 2 Apr 2013 20:51:40 +0000 (13:51 -0700)]
Updates interfaces for providing alternate TMDS to remove typos.
Combine loop through board tmds_config and fallback tmds_config.

Change-Id: Ia9987b6d84d586e1fbfb9d6b0f84b4bd6800122d
Signed-off-by: Jon Mayo <jmayo@nvidia.com>
Reviewed-on: http://git-master/r/215681
(cherry picked from 095378cb8dab6e914cf577f9c6b4b6e4dd5be10c)
Reviewed-on: http://git-master/r/221278
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit

arch/arm/mach-tegra/include/mach/dc.h
drivers/video/tegra/dc/hdmi.c

index b297779..f31836b 100644 (file)
@@ -770,7 +770,7 @@ void tegra_log_resume_time(void);
 #endif
 
 /* table of electrical settings, must be in acending order. */
-struct tdms_config {
+struct tmds_config {
        int pclk;
        u32 pll0;
        u32 pll1;
@@ -780,7 +780,7 @@ struct tdms_config {
 };
 
 struct tegra_hdmi_out {
-       struct tdms_config *tdms_config;
-       int n_tdms_config;
+       struct tmds_config *tmds_config;
+       int n_tmds_config;
 };
 #endif
index 22ed5cd..107d56d 100644 (file)
@@ -109,7 +109,7 @@ struct tegra_dc_hdmi_data {
 struct tegra_dc_hdmi_data *dc_hdmi;
 
 #if defined(CONFIG_ARCH_TEGRA_3x_SOC)
-const struct tdms_config tdms_config[] = {
+const struct tmds_config tmds_config[] = {
        { /* 480p modes */
        .pclk = 27000000,
        .pll0 = SOR_PLL_BG_V17_S(3) | SOR_PLL_ICHPMP(1) |
@@ -157,7 +157,7 @@ const struct tdms_config tdms_config[] = {
        },
 };
 #elif defined(CONFIG_ARCH_TEGRA_2x_SOC)
-const struct tdms_config tdms_config[] = {
+const struct tmds_config tmds_config[] = {
        { /* 480p modes */
        .pclk = 27000000,
        .pll0 = SOR_PLL_BG_V17_S(3) | SOR_PLL_ICHPMP(1) |
@@ -205,7 +205,7 @@ const struct tdms_config tdms_config[] = {
        },
 };
 #elif defined(CONFIG_ARCH_TEGRA_11x_SOC)
-const struct tdms_config tdms_config[] = {
+const struct tmds_config tmds_config[] = {
        { /* 480p/576p / 25.2MHz/27MHz modes */
        .pclk = 27000000,
        .pll0 = SOR_PLL_ICHPMP(2) | SOR_PLL_BG_V17_S(3) |
@@ -290,7 +290,7 @@ const struct tdms_config tdms_config[] = {
        },
 };
 #else
-#warning tdms_config needs to be defined for your arch
+#warning tmds_config needs to be defined for your arch
 #endif
 
 struct tegra_hdmi_audio_config {
@@ -1744,8 +1744,8 @@ static void tegra_dc_hdmi_setup_audio_infoframe(struct tegra_dc *dc, bool dvi)
                          HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_CTRL);
 }
 
-static void tegra_dc_hdmi_setup_tdms(struct tegra_dc_hdmi_data *hdmi,
-               const struct tdms_config *tc)
+static void tegra_dc_hdmi_setup_tmds(struct tegra_dc_hdmi_data *hdmi,
+               const struct tmds_config *tc)
 {
 #if defined(CONFIG_ARCH_TEGRA_11x_SOC)
        u32 val;
@@ -1782,6 +1782,8 @@ static void tegra_dc_hdmi_enable(struct tegra_dc *dc)
        unsigned long val;
        unsigned i;
        unsigned long oldrate;
+       const struct tmds_config *tmds_ptr;
+       size_t tmds_len;
 
        /* enbale power, clocks, resets, etc. */
 
@@ -1902,23 +1904,25 @@ static void tegra_dc_hdmi_enable(struct tegra_dc *dc)
 
        tegra_dc_hdmi_setup_audio_infoframe(dc, hdmi->dvi);
 
-       /* Set tdms config. Set it to custom values provided in board file;
+       /* Set tmds config. Set it to custom values provided in board file;
         * otherwise, set it to default values. */
-       if (hdmi->info.tdms_config && hdmi->info.n_tdms_config) {
-               for (i = 0; i < hdmi->info.n_tdms_config; i++) {
-                       if (dc->mode.pclk <= hdmi->info.tdms_config[i].pclk) {
-                               tegra_dc_hdmi_setup_tdms(hdmi,
-                                               &hdmi->info.tdms_config[i]);
-                               break;
-                       }
-               }
+       if (hdmi->info.tmds_config && hdmi->info.n_tmds_config) {
+               tmds_ptr = hdmi->info.tmds_config;
+               tmds_len = hdmi->info.n_tmds_config;
        } else {
-               for (i = 0; i < ARRAY_SIZE(tdms_config); i++) {
-                       if (dc->mode.pclk <= tdms_config[i].pclk) {
-                               tegra_dc_hdmi_setup_tdms(hdmi, &tdms_config[i]);
-                               break;
-                       }
-               }
+               tmds_ptr = tmds_config;
+               tmds_len = ARRAY_SIZE(tmds_config);
+       }
+
+       for (i = 0; i < tmds_len && tmds_ptr[i].pclk < dc->mode.pclk; i++)
+               ;
+       if (i < tmds_len) {
+               tegra_dc_hdmi_setup_tmds(hdmi, &tmds_ptr[i]);
+       } else {
+               dev_warn(&dc->ndev->dev,
+                       "pixel clock %u not present on TMDS table.\n",
+                       dc->mode.pclk);
+               tegra_dc_hdmi_setup_tmds(hdmi, &tmds_ptr[tmds_len - 1]);
        }
 
        tegra_hdmi_writel(hdmi,