mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
drm/i915/color: Enable Plane Color Pipelines
Expose color pipeline and add ability to program it.
v2: Set bit to enable multisegmented lut
v3: s/drm_color_lut_32/drm_color_lut32 (Simon)
v4: - Fix dsb programming
- Remove multi-segment LUT, they will be added in later patches
- Add pipeline only to TGL+
- Code Refactor
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patch.msgid.link/20251203085211.3663374-16-uma.shankar@intel.com
This commit is contained in:
@@ -7296,6 +7296,7 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state,
|
||||
struct intel_display *display = to_intel_display(state);
|
||||
struct intel_crtc_state *new_crtc_state =
|
||||
intel_atomic_get_new_crtc_state(state, crtc);
|
||||
unsigned int size = new_crtc_state->plane_color_changed ? 8192 : 1024;
|
||||
|
||||
if (!new_crtc_state->use_flipq &&
|
||||
!new_crtc_state->use_dsb &&
|
||||
@@ -7306,10 +7307,12 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state,
|
||||
* Rough estimate:
|
||||
* ~64 registers per each plane * 8 planes = 512
|
||||
* Double that for pipe stuff and other overhead.
|
||||
* ~4913 registers for 3DLUT
|
||||
* ~200 color registers * 3 HDR planes
|
||||
*/
|
||||
new_crtc_state->dsb_commit = intel_dsb_prepare(state, crtc, INTEL_DSB_0,
|
||||
new_crtc_state->use_dsb ||
|
||||
new_crtc_state->use_flipq ? 1024 : 16);
|
||||
new_crtc_state->use_flipq ? size : 16);
|
||||
if (!new_crtc_state->dsb_commit) {
|
||||
new_crtc_state->use_flipq = false;
|
||||
new_crtc_state->use_dsb = false;
|
||||
|
||||
Reference in New Issue
Block a user