[PATCH] Revert "drm/amdgpu: Ensure that the modifier requested is supported by plane."
Mark Yacoub
markyacoub at google.com
Mon Apr 5 16:14:38 UTC 2021
Not really, I can't think what this patch breaks yet, I'll need to
investigate further. But if it's found to be the culprit for the bugs,
I'm all for reverting right now and I'll debug further later.
On Mon, Apr 5, 2021 at 12:10 PM Rodrigo Siqueira
<Rodrigo.Siqueira at amd.com> wrote:
>
> In general lgtm.
>
> Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
>
> Mark Yacoub, do you have any comment?
>
> On 04/05, Qingqing Zhuo wrote:
> > This reverts commit 9f81b5d40ca2c689334ad8288a4ddca4722a6e10.
> >
> > The original commit was found to cause the following two issues
> > on sienna cichlid:
> > 1. Refresh rate locked during vrrdemo
> > 2. Display sticks on flipped landscape mode after changing
> > orientation, and cannot be changed back to regular landscape
> >
> > Signed-off-by: Qingqing Zhuo <qingqing.zhuo at amd.com>
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 13 -------------
> > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 18 +++---------------
> > 2 files changed, 3 insertions(+), 28 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> > index 0f17984fdea4..6304a49b02fd 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c
> > @@ -908,19 +908,6 @@ int amdgpu_display_gem_fb_verify_and_init(
> > &amdgpu_fb_funcs);
> > if (ret)
> > goto err;
> > - /* Verify that the modifier is supported. */
> > - if (!drm_any_plane_has_format(dev, mode_cmd->pixel_format,
> > - mode_cmd->modifier[0])) {
> > - struct drm_format_name_buf format_name;
> > - drm_dbg_kms(dev,
> > - "unsupported pixel format %s / modifier 0x%llx\n",
> > - drm_get_format_name(mode_cmd->pixel_format,
> > - &format_name),
> > - mode_cmd->modifier[0]);
> > -
> > - ret = -EINVAL;
> > - goto err;
> > - }
> >
> > ret = amdgpu_display_framebuffer_init(dev, rfb, mode_cmd, obj);
> > if (ret)
> > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > index 54ef0f3f37b7..ac6ab35f89b2 100644
> > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> > @@ -4299,7 +4299,6 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane,
> > {
> > struct amdgpu_device *adev = drm_to_adev(plane->dev);
> > const struct drm_format_info *info = drm_format_info(format);
> > - int i;
> >
> > enum dm_micro_swizzle microtile = modifier_gfx9_swizzle_mode(modifier) & 3;
> >
> > @@ -4307,22 +4306,11 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane,
> > return false;
> >
> > /*
> > - * We always have to allow these modifiers:
> > - * 1. Core DRM checks for LINEAR support if userspace does not provide modifiers.
> > - * 2. Not passing any modifiers is the same as explicitly passing INVALID.
> > + * We always have to allow this modifier, because core DRM still
> > + * checks LINEAR support if userspace does not provide modifers.
> > */
> > - if (modifier == DRM_FORMAT_MOD_LINEAR ||
> > - modifier == DRM_FORMAT_MOD_INVALID) {
> > + if (modifier == DRM_FORMAT_MOD_LINEAR)
> > return true;
> > - }
> > -
> > - /* Check that the modifier is on the list of the plane's supported modifiers. */
> > - for (i = 0; i < plane->modifier_count; i++) {
> > - if (modifier == plane->modifiers[i])
> > - break;
> > - }
> > - if (i == plane->modifier_count)
> > - return false;
> >
> > /*
> > * The arbitrary tiling support for multiplane formats has not been hooked
> > --
> > 2.17.1
> >
>
> --
> Rodrigo Siqueira
> https://siqueira.tech
More information about the amd-gfx
mailing list