summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/dss/base.c
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2018-03-02 02:43:45 +0200
committerTomi Valkeinen <tomi.valkeinen@ti.com>2018-09-03 16:13:26 +0300
commitc1dfe721e0966947019c43b65f2837c591fdcb3c (patch)
tree8ce6d3643384f63f717b66bf36eb2bce92d32929 /drivers/gpu/drm/omapdrm/dss/base.c
parent67822ae11971c664f5d28d7914b4b00cff07a9fd (diff)
downloadlinux-c1dfe721e0966947019c43b65f2837c591fdcb3c.tar.bz2
drm/omap: dss: Move and rename omap_dss_(get|put)_device()
The functions operate on any omap_dss_device, move them from display.c to base.c. While at it rename them to match the naming of the other functions operating on struct omap_dss_device. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/dss/base.c')
-rw-r--r--drivers/gpu/drm/omapdrm/dss/base.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/drivers/gpu/drm/omapdrm/dss/base.c b/drivers/gpu/drm/omapdrm/dss/base.c
index 9f01a4f28145..08846eea5a53 100644
--- a/drivers/gpu/drm/omapdrm/dss/base.c
+++ b/drivers/gpu/drm/omapdrm/dss/base.c
@@ -91,6 +91,27 @@ static bool omapdss_device_is_registered(struct device_node *node)
return found;
}
+struct omap_dss_device *omapdss_device_get(struct omap_dss_device *dssdev)
+{
+ if (!try_module_get(dssdev->owner))
+ return NULL;
+
+ if (get_device(dssdev->dev) == NULL) {
+ module_put(dssdev->owner);
+ return NULL;
+ }
+
+ return dssdev;
+}
+EXPORT_SYMBOL(omapdss_device_get);
+
+void omapdss_device_put(struct omap_dss_device *dssdev)
+{
+ put_device(dssdev->dev);
+ module_put(dssdev->owner);
+}
+EXPORT_SYMBOL(omapdss_device_put);
+
struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src,
unsigned int port)
{
@@ -98,7 +119,7 @@ struct omap_dss_device *omapdss_find_device_by_port(struct device_node *src,
list_for_each_entry(dssdev, &omapdss_devices_list, list) {
if (dssdev->dev->of_node == src && dssdev->port_num == port)
- return omap_dss_get_device(dssdev);
+ return omapdss_device_get(dssdev);
}
return NULL;
@@ -147,9 +168,9 @@ struct omap_dss_device *omapdss_device_get_next(struct omap_dss_device *from,
done:
if (from)
- omap_dss_put_device(from);
+ omapdss_device_put(from);
if (dssdev)
- omap_dss_get_device(dssdev);
+ omapdss_device_get(dssdev);
mutex_unlock(&omapdss_devices_lock);
return dssdev;