Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 284923
b: refs/heads/master
c: 07e327c
h: refs/heads/master
i:
  284921: 3413f51
  284919: 920f228
v: v3
  • Loading branch information
Tomi Valkeinen committed Dec 2, 2011
1 parent eb93fd6 commit 8924a5b
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 45 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: 5617ad097959cb39b96d08af0a9b3d51215deaba
refs/heads/master: 07e327c9c18b382656bf455051759be8182627ae
33 changes: 7 additions & 26 deletions trunk/drivers/video/omap2/dss/apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -398,20 +398,16 @@ void dss_mgr_start_update(struct omap_overlay_manager *mgr)
{
struct manager_cache_data *mc;
struct overlay_cache_data *oc;
const int num_ovls = dss_feat_get_num_ovls();
int i;
struct omap_overlay *ovl;

mc = &dss_cache.manager_cache[mgr->id];

mc->do_manual_update = true;
configure_dispc();
mc->do_manual_update = false;

for (i = 0; i < num_ovls; ++i) {
oc = &dss_cache.overlay_cache[i];
if (oc->channel != mgr->id)
continue;

list_for_each_entry(ovl, &mgr->overlays, list) {
oc = &dss_cache.overlay_cache[ovl->id];
oc->shadow_dirty = false;
}

Expand Down Expand Up @@ -584,8 +580,9 @@ static void omap_dss_mgr_apply_ovl_fifos(struct omap_overlay *ovl)

int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
{
int i, r;
int r;
unsigned long flags;
struct omap_overlay *ovl;

DSSDBG("omap_dss_mgr_apply(%s)\n", mgr->name);

Expand All @@ -596,31 +593,15 @@ int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
spin_lock_irqsave(&dss_cache.lock, flags);

/* Configure overlays */
for (i = 0; i < mgr->num_overlays; ++i) {
struct omap_overlay *ovl;

ovl = mgr->overlays[i];

if (ovl->manager != mgr)
continue;

list_for_each_entry(ovl, &mgr->overlays, list)
omap_dss_mgr_apply_ovl(ovl);
}

/* Configure manager */
omap_dss_mgr_apply_mgr(mgr);

/* Configure overlay fifos */
for (i = 0; i < mgr->num_overlays; ++i) {
struct omap_overlay *ovl;

ovl = mgr->overlays[i];

if (ovl->manager != mgr)
continue;

list_for_each_entry(ovl, &mgr->overlays, list)
omap_dss_mgr_apply_ovl_fifos(ovl);
}

r = 0;
if (mgr->enabled && !mgr_manual_update(mgr)) {
Expand Down
10 changes: 4 additions & 6 deletions trunk/drivers/video/omap2/dss/manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -470,8 +470,8 @@ static struct kobj_type manager_ktype = {
static int omap_dss_set_device(struct omap_overlay_manager *mgr,
struct omap_dss_device *dssdev)
{
int i;
int r;
struct omap_overlay *ovl;

if (dssdev->manager) {
DSSERR("display '%s' already has a manager '%s'\n",
Expand All @@ -485,10 +485,8 @@ static int omap_dss_set_device(struct omap_overlay_manager *mgr,
return -EINVAL;
}

for (i = 0; i < mgr->num_overlays; i++) {
struct omap_overlay *ovl = mgr->overlays[i];

if (ovl->manager != mgr || !ovl->info.enabled)
list_for_each_entry(ovl, &mgr->overlays, list) {
if (!ovl->info.enabled)
continue;

r = dss_check_overlay(ovl, dssdev);
Expand Down Expand Up @@ -626,7 +624,7 @@ int dss_init_overlay_managers(struct platform_device *pdev)
mgr->supported_displays =
dss_feat_get_supported_displays(mgr->id);

dss_overlay_setup_dispc_manager(mgr);
INIT_LIST_HEAD(&mgr->overlays);

r = kobject_init_and_add(&mgr->kobj, &manager_ktype,
&pdev->dev.kobj, "manager%d", i);
Expand Down
12 changes: 2 additions & 10 deletions trunk/drivers/video/omap2/dss/overlay.c
Original file line number Diff line number Diff line change
Expand Up @@ -566,6 +566,7 @@ static int omap_dss_set_manager(struct omap_overlay *ovl,
}

ovl->manager = mgr;
list_add_tail(&ovl->list, &mgr->overlays);
ovl->manager_changed = true;

/* XXX: When there is an overlay on a DSI manual update display, and
Expand Down Expand Up @@ -597,6 +598,7 @@ static int omap_dss_unset_manager(struct omap_overlay *ovl)
}

ovl->manager = NULL;
list_del(&ovl->list);
ovl->manager_changed = true;

return 0;
Expand All @@ -617,14 +619,6 @@ struct omap_overlay *omap_dss_get_overlay(int num)
}
EXPORT_SYMBOL(omap_dss_get_overlay);

static struct omap_overlay *dispc_overlays[MAX_DSS_OVERLAYS];

void dss_overlay_setup_dispc_manager(struct omap_overlay_manager *mgr)
{
mgr->num_overlays = dss_feat_get_num_ovls();
mgr->overlays = dispc_overlays;
}

void dss_init_overlays(struct platform_device *pdev)
{
int i, r;
Expand Down Expand Up @@ -684,8 +678,6 @@ void dss_init_overlays(struct platform_device *pdev)

if (r)
DSSERR("failed to create sysfs file\n");

dispc_overlays[i] = ovl;
}
}

Expand Down
3 changes: 1 addition & 2 deletions trunk/include/video/omapdss.h
Original file line number Diff line number Diff line change
Expand Up @@ -423,8 +423,7 @@ struct omap_overlay_manager {
const char *name;
enum omap_channel id;
enum omap_overlay_manager_caps caps;
int num_overlays;
struct omap_overlay **overlays;
struct list_head overlays;
enum omap_display_type supported_displays;

/* dynamic fields */
Expand Down

0 comments on commit 8924a5b

Please sign in to comment.