[PATCH v2 7/7] drm/i915/display: Generate PSR frame change event on cursor update

2024-10-31 Thread Jouni Högander
On LunarLake and onwards we are using vrr send push mechanism to trigger frame change event. Due to this we need to trigger it using intel_vrr_psr_send_push provided by VRR code on legacy cursor update. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_cursor.c | 5 + 1

[PATCH v2 1/7] drm/i915/psr: Add TRANS_PUSH register bit definition for PSR

2024-10-31 Thread Jouni Högander
Add TRANS_PUSH register bit LNL_TRANS_PUSH_PSR_PR_EN definition for PSR usage. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_vrr_regs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/display/intel_vrr_regs.h b/drivers/gpu/drm/i915/display

[PATCH v2 6/7] drm/i915/psr: Add VRR send push interface for PSR usage

2024-10-31 Thread Jouni Högander
ned-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 7 ++- drivers/gpu/drm/i915/display/intel_vrr.c | 20 drivers/gpu/drm/i915/display/intel_vrr.h | 4 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/disp

[PATCH v2 0/7] Use trans push mechanism to generate frame change event

2024-10-31 Thread Jouni Högander
ional locking as it's taken care by psr mutex. v2: implement intel_vrr_trans_push_enabled_set_clear and use that instead of rmw Jouni Högander (7): drm/i915/psr: Add TRANS_PUSH register bit definition for PSR drm/i915/vrr: Do not overwrite TRANS_PUSH PSR Frame Change Enable drm/i9

[PATCH v2 4/7] drm/i915/psr: Rename psr_force_hw_tracking_exit as psr_force_exit

2024-10-31 Thread Jouni Högander
psr_force_hw_tracking_exit is misleading name as it is used for PSR1, PSR2 HW tracking and PSR2 selective fetch. Due to this rename it as psr_force_exit. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 8 1 file changed, 4 insertions(+), 4 deletions

[PATCH v2 5/7] drm/i915/psr: Simplify frontbuffer invalidate/flush callbacks

2024-10-31 Thread Jouni Högander
. 2. Rewrite bits in PSR2_MAN_TRK_CTL if two invalidate calls in row without flush in between (psr.psr2_sel_fetch_cff_enabled == true). Flush: 1. intel_dp->psr.psr2_sel_fetch_cff_enabled is clearn also when it is already false. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/disp

[PATCH v2 3/7] drm/i915/vrr: Use TRANS_PUSH mechanism for PSR frame change

2024-10-31 Thread Jouni Högander
In Lunarlake and onwards it is possible to generate "PSR frame change" event using TRANS_PUSH mechanism. Implement function to enable this and take PSR into account in intel_vrr_send_push. v2: use intel_vrr_trans_push_enabled_set_clear instead of rmw Signed-off-by: Jouni Högander --

[PATCH v2 2/7] drm/i915/vrr: Do not overwrite TRANS_PUSH PSR Frame Change Enable

2024-10-31 Thread Jouni Högander
Currently vrr code is overwriting possibly set PSR PR Frame Change Enable bit in TRANS_PUSH register. Avoid this by adding trans_push_enabled into struct intel_crtc and use that when writing TRANS_PUSH register. v2: use intel_vrr_trans_push_enabled_set_clear instead of rmw Signed-off-by: Jouni

[PATCH] drm/i915/psr: Disable Panel Replay as well if VRR is enabled

2024-10-31 Thread Jouni Högander
errors on pipe A: 0x00040080 xe :00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00040080 Let's disable Panel Replay as well if VRR is enabled. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 13 ++--- 1 file changed, 6 insertions(+), 7 dele

[PATCH v2] drm/i915/psr: WA for panels stating bad link status after PSR is enabled

2024-10-29 Thread Jouni Högander
ess comment - modify intel_dp_needs_link_retrain return statement Signed-off-by: Jouni Högander --- .../drm/i915/display/intel_display_types.h| 2 + drivers/gpu/drm/i915/display/intel_dp.c | 3 +- drivers/gpu/drm/i915/display/intel_psr.c | 40 +++ drivers/gpu/drm/i9

[PATCH] drm/i915/psr: WA for panels stating bad link status after PSR is enabled

2024-10-28 Thread Jouni Högander
5. Now read panel link status registers again: $ dpcd_reg read --offset 0x200e --count=1 0x200e: 80 Workaround this by not trusting link status registers after PSR is enabled until first short pulse interrupt is received. Signed-off-by: Jouni Högander --- .../drm/i915/display/intel_d

