Skip to content

Commit

Permalink
OMAPDSS: add module_get/put to omap_dss_get/put_device()
Browse files Browse the repository at this point in the history
omap_dss_get_device() should be called for omap_dss_device before it is
used to increase its refcount. Currently we only increase the refcount
for the underlying device.

This patch adds managing the ref count to the underlying module also,
which contains the ops for the omap_dss_device.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
  • Loading branch information
Tomi Valkeinen committed Jun 17, 2013
1 parent 4f3e44e commit d35317a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
13 changes: 11 additions & 2 deletions drivers/video/omap2/dss/display.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,15 +158,24 @@ void omapdss_unregister_display(struct omap_dss_device *dssdev)
}
EXPORT_SYMBOL(omapdss_unregister_display);

void omap_dss_get_device(struct omap_dss_device *dssdev)
struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev)
{
get_device(dssdev->dev);
if (!try_module_get(dssdev->owner))
return NULL;

if (get_device(dssdev->dev) == NULL) {
module_put(dssdev->owner);
return NULL;
}

return dssdev;
}
EXPORT_SYMBOL(omap_dss_get_device);

void omap_dss_put_device(struct omap_dss_device *dssdev)
{
put_device(dssdev->dev);
module_put(dssdev->owner);
}
EXPORT_SYMBOL(omap_dss_put_device);

Expand Down
2 changes: 1 addition & 1 deletion include/video/omapdss.h
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,7 @@ void omap_dss_unregister_driver(struct omap_dss_driver *);
int omapdss_register_display(struct omap_dss_device *dssdev);
void omapdss_unregister_display(struct omap_dss_device *dssdev);

void omap_dss_get_device(struct omap_dss_device *dssdev);
struct omap_dss_device *omap_dss_get_device(struct omap_dss_device *dssdev);
void omap_dss_put_device(struct omap_dss_device *dssdev);
#define for_each_dss_dev(d) while ((d = omap_dss_get_next_device(d)) != NULL)
struct omap_dss_device *omap_dss_get_next_device(struct omap_dss_device *from);
Expand Down

0 comments on commit d35317a

Please sign in to comment.