|
@@ -941,13 +941,13 @@ void dispc_enable_replication(enum omap_plane plane, bool enable)
|
|
enable_clocks(0);
|
|
enable_clocks(0);
|
|
}
|
|
}
|
|
|
|
|
|
-void dispc_set_lcd_size(u16 width, u16 height)
|
|
|
|
|
|
+void dispc_set_lcd_size(enum omap_channel channel, u16 width, u16 height)
|
|
{
|
|
{
|
|
u32 val;
|
|
u32 val;
|
|
BUG_ON((width > (1 << 11)) || (height > (1 << 11)));
|
|
BUG_ON((width > (1 << 11)) || (height > (1 << 11)));
|
|
val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0);
|
|
val = FLD_VAL(height - 1, 26, 16) | FLD_VAL(width - 1, 10, 0);
|
|
enable_clocks(1);
|
|
enable_clocks(1);
|
|
- dispc_write_reg(DISPC_SIZE_LCD(OMAP_DSS_CHANNEL_LCD), val);
|
|
|
|
|
|
+ dispc_write_reg(DISPC_SIZE_LCD(channel), val);
|
|
enable_clocks(0);
|
|
enable_clocks(0);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1843,7 +1843,7 @@ void dispc_pck_free_enable(bool enable)
|
|
enable_clocks(0);
|
|
enable_clocks(0);
|
|
}
|
|
}
|
|
|
|
|
|
-void dispc_enable_fifohandcheck(bool enable)
|
|
|
|
|
|
+void dispc_enable_fifohandcheck(enum omap_channel channel, bool enable)
|
|
{
|
|
{
|
|
enable_clocks(1);
|
|
enable_clocks(1);
|
|
REG_FLD_MOD(DISPC_CONFIG, enable ? 1 : 0, 16, 16);
|
|
REG_FLD_MOD(DISPC_CONFIG, enable ? 1 : 0, 16, 16);
|
|
@@ -1851,7 +1851,8 @@ void dispc_enable_fifohandcheck(bool enable)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-void dispc_set_lcd_display_type(enum omap_lcd_display_type type)
|
|
|
|
|
|
+void dispc_set_lcd_display_type(enum omap_channel channel,
|
|
|
|
+ enum omap_lcd_display_type type)
|
|
{
|
|
{
|
|
int mode;
|
|
int mode;
|
|
|
|
|
|
@@ -1994,7 +1995,7 @@ bool dispc_trans_key_enabled(enum omap_channel ch)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-void dispc_set_tft_data_lines(u8 data_lines)
|
|
|
|
|
|
+void dispc_set_tft_data_lines(enum omap_channel channel, u8 data_lines)
|
|
{
|
|
{
|
|
int code;
|
|
int code;
|
|
|
|
|
|
@@ -2021,7 +2022,8 @@ void dispc_set_tft_data_lines(u8 data_lines)
|
|
enable_clocks(0);
|
|
enable_clocks(0);
|
|
}
|
|
}
|
|
|
|
|
|
-void dispc_set_parallel_interface_mode(enum omap_parallel_interface_mode mode)
|
|
|
|
|
|
+void dispc_set_parallel_interface_mode(enum omap_channel channel,
|
|
|
|
+ enum omap_parallel_interface_mode mode)
|
|
{
|
|
{
|
|
u32 l;
|
|
u32 l;
|
|
int stallmode;
|
|
int stallmode;
|
|
@@ -2054,9 +2056,11 @@ void dispc_set_parallel_interface_mode(enum omap_parallel_interface_mode mode)
|
|
l = dispc_read_reg(DISPC_CONTROL);
|
|
l = dispc_read_reg(DISPC_CONTROL);
|
|
|
|
|
|
l = FLD_MOD(l, stallmode, 11, 11);
|
|
l = FLD_MOD(l, stallmode, 11, 11);
|
|
- l = FLD_MOD(l, gpout0, 15, 15);
|
|
|
|
- l = FLD_MOD(l, gpout1, 16, 16);
|
|
|
|
|
|
|
|
|
|
+ if (channel == OMAP_DSS_CHANNEL_LCD) {
|
|
|
|
+ l = FLD_MOD(l, gpout0, 15, 15);
|
|
|
|
+ l = FLD_MOD(l, gpout1, 16, 16);
|
|
|
|
+ }
|
|
dispc_write_reg(DISPC_CONTROL, l);
|
|
dispc_write_reg(DISPC_CONTROL, l);
|
|
|
|
|
|
enable_clocks(0);
|
|
enable_clocks(0);
|
|
@@ -2093,8 +2097,8 @@ bool dispc_lcd_timings_ok(struct omap_video_timings *timings)
|
|
timings->vfp, timings->vbp);
|
|
timings->vfp, timings->vbp);
|
|
}
|
|
}
|
|
|
|
|
|
-static void _dispc_set_lcd_timings(int hsw, int hfp, int hbp,
|
|
|
|
- int vsw, int vfp, int vbp)
|
|
|
|
|
|
+static void _dispc_set_lcd_timings(enum omap_channel channel, int hsw,
|
|
|
|
+ int hfp, int hbp, int vsw, int vfp, int vbp)
|
|
{
|
|
{
|
|
u32 timing_h, timing_v;
|
|
u32 timing_h, timing_v;
|
|
|
|
|
|
@@ -2113,13 +2117,14 @@ static void _dispc_set_lcd_timings(int hsw, int hfp, int hbp,
|
|
}
|
|
}
|
|
|
|
|
|
enable_clocks(1);
|
|
enable_clocks(1);
|
|
- dispc_write_reg(DISPC_TIMING_H(OMAP_DSS_CHANNEL_LCD), timing_h);
|
|
|
|
- dispc_write_reg(DISPC_TIMING_V(OMAP_DSS_CHANNEL_LCD), timing_v);
|
|
|
|
|
|
+ dispc_write_reg(DISPC_TIMING_H(channel), timing_h);
|
|
|
|
+ dispc_write_reg(DISPC_TIMING_V(channel), timing_v);
|
|
enable_clocks(0);
|
|
enable_clocks(0);
|
|
}
|
|
}
|
|
|
|
|
|
/* change name to mode? */
|
|
/* change name to mode? */
|
|
-void dispc_set_lcd_timings(struct omap_video_timings *timings)
|
|
|
|
|
|
+void dispc_set_lcd_timings(enum omap_channel channel,
|
|
|
|
+ struct omap_video_timings *timings)
|
|
{
|
|
{
|
|
unsigned xtot, ytot;
|
|
unsigned xtot, ytot;
|
|
unsigned long ht, vt;
|
|
unsigned long ht, vt;
|
|
@@ -2129,10 +2134,11 @@ void dispc_set_lcd_timings(struct omap_video_timings *timings)
|
|
timings->vfp, timings->vbp))
|
|
timings->vfp, timings->vbp))
|
|
BUG();
|
|
BUG();
|
|
|
|
|
|
- _dispc_set_lcd_timings(timings->hsw, timings->hfp, timings->hbp,
|
|
|
|
- timings->vsw, timings->vfp, timings->vbp);
|
|
|
|
|
|
+ _dispc_set_lcd_timings(channel, timings->hsw, timings->hfp,
|
|
|
|
+ timings->hbp, timings->vsw, timings->vfp,
|
|
|
|
+ timings->vbp);
|
|
|
|
|
|
- dispc_set_lcd_size(timings->x_res, timings->y_res);
|
|
|
|
|
|
+ dispc_set_lcd_size(channel, timings->x_res, timings->y_res);
|
|
|
|
|
|
xtot = timings->x_res + timings->hfp + timings->hsw + timings->hbp;
|
|
xtot = timings->x_res + timings->hfp + timings->hsw + timings->hbp;
|
|
ytot = timings->y_res + timings->vfp + timings->vsw + timings->vbp;
|
|
ytot = timings->y_res + timings->vfp + timings->vsw + timings->vbp;
|