[PATCH] drm/i915/psr: vbt.psr.enable is only for eDP panels

2024-10-21 Thread Jouni Högander
We don't want to check vbt.psr.enable on DP Panel Replay as it is targeted for eDP panel usage only. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr

[PATCH 7/7] drm/i915/display: Generate PSR frame change event on cursor update

2024-10-09 Thread Jouni Högander
On LunarLake and onwards we are using vrr send push mechanism to trigger frame change event. Due to this we need to trigger it using intel_vrr_psr_send_push provided by VRR code on legacy cursor update. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_cursor.c | 5 + 1

[PATCH 6/7] drm/i915/psr: Add VRR send push interface for PSR usage

2024-10-09 Thread Jouni Högander
Add own interface for PSR usage to perform push on frontbuffer tracking invalidate and flush call backs. Use this new interface from PSR code. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 7 ++- drivers/gpu/drm/i915/display/intel_vrr.c | 18

[PATCH 5/7] drm/i915/psr: Simplify frontbuffer invalidate/flush callbacks

2024-10-09 Thread Jouni Högander
. 2. Rewrite bits in PSR2_MAN_TRK_CTL if two invalidate calls in row without flush in between (psr.psr2_sel_fetch_cff_enabled == true). Flush: 1. intel_dp->psr.psr2_sel_fetch_cff_enabled is clearn also when it is already false. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/disp

[PATCH 2/7] drm/i915/vrr: Do not overwrite TRANS_PUSH PSR Frame Change Enable

2024-10-09 Thread Jouni Högander
Currently vrr code is overwriting possibly set PSR PR Frame Change Enable bit in TRANS_PUSH register. Avoid this by using rmw instead of write. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_vrr.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a

[PATCH 4/7] drm/i915/psr: Rename psr_force_hw_tracking_exit as psr_force_exit

2024-10-09 Thread Jouni Högander
psr_force_hw_tracking_exit is misleading name as it is used for PSR1, PSR2 HW tracking and PSR2 selective fetch. Due to this rename it as psr_force_exit. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 8 1 file changed, 4 insertions(+), 4 deletions

[PATCH 3/7] drm/i915/vrr: Use TRANS_PUSH mechanism for PSR frame change

2024-10-09 Thread Jouni Högander
In Lunarlake and onwards it is possible to generate "PSR frame change" event using TRANS_PUSH mechanism. Implement function to enable this and take PSR into account in intel_vrr_send_push. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 6 drivers/gp

[PATCH 1/7] drm/i915/psr: Add TRANS_PUSH register bit definition for PSR

2024-10-09 Thread Jouni Högander
Add TRANS_PUSH register bit LNL_TRANS_PUSH_PSR_PR_EN definition for PSR usage. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_vrr_regs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/i915/display/intel_vrr_regs.h b/drivers/gpu/drm/i915/display

[PATCH 0/7] Use trans push mechanism to generate frame change event

2024-10-09 Thread Jouni Högander
it is set "automatic" frame change event generation doesn't work anymore. This patch set is taking trans push mechanism into use. Jouni Högander (7): drm/i915/psr: Add TRANS_PUSH register bit definition for PSR drm/i915/vrr: Do not overwrite TRANS_PUSH PSR Frame Change En

[PATCH v2 2/2] drm/i915/display: Fix Panel Replay vblank enable workaround

2024-10-09 Thread Jouni Högander
DC6 while vblank is enabled for Panel Replay") Signed-off-by: Jouni Högander Suggested-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_display_irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drive

[PATCH v2 1/2] drm/i915/display: Add own counter for Panel Replay vblank workaround

2024-10-09 Thread Jouni Högander
pes/vblank_wa_num_pipes/ - use int as a type for the counter Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_display_core.h | 2 ++ drivers/gpu/drm/i915/display/intel_display_irq.c | 8 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i

[PATCH 2/2] drm/i915/display: Fix Panel Replay vblank enable workaround

2024-09-29 Thread Jouni Högander
DC6 while vblank is enabled for Panel Replay") Signed-off-by: Jouni Högander Suggested-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_display_irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drive

[PATCH 1/2] drm/i915/display: Add own counter for Panel Replay vblank workaround

