From: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [V5 i-g-t 22/81] tests/i915/kms_frontbuffer_tracking: Document each subtest for testplan
Date: Thu, 29 Jun 2023 20:18:11 +0530 [thread overview]
Message-ID: <20230629144910.3055377-23-bhanuprakash.modem@intel.com> (raw)
In-Reply-To: <20230629144910.3055377-1-bhanuprakash.modem@intel.com>
Add documentation for all kms tests which is used by IGT testplan
documentation.
Note: This documentation is generated by the script & made changes
on top of it.
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
tests/i915/kms_frontbuffer_tracking.c | 808 ++++++++++++++++++++++++++
1 file changed, 808 insertions(+)
diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index b2183b08e..64f9b9412 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -24,6 +24,11 @@
*
*/
+/**
+ * TEST: kms frontbuffer tracking
+ * Category: Display
+ * Description: Test the Kernel's frontbuffer tracking mechanism and its related features: FBC, PSR and DRRS
+ */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -1952,6 +1957,28 @@ static void prepare_subtest(const struct test_mode *t,
prepare_subtest_screens(t);
}
+/**
+ * SUBTEST: %s-%dp-rte
+ * Description: Sanity test to enable %arg[1] with %arg[2] panels.
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ */
+
/*
* rte - the basic sanity test
*
@@ -2012,6 +2039,308 @@ static bool op_disables_psr(const struct test_mode *t,
return false;
}
+/**
+ * SUBTEST: %s-1p-offscren-pri-%s-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @indfb: Individual fb
+ * @shrfb: Shared fb
+ *
+ * arg[3]:
+ *
+ * @blt: Blitter
+ * @mmap-wc: MMAP-WC
+ * @render: Render
+ */
+
+/**
+ * SUBTEST: %s-1p-offscren-pri-%s-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: i915
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @indfb: Individual fb
+ * @shrfb: Shared fb
+ *
+ * arg[3]:
+ *
+ * @mmap-cpu: MMAP-CPU
+ * @mmap-gtt: MMAP-GTT
+ * @pwrite: PWRITE
+ */
+
+/**
+ * SUBTEST: %s-%dp-primscrn-%s-indfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: i915
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @cur: Cursor plane
+ * @pri: Primary plane
+ * @spr: Sprite plane
+ *
+ * arg[4]:
+ *
+ * @mmap-cpu: MMAP-CPU
+ * @mmap-gtt: MMAP-GTT
+ * @pwrite: PWRITE
+ */
+
+/**
+ * SUBTEST: %s-%dp-primscrn-%s-indfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @cur: Cursor plane
+ * @pri: Primary plane
+ * @spr: Sprite plane
+ *
+ * arg[4]:
+ *
+ * @blt: Blitter
+ * @mmap-wc: MMAP-WC
+ * @render: Render
+ */
+
+/**
+ * SUBTEST: %s-%dp-primscrn-pri-shrfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @blt: Blitter
+ * @mmap-wc: MMAP-WC
+ * @render: Render
+ */
+
+/**
+ * SUBTEST: %s-%dp-primscrn-pri-shrfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @mmap-cpu: MMAP-CPU
+ * @mmap-gtt: MMAP-GTT
+ * @pwrite: PWRITE
+ */
+
+/**
+ * SUBTEST: %s-2p-scndscrn-%s-indfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @cur: Cursor plane
+ * @pri: Primary plane
+ * @spr: Sprite plane
+ *
+ * arg[3]:
+ *
+ * @blt: Blitter
+ * @mmap-wc: MMAP-WC
+ * @render: Render
+ */
+
+/**
+ * SUBTEST: %s-2p-scndscrn-%s-indfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: i915
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @cur: Cursor plane
+ * @pri: Primary plane
+ * @spr: Sprite plane
+ *
+ * arg[3]:
+ *
+ * @mmap-cpu: MMAP-CPU
+ * @mmap-gtt: MMAP-GTT
+ * @pwrite: PWRITE
+ */
+
+/**
+ * SUBTEST: %s-2p-scndscrn-pri-shrfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @blt: Blitter
+ * @mmap-wc: MMAP-WC
+ * @render: Render
+ */
+
+/**
+ * SUBTEST: %s-2p-scndscrn-pri-shrfb-draw-%s
+ * Description: Draw a set of rectangles on the screen using the provided method
+ * Driver requirement: i915
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @mmap-cpu: MMAP-CPU
+ * @mmap-gtt: MMAP-GTT
+ * @pwrite: PWRITE
+ */
+
/*
* draw - draw a set of rectangles on the screen using the provided method
*
@@ -2085,6 +2414,28 @@ static void draw_subtest(const struct test_mode *t)
}
}
+/**
+ * SUBTEST: %s-%dp-pri-indfb-multidraw
+ * Description: Draw a set of rectangles on the screen using alternated drawing methods
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ */
+
/*
* multidraw - draw a set of rectangles on the screen using alternated drawing
* methods
@@ -2233,6 +2584,68 @@ static void badformat_subtest(const struct test_mode *t)
do_assertions(assertions);
}
+/**
+ * SUBTEST: %s-%s-draw-%s
+ * Description: Test pixel formats (%arg[2]) that are not FORMAT_DEFAULT
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @rgb101010: FORMAT_RGB101010
+ * @rgb565: FORMAT_RGB565
+ *
+ * arg[3]:
+ *
+ * @blt: Blitter
+ * @mmap-wc: MMAP-WC
+ * @render: Render
+ */
+
+/**
+ * SUBTEST: %s-%s-draw-%s
+ * Description: Test pixel formats (%arg[2]) that are not FORMAT_DEFAULT
+ * Driver requirement: i915
+ * Functionality: kms_core, gtt
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @rgb101010: FORMAT_RGB101010
+ * @rgb565: FORMAT_RGB565
+ *
+ * arg[3]:
+ *
+ * @mmap-cpu: MMAP-CPU
+ * @mmap-gtt: MMAP-GTT
+ * @pwrite: PWRITE
+ */
+
/*
* format_draw - test pixel formats that are not FORMAT_DEFAULT
*
@@ -2276,6 +2689,25 @@ static bool tiling_is_valid(int feature_flags, enum tiling_type tiling)
}
}
+/**
+ * SUBTEST: %s-slowdraw
+ * Description: Sleep a little bit between drawing operations with %arg[1]
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ */
+
/*
* slow_draw - sleep a little bit between drawing operations
*
@@ -2382,6 +2814,70 @@ static void page_flip_for_params(struct modeset_params *params,
}
}
+/**
+ * SUBTEST: %s-%dp-primscrn-%s-%sflip-blt
+ * Description: Just exercise page flips with the patterns we have
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @indfb: Individual fb
+ * @shrfb: Shared fb
+ *
+ * arg[4]:
+ *
+ * @ms: Modeset
+ * @pg: Page flip
+ * @pl: Plane change
+ */
+
+/**
+ * SUBTEST: %s-2p-scndscrn-%s-%sflip-blt
+ * Description: Just exercise page flips with the patterns we have
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @indfb: Individual fb
+ * @shrfb: Shared fb
+ *
+ * arg[3]:
+ *
+ * @ms: Modeset
+ * @pg: Page flip
+ * @pl: Plane change
+ */
+
/*
* flip - just exercise page flips with the patterns we have
*
@@ -2442,6 +2938,30 @@ static void flip_subtest(const struct test_mode *t)
igt_remove_fb(drm.fd, &fb2);
}
+/**
+ * SUBTEST: %s-%dp-%s-fliptrack-mmap-gtt
+ * Description: Check if the hardware tracking works after page flips
+ * Driver requirement: i915
+ * Functionality: fbc, gtt, kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @fbc: FBC
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @indfb: Individual fb
+ * @shrfb: Shared fb
+ */
+
/*
* fliptrack - check if the hardware tracking works after page flips
*
@@ -2490,6 +3010,58 @@ static void fliptrack_subtest(const struct test_mode *t, enum flip_type type)
igt_remove_fb(drm.fd, &fb2);
}
+/**
+ * SUBTEST: %s-%dp-primscrn-%s-indfb-move
+ * Description: Just move the %arg[3] around
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @spr: Sprite plane
+ * @cur: Cursor plane
+ */
+
+/**
+ * SUBTEST: %s-2p-scndscrn-%s-indfb-move
+ * Description: Just move the %arg[2] around
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @spr: Sprite plane
+ * @cur: Cursor plane
+ */
+
/*
* move - just move the sprite or cursor around
*
@@ -2543,6 +3115,58 @@ static void move_subtest(const struct test_mode *t)
}
}
+/**
+ * SUBTEST: %s-%dp-primscrn-%s-indfb-onoff
+ * Description: Just enable and disable the %arg[3] a few times
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ *
+ * arg[3]:
+ *
+ * @spr: Sprite plane
+ * @cur: Cursor plane
+ */
+
+/**
+ * SUBTEST: %s-2p-scndscrn-%s-indfb-onoff
+ * Description: Just enable and disable the %arg[2] a few times
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @spr: Sprite plane
+ * @cur: Cursor plane
+ */
+
/*
* onoff - just enable and disable the sprite or cursor plane a few times
*
@@ -2602,6 +3226,36 @@ static bool prim_plane_disabled(void)
return !prim_mode_params.primary.plane->values[IGT_PLANE_FB_ID];
}
+/**
+ * SUBTEST: %s-%dp-primscrn-spr-indfb-fullscreen
+ * Description: Put a fullscreen plane covering the whole screen
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * SUBTEST: %s-2p-scndscrn-spr-indfb-fullscreen
+ * Description: Put a fullscreen plane covering the whole screen
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2].values: 1, 2
+ */
+
/*
* fullscreen_plane - put a fullscreen plane covering the whole screen
*
@@ -2663,6 +3317,31 @@ static void fullscreen_plane_subtest(const struct test_mode *t)
igt_remove_fb(drm.fd, &fullscreen_fb);
}
+/**
+ * SUBTEST: %s-%s-scaledprimary
+ * Description: Try different primary plane scaling strategies
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @indfb: Individual fb
+ * @shrfb: Shared fb
+ */
+
/*
* scaledprimary - try different primary plane scaling strategies
*
@@ -2768,6 +3447,27 @@ static void scaledprimary_subtest(const struct test_mode *t)
igt_remove_fb(drm.fd, &new_fb);
}
+
+/**
+ * SUBTEST: %s-modesetfrombusy
+ * Description: Modeset from a busy buffer to a non-busy buffer with %arg[1]
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ */
+
/**
* modesetfrombusy - modeset from a busy buffer to a non-busy buffer
*
@@ -2811,6 +3511,26 @@ static void modesetfrombusy_subtest(const struct test_mode *t)
igt_remove_fb(drm.fd, &fb2);
}
+/**
+ * SUBTEST: %s-suspend
+ * Description: Make sure suspend/resume keeps us on the same state of %arg[1]
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ */
+
/**
* suspend - make sure suspend/resume keeps us on the same state
*
@@ -2843,6 +3563,26 @@ static void suspend_subtest(const struct test_mode *t)
do_assertions(0);
}
+/**
+ * SUBTEST: %s-farfromfence-mmap-gtt
+ * Description: Test drawing as far from the fence start as possible
+ * Driver requirement: i915
+ * Functionality: gtt, kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @drrs: DRRS
+ * @fbc: FBC
+ * @psr: PSR
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @psrdrrs: PSR and DRRS
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ */
+
/**
* farfromfence - test drawing as far from the fence start as possible
*
@@ -2939,6 +3679,23 @@ static void try_invalid_strides(void)
gem_close(drm.fd, gem_handle);
}
+/**
+ * SUBTEST: %s-badstride
+ * Description: Try to use buffers with strides that are not supported
+ * Driver requirement: any
+ * Functionality: fbc, kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @fbc: FBC
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ */
+
/**
* badstride - try to use buffers with strides that are not supported
*
@@ -3007,6 +3764,23 @@ static void badstride_subtest(const struct test_mode *t)
igt_remove_fb(drm.fd, &wide_fb);
}
+/**
+ * SUBTEST: %s-stridechange
+ * Description: Change the frontbuffer stride by doing a modeset
+ * Driver requirement: any
+ * Functionality: fbc, kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @fbc: FBC
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ */
+
/**
* stridechange - change the frontbuffer stride by doing a modeset
*
@@ -3071,6 +3845,30 @@ static void stridechange_subtest(const struct test_mode *t)
do_assertions(rc ? 0 : DONT_ASSERT_FBC_STATUS);
}
+/**
+ * SUBTEST: %s-tiling-%s
+ * Description: Test %arg[2] formats, if the tiling format supports FBC do the
+ * basic drawing test, else set the mode & test if FBC is disabled
+ * Driver requirement: any
+ * Functionality: fbc, kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ *
+ * arg[1]:
+ *
+ * @fbc: FBC
+ * @fbcdrrs: FBC and DRRS
+ * @fbcpsr: FBC and PSR
+ * @fbcpsrdrrs: All features (DRRS, FBC & PSR)
+ *
+ * arg[2]:
+ *
+ * @4: 4 tiling
+ * @linear: Linear tiling
+ * @y: Y tiling
+ */
+
/**
* tiling_disable_fbc_subtest - Check if tiling is unsupported by FBC
*
@@ -3120,6 +3918,16 @@ static void tiling_disable_fbc_subtest(const struct test_mode *t)
igt_remove_fb(drm.fd, &new_fb);
}
+/**
+ * SUBTEST: basic
+ * Description: Do some basic operations regardless of which features are enabled
+ * Driver requirement: any
+ * Functionality: kms_core
+ * Mega feature: General Display Features
+ * Run type: FULL
+ * Test category: functionality test
+ */
+
/*
* basic - do some basic operations regardless of which features are enabled
*
--
2.40.0
next prev parent reply other threads:[~2023-06-29 14:55 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-29 14:47 [igt-dev] [V5 i-g-t 00/81] Document KMS tests Bhanuprakash Modem
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 01/81] testplan/kms: Keep category as high level entity Bhanuprakash Modem
2023-08-10 17:51 ` Kamil Konieczny
2023-08-14 9:57 ` Mauro Carvalho Chehab
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 02/81] testplan/kms: Add support to differentiate b/w drivers Bhanuprakash Modem
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 03/81] testplan/kms: Include testdisplay to kms testplan config Bhanuprakash Modem
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 04/81] testplan/kms: Exclude kms helpers form testplan Bhanuprakash Modem
2023-08-10 17:49 ` Kamil Konieczny
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 05/81] tests/chamelium/kms_chamelium_audio: Document each subtest for testplan Bhanuprakash Modem
2023-08-10 4:57 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-08-10 16:29 ` Modem, Bhanuprakash
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 06/81] tests/chamelium/kms_chamelium_color: " Bhanuprakash Modem
2023-08-10 5:12 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 07/81] tests/chamelium/kms_chamelium_edid: " Bhanuprakash Modem
2023-08-10 6:08 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-08-10 16:34 ` Modem, Bhanuprakash
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 08/81] tests/chamelium/kms_chamelium_frames: " Bhanuprakash Modem
2023-08-10 6:02 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-08-10 16:47 ` Modem, Bhanuprakash
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 09/81] tests/chamelium/kms_chamelium_hpd: " Bhanuprakash Modem
2023-08-10 6:10 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-08-10 17:05 ` Modem, Bhanuprakash
2023-06-29 14:47 ` [igt-dev] [V5 i-g-t 10/81] tests/i915/kms_big_fb: " Bhanuprakash Modem
2023-08-11 4:19 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 11/81] tests/i915/kms_big_joiner: " Bhanuprakash Modem
2023-08-09 3:27 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 12/81] tests/i915/kms_busy: " Bhanuprakash Modem
2023-08-10 6:20 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 13/81] tests/i915/kms_ccs: " Bhanuprakash Modem
2023-08-09 4:11 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 14/81] tests/i915/kms_cdclk: " Bhanuprakash Modem
2023-08-09 8:15 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 15/81] tests/i915/kms_draw_crc: " Bhanuprakash Modem
2023-08-10 5:40 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 16/81] tests/i915/kms_dsc: " Bhanuprakash Modem
2023-08-09 7:50 ` Sharma, Swati2
2023-08-10 17:23 ` Modem, Bhanuprakash
2023-08-14 5:04 ` Sharma, Swati2
2023-08-14 9:39 ` Mauro Carvalho Chehab
2023-08-14 10:06 ` Sharma, Swati2
2023-08-14 17:18 ` Modem, Bhanuprakash
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 17/81] tests/i915/kms_fb_coherency: " Bhanuprakash Modem
2023-08-09 8:35 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 18/81] tests/i915/kms_fbcon_fbt: " Bhanuprakash Modem
2023-08-09 20:16 ` [igt-dev] [V5, i-g-t, " Gupta, Nidhi1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 19/81] tests/i915/kms_fence_pin_leak: " Bhanuprakash Modem
2023-08-09 9:20 ` Karthik B S
2023-08-10 17:42 ` Modem, Bhanuprakash
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 20/81] tests/i915/kms_flip_scaled_crc: " Bhanuprakash Modem
2023-08-09 6:57 ` Sharma, Swati2
2023-08-09 6:59 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 21/81] tests/i915/kms_flip_tiling: " Bhanuprakash Modem
2023-08-09 5:38 ` B, Jeevan
2023-06-29 14:48 ` Bhanuprakash Modem [this message]
2023-08-10 6:25 ` [igt-dev] [V5, i-g-t, 22/81] tests/i915/kms_frontbuffer_tracking: " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 23/81] tests/i915/kms_legacy_colorkey: " Bhanuprakash Modem
2023-08-09 11:52 ` Sharma, Swati2
2023-08-10 18:05 ` Modem, Bhanuprakash
2023-08-14 5:09 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 24/81] tests/i915/kms_mmap_write_crc: " Bhanuprakash Modem
2023-08-09 11:58 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 25/81] tests/i915/kms_pipe_b_c_ivb: " Bhanuprakash Modem
2023-08-11 7:57 ` Thasleem, Mohammed
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 26/81] tests/i915/kms_psr: " Bhanuprakash Modem
2023-08-10 6:28 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 27/81] tests/i915/kms_psr2_sf: " Bhanuprakash Modem
2023-08-10 6:44 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 28/81] tests/i915/kms_psr2_su: " Bhanuprakash Modem
2023-08-10 6:42 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 29/81] tests/i915/kms_psr_stress_test: " Bhanuprakash Modem
2023-08-10 6:36 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 30/81] tests/i915/kms_pwrite_crc: " Bhanuprakash Modem
2023-08-09 9:26 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 31/81] tests/kms_3d: " Bhanuprakash Modem
2023-08-09 4:54 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 32/81] tests/kms_addfb_basic: " Bhanuprakash Modem
2023-08-09 9:10 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 33/81] tests/kms_async_flips: " Bhanuprakash Modem
2023-08-08 15:00 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 34/81] tests/kms_atomic: " Bhanuprakash Modem
2023-08-09 19:13 ` [igt-dev] [V5, i-g-t, " Gupta, Nidhi1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 35/81] tests/kms_atomic_interruptible: " Bhanuprakash Modem
2023-08-09 19:55 ` [igt-dev] [V5, i-g-t, " Gupta, Nidhi1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 36/81] tests/kms_atomic_transition: " Bhanuprakash Modem
2023-08-09 20:08 ` [igt-dev] [V5, i-g-t, " Gupta, Nidhi1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 37/81] tests/kms_bw: " Bhanuprakash Modem
2023-08-09 5:06 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 38/81] tests/kms_color: " Bhanuprakash Modem
2023-08-09 9:03 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 39/81] tests/kms_concurrent: " Bhanuprakash Modem
2023-08-09 12:05 ` Sharma, Swati2
2023-08-14 7:59 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 40/81] tests/kms_content_protection: " Bhanuprakash Modem
2023-08-09 3:50 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 41/81] tests/kms_cursor_crc: " Bhanuprakash Modem
2023-08-09 5:31 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 42/81] tests/kms_cursor_edge_walk: " Bhanuprakash Modem
2023-08-09 5:36 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 43/81] tests/kms_cursor_legacy: " Bhanuprakash Modem
2023-08-10 17:28 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 44/81] tests/kms_display_modes: " Bhanuprakash Modem
2023-08-09 5:27 ` B, Jeevan
2023-08-14 8:17 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 45/81] tests/kms_dither: " Bhanuprakash Modem
2023-08-09 11:43 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 46/81] tests/kms_dp_aux_dev: " Bhanuprakash Modem
2023-08-10 6:17 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 47/81] tests/kms_dp_tiled_display: " Bhanuprakash Modem
2023-08-08 10:08 ` Karthik B S
2023-08-09 3:17 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 48/81] tests/kms_flip: " Bhanuprakash Modem
2023-08-09 4:06 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 49/81] tests/kms_flip_event_leak: " Bhanuprakash Modem
2023-08-09 3:23 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 50/81] tests/kms_force_connector_basic: " Bhanuprakash Modem
2023-08-10 6:47 ` [igt-dev] [V5, i-g-t, " Joshi, Kunal1
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 51/81] tests/kms_getfb: " Bhanuprakash Modem
2023-08-09 8:21 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 52/81] tests/kms_hdmi_inject: " Bhanuprakash Modem
2023-08-09 5:18 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 53/81] tests/kms_hdr: " Bhanuprakash Modem
2023-08-09 5:33 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 54/81] tests/kms_invalid_mode: " Bhanuprakash Modem
2023-08-09 5:46 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 55/81] tests/kms_lease: " Bhanuprakash Modem
2023-08-10 3:59 ` Thasleem, Mohammed
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 56/81] tests/kms_multipipe_modeset: " Bhanuprakash Modem
2023-08-08 10:01 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 57/81] tests/kms_panel_fitting: " Bhanuprakash Modem
2023-08-09 7:56 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 58/81] tests/kms_pipe_crc_basic: " Bhanuprakash Modem
2023-08-10 5:09 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 59/81] tests/kms_plane: " Bhanuprakash Modem
2023-08-10 17:35 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 60/81] tests/kms_plane_alpha_blend: " Bhanuprakash Modem
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 61/81] tests/kms_plane_cursor: " Bhanuprakash Modem
2023-08-10 17:44 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 62/81] tests/kms_plane_lowres: " Bhanuprakash Modem
2023-08-09 5:41 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 63/81] tests/kms_plane_multiple: " Bhanuprakash Modem
2023-08-10 9:33 ` B, Jeevan
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 64/81] tests/kms_plane_scaling: " Bhanuprakash Modem
2023-08-09 6:48 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 65/81] tests/kms_prime: " Bhanuprakash Modem
2023-08-09 3:12 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 66/81] tests/kms_prop_blob: " Bhanuprakash Modem
2023-08-09 12:13 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 67/81] tests/kms_properties: " Bhanuprakash Modem
2023-08-09 12:17 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 68/81] tests/kms_rmfb: " Bhanuprakash Modem
2023-08-09 8:18 ` Karthik B S
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 69/81] tests/kms_rotation_crc: " Bhanuprakash Modem
2023-08-09 8:56 ` Sharma, Swati2
2023-06-29 14:48 ` [igt-dev] [V5 i-g-t 70/81] tests/kms_scaling_modes: " Bhanuprakash Modem
2023-08-09 7:59 ` Sharma, Swati2
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 71/81] tests/kms_selftest: " Bhanuprakash Modem
2023-08-09 8:28 ` Sharma, Swati2
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 72/81] tests/kms_sequence: " Bhanuprakash Modem
2023-08-09 20:12 ` [igt-dev] [V5, i-g-t, " Gupta, Nidhi1
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 73/81] tests/kms_setmode: " Bhanuprakash Modem
2023-08-09 3:40 ` Karthik B S
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 74/81] tests/kms_sysfs_edid_timing: " Bhanuprakash Modem
2023-08-09 8:22 ` Sharma, Swati2
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 75/81] tests/kms_tv_load_detect: " Bhanuprakash Modem
2023-08-09 8:50 ` Sharma, Swati2
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 76/81] tests/kms_universal_plane: " Bhanuprakash Modem
2023-08-10 11:08 ` B, Jeevan
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 77/81] tests/kms_vblank: " Bhanuprakash Modem
2023-08-09 8:25 ` Karthik B S
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 78/81] tests/kms_vrr: " Bhanuprakash Modem
2023-08-09 8:37 ` Sharma, Swati2
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 79/81] tests/kms_writeback: " Bhanuprakash Modem
2023-08-09 8:12 ` Sharma, Swati2
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 80/81] tests/testdisplay: " Bhanuprakash Modem
2023-08-09 8:31 ` Sharma, Swati2
2023-06-29 14:49 ` [igt-dev] [V5 i-g-t 81/81] testplan/kms: Make documentation is mandatory for all kms subtests Bhanuprakash Modem
2023-06-29 15:35 ` [igt-dev] ✓ Fi.CI.BAT: success for Document KMS tests (rev12) Patchwork
2023-06-30 2:23 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-08-10 4:11 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Document KMS tests (rev13) Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230629144910.3055377-23-bhanuprakash.modem@intel.com \
--to=bhanuprakash.modem@intel.com \
--cc=igt-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox