Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 184857
b: refs/heads/master
c: e020f9a
h: refs/heads/master
i:
  184855: bd39ba2
v: v3
  • Loading branch information
Tomi Valkeinen committed Feb 18, 2010
1 parent f5fba38 commit 4294cea
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 66 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: e296264977f68ddf395b8f93f8e174930f88499a
refs/heads/master: e020f9af6d8311cd935217219f49175e161be100
3 changes: 0 additions & 3 deletions trunk/arch/arm/plat-omap/include/plat/display.h
Original file line number Diff line number Diff line change
Expand Up @@ -431,14 +431,11 @@ struct omap_dss_device {
enum omap_panel_config config;

u8 recommended_bpp;

struct omap_dss_device *ctrl;
} panel;

struct {
u8 pixel_size;
struct rfbi_timings rfbi_timings;
struct omap_dss_device *panel;
} ctrl;

int reset_gpio;
Expand Down
35 changes: 3 additions & 32 deletions trunk/drivers/video/omap2/dss/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -771,11 +771,8 @@ static int dss_driver_probe(struct device *dev)

dss_init_device(core.pdev, dssdev);

/* skip this if the device is behind a ctrl */
if (!dssdev->panel.ctrl) {
force = pdata->default_device == dssdev;
dss_recheck_connections(dssdev, force);
}
force = pdata->default_device == dssdev;
dss_recheck_connections(dssdev, force);

r = dssdrv->probe(dssdev);

Expand Down Expand Up @@ -861,8 +858,6 @@ static void omap_dss_dev_release(struct device *dev)
int omap_dss_register_device(struct omap_dss_device *dssdev)
{
static int dev_num;
static int panel_num;
int r;

WARN_ON(!dssdev->driver_name);

Expand All @@ -871,36 +866,12 @@ int omap_dss_register_device(struct omap_dss_device *dssdev)
dssdev->dev.parent = &dss_bus;
dssdev->dev.release = omap_dss_dev_release;
dev_set_name(&dssdev->dev, "display%d", dev_num++);
r = device_register(&dssdev->dev);
if (r)
return r;

if (dssdev->ctrl.panel) {
struct omap_dss_device *panel = dssdev->ctrl.panel;

panel->panel.ctrl = dssdev;

reset_device(&panel->dev, 1);
panel->dev.bus = &dss_bus_type;
panel->dev.parent = &dssdev->dev;
panel->dev.release = omap_dss_dev_release;
dev_set_name(&panel->dev, "panel%d", panel_num++);
r = device_register(&panel->dev);
if (r)
return r;
}

return 0;
return device_register(&dssdev->dev);
}

void omap_dss_unregister_device(struct omap_dss_device *dssdev)
{
device_unregister(&dssdev->dev);

if (dssdev->ctrl.panel) {
struct omap_dss_device *panel = dssdev->ctrl.panel;
device_unregister(&panel->dev);
}
}

/* BUS */
Expand Down
32 changes: 2 additions & 30 deletions trunk/drivers/video/omap2/dss/display.c
Original file line number Diff line number Diff line change
Expand Up @@ -591,10 +591,6 @@ struct omap_dss_device *omap_dss_get_next_device(struct omap_dss_device *from)

int match(struct device *dev, void *data)
{
/* skip panels connected to controllers */
if (to_dss_device(dev)->panel.ctrl)
return 0;

return 1;
}

Expand Down Expand Up @@ -626,45 +622,21 @@ EXPORT_SYMBOL(omap_dss_find_device);

int omap_dss_start_device(struct omap_dss_device *dssdev)
{
int r;

if (!dssdev->driver) {
DSSDBG("no driver\n");
r = -ENODEV;
goto err0;
}

if (dssdev->ctrl.panel && !dssdev->ctrl.panel->driver) {
DSSDBG("no panel driver\n");
r = -ENODEV;
goto err0;
return -ENODEV;
}

if (!try_module_get(dssdev->dev.driver->owner)) {
r = -ENODEV;
goto err0;
}

if (dssdev->ctrl.panel) {
if (!try_module_get(dssdev->ctrl.panel->dev.driver->owner)) {
r = -ENODEV;
goto err1;
}
return -ENODEV;
}

return 0;
err1:
module_put(dssdev->dev.driver->owner);
err0:
return r;
}
EXPORT_SYMBOL(omap_dss_start_device);

void omap_dss_stop_device(struct omap_dss_device *dssdev)
{
if (dssdev->ctrl.panel)
module_put(dssdev->ctrl.panel->dev.driver->owner);

module_put(dssdev->dev.driver->owner);
}
EXPORT_SYMBOL(omap_dss_stop_device);
Expand Down

0 comments on commit 4294cea

Please sign in to comment.