diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c index 52731b5e10f0cc7d0cac69ae37e68897d6cdc09e..4752137b226ac84f64a3548f5663973e992c59ca 100644 --- a/drivers/video/omap2/dss/hdmi.c +++ b/drivers/video/omap2/dss/hdmi.c @@ -60,7 +60,7 @@ #define OMAP_HDMI_TIMINGS_NB 34 -#define HDMI_DEFAULT_REGN 15 +#define HDMI_DEFAULT_REGN 16 #define HDMI_DEFAULT_REGM2 1 static struct { @@ -426,7 +426,7 @@ static void hdmi_compute_pll(struct omap_dss_device *dssdev, int phy, else pi->regn = dssdev->clocks.hdmi.regn; - refclk = clkin / (pi->regn + 1); + refclk = clkin / pi->regn; /* * multiplier is pixel_clk/ref_clk @@ -452,7 +452,7 @@ static void hdmi_compute_pll(struct omap_dss_device *dssdev, int phy, * is greater than 1000MHz */ pi->dcofreq = phy > 1000 * 100; - pi->regsd = ((pi->regm * clkin / 10) / ((pi->regn + 1) * 250) + 5) / 10; + pi->regsd = ((pi->regm * clkin / 10) / (pi->regn * 250) + 5) / 10; /* Set the reference clock to sysclk reference */ pi->refsel = HDMI_REFSEL_SYSCLK; diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c index cb3a2d6753de993449381622b9873ff3ef9ce09f..403c662414778a295732888dcffeffff88ef8398 100644 --- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c +++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c @@ -92,7 +92,7 @@ static int hdmi_pll_init(struct hdmi_ip_data *ip_data) r = hdmi_read_reg(pll_base, PLLCTRL_CFG1); r = FLD_MOD(r, fmt->regm, 20, 9); /* CFG1_PLL_REGM */ - r = FLD_MOD(r, fmt->regn, 8, 1); /* CFG1_PLL_REGN */ + r = FLD_MOD(r, fmt->regn - 1, 8, 1); /* CFG1_PLL_REGN */ hdmi_write_reg(pll_base, PLLCTRL_CFG1, r); diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 44f423ff64bd9b4e8e7a1790043183f8557fa39c..c7cfdad812422847d32bb3f5915f9f5030c38788 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -520,6 +520,7 @@ struct omap_dss_device { } dsi; struct { + /* regn is one greater than TRM's REGN value */ u16 regn; u16 regm2; } hdmi;