Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 321079
b: refs/heads/master
c: 6e54359
h: refs/heads/master
i:
  321077: 57c9c20
  321075: 1480bde
  321071: 068fe45
v: v3
  • Loading branch information
Archit Taneja committed Jun 29, 2012
1 parent 68e4aa8 commit b5f101a
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f476ae9dab3234532d41d36beb4ba7be838fa786
refs/heads/master: 6e5435958c6ee4fa2142d298d836dd78b8353f66
2 changes: 1 addition & 1 deletion trunk/drivers/video/omap2/dss/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ static int dss_check_settings_low(struct omap_overlay_manager *mgr,
ois[ovl->id] = oi;
}

return dss_mgr_check(mgr, mi, &mp->timings, ois);
return dss_mgr_check(mgr, mi, &mp->timings, &mp->lcd_config, ois);
}

/*
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/video/omap2/dss/dss.h
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ int dss_mgr_check_timings(struct omap_overlay_manager *mgr,
int dss_mgr_check(struct omap_overlay_manager *mgr,
struct omap_overlay_manager_info *info,
const struct omap_video_timings *mgr_timings,
const struct dss_lcd_mgr_config *config,
struct omap_overlay_info **overlay_infos);

static inline bool dss_mgr_is_lcd(enum omap_channel id)
Expand Down
35 changes: 35 additions & 0 deletions trunk/drivers/video/omap2/dss/manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -665,9 +665,40 @@ int dss_mgr_check_timings(struct omap_overlay_manager *mgr,
return 0;
}

static int dss_mgr_check_lcd_config(struct omap_overlay_manager *mgr,
const struct dss_lcd_mgr_config *config)
{
struct dispc_clock_info cinfo = config->clock_info;
int dl = config->video_port_width;
bool stallmode = config->stallmode;
bool fifohandcheck = config->fifohandcheck;

if (cinfo.lck_div < 1 || cinfo.lck_div > 255)
return -EINVAL;

if (cinfo.pck_div < 1 || cinfo.pck_div > 255)
return -EINVAL;

if (dl != 12 && dl != 16 && dl != 18 && dl != 24)
return -EINVAL;

/* fifohandcheck should be used only with stallmode */
if (stallmode == false && fifohandcheck == true)
return -EINVAL;

/*
* io pad mode can be only checked by using dssdev connected to the
* manager. Ignore checking these for now, add checks when manager
* is capable of holding information related to the connected interface
*/

return 0;
}

int dss_mgr_check(struct omap_overlay_manager *mgr,
struct omap_overlay_manager_info *info,
const struct omap_video_timings *mgr_timings,
const struct dss_lcd_mgr_config *lcd_config,
struct omap_overlay_info **overlay_infos)
{
struct omap_overlay *ovl;
Expand All @@ -683,6 +714,10 @@ int dss_mgr_check(struct omap_overlay_manager *mgr,
if (r)
return r;

r = dss_mgr_check_lcd_config(mgr, lcd_config);
if (r)
return r;

list_for_each_entry(ovl, &mgr->overlays, list) {
struct omap_overlay_info *oi;
int r;
Expand Down

0 comments on commit b5f101a

Please sign in to comment.