[Intel-gfx] [PATCH] drm: Fix for invalid pruning of modes in dual display cases
Jani Nikula
jani.nikula at linux.intel.com
Tue Dec 13 10:28:59 UTC 2016
On Tue, 13 Dec 2016, Vidya Srinivas <vidya.srinivas at intel.com> wrote:
> Currently in dual display connected boot scenarios, minimum of the resolutions
> is taken for fb width and height as reference. Based on this resolution, other
> modes are pruned.
>
> Example Scenario: If DSI mode is 2560x1440 and HDMI is 1920x1080, during the probing
> the fb width and height is set to max 1920x1080 and the DSI mode gets pruned as it is
> more than the reference. As a result, there is no DSI display.
> Patch fixes this issue by taking the max of the resolutions and creating the fb
> based on the same.
>
> Signed-off-by: Vidya Srinivas <vidya.srinivas at intel.com>
> Signed-off-by: Uma Shankar <uma.shankar at intel.com>
> ---
> drivers/gpu/drm/drm_fb_helper.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
> index e934b54..6afc06f 100644
> --- a/drivers/gpu/drm/drm_fb_helper.c
> +++ b/drivers/gpu/drm/drm_fb_helper.c
> @@ -1482,8 +1482,8 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
> memset(&sizes, 0, sizeof(struct drm_fb_helper_surface_size));
> sizes.surface_depth = 24;
> sizes.surface_bpp = 32;
> - sizes.fb_width = (unsigned)-1;
> - sizes.fb_height = (unsigned)-1;
> + sizes.fb_width = 0;
> + sizes.fb_height = 0;
>
> /* if driver picks 8 or 16 by default use that
> for both depth/bpp */
> @@ -1560,9 +1560,9 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,
> }
>
> if (lasth)
> - sizes.fb_width = min_t(u32, desired_mode->hdisplay + x, sizes.fb_width);
> + sizes.fb_width = max_t(u32, desired_mode->hdisplay + x, sizes.fb_width);
> if (lastv)
> - sizes.fb_height = min_t(u32, desired_mode->vdisplay + y, sizes.fb_height);
> + sizes.fb_height = max_t(u32, desired_mode->vdisplay + y, sizes.fb_height);
> }
>
> if (crtc_count == 0 || sizes.fb_width == -1 || sizes.fb_height == -1) {
Not commenting on the main change itself, but just as a reminder, these
checks will need updating too.
BR,
Jani.
--
Jani Nikula, Intel Open Source Technology Center
More information about the dri-devel
mailing list