OMAPDSS: DISPC/RFBI: Use dispc_mgr_set_lcd_timings() for setting lcd size
The RFBI driver uses dispc_mgr_set_lcd_size() to set the width and height of the LCD manager. Replace this to use dispc_mgr_set_lcd_timings(), pass dummy blanking parameters like done in the DSI driver. This prevents the need to export dispc_mgr_set_lcd_size(), and use a common function to set lcd timings. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
693cc078dc
commit
e5c09e06a9
3 changed files with 24 additions and 4 deletions
|
@ -983,7 +983,8 @@ static void dispc_ovl_enable_replication(enum omap_plane plane, bool enable)
|
||||||
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable, shift, shift);
|
REG_FLD_MOD(DISPC_OVL_ATTRIBUTES(plane), enable, shift, shift);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dispc_mgr_set_lcd_size(enum omap_channel channel, u16 width, u16 height)
|
static void dispc_mgr_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)));
|
||||||
|
|
|
@ -430,7 +430,6 @@ void dispc_ovl_set_channel_out(enum omap_plane plane,
|
||||||
enum omap_channel channel);
|
enum omap_channel channel);
|
||||||
|
|
||||||
void dispc_mgr_enable_fifohandcheck(enum omap_channel channel, bool enable);
|
void dispc_mgr_enable_fifohandcheck(enum omap_channel channel, bool enable);
|
||||||
void dispc_mgr_set_lcd_size(enum omap_channel channel, u16 width, u16 height);
|
|
||||||
u32 dispc_mgr_get_vsync_irq(enum omap_channel channel);
|
u32 dispc_mgr_get_vsync_irq(enum omap_channel channel);
|
||||||
u32 dispc_mgr_get_framedone_irq(enum omap_channel channel);
|
u32 dispc_mgr_get_framedone_irq(enum omap_channel channel);
|
||||||
bool dispc_mgr_go_busy(enum omap_channel channel);
|
bool dispc_mgr_go_busy(enum omap_channel channel);
|
||||||
|
|
|
@ -304,13 +304,23 @@ static void rfbi_transfer_area(struct omap_dss_device *dssdev, u16 width,
|
||||||
u16 height, void (*callback)(void *data), void *data)
|
u16 height, void (*callback)(void *data), void *data)
|
||||||
{
|
{
|
||||||
u32 l;
|
u32 l;
|
||||||
|
struct omap_video_timings timings = {
|
||||||
|
.hsw = 1,
|
||||||
|
.hfp = 1,
|
||||||
|
.hbp = 1,
|
||||||
|
.vsw = 1,
|
||||||
|
.vfp = 0,
|
||||||
|
.vbp = 0,
|
||||||
|
.x_res = width,
|
||||||
|
.y_res = height,
|
||||||
|
};
|
||||||
|
|
||||||
/*BUG_ON(callback == 0);*/
|
/*BUG_ON(callback == 0);*/
|
||||||
BUG_ON(rfbi.framedone_callback != NULL);
|
BUG_ON(rfbi.framedone_callback != NULL);
|
||||||
|
|
||||||
DSSDBG("rfbi_transfer_area %dx%d\n", width, height);
|
DSSDBG("rfbi_transfer_area %dx%d\n", width, height);
|
||||||
|
|
||||||
dispc_mgr_set_lcd_size(dssdev->manager->id, width, height);
|
dispc_mgr_set_lcd_timings(dssdev->manager->id, &timings);
|
||||||
|
|
||||||
dispc_mgr_enable(dssdev->manager->id, true);
|
dispc_mgr_enable(dssdev->manager->id, true);
|
||||||
|
|
||||||
|
@ -766,6 +776,16 @@ int omap_rfbi_prepare_update(struct omap_dss_device *dssdev,
|
||||||
u16 *x, u16 *y, u16 *w, u16 *h)
|
u16 *x, u16 *y, u16 *w, u16 *h)
|
||||||
{
|
{
|
||||||
u16 dw, dh;
|
u16 dw, dh;
|
||||||
|
struct omap_video_timings timings = {
|
||||||
|
.hsw = 1,
|
||||||
|
.hfp = 1,
|
||||||
|
.hbp = 1,
|
||||||
|
.vsw = 1,
|
||||||
|
.vfp = 0,
|
||||||
|
.vbp = 0,
|
||||||
|
.x_res = *w,
|
||||||
|
.y_res = *h,
|
||||||
|
};
|
||||||
|
|
||||||
dssdev->driver->get_resolution(dssdev, &dw, &dh);
|
dssdev->driver->get_resolution(dssdev, &dw, &dh);
|
||||||
|
|
||||||
|
@ -784,7 +804,7 @@ int omap_rfbi_prepare_update(struct omap_dss_device *dssdev,
|
||||||
if (*w == 0 || *h == 0)
|
if (*w == 0 || *h == 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
dispc_mgr_set_lcd_size(dssdev->manager->id, *w, *h);
|
dispc_mgr_set_lcd_timings(dssdev->manager->id, &timings);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue