drm/i915: DRM_FORMAT_C8 is not possible with Yf tiling
Function intel_framebuffer_init() checks for the possibilities during framebuffer creation (addfb ioctl time). It is missing the fact that the indexed format is not supported with Yf tiling. It is worth noticing that skl_plane_format_mod_supported() correctly handles for the C8/Yf combination, but this function runs during modeset time, so we only reject the combination later. Ville recently proposed a new IGT test that only uses addfb to assert supported formats, so that IGT was failing. Add the check so we get green squares right from the start after Ville merges his test. Also drive-by fix the missing /* fall through */ in the chunk we modified by just turning it into a "break;" since IMHO breaks are easier to read than fall-throughs. BSpec: 18565 Testcase: igt/kms_addfb_basic/expected-formats (not merged yet) Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180925001913.29460-1-paulo.r.zanoni@intel.com
This commit is contained in:
parent
645ff9e371
commit
ef51e0a3eb
|
@ -14278,13 +14278,19 @@ static int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
|
|||
goto err;
|
||||
}
|
||||
/* fall through */
|
||||
case I915_FORMAT_MOD_Y_TILED:
|
||||
case I915_FORMAT_MOD_Yf_TILED:
|
||||
if (mode_cmd->pixel_format == DRM_FORMAT_C8) {
|
||||
DRM_DEBUG_KMS("Indexed format does not support Yf tiling\n");
|
||||
goto err;
|
||||
}
|
||||
/* fall through */
|
||||
case I915_FORMAT_MOD_Y_TILED:
|
||||
if (INTEL_GEN(dev_priv) < 9) {
|
||||
DRM_DEBUG_KMS("Unsupported tiling 0x%llx!\n",
|
||||
mode_cmd->modifier[0]);
|
||||
goto err;
|
||||
}
|
||||
break;
|
||||
case DRM_FORMAT_MOD_LINEAR:
|
||||
case I915_FORMAT_MOD_X_TILED:
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue