summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/tidss/tidss_drv.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/tidss/tidss_drv.c')
-rw-r--r--drivers/gpu/drm/tidss/tidss_drv.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tidss/tidss_drv.c b/drivers/gpu/drm/tidss/tidss_drv.c
index e06f6ed98338..fff3883a355a 100644
--- a/drivers/gpu/drm/tidss/tidss_drv.c
+++ b/drivers/gpu/drm/tidss/tidss_drv.c
@@ -206,6 +206,29 @@ fail:
return ret;
}
+static void check_for_simplefb_device(struct tidss_device *tidss)
+{
+ if (IS_ENABLED(CONFIG_FB_SIMPLE)) {
+ struct device *simplefb_dev;
+ struct device_node *simplefb_node;
+
+ simplefb_node = of_find_compatible_node(NULL, NULL, "simple-framebuffer");
+ if (!simplefb_node)
+ return;
+
+ simplefb_dev = bus_find_device_by_of_node(&platform_bus_type, simplefb_node);
+ if (!simplefb_dev) {
+ of_node_put(simplefb_node);
+ return;
+ }
+
+ tidss->simplefb_enabled = true;
+ dev_dbg(tidss->dev, "simple-framebuffer detected\n");
+ put_device(simplefb_dev);
+ of_node_put(simplefb_node);
+ }
+}
+
static int tidss_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -230,6 +253,7 @@ static int tidss_probe(struct platform_device *pdev)
spin_lock_init(&tidss->wait_lock);
+ check_for_simplefb_device(tidss);
tidss->shared_mode = device_property_read_bool(dev, "ti,dss-shared-mode");
/* powering up associated OLDI domains */