diff options
Diffstat (limited to 'drivers/gpu/drm/tidss/tidss_drv.c')
-rw-r--r-- | drivers/gpu/drm/tidss/tidss_drv.c | 24 |
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 */ |