drm/fb-helper: Look up preferred fbdev node number from DT

For situations where there are multiple DRM cards in a system,
add a query of DT for "drm_fb" designations for cards to set
their preferred /dev/fbN designation.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
This commit is contained in:
Dave Stevenson
2023-10-09 16:34:36 +01:00
committed by Phil Elwell
parent 0c7fb448e0
commit 1216ea56c2

View File

@@ -1932,7 +1932,7 @@ __drm_fb_helper_initial_config_and_unlock(struct drm_fb_helper *fb_helper,
struct drm_device *dev = fb_helper->dev; struct drm_device *dev = fb_helper->dev;
struct fb_info *info; struct fb_info *info;
unsigned int width, height; unsigned int width, height;
int ret; int ret, id;
width = dev->mode_config.max_width; width = dev->mode_config.max_width;
height = dev->mode_config.max_height; height = dev->mode_config.max_height;
@@ -1967,6 +1967,15 @@ __drm_fb_helper_initial_config_and_unlock(struct drm_fb_helper *fb_helper,
* register the fbdev emulation instance in kernel_fb_helper_list. */ * register the fbdev emulation instance in kernel_fb_helper_list. */
mutex_unlock(&fb_helper->lock); mutex_unlock(&fb_helper->lock);
id = of_alias_get_highest_id("drm_fb");
if (id >= 0)
fb_set_lowest_dynamic_fb(id + 1);
id = of_alias_get_id(dev->dev->of_node, "drm_fb");
if (id >= 0) {
info->node = id;
info->custom_fb_num = true;
}
ret = register_framebuffer(info); ret = register_framebuffer(info);
if (ret < 0) if (ret < 0)
return ret; return ret;