2024-09-29 Thread Jouni Högander
We are about to change meaning of vblank_enabled to fix Panel Replay vblank workaround. For sake of clarity we need to rename it. Vblank_enabled is used for i915gm/i945gm vblank irq workaround as well -> instead of rename add new counter named as vblank_wa_pipes. Signed-off-by: Jouni Högan

[PATCH v2 2/2] drm/i915/psr: Implement Wa 14019834836

2024-09-25 Thread Jouni Högander
This patch implements HW workaround 14019834836 for display version 30. v2: - move Wa 14019834836 to it's own function - apply only for display version 30 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 36 1 file changed, 36 inser

[PATCH v2 1/2] drm/i915/psr: Add new SU area calculation helper to apply workarounds

2024-09-25 Thread Jouni Högander
intel_psr2_sel_fetch_update is already quite long function. Now we are about to add one more HW workaround. Let's split applying workarounds to selective update area into a separate function. Signed-off-by: Jouni Högander Reviewed-by: Mika Kahola --- drivers/gpu/drm/i915/display/intel_

[PATCH v2 0/2] Implement Wa 14019834836

2024-09-25 Thread Jouni Högander
This patch set implements Wa 14019834836. Also a new helper is added to apply workarounds for selective update area. v2: - move Wa 14019834836 to it's own function - apply only for display version 30 Jouni Högander (2): drm/i915/psr: Add new SU area calculation helper to apply workar

[PATCH 2/2] drm/i915/psr: Implement Wa 14019834836

2024-09-22 Thread Jouni Högander
This patch implements HW workaround 14019834836 for display version >= 30. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 30 1 file changed, 30 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i

[PATCH 1/2] drm/i915/psr: Add new SU area calculation helper to apply workarounds

2024-09-22 Thread Jouni Högander
intel_psr2_sel_fetch_update is already quite long function. Now we are about to add one more HW workaround. Let's split applying workarounds to selective update area into a separate function. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c

[PATCH 0/2] Implement Wa 14019834836

2024-09-22 Thread Jouni Högander
This patch set implements Wa 14019834836. Also a new helper is added to apply workarounds for selective update area. Jouni Högander (2): drm/i915/psr: Add new SU area calculation helper to apply workarounds drm/i915/psr: Implement Wa 14019834836 drivers/gpu/drm/i915/display/intel_psr.c | 52

