[RFC] drm/fb: Propagate physical display dimensions to fbdev

From: David Lechner
Date: Sun Jul 30 2017 - 17:11:56 EST


fbdev has a place for the physical width and height of a display. I would
like to have this information available to userspace. This patch works for me,
but I have a strong suspicion that this is not the "right way".

Any suggestions on how to get the proper struct drm_display_info here
rather than assuming the first connector one is valid? I don't see an obvious
way to do this.
---
drivers/gpu/drm/drm_fb_helper.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 574af01..ff422da 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1768,8 +1768,14 @@ void drm_fb_helper_fill_var(struct fb_info *info, struct drm_fb_helper *fb_helpe
info->var.xoffset = 0;
info->var.yoffset = 0;
info->var.activate = FB_ACTIVATE_NOW;
- info->var.height = -1;
- info->var.width = -1;
+
+ if (fb_helper->connector_count) {
+ info->var.height = fb_helper->connector_info[0]->connector->display_info.width_mm;
+ info->var.width = fb_helper->connector_info[0]->connector->display_info.height_mm;
+ } else {
+ info->var.height = -1;
+ info->var.width = -1;
+ }

switch (fb->format->depth) {
case 8:
--
2.7.4