* [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB
@ 2025-04-16 6:27 Mitul Golani
2025-04-16 6:27 ` [PATCH v1 1/8] drm/i915/vrr: Add DC balance registers Mitul Golani
` (10 more replies)
0 siblings, 11 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Control DC Balance Adjustment bit to accomodate changes along
with VRR DSB implementation.
Mitul Golani (8):
drm/i915/vrr: Add DC balance registers
drm/i915/dmc: Add pipe DMC DC balance registers
drm/i915/vrr: Refactor vmin/vmax stuff
drm/i915/vrr: Add functions to read out vmin/vmax stuff
drm/i915: Extract vrr_vblank_start()
drm/i915/vrr: Implement vblank evasion with DC balancing
drm/i915/dsb: Add pipedmc dc balance enable/disable
drm/i915/vrr: Pause DC balancing for DSB commits
drivers/gpu/drm/i915/display/intel_display.c | 13 ++
.../drm/i915/display/intel_display_types.h | 2 +-
drivers/gpu/drm/i915/display/intel_dmc.c | 16 ++
drivers/gpu/drm/i915/display/intel_dmc.h | 5 +
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 37 +++++
drivers/gpu/drm/i915/display/intel_dsb.c | 31 +++-
drivers/gpu/drm/i915/display/intel_vblank.c | 33 ++++-
drivers/gpu/drm/i915/display/intel_vrr.c | 138 +++++++++++++-----
drivers/gpu/drm/i915/display/intel_vrr.h | 5 +
drivers/gpu/drm/i915/display/intel_vrr_regs.h | 43 ++++++
10 files changed, 284 insertions(+), 39 deletions(-)
--
2.48.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v1 1/8] drm/i915/vrr: Add DC balance registers
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 8:29 ` Jani Nikula
2025-04-16 6:27 ` [PATCH v1 2/8] drm/i915/dmc: Add pipe DMC " Mitul Golani
` (9 subsequent siblings)
10 siblings, 1 reply; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Add register to access DC Balance registers.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_vrr_regs.h | 43 +++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_vrr_regs.h b/drivers/gpu/drm/i915/display/intel_vrr_regs.h
index 6ed0e0dc97e7..6297108f1357 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_vrr_regs.h
@@ -9,6 +9,20 @@
#include "intel_display_reg_defs.h"
/* VRR registers */
+#define _TRANS_VRR_VMAX_DCB_A 0x60414 /* lnl+ */
+#define _TRANS_VRR_VMAX_DCB_B 0x61414 /* lnl+ */
+#define TRANS_VRR_VMAX_DCB(trans) _MMIO_TRANS((trans), \
+ _TRANS_VRR_VMAX_DCB_A, \
+ _TRANS_VRR_VMAX_DCB_B)
+#define VRR_VMAX_DCB_MASK REG_GENMASK(19, 0)
+
+#define _TRANS_VRR_FLIPLINE_DCB_A 0x60418 /* lnl+ */
+#define _TRANS_VRR_FLIPLINE_DCB_B 0x61418 /* lnl+ */
+#define TRANS_VRR_FLIPLINE_DCB(trans) _MMIO_TRANS((trans), \
+ _TRANS_VRR_FLIPLINE_DCB_A, \
+ _TRANS_VRR_FLIPLINE_DCB_B)
+#define VRR_FLIPLINE_DCB_MASK REG_GENMASK(19, 0)
+
#define _TRANS_VRR_CTL_A 0x60420
#define _TRANS_VRR_CTL_B 0x61420
#define _TRANS_VRR_CTL_C 0x62420
@@ -17,6 +31,7 @@
#define VRR_CTL_VRR_ENABLE REG_BIT(31)
#define VRR_CTL_IGN_MAX_SHIFT REG_BIT(30)
#define VRR_CTL_FLIP_LINE_EN REG_BIT(29)
+#define VRR_CTL_DCB_ADJ_ENABLE REG_BIT(28) /* lnl+ */
#define VRR_CTL_PIPELINE_FULL_MASK REG_GENMASK(10, 3)
#define VRR_CTL_PIPELINE_FULL(x) REG_FIELD_PREP(VRR_CTL_PIPELINE_FULL_MASK, (x))
#define VRR_CTL_PIPELINE_FULL_OVERRIDE REG_BIT(0)
@@ -93,6 +108,34 @@
#define TRANS_VRR_STATUS2(dev_priv, trans) _MMIO_TRANS2(dev_priv, trans, _TRANS_VRR_STATUS2_A)
#define VRR_STATUS2_VERT_LN_CNT_MASK REG_GENMASK(19, 0)
+#define _TRANS_ADAPTIVE_SYNC_DCB_CTL_A 0x604c0 /* lnl+ */
+#define _TRANS_ADAPTIVE_SYNC_DCB_CTL_B 0x614c0 /* lnl+ */
+#define TRANS_ADAPTIVE_SYNC_DCB_CTL(trans) _MMIO_TRANS((trans), \
+ _TRANS_ADAPTIVE_SYNC_DCB_CTL_A, \
+ _TRANS_ADAPTIVE_SYNC_DCB_CTL_B)
+#define ADAPTIVE_SYNC_COUNTER_EN REG_BIT(31)
+#define ADAPTIVE_SYNC_COUNTER_RESET REG_BIT(30)
+#define ADAPTIVE_SYNC_ODD_COUNTER_OVERFLOW REG_BIT(15)
+#define ADAPTIVE_SYNC_EVEN_COUNTER_OVERFLOW REG_BIT(14)
+#define ADAPTIVE_SYNC_ODD_LINE_COUNTER_OVERFLOW REG_BIT(13)
+#define ADAPTIVE_SYNC_EVEN_LINE_COUNTER_OVERFLOW REG_BIT(12)
+
+#define _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_A 0x604d4 /* lnl+ */
+#define _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_B 0x614d4 /* lnl+ */
+#define TRANS_VRR_DCB_ADJ_FLIPLINE_CFG(trans) _MMIO_TRANS((trans), \
+ _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_A, \
+ _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_B)
+#define VRR_DCB_ADJ_FLIPLINE_CNT_MASK REG_GENMASK(31, 24)
+#define VRR_DCB_ADJ_FLIPLINE_MASK REG_GENMASK(19, 0)
+
+#define _TRANS_VRR_DCB_ADJ_VMAX_CFG_A 0x604d8 /* lnl+ */
+#define _TRANS_VRR_DCB_ADJ_VMAX_CFG_B 0x614d8 /* lnl+ */
+#define TRANS_VRR_DCB_ADJ_VMAX_CFG(trans) _MMIO_TRANS((trans), \
+ _TRANS_VRR_DCB_ADJ_VMAX_CFG_A, \
+ _TRANS_VRR_DCB_ADJ_VMAX_CFG_B)
+#define VRR_DCB_ADJ_VMAX_CNT_MASK REG_GENMASK(31, 24)
+#define VRR_DCB_ADJ_VMAX_MASK REG_GENMASK(19, 0)
+
#define _TRANS_PUSH_A 0x60a70
#define _TRANS_PUSH_B 0x61a70
#define _TRANS_PUSH_C 0x62a70
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 2/8] drm/i915/dmc: Add pipe DMC DC balance registers
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
2025-04-16 6:27 ` [PATCH v1 1/8] drm/i915/vrr: Add DC balance registers Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 6:27 ` [PATCH v1 3/8] drm/i915/vrr: Refactor vmin/vmax stuff Mitul Golani
` (8 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Add pipe registers to access pipe DMC DC Balance registers.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_dmc_regs.h | 37 +++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_dmc_regs.h b/drivers/gpu/drm/i915/display/intel_dmc_regs.h
index 1bf446f96a10..5ac409fbbc4e 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_dmc_regs.h
@@ -103,4 +103,41 @@
#define DMC_WAKELOCK_CTL_REQ REG_BIT(31)
#define DMC_WAKELOCK_CTL_ACK REG_BIT(15)
+#define _PIPEDMC_DCB_CTL_A 0x5f1a0
+#define _PIPEDMC_DCB_CTL_B 0x5f5a0
+#define PIPEDMC_DCB_CTL(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_CTL_A, _PIPEDMC_DCB_CTL_B)
+#define PIPEDMC_ADAPTIVE_DCB_ENABLE REG_BIT(31)
+
+#define _PIPEDMC_DCB_VMIN_A 0x5f1a4
+#define _PIPEDMC_DCB_VMIN_B 0x5f5a4
+#define PIPEDMC_DCB_VMIN(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_VMIN_A, _PIPEDMC_DCB_VMIN_B)
+
+#define _PIPEDMC_DCB_VMAX_A 0x5f1a8
+#define _PIPEDMC_DCB_VMAX_B 0x5f5a8
+#define PIPEDMC_DCB_VMAX(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_VMAX_A, _PIPEDMC_DCB_VMAX_B)
+
+#define _PIPEDMC_DCB_MAX_INCREASE_A 0x5f1ac
+#define _PIPEDMC_DCB_MAX_INCREASE_B 0x5f5ac
+#define PIPEDMC_DCB_MAX_INCREASE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_MAX_INCREASE_A, _PIPEDMC_DCB_MAX_INCREASE_B)
+
+#define _PIPEDMC_DCB_MAX_DECREASE_A 0x5f1b0
+#define _PIPEDMC_DCB_MAX_DECREASE_B 0x5f5b0
+#define PIPEDMC_DCB_MAX_DECREASE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_MAX_DECREASE_A, _PIPEDMC_DCB_MAX_DECREASE_B)
+
+#define _PIPEDMC_DCB_GUARDBAND_A 0x5f1b4
+#define _PIPEDMC_DCB_GUARDBAND_B 0x5f5b4
+#define PIPEDMC_DCB_GUARDBAND(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_GUARDBAND_A, _PIPEDMC_DCB_GUARDBAND_B)
+
+#define _PIPEDMC_DCB_SLOPE_A 0x5f1b8
+#define _PIPEDMC_DCB_SLOPE_B 0x5f5b8
+#define PIPEDMC_DCB_SLOPE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_SLOPE_A, _PIPEDMC_DCB_SLOPE_B)
+
+#define _PIPEDMC_DCB_VBLANK_A 0x5f1bc
+#define _PIPEDMC_DCB_VBLANK_B 0x5f5bc
+#define PIPEDMC_DCB_VBLANK(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_VBLANK_A, _PIPEDMC_DCB_VBLANK_B)
+
+#define _PIPEDMC_DCB_DEBUG_A 0x5f1c0
+#define _PIPEDMC_DCB_DEBUG_B 0x5f5c0
+#define PIPEDMC_DCB_DEBUG(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_DEBUG_A, _PIPEDMC_DCB_DEBUG_B)
+
#endif /* __INTEL_DMC_REGS_H__ */
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 3/8] drm/i915/vrr: Refactor vmin/vmax stuff
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
2025-04-16 6:27 ` [PATCH v1 1/8] drm/i915/vrr: Add DC balance registers Mitul Golani
2025-04-16 6:27 ` [PATCH v1 2/8] drm/i915/dmc: Add pipe DMC " Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 6:27 ` [PATCH v1 4/8] drm/i915/vrr: Add functions to read out " Mitul Golani
` (7 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Refactor vmin/vmax functions for better computation.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_vrr.c | 42 +++++++++++-------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index c6565baf815a..afa1728837d2 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -146,37 +146,42 @@ static int intel_vrr_vblank_exit_length(const struct intel_crtc_state *crtc_stat
return crtc_state->vrr.pipeline_full + crtc_state->framestart_delay + 1;
}
-int intel_vrr_vmin_vtotal(const struct intel_crtc_state *crtc_state)
+static int intel_vrr_vtotal(const struct intel_crtc_state *crtc_state, int vmin_vmax)
{
struct intel_display *display = to_intel_display(crtc_state);
- /* Min vblank actually determined by flipline */
if (DISPLAY_VER(display) >= 13)
- return intel_vrr_vmin_flipline(crtc_state);
+ return vmin_vmax;
else
- return intel_vrr_vmin_flipline(crtc_state) +
- intel_vrr_real_vblank_delay(crtc_state);
+ return vmin_vmax + intel_vrr_real_vblank_delay(crtc_state);
}
-int intel_vrr_vmax_vtotal(const struct intel_crtc_state *crtc_state)
+
+static int intel_vrr_vblank_start(const struct intel_crtc_state *crtc_state,
+ int vmin_vmax)
{
- struct intel_display *display = to_intel_display(crtc_state);
+ return intel_vrr_vtotal(crtc_state, vmin_vmax) -
+ intel_vrr_vblank_exit_length(crtc_state);
+}
- if (DISPLAY_VER(display) >= 13)
- return crtc_state->vrr.vmax;
- else
- return crtc_state->vrr.vmax +
- intel_vrr_real_vblank_delay(crtc_state);
+int intel_vrr_vmin_vtotal(const struct intel_crtc_state *crtc_state)
+{
+ return intel_vrr_vtotal(crtc_state, intel_vrr_vmin_flipline(crtc_state));
+}
+
+int intel_vrr_vmax_vtotal(const struct intel_crtc_state *crtc_state)
+{
+ return intel_vrr_vtotal(crtc_state, crtc_state->vrr.vmax);
}
int intel_vrr_vmin_vblank_start(const struct intel_crtc_state *crtc_state)
{
- return intel_vrr_vmin_vtotal(crtc_state) - intel_vrr_vblank_exit_length(crtc_state);
+ return intel_vrr_vblank_start(crtc_state, intel_vrr_vmin_flipline(crtc_state));
}
int intel_vrr_vmax_vblank_start(const struct intel_crtc_state *crtc_state)
{
- return intel_vrr_vmax_vtotal(crtc_state) - intel_vrr_vblank_exit_length(crtc_state);
+ return intel_vrr_vblank_start(crtc_state, crtc_state->vrr.vmax);
}
static bool
@@ -257,14 +262,7 @@ void intel_vrr_compute_vrr_timings(struct intel_crtc_state *crtc_state)
static
int intel_vrr_fixed_rr_vtotal(const struct intel_crtc_state *crtc_state)
{
- struct intel_display *display = to_intel_display(crtc_state);
- int crtc_vtotal = crtc_state->hw.adjusted_mode.crtc_vtotal;
-
- if (DISPLAY_VER(display) >= 13)
- return crtc_vtotal;
- else
- return crtc_vtotal -
- intel_vrr_real_vblank_delay(crtc_state);
+ return intel_vrr_vtotal(crtc_state, crtc_state->hw.adjusted_mode.crtc_vtotal);
}
static
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 4/8] drm/i915/vrr: Add functions to read out vmin/vmax stuff
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (2 preceding siblings ...)
2025-04-16 6:27 ` [PATCH v1 3/8] drm/i915/vrr: Refactor vmin/vmax stuff Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 6:27 ` [PATCH v1 5/8] drm/i915: Extract vrr_vblank_start() Mitul Golani
` (6 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Calculate delayed vblank start position with the help of added
vmin/vmax stuff for next frame and final computation.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_vrr.c | 55 +++++++++++++++++++++++-
drivers/gpu/drm/i915/display/intel_vrr.h | 5 +++
2 files changed, 59 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index afa1728837d2..03405c274b8c 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -156,7 +156,6 @@ static int intel_vrr_vtotal(const struct intel_crtc_state *crtc_state, int vmin_
return vmin_vmax + intel_vrr_real_vblank_delay(crtc_state);
}
-
static int intel_vrr_vblank_start(const struct intel_crtc_state *crtc_state,
int vmin_vmax)
{
@@ -747,3 +746,57 @@ void intel_vrr_get_config(struct intel_crtc_state *crtc_state)
if (crtc_state->vrr.enable)
crtc_state->mode_flags |= I915_MODE_FLAG_VRR;
}
+
+int intel_vrr_dcb_vmin_vblank_start_next(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+ u32 tmp;
+
+ tmp = intel_de_read(display, TRANS_VRR_DCB_ADJ_FLIPLINE_CFG(cpu_transcoder));
+
+ if (REG_FIELD_GET(VRR_DCB_ADJ_FLIPLINE_CNT_MASK, tmp) == 0)
+ return -1;
+
+ return intel_vrr_vblank_start(crtc_state,
+ REG_FIELD_GET(VRR_DCB_ADJ_FLIPLINE_MASK, tmp) + 1);
+}
+
+int intel_vrr_dcb_vmax_vblank_start_next(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+ u32 tmp;
+
+ tmp = intel_de_read(display, TRANS_VRR_DCB_ADJ_VMAX_CFG(cpu_transcoder));
+
+ if (REG_FIELD_GET(VRR_DCB_ADJ_VMAX_CNT_MASK, tmp) == 0)
+ return -1;
+
+ return intel_vrr_vblank_start(crtc_state,
+ REG_FIELD_GET(VRR_DCB_ADJ_VMAX_MASK, tmp) + 1);
+}
+
+int intel_vrr_dcb_vmin_vblank_start_final(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+ u32 tmp;
+
+ tmp = intel_de_read(display, TRANS_VRR_FLIPLINE_DCB(cpu_transcoder));
+
+ return intel_vrr_vblank_start(crtc_state,
+ REG_FIELD_GET(VRR_FLIPLINE_DCB_MASK, tmp) + 1);
+}
+
+int intel_vrr_dcb_vmax_vblank_start_final(const struct intel_crtc_state *crtc_state)
+{
+ struct intel_display *display = to_intel_display(crtc_state);
+ enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+ u32 tmp;
+
+ tmp = intel_de_read(display, TRANS_VRR_VMAX_DCB(cpu_transcoder));
+
+ return intel_vrr_vblank_start(crtc_state,
+ REG_FIELD_GET(VRR_VMAX_DCB_MASK, tmp) + 1);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.h b/drivers/gpu/drm/i915/display/intel_vrr.h
index 38bf9996b883..e62b8b50aec6 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.h
+++ b/drivers/gpu/drm/i915/display/intel_vrr.h
@@ -42,4 +42,9 @@ void intel_vrr_transcoder_disable(const struct intel_crtc_state *crtc_state);
void intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state *crtc_state);
bool intel_vrr_always_use_vrr_tg(struct intel_display *display);
+int intel_vrr_dcb_vmin_vblank_start_next(const struct intel_crtc_state *crtc_state);
+int intel_vrr_dcb_vmax_vblank_start_next(const struct intel_crtc_state *crtc_state);
+int intel_vrr_dcb_vmin_vblank_start_final(const struct intel_crtc_state *crtc_state);
+int intel_vrr_dcb_vmax_vblank_start_final(const struct intel_crtc_state *crtc_state);
+
#endif /* __INTEL_VRR_H__ */
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 5/8] drm/i915: Extract vrr_vblank_start()
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (3 preceding siblings ...)
2025-04-16 6:27 ` [PATCH v1 4/8] drm/i915/vrr: Add functions to read out " Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 6:27 ` [PATCH v1 6/8] drm/i915/vrr: Implement vblank evasion with DC balancing Mitul Golani
` (5 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Initialise delayed vblank position for evasion logic.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_vblank.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 139fa5deba80..680013f00fc0 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -642,6 +642,14 @@ intel_pre_commit_crtc_state(struct intel_atomic_state *state,
return pre_commit_crtc_state(old_crtc_state, new_crtc_state);
}
+static int vrr_vblank_start(const struct intel_crtc_state *crtc_state)
+{
+ if (intel_vrr_is_push_sent(crtc_state))
+ return intel_vrr_vmin_vblank_start(crtc_state);
+ else
+ return intel_vrr_vmax_vblank_start(crtc_state);
+}
+
void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
const struct intel_crtc_state *new_crtc_state,
struct intel_vblank_evade_ctx *evade)
@@ -668,10 +676,7 @@ void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
drm_WARN_ON(crtc->base.dev, intel_crtc_needs_modeset(new_crtc_state) ||
new_crtc_state->update_m_n || new_crtc_state->update_lrr);
- if (intel_vrr_is_push_sent(crtc_state))
- evade->vblank_start = intel_vrr_vmin_vblank_start(crtc_state);
- else
- evade->vblank_start = intel_vrr_vmax_vblank_start(crtc_state);
+ evade->vblank_start = vrr_vblank_start(crtc_state);
vblank_delay = intel_vrr_vblank_delay(crtc_state);
} else {
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 6/8] drm/i915/vrr: Implement vblank evasion with DC balancing
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (4 preceding siblings ...)
2025-04-16 6:27 ` [PATCH v1 5/8] drm/i915: Extract vrr_vblank_start() Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 6:27 ` [PATCH v1 7/8] drm/i915/dsb: Add pipedmc dc balance enable/disable Mitul Golani
` (4 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Add vblank evasion logic when vrr is already enabled along with
dc balance is computed.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
.../drm/i915/display/intel_display_types.h | 2 +-
drivers/gpu/drm/i915/display/intel_dsb.c | 31 ++++++++++++++++++-
drivers/gpu/drm/i915/display/intel_vblank.c | 26 ++++++++++++++--
3 files changed, 54 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 94468a9d2e0d..0e06c71e9086 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1303,7 +1303,7 @@ struct intel_crtc_state {
/* Variable Refresh Rate state */
struct {
- bool enable, in_range;
+ bool enable, in_range, dc_balance;
u8 pipeline_full;
u16 flipline, vmin, vmax, guardband;
u32 vsync_end, vsync_start;
diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
index 72fe390c5af2..ed27cbff44fc 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -577,7 +577,36 @@ void intel_dsb_vblank_evade(struct intel_atomic_state *state,
if (crtc_state->has_psr)
intel_dsb_emit_wait_dsl(dsb, DSB_OPCODE_WAIT_DSL_OUT, 0, 0);
- if (pre_commit_is_vrr_active(state, crtc)) {
+ if (pre_commit_is_vrr_active(state, crtc) && crtc_state->vrr.dc_balance) {
+ int vblank_delay = intel_vrr_vblank_delay(crtc_state);
+ int vmin_vblank_start, vmax_vblank_start;
+
+ vmin_vblank_start = intel_vrr_dcb_vmin_vblank_start_next(crtc_state);
+
+ if (vmin_vblank_start >= 0) {
+ end = vmin_vblank_start;
+ start = end - vblank_delay - latency;
+ intel_dsb_wait_scanline_out(state, dsb, start, end);
+ }
+
+ vmax_vblank_start = intel_vrr_dcb_vmax_vblank_start_next(crtc_state);
+
+ if (vmax_vblank_start >= 0) {
+ end = vmax_vblank_start;
+ start = end - vblank_delay - latency;
+ intel_dsb_wait_scanline_out(state, dsb, start, end);
+ }
+
+ vmin_vblank_start = intel_vrr_dcb_vmin_vblank_start_final(crtc_state);
+ end = vmin_vblank_start;
+ start = end - vblank_delay - latency;
+ intel_dsb_wait_scanline_out(state, dsb, start, end);
+
+ vmax_vblank_start = intel_vrr_dcb_vmax_vblank_start_final(crtc_state);
+ end = vmax_vblank_start;
+ start = end - vblank_delay - latency;
+ intel_dsb_wait_scanline_out(state, dsb, start, end);
+ } else if (pre_commit_is_vrr_active(state, crtc)) {
int vblank_delay = intel_vrr_vblank_delay(crtc_state);
end = intel_vrr_vmin_vblank_start(crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
index 680013f00fc0..9b63e4217881 100644
--- a/drivers/gpu/drm/i915/display/intel_vblank.c
+++ b/drivers/gpu/drm/i915/display/intel_vblank.c
@@ -644,10 +644,30 @@ intel_pre_commit_crtc_state(struct intel_atomic_state *state,
static int vrr_vblank_start(const struct intel_crtc_state *crtc_state)
{
- if (intel_vrr_is_push_sent(crtc_state))
- return intel_vrr_vmin_vblank_start(crtc_state);
+ bool is_push_sent = intel_vrr_is_push_sent(crtc_state);
+ int vblank_start;
+
+ if (!crtc_state->vrr.dc_balance) {
+ if (is_push_sent)
+ return intel_vrr_vmin_vblank_start(crtc_state);
+ else
+ return intel_vrr_vmax_vblank_start(crtc_state);
+ }
+
+ if (is_push_sent)
+ vblank_start = intel_vrr_dcb_vmin_vblank_start_next(crtc_state);
else
- return intel_vrr_vmax_vblank_start(crtc_state);
+ vblank_start = intel_vrr_dcb_vmax_vblank_start_next(crtc_state);
+
+ if (vblank_start >= 0)
+ return vblank_start;
+
+ if (is_push_sent)
+ vblank_start = intel_vrr_dcb_vmin_vblank_start_final(crtc_state);
+ else
+ vblank_start = intel_vrr_dcb_vmax_vblank_start_final(crtc_state);
+
+ return vblank_start;
}
void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 7/8] drm/i915/dsb: Add pipedmc dc balance enable/disable
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (5 preceding siblings ...)
2025-04-16 6:27 ` [PATCH v1 6/8] drm/i915/vrr: Implement vblank evasion with DC balancing Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 6:27 ` [PATCH v1 8/8] drm/i915/vrr: Pause DC balancing for DSB commits Mitul Golani
` (3 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Add function to control DC balance enable/disable bit via DSB.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_dmc.c | 16 ++++++++++++++++
drivers/gpu/drm/i915/display/intel_dmc.h | 5 +++++
2 files changed, 21 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
index 98f80a6c63e8..17835b297f6d 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.c
+++ b/drivers/gpu/drm/i915/display/intel_dmc.c
@@ -30,6 +30,7 @@
#include "intel_de.h"
#include "intel_display_rpm.h"
#include "intel_display_power_well.h"
+#include "intel_display_types.h"
#include "intel_dmc.h"
#include "intel_dmc_regs.h"
#include "intel_step.h"
@@ -1362,3 +1363,18 @@ void intel_dmc_debugfs_register(struct intel_display *display)
debugfs_create_file("i915_dmc_info", 0444, minor->debugfs_root,
display, &intel_dmc_debugfs_status_fops);
}
+
+void intel_pipedmc_dcb_enable(struct intel_dsb *dsb, struct intel_crtc *crtc)
+{
+ struct intel_display *display = to_intel_display(crtc);
+
+ intel_de_write_dsb(display, dsb, PIPEDMC_DCB_CTL(crtc->pipe),
+ PIPEDMC_ADAPTIVE_DCB_ENABLE);
+}
+
+void intel_pipedmc_dcb_disable(struct intel_dsb *dsb, struct intel_crtc *crtc)
+{
+ struct intel_display *display = to_intel_display(crtc);
+
+ intel_de_write_dsb(display, dsb, PIPEDMC_DCB_CTL(crtc->pipe), 0);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_dmc.h b/drivers/gpu/drm/i915/display/intel_dmc.h
index c78426eb4cd5..74dcd142f5b1 100644
--- a/drivers/gpu/drm/i915/display/intel_dmc.h
+++ b/drivers/gpu/drm/i915/display/intel_dmc.h
@@ -10,8 +10,10 @@
enum pipe;
struct drm_printer;
+struct intel_crtc;
struct intel_display;
struct intel_dmc_snapshot;
+struct intel_dsb;
void intel_dmc_init(struct intel_display *display);
void intel_dmc_load_program(struct intel_display *display);
@@ -30,4 +32,7 @@ void intel_dmc_update_dc6_allowed_count(struct intel_display *display, bool star
void assert_dmc_loaded(struct intel_display *display);
+void intel_pipedmc_dcb_enable(struct intel_dsb *dsb, struct intel_crtc *crtc);
+void intel_pipedmc_dcb_disable(struct intel_dsb *dsb, struct intel_crtc *crtc);
+
#endif /* __INTEL_DMC_H__ */
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v1 8/8] drm/i915/vrr: Pause DC balancing for DSB commits
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (6 preceding siblings ...)
2025-04-16 6:27 ` [PATCH v1 7/8] drm/i915/dsb: Add pipedmc dc balance enable/disable Mitul Golani
@ 2025-04-16 6:27 ` Mitul Golani
2025-04-16 7:33 ` ✗ Fi.CI.CHECKPATCH: warning for Enable/Disable DC balance along with VRR DSB Patchwork
` (2 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Mitul Golani @ 2025-04-16 6:27 UTC (permalink / raw)
To: intel-gfx
Pause the DMC DC balancing for the remainder of the
commit so that vmin/vmax won't change after we've baked
them into the DSB vblank evasion commands.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_display.c | 13 ++++++
drivers/gpu/drm/i915/display/intel_vrr.c | 43 +++++++++++++++-----
2 files changed, 45 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index db524d01e574..7373c11e6e8d 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7195,6 +7195,17 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state,
}
if (new_crtc_state->use_dsb) {
+ /*
+ * Pause the DMC DC balancing for the remainder of the
+ * commit so that vmin/vmax won't change after we've baked
+ * them into the DSB vblank evasion commands.
+ *
+ * FIXME maybe need a small delay here to make sure DMC has
+ * finished updating the values? Or we need a better DMC<->driver
+ * protocol that gives is real guarantees about that...
+ */
+ intel_pipedmc_dcb_disable(NULL, crtc);
+
if (intel_crtc_needs_color_update(new_crtc_state))
intel_color_commit_noarm(new_crtc_state->dsb_commit,
new_crtc_state);
@@ -7231,6 +7242,8 @@ static void intel_atomic_dsb_finish(struct intel_atomic_state *state,
intel_vrr_send_push(new_crtc_state->dsb_commit, new_crtc_state);
intel_dsb_wait_vblank_delay(state, new_crtc_state->dsb_commit);
intel_vrr_check_push_sent(new_crtc_state->dsb_commit, new_crtc_state);
+ if (new_crtc_state->vrr.dc_balance)
+ intel_pipedmc_dcb_enable(new_crtc_state->dsb_commit, crtc);
intel_dsb_interrupt(new_crtc_state->dsb_commit);
}
}
diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
index 03405c274b8c..18c38afb9108 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -9,6 +9,7 @@
#include "i915_reg.h"
#include "intel_de.h"
#include "intel_display_types.h"
+#include "intel_dmc.h"
#include "intel_dp.h"
#include "intel_vrr.h"
#include "intel_vrr_regs.h"
@@ -576,7 +577,9 @@ bool intel_vrr_always_use_vrr_tg(struct intel_display *display)
void intel_vrr_enable(const struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+ u32 ctl;
if (!crtc_state->vrr.enable)
return;
@@ -587,33 +590,51 @@ void intel_vrr_enable(const struct intel_crtc_state *crtc_state)
crtc_state->vrr.vmax - 1);
intel_de_write(display, TRANS_VRR_FLIPLINE(display, cpu_transcoder),
crtc_state->vrr.flipline - 1);
+ if (!intel_vrr_always_use_vrr_tg(display))
+ intel_de_write(display, TRANS_PUSH(display, cpu_transcoder), TRANS_PUSH_EN);
intel_de_write(display, TRANS_PUSH(display, cpu_transcoder),
TRANS_PUSH_EN);
- if (!intel_vrr_always_use_vrr_tg(display)) {
- if (crtc_state->cmrr.enable) {
- intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder),
- VRR_CTL_VRR_ENABLE | VRR_CTL_CMRR_ENABLE |
- trans_vrr_ctl(crtc_state));
- } else {
- intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder),
- VRR_CTL_VRR_ENABLE | trans_vrr_ctl(crtc_state));
- }
+ ctl = VRR_CTL_VRR_ENABLE | trans_vrr_ctl(crtc_state);
+ if (crtc_state->cmrr.enable)
+ ctl |= VRR_CTL_CMRR_ENABLE;
+ if (crtc_state->vrr.dc_balance)
+ ctl |= VRR_CTL_DCB_ADJ_ENABLE;
+
+ intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder), ctl);
+
+ if (crtc_state->vrr.dc_balance) {
+ /* FIXME reset counters? */
+ intel_de_write(display, TRANS_ADAPTIVE_SYNC_DCB_CTL(cpu_transcoder),
+ ADAPTIVE_SYNC_COUNTER_EN);
+ /* FIMXE configure pipedmc DC balance parameters somewhere */
+ intel_pipedmc_dcb_enable(NULL, crtc);
}
}
void intel_vrr_disable(const struct intel_crtc_state *old_crtc_state)
{
struct intel_display *display = to_intel_display(old_crtc_state);
+ struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
+ u32 ctl;
if (!old_crtc_state->vrr.enable)
return;
+ if (old_crtc_state->vrr.dc_balance) {
+ intel_pipedmc_dcb_disable(NULL, crtc);
+ intel_de_write(display, TRANS_ADAPTIVE_SYNC_DCB_CTL(cpu_transcoder), 0);
+ }
+
+ ctl = trans_vrr_ctl(old_crtc_state);
+ if (intel_vrr_always_use_vrr_tg(display))
+ ctl |= VRR_CTL_VRR_ENABLE;
+
+ intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder), ctl);
+
if (!intel_vrr_always_use_vrr_tg(display)) {
- intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder),
- trans_vrr_ctl(old_crtc_state));
intel_de_wait_for_clear(display,
TRANS_VRR_STATUS(display, cpu_transcoder),
VRR_STATUS_VRR_EN_LIVE, 1000);
--
2.48.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for Enable/Disable DC balance along with VRR DSB
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (7 preceding siblings ...)
2025-04-16 6:27 ` [PATCH v1 8/8] drm/i915/vrr: Pause DC balancing for DSB commits Mitul Golani
@ 2025-04-16 7:33 ` Patchwork
2025-04-16 13:23 ` ✗ i915.CI.BAT: failure " Patchwork
2025-04-16 15:07 ` [PATCH v1 0/8] " Ville Syrjälä
10 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2025-04-16 7:33 UTC (permalink / raw)
To: Mitul Golani; +Cc: intel-gfx
== Series Details ==
Series: Enable/Disable DC balance along with VRR DSB
URL : https://patchwork.freedesktop.org/series/147799/
State : warning
== Summary ==
Error: dim checkpatch failed
7b2e46a2d56f drm/i915/vrr: Add DC balance registers
-:80: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 0 warnings, 0 checks, 61 lines checked
8ef5cb29300f drm/i915/dmc: Add pipe DMC DC balance registers
-:36: WARNING:LONG_LINE: line length of 116 exceeds 100 columns
#36: FILE: drivers/gpu/drm/i915/display/intel_dmc_regs.h:121:
+#define PIPEDMC_DCB_MAX_INCREASE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_MAX_INCREASE_A, _PIPEDMC_DCB_MAX_INCREASE_B)
-:40: WARNING:LONG_LINE: line length of 116 exceeds 100 columns
#40: FILE: drivers/gpu/drm/i915/display/intel_dmc_regs.h:125:
+#define PIPEDMC_DCB_MAX_DECREASE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_MAX_DECREASE_A, _PIPEDMC_DCB_MAX_DECREASE_B)
-:44: WARNING:LONG_LINE: line length of 110 exceeds 100 columns
#44: FILE: drivers/gpu/drm/i915/display/intel_dmc_regs.h:129:
+#define PIPEDMC_DCB_GUARDBAND(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_GUARDBAND_A, _PIPEDMC_DCB_GUARDBAND_B)
-:48: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#48: FILE: drivers/gpu/drm/i915/display/intel_dmc_regs.h:133:
+#define PIPEDMC_DCB_SLOPE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_SLOPE_A, _PIPEDMC_DCB_SLOPE_B)
-:52: WARNING:LONG_LINE: line length of 104 exceeds 100 columns
#52: FILE: drivers/gpu/drm/i915/display/intel_dmc_regs.h:137:
+#define PIPEDMC_DCB_VBLANK(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_VBLANK_A, _PIPEDMC_DCB_VBLANK_B)
-:56: WARNING:LONG_LINE: line length of 102 exceeds 100 columns
#56: FILE: drivers/gpu/drm/i915/display/intel_dmc_regs.h:141:
+#define PIPEDMC_DCB_DEBUG(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_DEBUG_A, _PIPEDMC_DCB_DEBUG_B)
-:58: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 6 warnings, 0 checks, 41 lines checked
a478f2e5dc6e drm/i915/vrr: Refactor vmin/vmax stuff
-:37: CHECK:LINE_SPACING: Please don't use multiple blank lines
#37: FILE: drivers/gpu/drm/i915/display/intel_vrr.c:159:
+
-:39: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#39: FILE: drivers/gpu/drm/i915/display/intel_vrr.c:161:
+static int intel_vrr_vblank_start(const struct intel_crtc_state *crtc_state,
+ int vmin_vmax)
-:89: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 0 warnings, 2 checks, 71 lines checked
1d2dc6503782 drm/i915/vrr: Add functions to read out vmin/vmax stuff
-:97: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 0 warnings, 0 checks, 73 lines checked
d6066260ed78 drm/i915: Extract vrr_vblank_start()
-:43: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 0 warnings, 0 checks, 25 lines checked
4e957667b701 drm/i915/vrr: Implement vblank evasion with DC balancing
-:106: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 0 warnings, 0 checks, 78 lines checked
ed86467997cd drm/i915/dsb: Add pipedmc dc balance enable/disable
-:66: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 0 warnings, 0 checks, 42 lines checked
30dc1e414952 drm/i915/vrr: Pause DC balancing for DSB commits
-:130: ERROR:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch author 'Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>'
total: 1 errors, 0 warnings, 0 checks, 103 lines checked
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 1/8] drm/i915/vrr: Add DC balance registers
2025-04-16 6:27 ` [PATCH v1 1/8] drm/i915/vrr: Add DC balance registers Mitul Golani
@ 2025-04-16 8:29 ` Jani Nikula
0 siblings, 0 replies; 15+ messages in thread
From: Jani Nikula @ 2025-04-16 8:29 UTC (permalink / raw)
To: Mitul Golani, intel-gfx
On Wed, 16 Apr 2025, Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> wrote:
> Add register to access DC Balance registers.
Please read the comment near the top of i915_reg.h.
BR,
Jani.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_vrr_regs.h | 43 +++++++++++++++++++
> 1 file changed, 43 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vrr_regs.h b/drivers/gpu/drm/i915/display/intel_vrr_regs.h
> index 6ed0e0dc97e7..6297108f1357 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr_regs.h
> +++ b/drivers/gpu/drm/i915/display/intel_vrr_regs.h
> @@ -9,6 +9,20 @@
> #include "intel_display_reg_defs.h"
>
> /* VRR registers */
> +#define _TRANS_VRR_VMAX_DCB_A 0x60414 /* lnl+ */
> +#define _TRANS_VRR_VMAX_DCB_B 0x61414 /* lnl+ */
> +#define TRANS_VRR_VMAX_DCB(trans) _MMIO_TRANS((trans), \
> + _TRANS_VRR_VMAX_DCB_A, \
> + _TRANS_VRR_VMAX_DCB_B)
> +#define VRR_VMAX_DCB_MASK REG_GENMASK(19, 0)
> +
> +#define _TRANS_VRR_FLIPLINE_DCB_A 0x60418 /* lnl+ */
> +#define _TRANS_VRR_FLIPLINE_DCB_B 0x61418 /* lnl+ */
> +#define TRANS_VRR_FLIPLINE_DCB(trans) _MMIO_TRANS((trans), \
> + _TRANS_VRR_FLIPLINE_DCB_A, \
> + _TRANS_VRR_FLIPLINE_DCB_B)
> +#define VRR_FLIPLINE_DCB_MASK REG_GENMASK(19, 0)
> +
> #define _TRANS_VRR_CTL_A 0x60420
> #define _TRANS_VRR_CTL_B 0x61420
> #define _TRANS_VRR_CTL_C 0x62420
> @@ -17,6 +31,7 @@
> #define VRR_CTL_VRR_ENABLE REG_BIT(31)
> #define VRR_CTL_IGN_MAX_SHIFT REG_BIT(30)
> #define VRR_CTL_FLIP_LINE_EN REG_BIT(29)
> +#define VRR_CTL_DCB_ADJ_ENABLE REG_BIT(28) /* lnl+ */
> #define VRR_CTL_PIPELINE_FULL_MASK REG_GENMASK(10, 3)
> #define VRR_CTL_PIPELINE_FULL(x) REG_FIELD_PREP(VRR_CTL_PIPELINE_FULL_MASK, (x))
> #define VRR_CTL_PIPELINE_FULL_OVERRIDE REG_BIT(0)
> @@ -93,6 +108,34 @@
> #define TRANS_VRR_STATUS2(dev_priv, trans) _MMIO_TRANS2(dev_priv, trans, _TRANS_VRR_STATUS2_A)
> #define VRR_STATUS2_VERT_LN_CNT_MASK REG_GENMASK(19, 0)
>
> +#define _TRANS_ADAPTIVE_SYNC_DCB_CTL_A 0x604c0 /* lnl+ */
> +#define _TRANS_ADAPTIVE_SYNC_DCB_CTL_B 0x614c0 /* lnl+ */
> +#define TRANS_ADAPTIVE_SYNC_DCB_CTL(trans) _MMIO_TRANS((trans), \
> + _TRANS_ADAPTIVE_SYNC_DCB_CTL_A, \
> + _TRANS_ADAPTIVE_SYNC_DCB_CTL_B)
> +#define ADAPTIVE_SYNC_COUNTER_EN REG_BIT(31)
> +#define ADAPTIVE_SYNC_COUNTER_RESET REG_BIT(30)
> +#define ADAPTIVE_SYNC_ODD_COUNTER_OVERFLOW REG_BIT(15)
> +#define ADAPTIVE_SYNC_EVEN_COUNTER_OVERFLOW REG_BIT(14)
> +#define ADAPTIVE_SYNC_ODD_LINE_COUNTER_OVERFLOW REG_BIT(13)
> +#define ADAPTIVE_SYNC_EVEN_LINE_COUNTER_OVERFLOW REG_BIT(12)
> +
> +#define _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_A 0x604d4 /* lnl+ */
> +#define _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_B 0x614d4 /* lnl+ */
> +#define TRANS_VRR_DCB_ADJ_FLIPLINE_CFG(trans) _MMIO_TRANS((trans), \
> + _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_A, \
> + _TRANS_VRR_DCB_ADJ_FLIPLINE_CFG_B)
> +#define VRR_DCB_ADJ_FLIPLINE_CNT_MASK REG_GENMASK(31, 24)
> +#define VRR_DCB_ADJ_FLIPLINE_MASK REG_GENMASK(19, 0)
> +
> +#define _TRANS_VRR_DCB_ADJ_VMAX_CFG_A 0x604d8 /* lnl+ */
> +#define _TRANS_VRR_DCB_ADJ_VMAX_CFG_B 0x614d8 /* lnl+ */
> +#define TRANS_VRR_DCB_ADJ_VMAX_CFG(trans) _MMIO_TRANS((trans), \
> + _TRANS_VRR_DCB_ADJ_VMAX_CFG_A, \
> + _TRANS_VRR_DCB_ADJ_VMAX_CFG_B)
> +#define VRR_DCB_ADJ_VMAX_CNT_MASK REG_GENMASK(31, 24)
> +#define VRR_DCB_ADJ_VMAX_MASK REG_GENMASK(19, 0)
> +
> #define _TRANS_PUSH_A 0x60a70
> #define _TRANS_PUSH_B 0x61a70
> #define _TRANS_PUSH_C 0x62a70
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 15+ messages in thread
* ✗ i915.CI.BAT: failure for Enable/Disable DC balance along with VRR DSB
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (8 preceding siblings ...)
2025-04-16 7:33 ` ✗ Fi.CI.CHECKPATCH: warning for Enable/Disable DC balance along with VRR DSB Patchwork
@ 2025-04-16 13:23 ` Patchwork
2025-04-16 15:07 ` [PATCH v1 0/8] " Ville Syrjälä
10 siblings, 0 replies; 15+ messages in thread
From: Patchwork @ 2025-04-16 13:23 UTC (permalink / raw)
To: Mitul Golani; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 5232 bytes --]
== Series Details ==
Series: Enable/Disable DC balance along with VRR DSB
URL : https://patchwork.freedesktop.org/series/147799/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_16423 -> Patchwork_147799v1
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_147799v1 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_147799v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/index.html
Participating hosts (45 -> 45)
------------------------------
Additional (1): bat-jsl-4
Missing (1): fi-snb-2520m
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_147799v1:
### IGT changes ###
#### Possible regressions ####
* igt@fbdev@write:
- bat-adls-6: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-adls-6/igt@fbdev@write.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-adls-6/igt@fbdev@write.html
* igt@gem_close_race@basic-process:
- bat-mtlp-9: [PASS][3] -> [ABORT][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-mtlp-9/igt@gem_close_race@basic-process.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-mtlp-9/igt@gem_close_race@basic-process.html
* igt@i915_module_load@load:
- bat-rpls-4: [PASS][5] -> [ABORT][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-rpls-4/igt@i915_module_load@load.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-rpls-4/igt@i915_module_load@load.html
- bat-dg2-11: [PASS][7] -> [ABORT][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-dg2-11/igt@i915_module_load@load.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-dg2-11/igt@i915_module_load@load.html
- bat-dg2-14: [PASS][9] -> [ABORT][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-dg2-14/igt@i915_module_load@load.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-dg2-14/igt@i915_module_load@load.html
* igt@kms_busy@basic@modeset:
- bat-dg2-9: [PASS][11] -> [ABORT][12] +1 other test abort
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-dg2-9/igt@kms_busy@basic@modeset.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-dg2-9/igt@kms_busy@basic@modeset.html
* igt@kms_chamelium_edid@dp-edid-read:
- bat-dg2-13: [PASS][13] -> [ABORT][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-dg2-13/igt@kms_chamelium_edid@dp-edid-read.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-dg2-13/igt@kms_chamelium_edid@dp-edid-read.html
* igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
- bat-arls-6: [PASS][15] -> [ABORT][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-arls-6/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-arls-6/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
* igt@kms_flip@basic-plain-flip@d-dp1:
- bat-dg2-8: [PASS][17] -> [ABORT][18] +1 other test abort
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/bat-dg2-8/igt@kms_flip@basic-plain-flip@d-dp1.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/bat-dg2-8/igt@kms_flip@basic-plain-flip@d-dp1.html
Known issues
------------
Here are the changes found in Patchwork_147799v1 that come from known issues:
### IGT changes ###
#### Possible fixes ####
* igt@dmabuf@all-tests@dma_fence_chain:
- fi-bsw-nick: [INCOMPLETE][19] ([i915#12904]) -> [PASS][20] +1 other test pass
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16423/fi-bsw-nick/igt@dmabuf@all-tests@dma_fence_chain.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/fi-bsw-nick/igt@dmabuf@all-tests@dma_fence_chain.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[i915#12904]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12904
[i915#13950]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13950
Build changes
-------------
* Linux: CI_DRM_16423 -> Patchwork_147799v1
CI-20190529: 20190529
CI_DRM_16423: b8f79cb562e983515cf827f0f336f79423b8d5a7 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_8320: cd3b5612be3cef838f16e074bf1bc421399d584d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_147799v1: b8f79cb562e983515cf827f0f336f79423b8d5a7 @ git://anongit.freedesktop.org/gfx-ci/linux
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_147799v1/index.html
[-- Attachment #2: Type: text/html, Size: 5991 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
` (9 preceding siblings ...)
2025-04-16 13:23 ` ✗ i915.CI.BAT: failure " Patchwork
@ 2025-04-16 15:07 ` Ville Syrjälä
2025-04-16 15:12 ` Ville Syrjälä
10 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjälä @ 2025-04-16 15:07 UTC (permalink / raw)
To: Mitul Golani; +Cc: intel-gfx
On Wed, Apr 16, 2025 at 11:57:29AM +0530, Mitul Golani wrote:
> Control DC Balance Adjustment bit to accomodate changes along
> with VRR DSB implementation.
>
> Mitul Golani (8):
> drm/i915/vrr: Add DC balance registers
> drm/i915/dmc: Add pipe DMC DC balance registers
> drm/i915/vrr: Refactor vmin/vmax stuff
> drm/i915/vrr: Add functions to read out vmin/vmax stuff
> drm/i915: Extract vrr_vblank_start()
> drm/i915/vrr: Implement vblank evasion with DC balancing
> drm/i915/dsb: Add pipedmc dc balance enable/disable
> drm/i915/vrr: Pause DC balancing for DSB commits
Looks like you've messed up the authorship of most of these.
>
> drivers/gpu/drm/i915/display/intel_display.c | 13 ++
> .../drm/i915/display/intel_display_types.h | 2 +-
> drivers/gpu/drm/i915/display/intel_dmc.c | 16 ++
> drivers/gpu/drm/i915/display/intel_dmc.h | 5 +
> drivers/gpu/drm/i915/display/intel_dmc_regs.h | 37 +++++
> drivers/gpu/drm/i915/display/intel_dsb.c | 31 +++-
> drivers/gpu/drm/i915/display/intel_vblank.c | 33 ++++-
> drivers/gpu/drm/i915/display/intel_vrr.c | 138 +++++++++++++-----
> drivers/gpu/drm/i915/display/intel_vrr.h | 5 +
> drivers/gpu/drm/i915/display/intel_vrr_regs.h | 43 ++++++
> 10 files changed, 284 insertions(+), 39 deletions(-)
>
> --
> 2.48.1
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB
2025-04-16 15:07 ` [PATCH v1 0/8] " Ville Syrjälä
@ 2025-04-16 15:12 ` Ville Syrjälä
2025-04-17 5:53 ` Golani, Mitulkumar Ajitkumar
0 siblings, 1 reply; 15+ messages in thread
From: Ville Syrjälä @ 2025-04-16 15:12 UTC (permalink / raw)
To: Mitul Golani; +Cc: intel-gfx
On Wed, Apr 16, 2025 at 06:07:00PM +0300, Ville Syrjälä wrote:
> On Wed, Apr 16, 2025 at 11:57:29AM +0530, Mitul Golani wrote:
> > Control DC Balance Adjustment bit to accomodate changes along
> > with VRR DSB implementation.
> >
> > Mitul Golani (8):
> > drm/i915/vrr: Add DC balance registers
> > drm/i915/dmc: Add pipe DMC DC balance registers
> > drm/i915/vrr: Refactor vmin/vmax stuff
> > drm/i915/vrr: Add functions to read out vmin/vmax stuff
> > drm/i915: Extract vrr_vblank_start()
> > drm/i915/vrr: Implement vblank evasion with DC balancing
> > drm/i915/dsb: Add pipedmc dc balance enable/disable
> > drm/i915/vrr: Pause DC balancing for DSB commits
>
> Looks like you've messed up the authorship of most of these.
Thse in fact just look like what I had. Where is the stuff to
actually program the DC balance parameters?
>
> >
> > drivers/gpu/drm/i915/display/intel_display.c | 13 ++
> > .../drm/i915/display/intel_display_types.h | 2 +-
> > drivers/gpu/drm/i915/display/intel_dmc.c | 16 ++
> > drivers/gpu/drm/i915/display/intel_dmc.h | 5 +
> > drivers/gpu/drm/i915/display/intel_dmc_regs.h | 37 +++++
> > drivers/gpu/drm/i915/display/intel_dsb.c | 31 +++-
> > drivers/gpu/drm/i915/display/intel_vblank.c | 33 ++++-
> > drivers/gpu/drm/i915/display/intel_vrr.c | 138 +++++++++++++-----
> > drivers/gpu/drm/i915/display/intel_vrr.h | 5 +
> > drivers/gpu/drm/i915/display/intel_vrr_regs.h | 43 ++++++
> > 10 files changed, 284 insertions(+), 39 deletions(-)
> >
> > --
> > 2.48.1
>
> --
> Ville Syrjälä
> Intel
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB
2025-04-16 15:12 ` Ville Syrjälä
@ 2025-04-17 5:53 ` Golani, Mitulkumar Ajitkumar
0 siblings, 0 replies; 15+ messages in thread
From: Golani, Mitulkumar Ajitkumar @ 2025-04-17 5:53 UTC (permalink / raw)
To: Ville Syrjälä
Cc: intel-gfx@lists.freedesktop.org, Nautiyal, Ankit K, Shankar, Uma
> -----Original Message-----
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Sent: 16 April 2025 20:43
> To: Golani, Mitulkumar Ajitkumar <mitulkumar.ajitkumar.golani@intel.com>
> Cc: intel-gfx@lists.freedesktop.org
> Subject: Re: [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB
>
> On Wed, Apr 16, 2025 at 06:07:00PM +0300, Ville Syrjälä wrote:
> > On Wed, Apr 16, 2025 at 11:57:29AM +0530, Mitul Golani wrote:
> > > Control DC Balance Adjustment bit to accomodate changes along with
> > > VRR DSB implementation.
> > >
> > > Mitul Golani (8):
> > > drm/i915/vrr: Add DC balance registers
> > > drm/i915/dmc: Add pipe DMC DC balance registers
> > > drm/i915/vrr: Refactor vmin/vmax stuff
> > > drm/i915/vrr: Add functions to read out vmin/vmax stuff
> > > drm/i915: Extract vrr_vblank_start()
> > > drm/i915/vrr: Implement vblank evasion with DC balancing
> > > drm/i915/dsb: Add pipedmc dc balance enable/disable
> > > drm/i915/vrr: Pause DC balancing for DSB commits
> >
> > Looks like you've messed up the authorship of most of these.
Yes. I will update Author and resend along with on xe list
>
> Thse in fact just look like what I had. Where is the stuff to actually program the
> DC balance parameters?
Actually yes, one more patch required for event trigger and one patch for few more registers. Earlier I thought of to complete your patch series review as there are some independent restructuring. But With next revision I will append my local changes as well.
Thanks,
Mitul
>
> >
> > >
> > > drivers/gpu/drm/i915/display/intel_display.c | 13 ++
> > > .../drm/i915/display/intel_display_types.h | 2 +-
> > > drivers/gpu/drm/i915/display/intel_dmc.c | 16 ++
> > > drivers/gpu/drm/i915/display/intel_dmc.h | 5 +
> > > drivers/gpu/drm/i915/display/intel_dmc_regs.h | 37 +++++
> > > drivers/gpu/drm/i915/display/intel_dsb.c | 31 +++-
> > > drivers/gpu/drm/i915/display/intel_vblank.c | 33 ++++-
> > > drivers/gpu/drm/i915/display/intel_vrr.c | 138 +++++++++++++-----
> > > drivers/gpu/drm/i915/display/intel_vrr.h | 5 +
> > > drivers/gpu/drm/i915/display/intel_vrr_regs.h | 43 ++++++
> > > 10 files changed, 284 insertions(+), 39 deletions(-)
> > >
> > > --
> > > 2.48.1
> >
> > --
> > Ville Syrjälä
> > Intel
>
> --
> Ville Syrjälä
> Intel
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-04-17 5:53 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-16 6:27 [PATCH v1 0/8] Enable/Disable DC balance along with VRR DSB Mitul Golani
2025-04-16 6:27 ` [PATCH v1 1/8] drm/i915/vrr: Add DC balance registers Mitul Golani
2025-04-16 8:29 ` Jani Nikula
2025-04-16 6:27 ` [PATCH v1 2/8] drm/i915/dmc: Add pipe DMC " Mitul Golani
2025-04-16 6:27 ` [PATCH v1 3/8] drm/i915/vrr: Refactor vmin/vmax stuff Mitul Golani
2025-04-16 6:27 ` [PATCH v1 4/8] drm/i915/vrr: Add functions to read out " Mitul Golani
2025-04-16 6:27 ` [PATCH v1 5/8] drm/i915: Extract vrr_vblank_start() Mitul Golani
2025-04-16 6:27 ` [PATCH v1 6/8] drm/i915/vrr: Implement vblank evasion with DC balancing Mitul Golani
2025-04-16 6:27 ` [PATCH v1 7/8] drm/i915/dsb: Add pipedmc dc balance enable/disable Mitul Golani
2025-04-16 6:27 ` [PATCH v1 8/8] drm/i915/vrr: Pause DC balancing for DSB commits Mitul Golani
2025-04-16 7:33 ` ✗ Fi.CI.CHECKPATCH: warning for Enable/Disable DC balance along with VRR DSB Patchwork
2025-04-16 13:23 ` ✗ i915.CI.BAT: failure " Patchwork
2025-04-16 15:07 ` [PATCH v1 0/8] " Ville Syrjälä
2025-04-16 15:12 ` Ville Syrjälä
2025-04-17 5:53 ` Golani, Mitulkumar Ajitkumar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).