[PATCH v5 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay

2024-09-19 Thread Jouni Högander
e adding block_dc_for_vblank into this patch v2: - use READ_ONCE in intel_display_vblank_work - use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6 - use intel_crtc->block_dc6_needed Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296 Signed-off-by: Jouni Högander Reviewe

[PATCH v5 1/2] drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry

2024-09-19 Thread Jouni Högander
ction to query need for dc entry blocking on. Signed-off-by: Jouni Högander Reviewed-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_psr.c | 31 drivers/gpu/drm/i915/display/intel_psr.h | 1 + 2 files changed, 32 insertions(+) diff --git a/drivers/gpu/drm

[PATCH v5 0/2] Block DC6 on Vblank enable for Panel Replay

2024-09-19 Thread Jouni Högander
ing block_dc_for_vblank into patch 2. - patch 1. scope changed v3: check that encoder is dp v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off Jouni Högander (2): drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry drm/i915/display: Prevent DC6 while vblank is enabled for Pa

[PATCH v4 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay

2024-09-19 Thread Jouni Högander
ank_work - use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6 - use intel_crtc->block_dc6_needed Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_crtc.c | 7 + .../gpu/drm/i

[PATCH v4 1/2] drm/i915/psr: Add intel_psr_needs_block_dc_vblank for blocking dc entry

2024-09-19 Thread Jouni Högander
ction to query need for dc entry blocking on. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 31 drivers/gpu/drm/i915/display/intel_psr.h | 1 + 2 files changed, 32 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/dr

[PATCH v4 0/2] Block DC6 on Vblank enable for Panel Replay

2024-09-19 Thread Jouni Högander
blank - check crtc->block_dc_for_vblank in bdw_disable_vblank as well - move adding block_dc_for_vblank into patch 2. - patch 1. scope changed v3: check that encoder is dp v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off Jouni Högander (2): drm/i915/psr: Add intel_psr_needs_block_dc_vb

[PATCH v3 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay

2024-09-16 Thread Jouni Högander
eplay and VBI is enabled. v2: - use READ_ONCE in intel_display_vblank_work - use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6 - use intel_crtc->block_dc6_needed Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296 Signed-off-by: Jouni Högander --- .../gpu/drm/i915

[PATCH v3 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc

2024-09-16 Thread Jouni Högander
t the variable accordingly. v3: check that encoder is dp v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_crtc.c | 17 + .../gpu/drm/i915/display/intel_display_types.h | 7 +++ drivers/gpu/drm

[PATCH v3 0/2] Block DC6 on Vblank enable for Panel Replay

2024-09-16 Thread Jouni Högander
We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't prevent DC6 in case of Panel Replay. This causes problems if user-space is polling for vblank events. v3: check that encoder is dp v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off Jouni Högander (2): drm

[PATCH] drm/i915/psr: eDP Panel Replay is not supported on pipes other than A and B

2024-09-16 Thread Jouni Högander
Do not allow Panel Replay if pipe is other than A or B. Bspec: 68920 Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2736 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915

[PATCH v2 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay

2024-09-16 Thread Jouni Högander
eplay and VBI is enabled. v2: - use READ_ONCE in intel_display_vblank_work - use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6 - use intel_crtc->block_dc6_needed Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296 Signed-off-by: Jouni Högander --- .../gpu/drm/i915

[PATCH v2 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc

2024-09-16 Thread Jouni Högander
t the variable accordingly. v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_crtc.c | 12 drivers/gpu/drm/i915/display/intel_display_types.h | 7 +++ drivers/gpu/drm/i915/display/intel_

[PATCH v2 0/2] Block DC6 on Vblank enable for Panel Replay

2024-09-16 Thread Jouni Högander
We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't prevent DC6 in case of Panel Replay. This causes problems if user-space is polling for vblank events. v2: set/clear block_dc6_needed in intel_crtc_vblank_on/off Jouni Högander (2): drm/i915/display: Add block_dc6_n

[PATCH 1/2] drm/i915/display: Add block_dc6_needed variable into intel_crtc

2024-09-13 Thread Jouni Högander
We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't prevent DC6 in case of Panel Replay. This causes problems if user-space is polling for vblank events. For this purpose add new block_dc6_needed variable into intel_crtc. Signed-off-by: Jouni Högander --- .../gpu/drm

[PATCH 2/2] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay

2024-09-13 Thread Jouni Högander
eplay and VBI is enabled. v2: - use READ_ONCE in intel_display_vblank_work - use DC_STATE_DISABLE instead of DC_STATE_EN_UPTO_DC6 - use intel_crtc->block_dc6_needed Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296 Signed-off-by: Jouni Högander --- .../gpu/drm/i915

[PATCH 0/2] Block DC6 on Vblank enable for Panel Replay

2024-09-13 Thread Jouni Högander
We need to block DC6 entry in case of Panel Replay as enabling VBI doesn't prevent DC6 in case of Panel Replay. This causes problems if user-space is polling for vblank events. Jouni Högander (2): drm/i915/display: Add block_dc6_needed variable into intel_crtc drm/i915/display: Preven

[PATCH] drm/i915/display: Prevent DC6 while vblank is enabled for Panel Replay

2024-09-11 Thread Jouni Högander
eplay and VBI is enabled. Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2296 Signed-off-by: Jouni Högander --- .../gpu/drm/i915/display/intel_display_core.h | 2 + .../gpu/drm/i915/display/intel_display_irq.c | 48 +++ 2 files changed, 50 insertions(+) diff --

[PATCH v2 4/4] drm/i915/psr: Do not wait for PSR being idle on on Panel Replay

2024-09-06 Thread Jouni Högander
into account in Panel Replay code by not waiting PSR getting idle after enabling VBI. Fixes: 29fb595d4875 ("drm/i915/psr: Panel replay uses SRD_STATUS to track it's status") Cc: Animesh Manna Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 13 +

[PATCH v2 3/4] drm/i915/psr: Add connector debugfs files for MST connector as well

2024-09-06 Thread Jouni Högander
Connector debugfs files are currently not add for MST connector. We can now add them as we have taken into account possibility to have NULL in connector->encoder in intel_attached_dp. v2: remove TODO comment Reviewed-by: Imre Deak Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/disp

[PATCH v2 2/4] drm/i915/display: Use intel_attached_dp instead of local implementation

2024-09-06 Thread Jouni Högander
p. Signed-off-by: Jouni Högander --- .../drm/i915/display/intel_dp_link_training.c | 30 +++ 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/drivers/gpu/drm/i915/display/intel_dp_link_training.c index f45

[PATCH v2 1/4] drm/i915/display: Handle MST connector in intel_attached_dp

2024-09-06 Thread Jouni Högander
Connector->encoder might be null for MST connector. Take this into account in intel_attached_dp. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_display_types.h | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/disp

[PATCH v2 0/4] DP2.1 Panel Replay Fixes

2024-09-06 Thread Jouni Högander
intel_attached_dp in link training code Jouni Högander (4): drm/i915/display: Handle MST connector in intel_attached_dp drm/i915/display: Use intel_attached_dp instead of local implementation drm/i915/psr: Add connector debugfs files for MST connector as well drm/i915/psr: Do not wait for PSR being

[PATCH 3/3] drm/i915/psr: Do not wait for PSR being idle on on Panel Replay

2024-09-04 Thread Jouni Högander
into account in Panel Replay code by not waiting PSR getting idle after enabling VBI. Fixes: 29fb595d4875 ("drm/i915/psr: Panel replay uses SRD_STATUS to track it's status") Cc: Animesh Manna Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 13 +

[PATCH 2/3] drm/i915/psr: Add connector debugfs files for MST connector as well

2024-09-04 Thread Jouni Högander
Connector debugfs files are currently not add for MST connector. We can now add them as we have taken into account possibility to have NULL in connector->encoder in intel_attached_dp. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 5 ++--- 1 file changed

[PATCH 1/3] drm/i915/display: Handle MST connector in intel_attached_dp

2024-09-04 Thread Jouni Högander
Connector->encoder might be null for MST connector. Take this into account in intel_attached_dp. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_display_types.h | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/disp

[PATCH 0/3] DP2.1 Panel Replay Fixes

2024-09-04 Thread Jouni Högander
This patch set contains fixes for DP2.1 Panel Replay issues we have found while testing the code using DP2.1 emulator. These issues are related to DP2.1 monitor always being MST. Also wrong usage of SRD_STATUS and PSR2_STATUS registers are fixed. Jouni Högander (3): drm/i915/display: Handle MST

[PATCH v3 1/2] drm/i915/display: Add mechanism to use sink model when applying quirk

2024-09-01 Thread Jouni Högander
intel_init_dpcd_quirks is added and called after drm_dp_read_desc with proper sink device identity read from dpcdc. v3: - !mem_is_zero fixed to mem_is_zero v2: - instead of using struct intel_quirk add new struct intel_dpcd_quirk Signed-off-by: Jouni Högander --- .../drm/i915/display

[PATCH v3 2/2] drm/i915/display: Increase Fast Wake Sync length as a quirk

2024-09-01 Thread Jouni Högander
s/9739 Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2246 Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11762 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_alpm.c | 2 +- drivers/gpu/drm/i915/display/intel_dp_aux.c | 16 +++- drivers/

[PATCH v3 0/2] Increase fastwake sync pulse count as a quirk

2024-09-01 Thread Jouni Högander
struct intel_quirk add new struct intel_dpcd_quirk Jouni Högander (2): drm/i915/display: Add mechanism to use sink model when applying quirk drm/i915/display: Increase Fast Wake Sync length as a quirk drivers/gpu/drm/i915/display/intel_alpm.c | 2 +- .../drm/i915/display

[PATCH] drm/i915/display: use old bpp as a base when modeset is not allowed

2024-08-26 Thread Jouni Högander
rspace. User space should use this bpp to avoid changing bpp if it wants to avoid full mode set. Tackle this for now in our driver by using existing bpp if full modeset is not allowed. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_display.c | 33 ++-- 1 file chan

[PATCH v2 1/2] drm/i915/display: Add mechanism to use sink model when applying quirk

2024-08-23 Thread Jouni Högander
intel_init_dpcd_quirks is added and called after drm_dp_read_desc with proper sink device identity read from dpcdc. v2: - instead of using struct intel_quirk add new struct intel_dpcd_quirk Signed-off-by: Jouni Högander --- .../drm/i915/display/intel_display_types.h| 4 ++ drivers/gpu/drm

[PATCH v2 2/2] drm/i915/display: Increase Fast Wake Sync length as a quirk

2024-08-23 Thread Jouni Högander
s/9739 Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2246 Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11762 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_alpm.c | 2 +- drivers/gpu/drm/i915/display/intel_dp_aux.c | 16 +++- drivers/

[PATCH v2 0/2] Increase fastwake sync pulse count as a quirk

2024-08-23 Thread Jouni Högander
Implement mechanism to apply quirk only if certain panel is detected on certain setup. Use this new mechanism to increase fastwake sync pulse count on certain Dell laptop and only if specific panel is installed on that laptop. Jouni Högander (2): drm/i915/display: Add mechanism to use sink

[PATCH 2/2] drm/i915/display: Increase Fast Wake Sync length as a quirk

2024-08-20 Thread Jouni Högander
s/9739 Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2246 Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11762 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_alpm.c | 2 +- drivers/gpu/drm/i915/display/intel_dp_aux.c | 17 - drivers/

[PATCH 1/2] drm/i915/display: Add mechanism to use sink model when applying quirk

2024-08-20 Thread Jouni Högander
identity read from dpcdc. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_dp.c | 5 ++ drivers/gpu/drm/i915/display/intel_quirks.c | 90 +++-- drivers/gpu/drm/i915/display/intel_quirks.h | 3 + 3 files changed, 74 insertions(+), 24 deletions(-) diff

[PATCH 0/2] Increase fastwake sync pulse count as a quirk

2024-08-20 Thread Jouni Högander
Implement mechanism to apply quirk only if certain panel is detected on certain setup. Use this new mechanism to increase fastwake sync pulse count on certain Dell laptop and only if specific panel is installed on that laptop. Jouni Högander (2): drm/i915/display: Add mechanism to use sink

[PATCH] drm/i915/psr: Prevent Panel Replay if CRC calculation is enabled

2024-08-19 Thread Jouni Högander
Similarly as for PSR2 CRC calculation seems to timeout when Panel Replay is enabled. Fix this by falling back to PSR if CRC calculation is enabled. Closes: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/2266 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 6

[PATCH] drm/i915/psr: Set DP_PSR_SU_REGION_SCANLINE_CAPTURE bit when needed

2024-06-20 Thread Jouni Högander
Panel Replay") Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index a9d9383e4ee5..0dbcaf644624 100644 --- a/drivers/gp

[PATCH v9 11/11] drm/i915/psr: Modify dg2_activate_panel_replay to support eDP

2024-06-18 Thread Jouni Högander
There are couple of bits in PSR2_CTL which needs to be written in case of eDP Panel Replay Bspec: 68920 v2: use boolean instead of assuming eDP Panel Replay mean Early Transport Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 13 + 1 file changed, 13

[PATCH v9 08/11] drm/i915/psr: Perform psr2 checks related to ALPM for Panel Replay

2024-06-18 Thread Jouni Högander
to separate function v3: move vblank check as well v2: do not move Vblank >= PSR2_CTL Block Count Number maximum line count check Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 41 1 file changed, 28 insertions(+), 13 deletions(-) diff

[PATCH v9 09/11] drm/i915/psr: Perform scanline indication check for Panel Replay as well

2024-06-18 Thread Jouni Högander
Scanline indication needs to be checked and configure for both PSR2 and Panel Replay Selective Update. Move this check to intel_sel_update_config_valid. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions

[PATCH v9 06/11] drm/i915/psr: HW will not allow PR on eDP when HDCP enabled

2024-06-18 Thread Jouni Högander
Take into account in Panel Replay compute config that HW will not allow PR on eDP when HDCP enabled. v2: add debug message to print out why Panel Replay is not possible Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 14 ++ 1 file changed, 14

[PATCH v9 10/11] drm/i915/psr: Check Early Transport for Panel Replay as well

2024-06-18 Thread Jouni Högander
Move Early Transport validity check to be performed for Panel Replay as well and use Early Transport for eDP Panel Replay always. v2:set crtc_state->enable_psr2_su_region_et directly (not in if block) Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 6 +++--- 1 f

[PATCH v9 05/11] drm/i915/psr: 128b/132b Panel Replay is not supported on eDP

2024-06-18 Thread Jouni Högander
Take into account that 128b/132b Panel Replay is not supported on eDP. Bspec: 68920 v2: - make crtc_state as const - add debug message to print out why Panel Replay is not possible Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 21 +++-- 1

[PATCH v9 07/11] drm/i915/alpm: Make crtc_state as const in intel_alpm_compute_params

2024-06-18 Thread Jouni Högander
Intel_alpm_compute_params doesn't change crtc_state. Let's convert it as const. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_alpm.c | 9 + drivers/gpu/drm/i915/display/intel_alpm.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/d

[PATCH v9 04/11] drm/i915/psr: Check panel Early Transport capability for eDP PR

2024-06-18 Thread Jouni Högander
Our HW doesn't support panel replay without Early Transport on eDP. Bspec: 68920 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/dr

[PATCH v9 03/11] drm/i915/psr: enable sink for eDP1.5 Panel Replay

2024-06-18 Thread Jouni Högander
configure ALPM for DP2.0 Panel Replay Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 36 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index

[PATCH v9 02/11] drm/i915/psr: Inform Panel Replay source support on eDP as well

2024-06-18 Thread Jouni Högander
Display version >= 20 support eDP 1.5. Inform Panel Replay source support on eDP for display version >= 20. Bspec: 68920 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/dr

[PATCH v9 00/11] Panel Replay eDP support

2024-06-18 Thread Jouni Högander
llow eDP Panel Replay when HDCP is enabled v2: - printout "Selective Update enabled (Early Transport)" instead of "Selective Update Early Transport enabled" - ensure that fastset is performed when the disable bit changes Jouni Högander (11): drm/i915/psr: Check panel A

[PATCH v9 01/11] drm/i915/psr: Check panel ALPM capability for eDP Panel Replay

2024-06-18 Thread Jouni Högander
Our HW doesn't support Panel Replay without AUX_LESS ALPM on eDP. Check panel support for this and prevent eDP panel replay if it doesn't exits. Bspec: 68920 v2: use intel_alpm_aux_less_wake_supported Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 7

[PATCH 9/9] intel_alpm: Fix wrong offset for PORT_ALPM_* registers

2024-06-17 Thread Jouni Högander
PORT_ALPM_* registers are using MMIO_TRANS2 macro. This is not correct as they are port register. Use _PORT_MMIO instead. Fixes: 4ee30a448255 ("drm/i915/alpm: Add ALPM register definitions") Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_alpm.c | 5 +++-- d

[PATCH 6/9] drm/i915/psr: Disable PSR/Panel Replay on sink side for PSR only

2024-06-17 Thread Jouni Högander
Enabling/disabling Panel Replay on sink side has to be done before link training. We can't disable it in sink side on PSR disable. Fixes: 88ae6c65ecdb ("drm/i915/psr: Unify panel replay enable/disable sink") Signed-off-by: Jouni Högander Reviewed-by: Animesh Manna --- drive

[PATCH 3/9] drm/i915/alpm: Fix port clock usage in AUX Less wake time calculation

2024-06-17 Thread Jouni Högander
Port clock is link rate in 10 kbit/s units. Take this into account when calculating AUX Less wake time. Fixes: da6a9836ac09 ("drm/i915/psr: Calculate aux less wake time") Signed-off-by: Jouni Högander Reviewed-by: Animesh Manna --- drivers/gpu/drm/i915/display/intel_alpm.c | 3 +

[PATCH 8/9] Revert "drm/i915/psr: Disable early transport by default"

2024-06-17 Thread Jouni Högander
This reverts commit f3c2031db7dfdf470a2d9bf3bd1efa6edfa72d8d. We want to notice possible issues faced with PSR2 Region Early Transport as early as possible -> let's revert patch disabling Region Early Transport by default. Also eDP 1.5 Panel Replay requires Early Transport. Signed-off-b

[PATCH 2/9] drm/i915/display: Wa 16021440873 is writing wrong register

2024-06-17 Thread Jouni Högander
Wa 16021440873 is writing wrong register. Instead of PIPE_SRCSZ_ERLY_TPT write CURPOS_ERLY_TPT. v2: use right offset as well Fixes: 29cdef8539c3 ("drm/i915/display: Implement Wa_16021440873") Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_cursor.c | 4 ++-- d

[PATCH 4/9] drm/i915/psr: Disable Panel Replay if PSR mode is set via module parameter

2024-06-17 Thread Jouni Högander
of Panel Replay specific checks are increasing. v2: Squash adding Panel Replay compute config helper Signed-off-by: Jouni Högander --- .../drm/i915/display/intel_display_params.c | 3 +-- drivers/gpu/drm/i915/display/intel_psr.c | 27 +-- 2 files changed, 26 insertions

[PATCH 5/9] drm/i915/psr: Disable PSR2 SU Region ET if enable_psr module parameter is set

2024-06-17 Thread Jouni Högander
Region Early Transport is allowed. v2: fix/improve commit desciption Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 13 - 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display

[PATCH 7/9] drm/i915/psr: Add new debug bit to disable Panel Replay

2024-06-17 Thread Jouni Högander
Add new debug bit to be used with i915_edp_psr_debug debugfs interface. This can be used to disable Panel Replay. v2: ensure that fastset is performed when the bit changes Signed-off-by: Jouni Högander Reviewed-by: Animesh Manna --- drivers/gpu/drm/i915/display/intel_display_types.h | 1

[PATCH 0/9] Panel Replay eDP more prepare patches

2024-06-17 Thread Jouni Högander
now as it is tested on two different panels. Jouni Högander (9): drm/i915/psr: Set SU area width as pipe src width drm/i915/display: Wa 16021440873 is writing wrong register drm/i915/alpm: Fix port clock usage in AUX Less wake time calculation drm/i915/psr: Disable Panel Replay if PSR mode

[PATCH 1/9] drm/i915/psr: Set SU area width as pipe src width

2024-06-17 Thread Jouni Högander
Currently SU area width is set as MAX_INT. This is causing problems. Instead set it as pipe src width. Fixes: 86b26b6aeac7 ("drm/i915/psr: Carry su area in crtc_state") Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 2 +- 1 file changed, 1 insertion(+),

[PATCH v8 06/20] drm/i915/psr: Disable PSR2 SU Region Early Transport if psr_enable is set

2024-06-13 Thread Jouni Högander
Currently PSR2 SU Region Early Transport is enabled by default on Lunarlake if panel supports it despite psr_enable value. Prevent SU Region Early Transport if psr_enable is set to than -1 which is the default. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 13

[PATCH v8 11/20] drm/i915/psr: Inform Panel Replay source support on eDP as well

2024-06-13 Thread Jouni Högander
Display version >= 20 support eDP 1.5. Inform Panel Replay source support on eDP for display version >= 20. Bspec: 68920 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/dr

[PATCH v8 14/20] drm/i915/psr: 128b/132b Panel Replay is not supported on eDP

2024-06-13 Thread Jouni Högander
Take into account that 128b/132b Panel Replay is not supported on eDP. Bspec: 68920 v2: - make crtc_state as const - add debug message to print out why Panel Replay is not possible Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 21 +++-- 1

[PATCH v8 17/20] drm/i915/psr: Perform psr2 checks related to ALPM for Panel Replay

2024-06-13 Thread Jouni Högander
to separate function v3: move vblank check as well v2: do not move Vblank >= PSR2_CTL Block Count Number maximum line count check Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 41 1 file changed, 28 insertions(+), 13 deletions(-) diff

[PATCH v8 20/20] drm/i915/psr: Modify dg2_activate_panel_replay to support eDP

2024-06-13 Thread Jouni Högander
There are couple of bits in PSR2_CTL which needs to be written in case of eDP Panel Replay Bspec: 68920 v2: use boolean instead of assuming eDP Panel Replay mean Early Transport Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 13 + 1 file changed, 13

[PATCH v8 08/20] drm/i915/psr: Add new debug bit to disable Panel Replay

2024-06-13 Thread Jouni Högander
Add new debug bit to be used with i915_edp_psr_debug debugfs interface. This can be used to disable Panel Replay. v2: ensure that fastset is performed when the bit changes Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_display_types.h | 1 + drivers/gpu/drm/i915/display

[PATCH v8 19/20] drm/i915/psr: Check Early Transport for Panel Replay as well

2024-06-13 Thread Jouni Högander
Move Early Transport validity check to be performed for Panel Replay as well and use Early Transport for eDP Panel Replay always. v2:set crtc_state->enable_psr2_su_region_et directly (not in if block) Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 6 +++--- 1 f

[PATCH v8 13/20] drm/i915/psr: Check panel Early Transport capability for eDP PR

2024-06-13 Thread Jouni Högander
Our HW doesn't support panel replay without Early Transport on eDP. Bspec: 68920 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/dr

[PATCH v8 10/20] drm/i915/psr: Check panel ALPM capability for eDP Panel Replay

2024-06-13 Thread Jouni Högander
Our HW doesn't support Panel Replay without AUX_LESS ALPM on eDP. Check panel support for this and prevent eDP panel replay if it doesn't exits. Bspec: 68920 v2: use intel_alpm_aux_less_wake_supported Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 7

[PATCH v8 04/20] drm/i915/psr: Add Panel Replay compute_config helper

2024-06-13 Thread Jouni Högander
We are about to add more checks for Panel Replay. Due to that it makes sense to add now Panel Replay compute config helper. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm

  1   2   3   4   5   6   7   8   9   10   >