drm/exynos: Add display-timing node parsing using video helper function
Add support for parsing the display-timing node using video helper function. The DT node parsing is done only if 'dev.of_node' exists and the NON-DT logic is still maintained under the 'else' part. Signed-off-by: Leela Krishna Amudala <l.krishna@samsung.com> Signed-off-by: Vikas Sajjan <vikas.sajjan@linaro.org> Acked-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
7ddcc7364a
commit
7f4596f4ae
1 changed files with 20 additions and 4 deletions
|
@ -20,6 +20,7 @@
|
|||
#include <linux/of_device.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
|
||||
#include <video/of_display_timing.h>
|
||||
#include <video/samsung_fimd.h>
|
||||
#include <drm/exynos_drm.h>
|
||||
|
||||
|
@ -884,10 +885,25 @@ static int fimd_probe(struct platform_device *pdev)
|
|||
|
||||
DRM_DEBUG_KMS("%s\n", __FILE__);
|
||||
|
||||
pdata = pdev->dev.platform_data;
|
||||
if (!pdata) {
|
||||
dev_err(dev, "no platform data specified\n");
|
||||
return -EINVAL;
|
||||
if (pdev->dev.of_node) {
|
||||
pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
|
||||
if (!pdata) {
|
||||
DRM_ERROR("memory allocation for pdata failed\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ret = of_get_fb_videomode(dev->of_node, &pdata->panel.timing,
|
||||
OF_USE_NATIVE_MODE);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed: of_get_fb_videomode() : %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
} else {
|
||||
pdata = pdev->dev.platform_data;
|
||||
if (!pdata) {
|
||||
DRM_ERROR("no platform data specified\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
panel = &pdata->panel;
|
||||
|
|
Loading…
Reference in a new issue