diff options
author | Sumit Semwal <sumit.semwal@ti.com> | 2010-12-02 06:27:11 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2011-01-10 04:36:34 -0500 |
commit | ff1b2cde3f551c9b56887b41e0ebbf2907566a7d (patch) | |
tree | 92a2f55883b9092856042892d937932a6f036c3a /drivers/video/omap2 | |
parent | 64ba4f748a005a44c03c98e082d8ee157f4ee66f (diff) |
OMAP: DSS2: Change remaining DISPC functions for new omap_channel argument
The following dispc functions are also changed to incorporate channel as an argument:
-dispc_lclk_rate()
-dispc_pclk_rate()
-dispc_set_pol_freq()
-dispc_set_clock_div()
-dispc_get_clock_div()
Signed-off-by: Sumit Semwal <sumit.semwal@ti.com>
Signed-off-by: Mukund Mittal <mmittal@ti.com>
Signed-off-by: Samreen <samreen@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
[tomi.valkeinen@nokia.com: fixed trivial compile error]
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Diffstat (limited to 'drivers/video/omap2')
-rw-r--r-- | drivers/video/omap2/dss/dispc.c | 62 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dpi.c | 26 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dsi.c | 13 | ||||
-rw-r--r-- | drivers/video/omap2/dss/dss.h | 13 | ||||
-rw-r--r-- | drivers/video/omap2/dss/sdi.c | 8 |
5 files changed, 68 insertions, 54 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c index 7ca53c100419..5dfdf0ba409d 100644 --- a/drivers/video/omap2/dss/dispc.c +++ b/drivers/video/omap2/dss/dispc.c | |||
@@ -1444,12 +1444,13 @@ static void calc_dma_rotation_offset(u8 rotation, bool mirror, | |||
1444 | } | 1444 | } |
1445 | } | 1445 | } |
1446 | 1446 | ||
1447 | static unsigned long calc_fclk_five_taps(u16 width, u16 height, | 1447 | static unsigned long calc_fclk_five_taps(enum omap_channel channel, u16 width, |
1448 | u16 out_width, u16 out_height, enum omap_color_mode color_mode) | 1448 | u16 height, u16 out_width, u16 out_height, |
1449 | enum omap_color_mode color_mode) | ||
1449 | { | 1450 | { |
1450 | u32 fclk = 0; | 1451 | u32 fclk = 0; |
1451 | /* FIXME venc pclk? */ | 1452 | /* FIXME venc pclk? */ |
1452 | u64 tmp, pclk = dispc_pclk_rate(); | 1453 | u64 tmp, pclk = dispc_pclk_rate(channel); |
1453 | 1454 | ||
1454 | if (height > out_height) { | 1455 | if (height > out_height) { |
1455 | /* FIXME get real display PPL */ | 1456 | /* FIXME get real display PPL */ |
@@ -1481,8 +1482,8 @@ static unsigned long calc_fclk_five_taps(u16 width, u16 height, | |||
1481 | return fclk; | 1482 | return fclk; |
1482 | } | 1483 | } |
1483 | 1484 | ||
1484 | static unsigned long calc_fclk(u16 width, u16 height, | 1485 | static unsigned long calc_fclk(enum omap_channel channel, u16 width, |
1485 | u16 out_width, u16 out_height) | 1486 | u16 height, u16 out_width, u16 out_height) |
1486 | { | 1487 | { |
1487 | unsigned int hf, vf; | 1488 | unsigned int hf, vf; |
1488 | 1489 | ||
@@ -1506,7 +1507,7 @@ static unsigned long calc_fclk(u16 width, u16 height, | |||
1506 | vf = 1; | 1507 | vf = 1; |
1507 | 1508 | ||
1508 | /* FIXME venc pclk? */ | 1509 | /* FIXME venc pclk? */ |
1509 | return dispc_pclk_rate() * vf * hf; | 1510 | return dispc_pclk_rate(channel) * vf * hf; |
1510 | } | 1511 | } |
1511 | 1512 | ||
1512 | void dispc_set_channel_out(enum omap_plane plane, enum omap_channel channel_out) | 1513 | void dispc_set_channel_out(enum omap_plane plane, enum omap_channel channel_out) |
@@ -1582,7 +1583,7 @@ static int _dispc_setup_plane(enum omap_plane plane, | |||
1582 | five_taps = height > out_height * 2; | 1583 | five_taps = height > out_height * 2; |
1583 | 1584 | ||
1584 | if (!five_taps) { | 1585 | if (!five_taps) { |
1585 | fclk = calc_fclk(width, height, | 1586 | fclk = calc_fclk(OMAP_DSS_CHANNEL_LCD, width, height, |
1586 | out_width, out_height); | 1587 | out_width, out_height); |
1587 | 1588 | ||
1588 | /* Try 5-tap filter if 3-tap fclk is too high */ | 1589 | /* Try 5-tap filter if 3-tap fclk is too high */ |
@@ -1597,8 +1598,9 @@ static int _dispc_setup_plane(enum omap_plane plane, | |||
1597 | } | 1598 | } |
1598 | 1599 | ||
1599 | if (five_taps) | 1600 | if (five_taps) |
1600 | fclk = calc_fclk_five_taps(width, height, | 1601 | fclk = calc_fclk_five_taps(OMAP_DSS_CHANNEL_LCD, width, |
1601 | out_width, out_height, color_mode); | 1602 | height, out_width, out_height, |
1603 | color_mode); | ||
1602 | 1604 | ||
1603 | DSSDBG("required fclk rate = %lu Hz\n", fclk); | 1605 | DSSDBG("required fclk rate = %lu Hz\n", fclk); |
1604 | DSSDBG("current fclk rate = %lu Hz\n", dispc_fclk_rate()); | 1606 | DSSDBG("current fclk rate = %lu Hz\n", dispc_fclk_rate()); |
@@ -2155,13 +2157,14 @@ void dispc_set_lcd_timings(enum omap_channel channel, | |||
2155 | DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt); | 2157 | DSSDBG("hsync %luHz, vsync %luHz\n", ht, vt); |
2156 | } | 2158 | } |
2157 | 2159 | ||
2158 | static void dispc_set_lcd_divisor(u16 lck_div, u16 pck_div) | 2160 | static void dispc_set_lcd_divisor(enum omap_channel channel, u16 lck_div, |
2161 | u16 pck_div) | ||
2159 | { | 2162 | { |
2160 | BUG_ON(lck_div < 1); | 2163 | BUG_ON(lck_div < 1); |
2161 | BUG_ON(pck_div < 2); | 2164 | BUG_ON(pck_div < 2); |
2162 | 2165 | ||
2163 | enable_clocks(1); | 2166 | enable_clocks(1); |
2164 | dispc_write_reg(DISPC_DIVISOR(OMAP_DSS_CHANNEL_LCD), | 2167 | dispc_write_reg(DISPC_DIVISOR(channel), |
2165 | FLD_VAL(lck_div, 23, 16) | FLD_VAL(pck_div, 7, 0)); | 2168 | FLD_VAL(lck_div, 23, 16) | FLD_VAL(pck_div, 7, 0)); |
2166 | enable_clocks(0); | 2169 | enable_clocks(0); |
2167 | } | 2170 | } |
@@ -2189,13 +2192,13 @@ unsigned long dispc_fclk_rate(void) | |||
2189 | return r; | 2192 | return r; |
2190 | } | 2193 | } |
2191 | 2194 | ||
2192 | unsigned long dispc_lclk_rate(void) | 2195 | unsigned long dispc_lclk_rate(enum omap_channel channel) |
2193 | { | 2196 | { |
2194 | int lcd; | 2197 | int lcd; |
2195 | unsigned long r; | 2198 | unsigned long r; |
2196 | u32 l; | 2199 | u32 l; |
2197 | 2200 | ||
2198 | l = dispc_read_reg(DISPC_DIVISOR(OMAP_DSS_CHANNEL_LCD)); | 2201 | l = dispc_read_reg(DISPC_DIVISOR(channel)); |
2199 | 2202 | ||
2200 | lcd = FLD_GET(l, 23, 16); | 2203 | lcd = FLD_GET(l, 23, 16); |
2201 | 2204 | ||
@@ -2204,13 +2207,13 @@ unsigned long dispc_lclk_rate(void) | |||
2204 | return r / lcd; | 2207 | return r / lcd; |
2205 | } | 2208 | } |
2206 | 2209 | ||
2207 | unsigned long dispc_pclk_rate(void) | 2210 | unsigned long dispc_pclk_rate(enum omap_channel channel) |
2208 | { | 2211 | { |
2209 | int lcd, pcd; | 2212 | int lcd, pcd; |
2210 | unsigned long r; | 2213 | unsigned long r; |
2211 | u32 l; | 2214 | u32 l; |
2212 | 2215 | ||
2213 | l = dispc_read_reg(DISPC_DIVISOR(OMAP_DSS_CHANNEL_LCD)); | 2216 | l = dispc_read_reg(DISPC_DIVISOR(channel)); |
2214 | 2217 | ||
2215 | lcd = FLD_GET(l, 23, 16); | 2218 | lcd = FLD_GET(l, 23, 16); |
2216 | pcd = FLD_GET(l, 7, 0); | 2219 | pcd = FLD_GET(l, 7, 0); |
@@ -2235,8 +2238,10 @@ void dispc_dump_clocks(struct seq_file *s) | |||
2235 | "dss1_alwon_fclk" : "dsi1_pll_fclk"); | 2238 | "dss1_alwon_fclk" : "dsi1_pll_fclk"); |
2236 | 2239 | ||
2237 | seq_printf(s, "fck\t\t%-16lu\n", dispc_fclk_rate()); | 2240 | seq_printf(s, "fck\t\t%-16lu\n", dispc_fclk_rate()); |
2238 | seq_printf(s, "lck\t\t%-16lulck div\t%u\n", dispc_lclk_rate(), lcd); | 2241 | seq_printf(s, "lck\t\t%-16lulck div\t%u\n", |
2239 | seq_printf(s, "pck\t\t%-16lupck div\t%u\n", dispc_pclk_rate(), pcd); | 2242 | dispc_lclk_rate(OMAP_DSS_CHANNEL_LCD), lcd); |
2243 | seq_printf(s, "pck\t\t%-16lupck div\t%u\n", | ||
2244 | dispc_pclk_rate(OMAP_DSS_CHANNEL_LCD), pcd); | ||
2240 | 2245 | ||
2241 | enable_clocks(0); | 2246 | enable_clocks(0); |
2242 | } | 2247 | } |
@@ -2428,8 +2433,8 @@ void dispc_dump_regs(struct seq_file *s) | |||
2428 | #undef DUMPREG | 2433 | #undef DUMPREG |
2429 | } | 2434 | } |
2430 | 2435 | ||
2431 | static void _dispc_set_pol_freq(bool onoff, bool rf, bool ieo, bool ipc, | 2436 | static void _dispc_set_pol_freq(enum omap_channel channel, bool onoff, bool rf, |
2432 | bool ihs, bool ivs, u8 acbi, u8 acb) | 2437 | bool ieo, bool ipc, bool ihs, bool ivs, u8 acbi, u8 acb) |
2433 | { | 2438 | { |
2434 | u32 l = 0; | 2439 | u32 l = 0; |
2435 | 2440 | ||
@@ -2446,13 +2451,14 @@ static void _dispc_set_pol_freq(bool onoff, bool rf, bool ieo, bool ipc, | |||
2446 | l |= FLD_VAL(acb, 7, 0); | 2451 | l |= FLD_VAL(acb, 7, 0); |
2447 | 2452 | ||
2448 | enable_clocks(1); | 2453 | enable_clocks(1); |
2449 | dispc_write_reg(DISPC_POL_FREQ(OMAP_DSS_CHANNEL_LCD), l); | 2454 | dispc_write_reg(DISPC_POL_FREQ(channel), l); |
2450 | enable_clocks(0); | 2455 | enable_clocks(0); |
2451 | } | 2456 | } |
2452 | 2457 | ||
2453 | void dispc_set_pol_freq(enum omap_panel_config config, u8 acbi, u8 acb) | 2458 | void dispc_set_pol_freq(enum omap_channel channel, |
2459 | enum omap_panel_config config, u8 acbi, u8 acb) | ||
2454 | { | 2460 | { |
2455 | _dispc_set_pol_freq((config & OMAP_DSS_LCD_ONOFF) != 0, | 2461 | _dispc_set_pol_freq(channel, (config & OMAP_DSS_LCD_ONOFF) != 0, |
2456 | (config & OMAP_DSS_LCD_RF) != 0, | 2462 | (config & OMAP_DSS_LCD_RF) != 0, |
2457 | (config & OMAP_DSS_LCD_IEO) != 0, | 2463 | (config & OMAP_DSS_LCD_IEO) != 0, |
2458 | (config & OMAP_DSS_LCD_IPC) != 0, | 2464 | (config & OMAP_DSS_LCD_IPC) != 0, |
@@ -2521,24 +2527,26 @@ int dispc_calc_clock_rates(unsigned long dispc_fclk_rate, | |||
2521 | return 0; | 2527 | return 0; |
2522 | } | 2528 | } |
2523 | 2529 | ||
2524 | int dispc_set_clock_div(struct dispc_clock_info *cinfo) | 2530 | int dispc_set_clock_div(enum omap_channel channel, |
2531 | struct dispc_clock_info *cinfo) | ||
2525 | { | 2532 | { |
2526 | DSSDBG("lck = %lu (%u)\n", cinfo->lck, cinfo->lck_div); | 2533 | DSSDBG("lck = %lu (%u)\n", cinfo->lck, cinfo->lck_div); |
2527 | DSSDBG("pck = %lu (%u)\n", cinfo->pck, cinfo->pck_div); | 2534 | DSSDBG("pck = %lu (%u)\n", cinfo->pck, cinfo->pck_div); |
2528 | 2535 | ||
2529 | dispc_set_lcd_divisor(cinfo->lck_div, cinfo->pck_div); | 2536 | dispc_set_lcd_divisor(channel, cinfo->lck_div, cinfo->pck_div); |
2530 | 2537 | ||
2531 | return 0; | 2538 | return 0; |
2532 | } | 2539 | } |
2533 | 2540 | ||
2534 | int dispc_get_clock_div(struct dispc_clock_info *cinfo) | 2541 | int dispc_get_clock_div(enum omap_channel channel, |
2542 | struct dispc_clock_info *cinfo) | ||
2535 | { | 2543 | { |
2536 | unsigned long fck; | 2544 | unsigned long fck; |
2537 | 2545 | ||
2538 | fck = dispc_fclk_rate(); | 2546 | fck = dispc_fclk_rate(); |
2539 | 2547 | ||
2540 | cinfo->lck_div = REG_GET(DISPC_DIVISOR(OMAP_DSS_CHANNEL_LCD), 23, 16); | 2548 | cinfo->lck_div = REG_GET(DISPC_DIVISOR(channel), 23, 16); |
2541 | cinfo->pck_div = REG_GET(DISPC_DIVISOR(OMAP_DSS_CHANNEL_LCD), 7, 0); | 2549 | cinfo->pck_div = REG_GET(DISPC_DIVISOR(channel), 7, 0); |
2542 | 2550 | ||
2543 | cinfo->lck = fck / cinfo->lck_div; | 2551 | cinfo->lck = fck / cinfo->lck_div; |
2544 | cinfo->pck = cinfo->lck / cinfo->pck_div; | 2552 | cinfo->pck = cinfo->lck / cinfo->pck_div; |
diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c index 08b497f924bb..8c61e87629b3 100644 --- a/drivers/video/omap2/dss/dpi.c +++ b/drivers/video/omap2/dss/dpi.c | |||
@@ -40,8 +40,9 @@ static struct { | |||
40 | } dpi; | 40 | } dpi; |
41 | 41 | ||
42 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL | 42 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL |
43 | static int dpi_set_dsi_clk(bool is_tft, unsigned long pck_req, | 43 | static int dpi_set_dsi_clk(struct omap_dss_device *dssdev, bool is_tft, |
44 | unsigned long *fck, int *lck_div, int *pck_div) | 44 | unsigned long pck_req, unsigned long *fck, int *lck_div, |
45 | int *pck_div) | ||
45 | { | 46 | { |
46 | struct dsi_clock_info dsi_cinfo; | 47 | struct dsi_clock_info dsi_cinfo; |
47 | struct dispc_clock_info dispc_cinfo; | 48 | struct dispc_clock_info dispc_cinfo; |
@@ -58,7 +59,7 @@ static int dpi_set_dsi_clk(bool is_tft, unsigned long pck_req, | |||
58 | 59 | ||
59 | dss_select_dispc_clk_source(DSS_SRC_DSI1_PLL_FCLK); | 60 | dss_select_dispc_clk_source(DSS_SRC_DSI1_PLL_FCLK); |
60 | 61 | ||
61 | r = dispc_set_clock_div(&dispc_cinfo); | 62 | r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); |
62 | if (r) | 63 | if (r) |
63 | return r; | 64 | return r; |
64 | 65 | ||
@@ -69,8 +70,9 @@ static int dpi_set_dsi_clk(bool is_tft, unsigned long pck_req, | |||
69 | return 0; | 70 | return 0; |
70 | } | 71 | } |
71 | #else | 72 | #else |
72 | static int dpi_set_dispc_clk(bool is_tft, unsigned long pck_req, | 73 | static int dpi_set_dispc_clk(struct omap_dss_device *dssdev, bool is_tft, |
73 | unsigned long *fck, int *lck_div, int *pck_div) | 74 | unsigned long pck_req, unsigned long *fck, int *lck_div, |
75 | int *pck_div) | ||
74 | { | 76 | { |
75 | struct dss_clock_info dss_cinfo; | 77 | struct dss_clock_info dss_cinfo; |
76 | struct dispc_clock_info dispc_cinfo; | 78 | struct dispc_clock_info dispc_cinfo; |
@@ -84,7 +86,7 @@ static int dpi_set_dispc_clk(bool is_tft, unsigned long pck_req, | |||
84 | if (r) | 86 | if (r) |
85 | return r; | 87 | return r; |
86 | 88 | ||
87 | r = dispc_set_clock_div(&dispc_cinfo); | 89 | r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); |
88 | if (r) | 90 | if (r) |
89 | return r; | 91 | return r; |
90 | 92 | ||
@@ -107,17 +109,17 @@ static int dpi_set_mode(struct omap_dss_device *dssdev) | |||
107 | 109 | ||
108 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1); | 110 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1); |
109 | 111 | ||
110 | dispc_set_pol_freq(dssdev->panel.config, dssdev->panel.acbi, | 112 | dispc_set_pol_freq(dssdev->manager->id, dssdev->panel.config, |
111 | dssdev->panel.acb); | 113 | dssdev->panel.acbi, dssdev->panel.acb); |
112 | 114 | ||
113 | is_tft = (dssdev->panel.config & OMAP_DSS_LCD_TFT) != 0; | 115 | is_tft = (dssdev->panel.config & OMAP_DSS_LCD_TFT) != 0; |
114 | 116 | ||
115 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL | 117 | #ifdef CONFIG_OMAP2_DSS_USE_DSI_PLL |
116 | r = dpi_set_dsi_clk(is_tft, t->pixel_clock * 1000, | 118 | r = dpi_set_dsi_clk(dssdev, is_tft, t->pixel_clock * 1000, &fck, |
117 | &fck, &lck_div, &pck_div); | 119 | &lck_div, &pck_div); |
118 | #else | 120 | #else |
119 | r = dpi_set_dispc_clk(is_tft, t->pixel_clock * 1000, | 121 | r = dpi_set_dispc_clk(dssdev, is_tft, t->pixel_clock * 1000, &fck, |
120 | &fck, &lck_div, &pck_div); | 122 | &lck_div, &pck_div); |
121 | #endif | 123 | #endif |
122 | if (r) | 124 | if (r) |
123 | goto err0; | 125 | goto err0; |
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c index acd36cad8445..ddf3a0560822 100644 --- a/drivers/video/omap2/dss/dsi.c +++ b/drivers/video/omap2/dss/dsi.c | |||
@@ -792,7 +792,8 @@ static int dsi_pll_power(enum dsi_pll_power_state state) | |||
792 | } | 792 | } |
793 | 793 | ||
794 | /* calculate clock rates using dividers in cinfo */ | 794 | /* calculate clock rates using dividers in cinfo */ |
795 | static int dsi_calc_clock_rates(struct dsi_clock_info *cinfo) | 795 | static int dsi_calc_clock_rates(struct omap_dss_device *dssdev, |
796 | struct dsi_clock_info *cinfo) | ||
796 | { | 797 | { |
797 | if (cinfo->regn == 0 || cinfo->regn > REGN_MAX) | 798 | if (cinfo->regn == 0 || cinfo->regn > REGN_MAX) |
798 | return -EINVAL; | 799 | return -EINVAL; |
@@ -812,7 +813,7 @@ static int dsi_calc_clock_rates(struct dsi_clock_info *cinfo) | |||
812 | * with DSS2_FCK source also */ | 813 | * with DSS2_FCK source also */ |
813 | cinfo->highfreq = 0; | 814 | cinfo->highfreq = 0; |
814 | } else { | 815 | } else { |
815 | cinfo->clkin = dispc_pclk_rate(); | 816 | cinfo->clkin = dispc_pclk_rate(dssdev->manager->id); |
816 | 817 | ||
817 | if (cinfo->clkin < 32000000) | 818 | if (cinfo->clkin < 32000000) |
818 | cinfo->highfreq = 0; | 819 | cinfo->highfreq = 0; |
@@ -1206,8 +1207,8 @@ void dsi_dump_clocks(struct seq_file *s) | |||
1206 | 1207 | ||
1207 | seq_printf(s, "VP_CLK\t\t%lu\n" | 1208 | seq_printf(s, "VP_CLK\t\t%lu\n" |
1208 | "VP_PCLK\t\t%lu\n", | 1209 | "VP_PCLK\t\t%lu\n", |
1209 | dispc_lclk_rate(), | 1210 | dispc_lclk_rate(OMAP_DSS_CHANNEL_LCD), |
1210 | dispc_pclk_rate()); | 1211 | dispc_pclk_rate(OMAP_DSS_CHANNEL_LCD)); |
1211 | 1212 | ||
1212 | enable_clocks(0); | 1213 | enable_clocks(0); |
1213 | } | 1214 | } |
@@ -2989,7 +2990,7 @@ static int dsi_configure_dsi_clocks(struct omap_dss_device *dssdev) | |||
2989 | cinfo.regm = dssdev->phy.dsi.div.regm; | 2990 | cinfo.regm = dssdev->phy.dsi.div.regm; |
2990 | cinfo.regm3 = dssdev->phy.dsi.div.regm3; | 2991 | cinfo.regm3 = dssdev->phy.dsi.div.regm3; |
2991 | cinfo.regm4 = dssdev->phy.dsi.div.regm4; | 2992 | cinfo.regm4 = dssdev->phy.dsi.div.regm4; |
2992 | r = dsi_calc_clock_rates(&cinfo); | 2993 | r = dsi_calc_clock_rates(dssdev, &cinfo); |
2993 | if (r) { | 2994 | if (r) { |
2994 | DSSERR("Failed to calc dsi clocks\n"); | 2995 | DSSERR("Failed to calc dsi clocks\n"); |
2995 | return r; | 2996 | return r; |
@@ -3021,7 +3022,7 @@ static int dsi_configure_dispc_clocks(struct omap_dss_device *dssdev) | |||
3021 | return r; | 3022 | return r; |
3022 | } | 3023 | } |
3023 | 3024 | ||
3024 | r = dispc_set_clock_div(&dispc_cinfo); | 3025 | r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); |
3025 | if (r) { | 3026 | if (r) { |
3026 | DSSERR("Failed to set dispc clocks\n"); | 3027 | DSSERR("Failed to set dispc clocks\n"); |
3027 | return r; | 3028 | return r; |
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h index 275e29067372..3fcb8ab781af 100644 --- a/drivers/video/omap2/dss/dss.h +++ b/drivers/video/omap2/dss/dss.h | |||
@@ -393,15 +393,18 @@ bool dispc_lcd_timings_ok(struct omap_video_timings *timings); | |||
393 | void dispc_set_lcd_timings(enum omap_channel channel, | 393 | void dispc_set_lcd_timings(enum omap_channel channel, |
394 | struct omap_video_timings *timings); | 394 | struct omap_video_timings *timings); |
395 | unsigned long dispc_fclk_rate(void); | 395 | unsigned long dispc_fclk_rate(void); |
396 | unsigned long dispc_lclk_rate(void); | 396 | unsigned long dispc_lclk_rate(enum omap_channel channel); |
397 | unsigned long dispc_pclk_rate(void); | 397 | unsigned long dispc_pclk_rate(enum omap_channel channel); |
398 | void dispc_set_pol_freq(enum omap_panel_config config, u8 acbi, u8 acb); | 398 | void dispc_set_pol_freq(enum omap_channel channel, |
399 | enum omap_panel_config config, u8 acbi, u8 acb); | ||
399 | void dispc_find_clk_divs(bool is_tft, unsigned long req_pck, unsigned long fck, | 400 | void dispc_find_clk_divs(bool is_tft, unsigned long req_pck, unsigned long fck, |
400 | struct dispc_clock_info *cinfo); | 401 | struct dispc_clock_info *cinfo); |
401 | int dispc_calc_clock_rates(unsigned long dispc_fclk_rate, | 402 | int dispc_calc_clock_rates(unsigned long dispc_fclk_rate, |
402 | struct dispc_clock_info *cinfo); | 403 | struct dispc_clock_info *cinfo); |
403 | int dispc_set_clock_div(struct dispc_clock_info *cinfo); | 404 | int dispc_set_clock_div(enum omap_channel channel, |
404 | int dispc_get_clock_div(struct dispc_clock_info *cinfo); | 405 | struct dispc_clock_info *cinfo); |
406 | int dispc_get_clock_div(enum omap_channel channel, | ||
407 | struct dispc_clock_info *cinfo); | ||
405 | 408 | ||
406 | 409 | ||
407 | /* VENC */ | 410 | /* VENC */ |
diff --git a/drivers/video/omap2/dss/sdi.c b/drivers/video/omap2/dss/sdi.c index 19443b18f3da..b64adf7dfc88 100644 --- a/drivers/video/omap2/dss/sdi.c +++ b/drivers/video/omap2/dss/sdi.c | |||
@@ -77,15 +77,15 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev) | |||
77 | /* 15.5.9.1.2 */ | 77 | /* 15.5.9.1.2 */ |
78 | dssdev->panel.config |= OMAP_DSS_LCD_RF | OMAP_DSS_LCD_ONOFF; | 78 | dssdev->panel.config |= OMAP_DSS_LCD_RF | OMAP_DSS_LCD_ONOFF; |
79 | 79 | ||
80 | dispc_set_pol_freq(dssdev->panel.config, dssdev->panel.acbi, | 80 | dispc_set_pol_freq(dssdev->manager->id, dssdev->panel.config, |
81 | dssdev->panel.acb); | 81 | dssdev->panel.acbi, dssdev->panel.acb); |
82 | 82 | ||
83 | if (!sdi.skip_init) { | 83 | if (!sdi.skip_init) { |
84 | r = dss_calc_clock_div(1, t->pixel_clock * 1000, | 84 | r = dss_calc_clock_div(1, t->pixel_clock * 1000, |
85 | &dss_cinfo, &dispc_cinfo); | 85 | &dss_cinfo, &dispc_cinfo); |
86 | } else { | 86 | } else { |
87 | r = dss_get_clock_div(&dss_cinfo); | 87 | r = dss_get_clock_div(&dss_cinfo); |
88 | r = dispc_get_clock_div(&dispc_cinfo); | 88 | r = dispc_get_clock_div(dssdev->manager->id, &dispc_cinfo); |
89 | } | 89 | } |
90 | 90 | ||
91 | if (r) | 91 | if (r) |
@@ -112,7 +112,7 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev) | |||
112 | if (r) | 112 | if (r) |
113 | goto err2; | 113 | goto err2; |
114 | 114 | ||
115 | r = dispc_set_clock_div(&dispc_cinfo); | 115 | r = dispc_set_clock_div(dssdev->manager->id, &dispc_cinfo); |
116 | if (r) | 116 | if (r) |
117 | goto err2; | 117 | goto err2; |
118 | 118 | ||