From: Lucas De Marchi Date: Tue, 8 Apr 2025 14:31:42 +0000 (-0700) Subject: drm/panel: Fix build error on !CONFIG_OF X-Git-Tag: v6.16-rc1~144^2~21^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8f47efd68db3bd87941df1ea3a5b77c62db5632e;p=thirdparty%2Flinux.git drm/panel: Fix build error on !CONFIG_OF Move helpers outside of CONFIG_OF, so basic allocation also works without it. Fixes: ed9c594d495d ("drm/panel: Add new helpers for refcounted panel allocatons") Fixes: dcba396f6907 ("drm/panel: Add refcount support") Reviewed-by: Maxime Ripard Link: https://lore.kernel.org/r/nyrjnvctqnk6f3x5q7rlmy5nb7iopoti56pgh43zqknici5ms4@cibpldh7epra Signed-off-by: Lucas De Marchi --- diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index 870bf8d471ee9..99b348782ce31 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -318,44 +318,6 @@ int drm_panel_get_modes(struct drm_panel *panel, } EXPORT_SYMBOL(drm_panel_get_modes); -#ifdef CONFIG_OF -/** - * of_drm_find_panel - look up a panel using a device tree node - * @np: device tree node of the panel - * - * Searches the set of registered panels for one that matches the given device - * 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 an ERR_PTR() if no panel matching the device tree node can be found. - * - * Possible error codes returned by this function: - * - * - EPROBE_DEFER: the panel device has not been probed yet, and the caller - * should retry later - * - ENODEV: the device is not available (status != "okay" or "ok") - */ -struct drm_panel *of_drm_find_panel(const struct device_node *np) -{ - struct drm_panel *panel; - - if (!of_device_is_available(np)) - return ERR_PTR(-ENODEV); - - mutex_lock(&panel_lock); - - list_for_each_entry(panel, &panel_list, list) { - if (panel->dev->of_node == np) { - mutex_unlock(&panel_lock); - return panel; - } - } - - mutex_unlock(&panel_lock); - return ERR_PTR(-EPROBE_DEFER); -} -EXPORT_SYMBOL(of_drm_find_panel); - static void __drm_panel_free(struct kref *kref) { struct drm_panel *panel = container_of(kref, struct drm_panel, refcount); @@ -443,6 +405,44 @@ void *__devm_drm_panel_alloc(struct device *dev, size_t size, size_t offset, } EXPORT_SYMBOL(__devm_drm_panel_alloc); +#ifdef CONFIG_OF +/** + * of_drm_find_panel - look up a panel using a device tree node + * @np: device tree node of the panel + * + * Searches the set of registered panels for one that matches the given device + * 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 an ERR_PTR() if no panel matching the device tree node can be found. + * + * Possible error codes returned by this function: + * + * - EPROBE_DEFER: the panel device has not been probed yet, and the caller + * should retry later + * - ENODEV: the device is not available (status != "okay" or "ok") + */ +struct drm_panel *of_drm_find_panel(const struct device_node *np) +{ + struct drm_panel *panel; + + if (!of_device_is_available(np)) + return ERR_PTR(-ENODEV); + + mutex_lock(&panel_lock); + + list_for_each_entry(panel, &panel_list, list) { + if (panel->dev->of_node == np) { + mutex_unlock(&panel_lock); + return panel; + } + } + + mutex_unlock(&panel_lock); + return ERR_PTR(-EPROBE_DEFER); +} +EXPORT_SYMBOL(of_drm_find_panel); + /** * of_drm_get_panel_orientation - look up the orientation of the panel through * the "rotation" binding from a device tree node