diff options
author | Boris Brezillon <boris.brezillon@bootlin.com> | 2018-05-09 15:00:39 +0200 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2018-07-10 17:59:05 +0200 |
commit | 5fa8e4a22182df8ea39adeba4bd518506e26a96d (patch) | |
tree | 4b9a3df577632f7c2165ea86d4d98f2cb5018266 /drivers/gpu/drm/tegra/output.c | |
parent | 0ca0c827efdf248dfb4bbd4b9066acb6337e07ac (diff) | |
download | linux-5fa8e4a22182df8ea39adeba4bd518506e26a96d.tar.gz linux-5fa8e4a22182df8ea39adeba4bd518506e26a96d.tar.bz2 linux-5fa8e4a22182df8ea39adeba4bd518506e26a96d.zip |
drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL
Right now, the DRM panel logic returns NULL when a panel pointing to
the passed OF node is not present in the list of registered panels.
Most drivers interpret this NULL value as -EPROBE_DEFER, but we are
about to modify the semantic of of_drm_find_panel() and let the
framework return -ENODEV when the device node we're pointing to has
a status property that is not equal to "okay" or "ok".
Let's first patch the of_drm_find_panel() implementation to return
ERR_PTR(-EPROBE_DEFER) instead of NULL and patch all callers to replace
the '!panel' check by an 'IS_ERR(panel)' one.
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180509130042.9435-2-boris.brezillon@bootlin.com
Diffstat (limited to 'drivers/gpu/drm/tegra/output.c')
-rw-r--r-- | drivers/gpu/drm/tegra/output.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c index ffe34bd0bb9d..0c0936511bb4 100644 --- a/drivers/gpu/drm/tegra/output.c +++ b/drivers/gpu/drm/tegra/output.c @@ -110,8 +110,8 @@ int tegra_output_probe(struct tegra_output *output) panel = of_parse_phandle(output->of_node, "nvidia,panel", 0); if (panel) { output->panel = of_drm_find_panel(panel); - if (!output->panel) - return -EPROBE_DEFER; + if (IS_ERR(output->panel)) + return PTR_ERR(output->panel); of_node_put(panel); } |