Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/framebuffer: Format modifier for Intel Gen-12 media compression

Gen-12 display can decompress surfaces compressed by the media engine, add
a new modifier as the driver needs to know the surface was compressed by
the media or render engine.

v2: Update code comment describing the color plane order for YUV
semiplanar formats.

Cc: Nanley G Chery <nanley.g.chery@intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Mika Kahola <mika.kahola@intel.com>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191231233756.18753-6-imre.deak@intel.com

authored by

Dhinakaran Pandiyan and committed by
Imre Deak
0d3d29d0 577687bf

+13
+13
include/uapi/drm/drm_fourcc.h
··· 422 422 #define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS fourcc_mod_code(INTEL, 6) 423 423 424 424 /* 425 + * Intel color control surfaces (CCS) for Gen-12 media compression 426 + * 427 + * The main surface is Y-tiled and at plane index 0, the CCS is linear and 428 + * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in 429 + * main surface. In other words, 4 bits in CCS map to a main surface cache 430 + * line pair. The main surface pitch is required to be a multiple of four 431 + * Y-tile widths. For semi-planar formats like NV12, CCS planes follow the 432 + * Y and UV planes i.e., planes 0 and 1 are used for Y and UV surfaces, 433 + * planes 2 and 3 for the respective CCS. 434 + */ 435 + #define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7) 436 + 437 + /* 425 438 * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks 426 439 * 427 440 * Macroblocks are laid in a Z-shape, and each pixel data is following the