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
This commit is contained in:

committed by
Thierry Reding

parent
0ca0c827ef
commit
5fa8e4a221
@@ -151,7 +151,9 @@ EXPORT_SYMBOL(drm_panel_detach);
|
||||
* tree node. If a matching panel is found, return a pointer to it.
|
||||
*
|
||||
* Return: A pointer to the panel registered for the specified device tree
|
||||
* node or NULL if no panel matching the device tree node can be found.
|
||||
* node or an ERR_PTR() if no panel matching the device tree node can be found.
|
||||
* The only error that can be reported is -EPROBE_DEFER, meaning that the panel
|
||||
* device has not been probed yet, and the caller should retry later.
|
||||
*/
|
||||
struct drm_panel *of_drm_find_panel(const struct device_node *np)
|
||||
{
|
||||
@@ -167,7 +169,7 @@ struct drm_panel *of_drm_find_panel(const struct device_node *np)
|
||||
}
|
||||
|
||||
mutex_unlock(&panel_lock);
|
||||
return NULL;
|
||||
return ERR_PTR(-EPROBE_DEFER);
|
||||
}
|
||||
EXPORT_SYMBOL(of_drm_find_panel);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user