* [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups
@ 2024-10-03 11:32 Ville Syrjala
2024-10-03 11:32 ` [PATCH 1/8] drm/client: Constify modes Ville Syrjala
` (12 more replies)
0 siblings, 13 replies; 28+ messages in thread
From: Ville Syrjala @ 2024-10-03 11:32 UTC (permalink / raw)
To: dri-devel; +Cc: intel-gfx
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
The most interesting part is the change to modes[] to solve
the lifetime issue so that we can stop using the legacy
crtc->mode for atomic drivers.
Additionally I included a bunch of cleanups, some of which were
inherited from https://patchwork.freedesktop.org/series/132051/
Ville Syrjälä (8):
drm/client: Constify modes
drm/client: Use array notation for function arguments
drm/client: Streamline mode selection debugs
drm/client: Make copies of modes
drm/client: Stop using the legacy crtc->mode
drm/client: s/new_crtc/crtc/
drm/client: Move variables to tighter scope
drm/client: s/unsigned int i/int i/
drivers/gpu/drm/drm_client_modeset.c | 253 +++++++++++++--------------
1 file changed, 125 insertions(+), 128 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 28+ messages in thread* [PATCH 1/8] drm/client: Constify modes 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala @ 2024-10-03 11:32 ` Ville Syrjala 2024-10-04 23:59 ` kernel test robot 2024-10-05 0:19 ` kernel test robot 2024-10-03 11:32 ` [PATCH 2/8] drm/client: Use array notation for function arguments Ville Syrjala ` (11 subsequent siblings) 12 siblings, 2 replies; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:32 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx, Jani Nikula, Thomas Zimmermann From: Ville Syrjälä <ville.syrjala@linux.intel.com> The modes used by the client code live on the connectors' mode lists, which are not owned by the client code, and thus it has no business modifying the modes. Mark the modes const to make that fact abundantly clear. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 39 +++++++++++++++------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 251f94313717..20882dffcf5e 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -117,10 +117,10 @@ drm_client_find_modeset(struct drm_client_dev *client, struct drm_crtc *crtc) return NULL; } -static struct drm_display_mode * +static const struct drm_display_mode * drm_connector_get_tiled_mode(struct drm_connector *connector) { - struct drm_display_mode *mode; + const struct drm_display_mode *mode; list_for_each_entry(mode, &connector->modes, head) { if (mode->hdisplay == connector->tile_h_size && @@ -130,10 +130,10 @@ drm_connector_get_tiled_mode(struct drm_connector *connector) return NULL; } -static struct drm_display_mode * +static const struct drm_display_mode * drm_connector_fallback_non_tiled_mode(struct drm_connector *connector) { - struct drm_display_mode *mode; + const struct drm_display_mode *mode; list_for_each_entry(mode, &connector->modes, head) { if (mode->hdisplay == connector->tile_h_size && @@ -144,10 +144,10 @@ drm_connector_fallback_non_tiled_mode(struct drm_connector *connector) return NULL; } -static struct drm_display_mode * +static const struct drm_display_mode * drm_connector_preferred_mode(struct drm_connector *connector, int width, int height) { - struct drm_display_mode *mode; + const struct drm_display_mode *mode; list_for_each_entry(mode, &connector->modes, head) { if (mode->hdisplay > width || @@ -159,16 +159,18 @@ drm_connector_preferred_mode(struct drm_connector *connector, int width, int hei return NULL; } -static struct drm_display_mode *drm_connector_first_mode(struct drm_connector *connector) +static const struct drm_display_mode * +drm_connector_first_mode(struct drm_connector *connector) { return list_first_entry_or_null(&connector->modes, struct drm_display_mode, head); } -static struct drm_display_mode *drm_connector_pick_cmdline_mode(struct drm_connector *connector) +static const struct drm_display_mode * +drm_connector_pick_cmdline_mode(struct drm_connector *connector) { - struct drm_cmdline_mode *cmdline_mode; - struct drm_display_mode *mode; + const struct drm_cmdline_mode *cmdline_mode; + const struct drm_display_mode *mode; bool prefer_non_interlace; /* @@ -266,13 +268,14 @@ static void drm_client_connectors_enabled(struct drm_connector **connectors, static bool drm_client_target_cloned(struct drm_device *dev, struct drm_connector **connectors, unsigned int connector_count, - struct drm_display_mode **modes, + const struct drm_display_mode **modes, struct drm_client_offset *offsets, bool *enabled, int width, int height) { int count, i, j; bool can_clone = false; - struct drm_display_mode *dmt_mode, *mode; + const struct drm_display_mode *mode; + struct drm_display_mode *dmt_mode; /* only contemplate cloning in the single crtc case */ if (dev->mode_config.num_crtc > 1) @@ -351,7 +354,7 @@ static bool drm_client_target_cloned(struct drm_device *dev, static int drm_client_get_tile_offsets(struct drm_device *dev, struct drm_connector **connectors, unsigned int connector_count, - struct drm_display_mode **modes, + const struct drm_display_mode **modes, struct drm_client_offset *offsets, int idx, int h_idx, int v_idx) @@ -386,7 +389,7 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, static bool drm_client_target_preferred(struct drm_device *dev, struct drm_connector **connectors, unsigned int connector_count, - struct drm_display_mode **modes, + const struct drm_display_mode **modes, struct drm_client_offset *offsets, bool *enabled, int width, int height) { @@ -505,7 +508,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, struct drm_connector **connectors, unsigned int connector_count, struct drm_crtc **best_crtcs, - struct drm_display_mode **modes, + const struct drm_display_mode **modes, int n, int width, int height) { struct drm_device *dev = client->dev; @@ -580,7 +583,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, struct drm_connector **connectors, unsigned int connector_count, struct drm_crtc **crtcs, - struct drm_display_mode **modes, + const struct drm_display_mode **modes, struct drm_client_offset *offsets, bool *enabled, int width, int height) { @@ -791,7 +794,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, struct drm_client_offset *offsets; unsigned int connector_count = 0; /* points to modes protected by mode_config.mutex */ - struct drm_display_mode **modes; + const struct drm_display_mode **modes; struct drm_crtc **crtcs; int i, ret = 0; bool *enabled; @@ -862,7 +865,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, drm_client_modeset_release(client); for (i = 0; i < connector_count; i++) { - struct drm_display_mode *mode = modes[i]; + const struct drm_display_mode *mode = modes[i]; struct drm_crtc *crtc = crtcs[i]; struct drm_client_offset *offset = &offsets[i]; -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 1/8] drm/client: Constify modes 2024-10-03 11:32 ` [PATCH 1/8] drm/client: Constify modes Ville Syrjala @ 2024-10-04 23:59 ` kernel test robot 2024-10-05 0:19 ` kernel test robot 1 sibling, 0 replies; 28+ messages in thread From: kernel test robot @ 2024-10-04 23:59 UTC (permalink / raw) To: Ville Syrjala, dri-devel Cc: llvm, oe-kbuild-all, intel-gfx, Jani Nikula, Thomas Zimmermann Hi Ville, kernel test robot noticed the following build errors: [auto build test ERROR on drm-misc/drm-misc-next] [also build test ERROR on next-20241004] [cannot apply to drm-intel/for-linux-next drm-intel/for-linux-next-fixes drm/drm-next drm-exynos/exynos-drm-next linus/master v6.12-rc1] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-client-Constify-modes/20241004-061843 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/r/20241003113304.11700-2-ville.syrjala%40linux.intel.com patch subject: [PATCH 1/8] drm/client: Constify modes config: i386-buildonly-randconfig-002-20241005 (https://download.01.org/0day-ci/archive/20241005/202410050750.I0iVowt8-lkp@intel.com/config) compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241005/202410050750.I0iVowt8-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202410050750.I0iVowt8-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from drivers/gpu/drm/drm_client_modeset.c:1266: >> drivers/gpu/drm/tests/drm_client_modeset_test.c:108:7: error: assigning to 'struct drm_display_mode *' from 'const struct drm_display_mode *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] 108 | mode = drm_connector_pick_cmdline_mode(connector); | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated. vim +108 drivers/gpu/drm/tests/drm_client_modeset_test.c 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 84 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 85 static void drm_test_pick_cmdline_res_1920_1080_60(struct kunit *test) 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 86 { 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 87 struct drm_client_modeset_test_priv *priv = test->priv; 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 88 struct drm_device *drm = priv->drm; 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 89 struct drm_connector *connector = &priv->connector; 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 90 struct drm_cmdline_mode *cmdline_mode = &connector->cmdline_mode; 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 91 struct drm_display_mode *expected_mode, *mode; 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 92 const char *cmdline = "1920x1080@60"; 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 93 int ret; 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 94 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 95 expected_mode = drm_mode_find_dmt(priv->drm, 1920, 1080, 60, false); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 96 KUNIT_ASSERT_NOT_NULL(test, expected_mode); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 97 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 98 KUNIT_ASSERT_TRUE(test, 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 99 drm_mode_parse_command_line_for_connector(cmdline, 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 100 connector, 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 101 cmdline_mode)); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 102 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 103 mutex_lock(&drm->mode_config.mutex); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 104 ret = drm_helper_probe_single_connector_modes(connector, 1920, 1080); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 105 mutex_unlock(&drm->mode_config.mutex); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 106 KUNIT_ASSERT_GT(test, ret, 0); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 107 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 @108 mode = drm_connector_pick_cmdline_mode(connector); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 109 KUNIT_ASSERT_NOT_NULL(test, mode); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 110 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 111 KUNIT_EXPECT_TRUE(test, drm_mode_equal(expected_mode, mode)); 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 112 } 8fc0380f6ba7e94 Maxime Ripard 2022-11-14 113 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 1/8] drm/client: Constify modes 2024-10-03 11:32 ` [PATCH 1/8] drm/client: Constify modes Ville Syrjala 2024-10-04 23:59 ` kernel test robot @ 2024-10-05 0:19 ` kernel test robot 1 sibling, 0 replies; 28+ messages in thread From: kernel test robot @ 2024-10-05 0:19 UTC (permalink / raw) To: Ville Syrjala, dri-devel Cc: oe-kbuild-all, intel-gfx, Jani Nikula, Thomas Zimmermann Hi Ville, kernel test robot noticed the following build warnings: [auto build test WARNING on drm-misc/drm-misc-next] [also build test WARNING on next-20241004] [cannot apply to drm-intel/for-linux-next drm-intel/for-linux-next-fixes drm/drm-next drm-exynos/exynos-drm-next linus/master v6.12-rc1] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-client-Constify-modes/20241004-061843 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/r/20241003113304.11700-2-ville.syrjala%40linux.intel.com patch subject: [PATCH 1/8] drm/client: Constify modes config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20241005/202410050841.RWs2VIP5-lkp@intel.com/config) compiler: alpha-linux-gcc (GCC) 13.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241005/202410050841.RWs2VIP5-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202410050841.RWs2VIP5-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from drivers/gpu/drm/drm_client_modeset.c:1266: drivers/gpu/drm/tests/drm_client_modeset_test.c: In function 'drm_test_pick_cmdline_res_1920_1080_60': >> drivers/gpu/drm/tests/drm_client_modeset_test.c:108:14: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] 108 | mode = drm_connector_pick_cmdline_mode(connector); | ^ vim +/const +108 drivers/gpu/drm/tests/drm_client_modeset_test.c 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 84 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 85 static void drm_test_pick_cmdline_res_1920_1080_60(struct kunit *test) 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 86 { 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 87 struct drm_client_modeset_test_priv *priv = test->priv; 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 88 struct drm_device *drm = priv->drm; 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 89 struct drm_connector *connector = &priv->connector; 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 90 struct drm_cmdline_mode *cmdline_mode = &connector->cmdline_mode; 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 91 struct drm_display_mode *expected_mode, *mode; 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 92 const char *cmdline = "1920x1080@60"; 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 93 int ret; 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 94 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 95 expected_mode = drm_mode_find_dmt(priv->drm, 1920, 1080, 60, false); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 96 KUNIT_ASSERT_NOT_NULL(test, expected_mode); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 97 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 98 KUNIT_ASSERT_TRUE(test, 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 99 drm_mode_parse_command_line_for_connector(cmdline, 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 100 connector, 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 101 cmdline_mode)); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 102 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 103 mutex_lock(&drm->mode_config.mutex); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 104 ret = drm_helper_probe_single_connector_modes(connector, 1920, 1080); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 105 mutex_unlock(&drm->mode_config.mutex); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 106 KUNIT_ASSERT_GT(test, ret, 0); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 107 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 @108 mode = drm_connector_pick_cmdline_mode(connector); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 109 KUNIT_ASSERT_NOT_NULL(test, mode); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 110 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 111 KUNIT_EXPECT_TRUE(test, drm_mode_equal(expected_mode, mode)); 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 112 } 8fc0380f6ba7e9 Maxime Ripard 2022-11-14 113 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 2/8] drm/client: Use array notation for function arguments 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala 2024-10-03 11:32 ` [PATCH 1/8] drm/client: Constify modes Ville Syrjala @ 2024-10-03 11:32 ` Ville Syrjala 2024-10-03 11:32 ` [PATCH 3/8] drm/client: Streamline mode selection debugs Ville Syrjala ` (10 subsequent siblings) 12 siblings, 0 replies; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:32 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx, Jani Nikula, Thomas Zimmermann From: Ville Syrjälä <ville.syrjala@linux.intel.com> Use the array notation rather that the pointer notation for function arguments. This makes it clear to the reader that we are in fact dealing with an array rather than a single pointer. Functionally the two are equivalent. Reviewed-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 42 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 20882dffcf5e..068ce32cc41b 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -239,9 +239,9 @@ static bool drm_connector_enabled(struct drm_connector *connector, bool strict) return enable; } -static void drm_client_connectors_enabled(struct drm_connector **connectors, +static void drm_client_connectors_enabled(struct drm_connector *connectors[], unsigned int connector_count, - bool *enabled) + bool enabled[]) { bool any_enabled = false; struct drm_connector *connector; @@ -266,11 +266,11 @@ static void drm_client_connectors_enabled(struct drm_connector **connectors, } static bool drm_client_target_cloned(struct drm_device *dev, - struct drm_connector **connectors, + struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode **modes, - struct drm_client_offset *offsets, - bool *enabled, int width, int height) + const struct drm_display_mode *modes[], + struct drm_client_offset offsets[], + bool enabled[], int width, int height) { int count, i, j; bool can_clone = false; @@ -352,10 +352,10 @@ static bool drm_client_target_cloned(struct drm_device *dev, } static int drm_client_get_tile_offsets(struct drm_device *dev, - struct drm_connector **connectors, + struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode **modes, - struct drm_client_offset *offsets, + const struct drm_display_mode *modes[], + struct drm_client_offset offsets[], int idx, int h_idx, int v_idx) { @@ -387,11 +387,11 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, } static bool drm_client_target_preferred(struct drm_device *dev, - struct drm_connector **connectors, + struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode **modes, - struct drm_client_offset *offsets, - bool *enabled, int width, int height) + const struct drm_display_mode *modes[], + struct drm_client_offset offsets[], + bool enabled[], int width, int height) { const u64 mask = BIT_ULL(connector_count) - 1; struct drm_connector *connector; @@ -505,10 +505,10 @@ static bool connector_has_possible_crtc(struct drm_connector *connector, } static int drm_client_pick_crtcs(struct drm_client_dev *client, - struct drm_connector **connectors, + struct drm_connector *connectors[], unsigned int connector_count, - struct drm_crtc **best_crtcs, - const struct drm_display_mode **modes, + struct drm_crtc *best_crtcs[], + const struct drm_display_mode *modes[], int n, int width, int height) { struct drm_device *dev = client->dev; @@ -580,12 +580,12 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, /* Try to read the BIOS display configuration and use it for the initial config */ static bool drm_client_firmware_config(struct drm_client_dev *client, - struct drm_connector **connectors, + struct drm_connector *connectors[], unsigned int connector_count, - struct drm_crtc **crtcs, - const struct drm_display_mode **modes, - struct drm_client_offset *offsets, - bool *enabled, int width, int height) + struct drm_crtc *crtcs[], + const struct drm_display_mode *modes[], + struct drm_client_offset offsets[], + bool enabled[], int width, int height) { const int count = min_t(unsigned int, connector_count, BITS_PER_LONG); unsigned long conn_configured, conn_seq, mask; -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 3/8] drm/client: Streamline mode selection debugs 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala 2024-10-03 11:32 ` [PATCH 1/8] drm/client: Constify modes Ville Syrjala 2024-10-03 11:32 ` [PATCH 2/8] drm/client: Use array notation for function arguments Ville Syrjala @ 2024-10-03 11:32 ` Ville Syrjala 2024-10-03 11:33 ` [PATCH 4/8] drm/client: Make copies of modes Ville Syrjala ` (9 subsequent siblings) 12 siblings, 0 replies; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:32 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx, Thomas Zimmermann From: Ville Syrjälä <ville.syrjala@linux.intel.com> Get rid of all the redundant debugs and just wait until the end to print which mode (and of which type) we picked. Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 70 +++++++++++++--------------- 1 file changed, 33 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 068ce32cc41b..888323137a6a 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -408,6 +408,8 @@ static bool drm_client_target_preferred(struct drm_device *dev, retry: for (i = 0; i < connector_count; i++) { + const char *mode_type; + connector = connectors[i]; if (conn_configured & BIT_ULL(i)) @@ -441,20 +443,20 @@ static bool drm_client_target_preferred(struct drm_device *dev, modes, offsets, i, connector->tile_h_loc, connector->tile_v_loc); } - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for cmdline mode\n", - connector->base.id, connector->name); - /* got for command line mode first */ + mode_type = "cmdline"; modes[i] = drm_connector_pick_cmdline_mode(connector); + if (!modes[i]) { - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for preferred mode, tile %d\n", - connector->base.id, connector->name, - connector->tile_group ? connector->tile_group->id : 0); + mode_type = "preferred"; modes[i] = drm_connector_preferred_mode(connector, width, height); } - /* No preferred modes, pick one off the list */ - if (!modes[i]) + + if (!modes[i]) { + mode_type = "first"; modes[i] = drm_connector_first_mode(connector); + } + /* * In case of tiled mode if all tiles not present fallback to * first available non tiled mode. @@ -469,18 +471,22 @@ static bool drm_client_target_preferred(struct drm_device *dev, (connector->tile_h_loc == 0 && connector->tile_v_loc == 0 && !drm_connector_get_tiled_mode(connector))) { - drm_dbg_kms(dev, - "[CONNECTOR:%d:%s] Falling back to non-tiled mode\n", - connector->base.id, connector->name); + mode_type = "non tiled"; modes[i] = drm_connector_fallback_non_tiled_mode(connector); } else { + mode_type = "tiled"; modes[i] = drm_connector_get_tiled_mode(connector); } } - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Found mode %s\n", - connector->base.id, connector->name, - modes[i] ? modes[i]->name : "none"); + if (modes[i]) + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] found %s mode: %s\n", + connector->base.id, connector->name, + mode_type, modes[i]->name); + else + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] no mode found\n", + connector->base.id, connector->name); + conn_configured |= BIT_ULL(i); } @@ -627,6 +633,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, struct drm_connector *connector; struct drm_encoder *encoder; struct drm_crtc *new_crtc; + const char *mode_type; connector = connectors[i]; @@ -676,30 +683,22 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, */ for (j = 0; j < count; j++) { if (crtcs[j] == new_crtc) { - drm_dbg_kms(dev, "fallback: cloned configuration\n"); + drm_dbg_kms(dev, "[CONNECTOR:%d:%s] fallback: cloned configuration\n", + connector->base.id, connector->name); goto bail; } } - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for cmdline mode\n", - connector->base.id, connector->name); - - /* go for command line mode first */ + mode_type = "cmdline"; modes[i] = drm_connector_pick_cmdline_mode(connector); - /* try for preferred next */ if (!modes[i]) { - drm_dbg_kms(dev, - "[CONNECTOR:%d:%s] looking for preferred mode, has tile: %s\n", - connector->base.id, connector->name, - str_yes_no(connector->has_tile)); + mode_type = "preferred"; modes[i] = drm_connector_preferred_mode(connector, width, height); } - /* No preferred mode marked by the EDID? Are there any modes? */ - if (!modes[i] && !list_empty(&connector->modes)) { - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] using first listed mode\n", - connector->base.id, connector->name); + if (!modes[i]) { + mode_type = "first"; modes[i] = drm_connector_first_mode(connector); } @@ -716,28 +715,25 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, * This is crtc->mode and not crtc->state->mode for the * fastboot check to work correctly. */ - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] looking for current mode\n", - connector->base.id, connector->name); + mode_type = "current"; modes[i] = &connector->state->crtc->mode; } + /* * In case of tiled modes, if all tiles are not present * then fallback to a non tiled mode. */ if (connector->has_tile && num_tiled_conns < connector->num_h_tile * connector->num_v_tile) { - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] Falling back to non-tiled mode\n", - connector->base.id, connector->name); + mode_type = "non tiled"; modes[i] = drm_connector_fallback_non_tiled_mode(connector); } crtcs[i] = new_crtc; - drm_dbg_kms(dev, "[CONNECTOR:%d:%s] on [CRTC:%d:%s]: %dx%d%s\n", + drm_dbg_kms(dev, "[CONNECTOR::%d:%s] on [CRTC:%d:%s] using %s mode: %s\n", connector->base.id, connector->name, - connector->state->crtc->base.id, - connector->state->crtc->name, - modes[i]->hdisplay, modes[i]->vdisplay, - modes[i]->flags & DRM_MODE_FLAG_INTERLACE ? "i" : ""); + new_crtc->base.id, new_crtc->name, + mode_type, modes[i]->name); fallback = false; conn_configured |= BIT(i); -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 4/8] drm/client: Make copies of modes 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (2 preceding siblings ...) 2024-10-03 11:32 ` [PATCH 3/8] drm/client: Streamline mode selection debugs Ville Syrjala @ 2024-10-03 11:33 ` Ville Syrjala 2024-10-03 16:45 ` Ville Syrjälä ` (3 more replies) 2024-10-03 11:33 ` [PATCH 5/8] drm/client: Stop using the legacy crtc->mode Ville Syrjala ` (8 subsequent siblings) 12 siblings, 4 replies; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:33 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> drm_client_firmware_config() is currently picking up the current mode of the crtc via the legacy crtc->mode, which is not supposed to be used by atomic drivers at all. We can't simply switch over to the proper crtc->state->mode because we drop the crtc->mutex (which protects crtc->state) before the mode gets used. The most straightforward solution to extend the lifetime of modes[] seem to be to make full copies of the modes instead of just storing pointers. We do have to replace the NULL checks with something else though. Checking that mode->clock!=0 should be sufficient. And with this we can undo also commit 3eadd887dbac ("drm/client:Fully protect modes[] with dev->mode_config.mutex") as the lifetime of modes[] no longer has anything to do with that lock. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 80 +++++++++++++++------------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 888323137a6a..d413e119db3f 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -265,10 +265,15 @@ static void drm_client_connectors_enabled(struct drm_connector *connectors[], enabled[i] = drm_connector_enabled(connectors[i], false); } +static bool mode_valid(const struct drm_display_mode *mode) +{ + return mode->clock != 0; +} + static bool drm_client_target_cloned(struct drm_device *dev, struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode *modes[], + struct drm_display_mode modes[], struct drm_client_offset offsets[], bool enabled[], int width, int height) { @@ -296,15 +301,16 @@ static bool drm_client_target_cloned(struct drm_device *dev, for (i = 0; i < connector_count; i++) { if (!enabled[i]) continue; - modes[i] = drm_connector_pick_cmdline_mode(connectors[i]); - if (!modes[i]) { + + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connectors[i])); + if (!mode_valid(&modes[i])) { can_clone = false; break; } for (j = 0; j < i; j++) { if (!enabled[j]) continue; - if (!drm_mode_match(modes[j], modes[i], + if (!drm_mode_match(&modes[j], &modes[i], DRM_MODE_MATCH_TIMINGS | DRM_MODE_MATCH_CLOCK | DRM_MODE_MATCH_FLAGS | @@ -335,9 +341,9 @@ static bool drm_client_target_cloned(struct drm_device *dev, DRM_MODE_MATCH_CLOCK | DRM_MODE_MATCH_FLAGS | DRM_MODE_MATCH_3D_FLAGS)) - modes[i] = mode; + drm_mode_copy(&modes[i], mode); } - if (!modes[i]) + if (!mode_valid(&modes[i])) can_clone = false; } drm_mode_destroy(dev, dmt_mode); @@ -354,7 +360,7 @@ static bool drm_client_target_cloned(struct drm_device *dev, static int drm_client_get_tile_offsets(struct drm_device *dev, struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode *modes[], + const struct drm_display_mode modes[], struct drm_client_offset offsets[], int idx, int h_idx, int v_idx) @@ -368,17 +374,17 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, if (!connector->has_tile) continue; - if (!modes[i] && (h_idx || v_idx)) { + if (!mode_valid(&modes[i]) && (h_idx || v_idx)) { drm_dbg_kms(dev, "[CONNECTOR:%d:%s] no modes for connector tiled %d\n", connector->base.id, connector->name, i); continue; } if (connector->tile_h_loc < h_idx) - hoffset += modes[i]->hdisplay; + hoffset += modes[i].hdisplay; if (connector->tile_v_loc < v_idx) - voffset += modes[i]->vdisplay; + voffset += modes[i].vdisplay; } offsets[idx].x = hoffset; offsets[idx].y = voffset; @@ -389,7 +395,7 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, static bool drm_client_target_preferred(struct drm_device *dev, struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode *modes[], + struct drm_display_mode modes[], struct drm_client_offset offsets[], bool enabled[], int width, int height) { @@ -445,16 +451,16 @@ static bool drm_client_target_preferred(struct drm_device *dev, } mode_type = "cmdline"; - modes[i] = drm_connector_pick_cmdline_mode(connector); + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connector)); - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "preferred"; - modes[i] = drm_connector_preferred_mode(connector, width, height); + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); } - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "first"; - modes[i] = drm_connector_first_mode(connector); + drm_mode_copy(&modes[i], drm_connector_first_mode(connector)); } /* @@ -472,17 +478,17 @@ static bool drm_client_target_preferred(struct drm_device *dev, connector->tile_v_loc == 0 && !drm_connector_get_tiled_mode(connector))) { mode_type = "non tiled"; - modes[i] = drm_connector_fallback_non_tiled_mode(connector); + drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); } else { mode_type = "tiled"; - modes[i] = drm_connector_get_tiled_mode(connector); + drm_mode_copy(&modes[i], drm_connector_get_tiled_mode(connector)); } } - if (modes[i]) + if (mode_valid(&modes[i])) drm_dbg_kms(dev, "[CONNECTOR:%d:%s] found %s mode: %s\n", connector->base.id, connector->name, - mode_type, modes[i]->name); + mode_type, modes[i].name); else drm_dbg_kms(dev, "[CONNECTOR:%d:%s] no mode found\n", connector->base.id, connector->name); @@ -514,7 +520,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, struct drm_connector *connectors[], unsigned int connector_count, struct drm_crtc *best_crtcs[], - const struct drm_display_mode *modes[], + const struct drm_display_mode modes[], int n, int width, int height) { struct drm_device *dev = client->dev; @@ -532,7 +538,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, best_crtcs[n] = NULL; best_score = drm_client_pick_crtcs(client, connectors, connector_count, best_crtcs, modes, n + 1, width, height); - if (modes[n] == NULL) + if (!mode_valid(&modes[n])) return best_score; crtcs = kcalloc(connector_count, sizeof(*crtcs), GFP_KERNEL); @@ -566,7 +572,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, if (dev->mode_config.num_crtc > 1) continue; - if (!drm_mode_equal(modes[o], modes[n])) + if (!drm_mode_equal(&modes[o], &modes[n])) continue; } @@ -589,7 +595,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, struct drm_connector *connectors[], unsigned int connector_count, struct drm_crtc *crtcs[], - const struct drm_display_mode *modes[], + struct drm_display_mode modes[], struct drm_client_offset offsets[], bool enabled[], int width, int height) { @@ -690,20 +696,20 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, } mode_type = "cmdline"; - modes[i] = drm_connector_pick_cmdline_mode(connector); + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connector)); - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "preferred"; - modes[i] = drm_connector_preferred_mode(connector, width, height); + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); } - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "first"; - modes[i] = drm_connector_first_mode(connector); + drm_mode_copy(&modes[i], drm_connector_first_mode(connector)); } /* last resort: use current mode */ - if (!modes[i]) { + if (!mode_valid(&modes[i])) { /* * IMPORTANT: We want to use the adjusted mode (i.e. * after the panel fitter upscaling) as the initial @@ -716,7 +722,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, * fastboot check to work correctly. */ mode_type = "current"; - modes[i] = &connector->state->crtc->mode; + drm_mode_copy(&modes[i], &connector->state->crtc->mode); } /* @@ -726,14 +732,14 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, if (connector->has_tile && num_tiled_conns < connector->num_h_tile * connector->num_v_tile) { mode_type = "non tiled"; - modes[i] = drm_connector_fallback_non_tiled_mode(connector); + drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); } crtcs[i] = new_crtc; drm_dbg_kms(dev, "[CONNECTOR::%d:%s] on [CRTC:%d:%s] using %s mode: %s\n", connector->base.id, connector->name, new_crtc->base.id, new_crtc->name, - mode_type, modes[i]->name); + mode_type, modes[i].name); fallback = false; conn_configured |= BIT(i); @@ -789,8 +795,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, unsigned int total_modes_count = 0; struct drm_client_offset *offsets; unsigned int connector_count = 0; - /* points to modes protected by mode_config.mutex */ - const struct drm_display_mode **modes; + struct drm_display_mode *modes; struct drm_crtc **crtcs; int i, ret = 0; bool *enabled; @@ -858,10 +863,12 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, crtcs, modes, 0, width, height); } + mutex_unlock(&dev->mode_config.mutex); + drm_client_modeset_release(client); for (i = 0; i < connector_count; i++) { - const struct drm_display_mode *mode = modes[i]; + const struct drm_display_mode *mode = &modes[i]; struct drm_crtc *crtc = crtcs[i]; struct drm_client_offset *offset = &offsets[i]; @@ -892,7 +899,6 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, modeset->y = offset->y; } } - mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&client->modeset_mutex); out: -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 4/8] drm/client: Make copies of modes 2024-10-03 11:33 ` [PATCH 4/8] drm/client: Make copies of modes Ville Syrjala @ 2024-10-03 16:45 ` Ville Syrjälä 2024-10-03 18:15 ` [PATCH v2 " Ville Syrjala ` (2 subsequent siblings) 3 siblings, 0 replies; 28+ messages in thread From: Ville Syrjälä @ 2024-10-03 16:45 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx On Thu, Oct 03, 2024 at 02:33:00PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > drm_client_firmware_config() is currently picking up the current > mode of the crtc via the legacy crtc->mode, which is not supposed > to be used by atomic drivers at all. We can't simply switch over > to the proper crtc->state->mode because we drop the crtc->mutex > (which protects crtc->state) before the mode gets used. > > The most straightforward solution to extend the lifetime of > modes[] seem to be to make full copies of the modes instead > of just storing pointers. We do have to replace the NULL checks > with something else though. Checking that mode->clock!=0 > should be sufficient. > > And with this we can undo also commit 3eadd887dbac > ("drm/client:Fully protect modes[] with dev->mode_config.mutex") > as the lifetime of modes[] no longer has anything to do with > that lock. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_client_modeset.c | 80 +++++++++++++++------------- > 1 file changed, 43 insertions(+), 37 deletions(-) > > diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c > index 888323137a6a..d413e119db3f 100644 > --- a/drivers/gpu/drm/drm_client_modeset.c > +++ b/drivers/gpu/drm/drm_client_modeset.c > @@ -265,10 +265,15 @@ static void drm_client_connectors_enabled(struct drm_connector *connectors[], > enabled[i] = drm_connector_enabled(connectors[i], false); > } > > +static bool mode_valid(const struct drm_display_mode *mode) > +{ > + return mode->clock != 0; > +} > + > static bool drm_client_target_cloned(struct drm_device *dev, > struct drm_connector *connectors[], > unsigned int connector_count, > - const struct drm_display_mode *modes[], > + struct drm_display_mode modes[], > struct drm_client_offset offsets[], > bool enabled[], int width, int height) > { > @@ -296,15 +301,16 @@ static bool drm_client_target_cloned(struct drm_device *dev, > for (i = 0; i < connector_count; i++) { > if (!enabled[i]) > continue; > - modes[i] = drm_connector_pick_cmdline_mode(connectors[i]); > - if (!modes[i]) { > + > + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connectors[i])); Apparently this guy doesn't accept NULL, so this is oops central now. I'll have to wrap these up a bit I guess. > + if (!mode_valid(&modes[i])) { > can_clone = false; > break; > } > for (j = 0; j < i; j++) { > if (!enabled[j]) > continue; > - if (!drm_mode_match(modes[j], modes[i], > + if (!drm_mode_match(&modes[j], &modes[i], > DRM_MODE_MATCH_TIMINGS | > DRM_MODE_MATCH_CLOCK | > DRM_MODE_MATCH_FLAGS | > @@ -335,9 +341,9 @@ static bool drm_client_target_cloned(struct drm_device *dev, > DRM_MODE_MATCH_CLOCK | > DRM_MODE_MATCH_FLAGS | > DRM_MODE_MATCH_3D_FLAGS)) > - modes[i] = mode; > + drm_mode_copy(&modes[i], mode); > } > - if (!modes[i]) > + if (!mode_valid(&modes[i])) > can_clone = false; > } > drm_mode_destroy(dev, dmt_mode); > @@ -354,7 +360,7 @@ static bool drm_client_target_cloned(struct drm_device *dev, > static int drm_client_get_tile_offsets(struct drm_device *dev, > struct drm_connector *connectors[], > unsigned int connector_count, > - const struct drm_display_mode *modes[], > + const struct drm_display_mode modes[], > struct drm_client_offset offsets[], > int idx, > int h_idx, int v_idx) > @@ -368,17 +374,17 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, > if (!connector->has_tile) > continue; > > - if (!modes[i] && (h_idx || v_idx)) { > + if (!mode_valid(&modes[i]) && (h_idx || v_idx)) { > drm_dbg_kms(dev, > "[CONNECTOR:%d:%s] no modes for connector tiled %d\n", > connector->base.id, connector->name, i); > continue; > } > if (connector->tile_h_loc < h_idx) > - hoffset += modes[i]->hdisplay; > + hoffset += modes[i].hdisplay; > > if (connector->tile_v_loc < v_idx) > - voffset += modes[i]->vdisplay; > + voffset += modes[i].vdisplay; > } > offsets[idx].x = hoffset; > offsets[idx].y = voffset; > @@ -389,7 +395,7 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, > static bool drm_client_target_preferred(struct drm_device *dev, > struct drm_connector *connectors[], > unsigned int connector_count, > - const struct drm_display_mode *modes[], > + struct drm_display_mode modes[], > struct drm_client_offset offsets[], > bool enabled[], int width, int height) > { > @@ -445,16 +451,16 @@ static bool drm_client_target_preferred(struct drm_device *dev, > } > > mode_type = "cmdline"; > - modes[i] = drm_connector_pick_cmdline_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connector)); > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "preferred"; > - modes[i] = drm_connector_preferred_mode(connector, width, height); > + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); > } > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "first"; > - modes[i] = drm_connector_first_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_first_mode(connector)); > } > > /* > @@ -472,17 +478,17 @@ static bool drm_client_target_preferred(struct drm_device *dev, > connector->tile_v_loc == 0 && > !drm_connector_get_tiled_mode(connector))) { > mode_type = "non tiled"; > - modes[i] = drm_connector_fallback_non_tiled_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); > } else { > mode_type = "tiled"; > - modes[i] = drm_connector_get_tiled_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_get_tiled_mode(connector)); > } > } > > - if (modes[i]) > + if (mode_valid(&modes[i])) > drm_dbg_kms(dev, "[CONNECTOR:%d:%s] found %s mode: %s\n", > connector->base.id, connector->name, > - mode_type, modes[i]->name); > + mode_type, modes[i].name); > else > drm_dbg_kms(dev, "[CONNECTOR:%d:%s] no mode found\n", > connector->base.id, connector->name); > @@ -514,7 +520,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > struct drm_connector *connectors[], > unsigned int connector_count, > struct drm_crtc *best_crtcs[], > - const struct drm_display_mode *modes[], > + const struct drm_display_mode modes[], > int n, int width, int height) > { > struct drm_device *dev = client->dev; > @@ -532,7 +538,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > best_crtcs[n] = NULL; > best_score = drm_client_pick_crtcs(client, connectors, connector_count, > best_crtcs, modes, n + 1, width, height); > - if (modes[n] == NULL) > + if (!mode_valid(&modes[n])) > return best_score; > > crtcs = kcalloc(connector_count, sizeof(*crtcs), GFP_KERNEL); > @@ -566,7 +572,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > if (dev->mode_config.num_crtc > 1) > continue; > > - if (!drm_mode_equal(modes[o], modes[n])) > + if (!drm_mode_equal(&modes[o], &modes[n])) > continue; > } > > @@ -589,7 +595,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > struct drm_connector *connectors[], > unsigned int connector_count, > struct drm_crtc *crtcs[], > - const struct drm_display_mode *modes[], > + struct drm_display_mode modes[], > struct drm_client_offset offsets[], > bool enabled[], int width, int height) > { > @@ -690,20 +696,20 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > } > > mode_type = "cmdline"; > - modes[i] = drm_connector_pick_cmdline_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connector)); > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "preferred"; > - modes[i] = drm_connector_preferred_mode(connector, width, height); > + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); > } > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "first"; > - modes[i] = drm_connector_first_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_first_mode(connector)); > } > > /* last resort: use current mode */ > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > /* > * IMPORTANT: We want to use the adjusted mode (i.e. > * after the panel fitter upscaling) as the initial > @@ -716,7 +722,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > * fastboot check to work correctly. > */ > mode_type = "current"; > - modes[i] = &connector->state->crtc->mode; > + drm_mode_copy(&modes[i], &connector->state->crtc->mode); > } > > /* > @@ -726,14 +732,14 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > if (connector->has_tile && > num_tiled_conns < connector->num_h_tile * connector->num_v_tile) { > mode_type = "non tiled"; > - modes[i] = drm_connector_fallback_non_tiled_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); > } > crtcs[i] = new_crtc; > > drm_dbg_kms(dev, "[CONNECTOR::%d:%s] on [CRTC:%d:%s] using %s mode: %s\n", > connector->base.id, connector->name, > new_crtc->base.id, new_crtc->name, > - mode_type, modes[i]->name); > + mode_type, modes[i].name); > > fallback = false; > conn_configured |= BIT(i); > @@ -789,8 +795,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, > unsigned int total_modes_count = 0; > struct drm_client_offset *offsets; > unsigned int connector_count = 0; > - /* points to modes protected by mode_config.mutex */ > - const struct drm_display_mode **modes; > + struct drm_display_mode *modes; > struct drm_crtc **crtcs; > int i, ret = 0; > bool *enabled; > @@ -858,10 +863,12 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, > crtcs, modes, 0, width, height); > } > > + mutex_unlock(&dev->mode_config.mutex); > + > drm_client_modeset_release(client); > > for (i = 0; i < connector_count; i++) { > - const struct drm_display_mode *mode = modes[i]; > + const struct drm_display_mode *mode = &modes[i]; > struct drm_crtc *crtc = crtcs[i]; > struct drm_client_offset *offset = &offsets[i]; > > @@ -892,7 +899,6 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, > modeset->y = offset->y; > } > } > - mutex_unlock(&dev->mode_config.mutex); > > mutex_unlock(&client->modeset_mutex); > out: > -- > 2.45.2 -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH v2 4/8] drm/client: Make copies of modes 2024-10-03 11:33 ` [PATCH 4/8] drm/client: Make copies of modes Ville Syrjala 2024-10-03 16:45 ` Ville Syrjälä @ 2024-10-03 18:15 ` Ville Syrjala 2024-10-07 7:36 ` [PATCH " Thomas Zimmermann 2024-10-09 14:09 ` kernel test robot 3 siblings, 0 replies; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 18:15 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> drm_client_firmware_config() is currently picking up the current mode of the crtc via the legacy crtc->mode, which is not supposed to be used by atomic drivers at all. We can't simply switch over to the proper crtc->state->mode because we drop the crtc->mutex (which protects crtc->state) before the mode gets used. The most straightforward solution to extend the lifetime of modes[] seem to be to make full copies of the modes instead of just storing pointers. We do have to replace the NULL checks with something else though. Checking that mode->clock!=0 should be sufficient. And with this we can undo also commit 3eadd887dbac ("drm/client:Fully protect modes[] with dev->mode_config.mutex") as the lifetime of modes[] no longer has anything to do with that lock. v2: Don't try to copy NULL modes Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 96 +++++++++++++++++----------- 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 888323137a6a..730ed0d4bfa9 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -265,10 +265,21 @@ static void drm_client_connectors_enabled(struct drm_connector *connectors[], enabled[i] = drm_connector_enabled(connectors[i], false); } +static bool mode_valid(const struct drm_display_mode *mode) +{ + return mode->clock != 0; +} + +static void mode_copy_if_not_null(struct drm_display_mode *dst, const struct drm_display_mode *src) +{ + if (src) + drm_mode_copy(dst, src); +} + static bool drm_client_target_cloned(struct drm_device *dev, struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode *modes[], + struct drm_display_mode modes[], struct drm_client_offset offsets[], bool enabled[], int width, int height) { @@ -296,15 +307,16 @@ static bool drm_client_target_cloned(struct drm_device *dev, for (i = 0; i < connector_count; i++) { if (!enabled[i]) continue; - modes[i] = drm_connector_pick_cmdline_mode(connectors[i]); - if (!modes[i]) { + + mode_copy_if_not_null(&modes[i], drm_connector_pick_cmdline_mode(connectors[i])); + if (!mode_valid(&modes[i])) { can_clone = false; break; } for (j = 0; j < i; j++) { if (!enabled[j]) continue; - if (!drm_mode_match(modes[j], modes[i], + if (!drm_mode_match(&modes[j], &modes[i], DRM_MODE_MATCH_TIMINGS | DRM_MODE_MATCH_CLOCK | DRM_MODE_MATCH_FLAGS | @@ -335,9 +347,9 @@ static bool drm_client_target_cloned(struct drm_device *dev, DRM_MODE_MATCH_CLOCK | DRM_MODE_MATCH_FLAGS | DRM_MODE_MATCH_3D_FLAGS)) - modes[i] = mode; + mode_copy_if_not_null(&modes[i], mode); } - if (!modes[i]) + if (!mode_valid(&modes[i])) can_clone = false; } drm_mode_destroy(dev, dmt_mode); @@ -354,7 +366,7 @@ static bool drm_client_target_cloned(struct drm_device *dev, static int drm_client_get_tile_offsets(struct drm_device *dev, struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode *modes[], + const struct drm_display_mode modes[], struct drm_client_offset offsets[], int idx, int h_idx, int v_idx) @@ -368,17 +380,17 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, if (!connector->has_tile) continue; - if (!modes[i] && (h_idx || v_idx)) { + if (!mode_valid(&modes[i]) && (h_idx || v_idx)) { drm_dbg_kms(dev, "[CONNECTOR:%d:%s] no modes for connector tiled %d\n", connector->base.id, connector->name, i); continue; } if (connector->tile_h_loc < h_idx) - hoffset += modes[i]->hdisplay; + hoffset += modes[i].hdisplay; if (connector->tile_v_loc < v_idx) - voffset += modes[i]->vdisplay; + voffset += modes[i].vdisplay; } offsets[idx].x = hoffset; offsets[idx].y = voffset; @@ -389,7 +401,7 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, static bool drm_client_target_preferred(struct drm_device *dev, struct drm_connector *connectors[], unsigned int connector_count, - const struct drm_display_mode *modes[], + struct drm_display_mode modes[], struct drm_client_offset offsets[], bool enabled[], int width, int height) { @@ -445,16 +457,19 @@ static bool drm_client_target_preferred(struct drm_device *dev, } mode_type = "cmdline"; - modes[i] = drm_connector_pick_cmdline_mode(connector); + mode_copy_if_not_null(&modes[i], + drm_connector_pick_cmdline_mode(connector)); - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "preferred"; - modes[i] = drm_connector_preferred_mode(connector, width, height); + mode_copy_if_not_null(&modes[i], + drm_connector_preferred_mode(connector, width, height)); } - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "first"; - modes[i] = drm_connector_first_mode(connector); + mode_copy_if_not_null(&modes[i], + drm_connector_first_mode(connector)); } /* @@ -472,17 +487,19 @@ static bool drm_client_target_preferred(struct drm_device *dev, connector->tile_v_loc == 0 && !drm_connector_get_tiled_mode(connector))) { mode_type = "non tiled"; - modes[i] = drm_connector_fallback_non_tiled_mode(connector); + mode_copy_if_not_null(&modes[i], + drm_connector_fallback_non_tiled_mode(connector)); } else { mode_type = "tiled"; - modes[i] = drm_connector_get_tiled_mode(connector); + mode_copy_if_not_null(&modes[i], + drm_connector_get_tiled_mode(connector)); } } - if (modes[i]) + if (mode_valid(&modes[i])) drm_dbg_kms(dev, "[CONNECTOR:%d:%s] found %s mode: %s\n", connector->base.id, connector->name, - mode_type, modes[i]->name); + mode_type, modes[i].name); else drm_dbg_kms(dev, "[CONNECTOR:%d:%s] no mode found\n", connector->base.id, connector->name); @@ -514,7 +531,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, struct drm_connector *connectors[], unsigned int connector_count, struct drm_crtc *best_crtcs[], - const struct drm_display_mode *modes[], + const struct drm_display_mode modes[], int n, int width, int height) { struct drm_device *dev = client->dev; @@ -532,7 +549,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, best_crtcs[n] = NULL; best_score = drm_client_pick_crtcs(client, connectors, connector_count, best_crtcs, modes, n + 1, width, height); - if (modes[n] == NULL) + if (!mode_valid(&modes[n])) return best_score; crtcs = kcalloc(connector_count, sizeof(*crtcs), GFP_KERNEL); @@ -566,7 +583,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, if (dev->mode_config.num_crtc > 1) continue; - if (!drm_mode_equal(modes[o], modes[n])) + if (!drm_mode_equal(&modes[o], &modes[n])) continue; } @@ -589,7 +606,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, struct drm_connector *connectors[], unsigned int connector_count, struct drm_crtc *crtcs[], - const struct drm_display_mode *modes[], + struct drm_display_mode modes[], struct drm_client_offset offsets[], bool enabled[], int width, int height) { @@ -690,20 +707,23 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, } mode_type = "cmdline"; - modes[i] = drm_connector_pick_cmdline_mode(connector); + mode_copy_if_not_null(&modes[i], + drm_connector_pick_cmdline_mode(connector)); - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "preferred"; - modes[i] = drm_connector_preferred_mode(connector, width, height); + mode_copy_if_not_null(&modes[i], + drm_connector_preferred_mode(connector, width, height)); } - if (!modes[i]) { + if (!mode_valid(&modes[i])) { mode_type = "first"; - modes[i] = drm_connector_first_mode(connector); + mode_copy_if_not_null(&modes[i], + drm_connector_first_mode(connector)); } /* last resort: use current mode */ - if (!modes[i]) { + if (!mode_valid(&modes[i])) { /* * IMPORTANT: We want to use the adjusted mode (i.e. * after the panel fitter upscaling) as the initial @@ -716,7 +736,8 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, * fastboot check to work correctly. */ mode_type = "current"; - modes[i] = &connector->state->crtc->mode; + mode_copy_if_not_null(&modes[i], + &connector->state->crtc->mode); } /* @@ -726,14 +747,15 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, if (connector->has_tile && num_tiled_conns < connector->num_h_tile * connector->num_v_tile) { mode_type = "non tiled"; - modes[i] = drm_connector_fallback_non_tiled_mode(connector); + mode_copy_if_not_null(&modes[i], + drm_connector_fallback_non_tiled_mode(connector)); } crtcs[i] = new_crtc; drm_dbg_kms(dev, "[CONNECTOR::%d:%s] on [CRTC:%d:%s] using %s mode: %s\n", connector->base.id, connector->name, new_crtc->base.id, new_crtc->name, - mode_type, modes[i]->name); + mode_type, modes[i].name); fallback = false; conn_configured |= BIT(i); @@ -789,8 +811,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, unsigned int total_modes_count = 0; struct drm_client_offset *offsets; unsigned int connector_count = 0; - /* points to modes protected by mode_config.mutex */ - const struct drm_display_mode **modes; + struct drm_display_mode *modes; struct drm_crtc **crtcs; int i, ret = 0; bool *enabled; @@ -858,10 +879,12 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, crtcs, modes, 0, width, height); } + mutex_unlock(&dev->mode_config.mutex); + drm_client_modeset_release(client); for (i = 0; i < connector_count; i++) { - const struct drm_display_mode *mode = modes[i]; + const struct drm_display_mode *mode = &modes[i]; struct drm_crtc *crtc = crtcs[i]; struct drm_client_offset *offset = &offsets[i]; @@ -892,7 +915,6 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, modeset->y = offset->y; } } - mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&client->modeset_mutex); out: -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 4/8] drm/client: Make copies of modes 2024-10-03 11:33 ` [PATCH 4/8] drm/client: Make copies of modes Ville Syrjala 2024-10-03 16:45 ` Ville Syrjälä 2024-10-03 18:15 ` [PATCH v2 " Ville Syrjala @ 2024-10-07 7:36 ` Thomas Zimmermann 2024-10-08 19:33 ` Ville Syrjälä 2024-10-09 14:09 ` kernel test robot 3 siblings, 1 reply; 28+ messages in thread From: Thomas Zimmermann @ 2024-10-07 7:36 UTC (permalink / raw) To: Ville Syrjala, dri-devel; +Cc: intel-gfx Hi Am 03.10.24 um 13:33 schrieb Ville Syrjala: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > drm_client_firmware_config() is currently picking up the current > mode of the crtc via the legacy crtc->mode, which is not supposed > to be used by atomic drivers at all. We can't simply switch over > to the proper crtc->state->mode because we drop the crtc->mutex > (which protects crtc->state) before the mode gets used. > > The most straightforward solution to extend the lifetime of > modes[] seem to be to make full copies of the modes instead > of just storing pointers. We do have to replace the NULL checks > with something else though. Checking that mode->clock!=0 > should be sufficient. > > And with this we can undo also commit 3eadd887dbac > ("drm/client:Fully protect modes[] with dev->mode_config.mutex") > as the lifetime of modes[] no longer has anything to do with > that lock. I think it would be a lot better to first build that mode list while holding the mutex, and afterwards copy the resulting modes before releasing the lock. The code below is convoluted with drm_mode_copy(). > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_client_modeset.c | 80 +++++++++++++++------------- > 1 file changed, 43 insertions(+), 37 deletions(-) > > diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c > index 888323137a6a..d413e119db3f 100644 > --- a/drivers/gpu/drm/drm_client_modeset.c > +++ b/drivers/gpu/drm/drm_client_modeset.c > @@ -265,10 +265,15 @@ static void drm_client_connectors_enabled(struct drm_connector *connectors[], > enabled[i] = drm_connector_enabled(connectors[i], false); > } > > +static bool mode_valid(const struct drm_display_mode *mode) > +{ > + return mode->clock != 0; A mode's clock isn't always known and not all drivers might set it correctly. At least in simpledrm/ofdrm, we have to make up a clock value for the firmware framebuffer. Otherwise some of our userspace would oops. The test for clock != 0 makes sense, but it's maybe the wrong place to do this. Would a test for hdisplay/vdisplay != 0 work instead? > +} > + > static bool drm_client_target_cloned(struct drm_device *dev, > struct drm_connector *connectors[], > unsigned int connector_count, > - const struct drm_display_mode *modes[], > + struct drm_display_mode modes[], > struct drm_client_offset offsets[], > bool enabled[], int width, int height) > { > @@ -296,15 +301,16 @@ static bool drm_client_target_cloned(struct drm_device *dev, > for (i = 0; i < connector_count; i++) { > if (!enabled[i]) > continue; > - modes[i] = drm_connector_pick_cmdline_mode(connectors[i]); > - if (!modes[i]) { > + > + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connectors[i])); > + if (!mode_valid(&modes[i])) { You're copying and only then test for validity? > can_clone = false; > break; > } > for (j = 0; j < i; j++) { > if (!enabled[j]) > continue; > - if (!drm_mode_match(modes[j], modes[i], > + if (!drm_mode_match(&modes[j], &modes[i], > DRM_MODE_MATCH_TIMINGS | > DRM_MODE_MATCH_CLOCK | > DRM_MODE_MATCH_FLAGS | > @@ -335,9 +341,9 @@ static bool drm_client_target_cloned(struct drm_device *dev, > DRM_MODE_MATCH_CLOCK | > DRM_MODE_MATCH_FLAGS | > DRM_MODE_MATCH_3D_FLAGS)) > - modes[i] = mode; > + drm_mode_copy(&modes[i], mode); > } > - if (!modes[i]) > + if (!mode_valid(&modes[i])) > can_clone = false; > } > drm_mode_destroy(dev, dmt_mode); > @@ -354,7 +360,7 @@ static bool drm_client_target_cloned(struct drm_device *dev, > static int drm_client_get_tile_offsets(struct drm_device *dev, > struct drm_connector *connectors[], > unsigned int connector_count, > - const struct drm_display_mode *modes[], > + const struct drm_display_mode modes[], > struct drm_client_offset offsets[], > int idx, > int h_idx, int v_idx) > @@ -368,17 +374,17 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, > if (!connector->has_tile) > continue; > > - if (!modes[i] && (h_idx || v_idx)) { > + if (!mode_valid(&modes[i]) && (h_idx || v_idx)) { > drm_dbg_kms(dev, > "[CONNECTOR:%d:%s] no modes for connector tiled %d\n", > connector->base.id, connector->name, i); > continue; > } > if (connector->tile_h_loc < h_idx) > - hoffset += modes[i]->hdisplay; > + hoffset += modes[i].hdisplay; > > if (connector->tile_v_loc < v_idx) > - voffset += modes[i]->vdisplay; > + voffset += modes[i].vdisplay; > } > offsets[idx].x = hoffset; > offsets[idx].y = voffset; > @@ -389,7 +395,7 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, > static bool drm_client_target_preferred(struct drm_device *dev, > struct drm_connector *connectors[], > unsigned int connector_count, > - const struct drm_display_mode *modes[], > + struct drm_display_mode modes[], > struct drm_client_offset offsets[], > bool enabled[], int width, int height) > { > @@ -445,16 +451,16 @@ static bool drm_client_target_preferred(struct drm_device *dev, > } > > mode_type = "cmdline"; > - modes[i] = drm_connector_pick_cmdline_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connector)); > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "preferred"; > - modes[i] = drm_connector_preferred_mode(connector, width, height); > + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); > } > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "first"; > - modes[i] = drm_connector_first_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_first_mode(connector)); > } > > /* > @@ -472,17 +478,17 @@ static bool drm_client_target_preferred(struct drm_device *dev, > connector->tile_v_loc == 0 && > !drm_connector_get_tiled_mode(connector))) { > mode_type = "non tiled"; > - modes[i] = drm_connector_fallback_non_tiled_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); > } else { > mode_type = "tiled"; > - modes[i] = drm_connector_get_tiled_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_get_tiled_mode(connector)); > } > } > > - if (modes[i]) > + if (mode_valid(&modes[i])) > drm_dbg_kms(dev, "[CONNECTOR:%d:%s] found %s mode: %s\n", > connector->base.id, connector->name, > - mode_type, modes[i]->name); > + mode_type, modes[i].name); > else > drm_dbg_kms(dev, "[CONNECTOR:%d:%s] no mode found\n", > connector->base.id, connector->name); > @@ -514,7 +520,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > struct drm_connector *connectors[], > unsigned int connector_count, > struct drm_crtc *best_crtcs[], > - const struct drm_display_mode *modes[], > + const struct drm_display_mode modes[], > int n, int width, int height) > { > struct drm_device *dev = client->dev; > @@ -532,7 +538,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > best_crtcs[n] = NULL; > best_score = drm_client_pick_crtcs(client, connectors, connector_count, > best_crtcs, modes, n + 1, width, height); > - if (modes[n] == NULL) > + if (!mode_valid(&modes[n])) > return best_score; > > crtcs = kcalloc(connector_count, sizeof(*crtcs), GFP_KERNEL); > @@ -566,7 +572,7 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > if (dev->mode_config.num_crtc > 1) > continue; > > - if (!drm_mode_equal(modes[o], modes[n])) > + if (!drm_mode_equal(&modes[o], &modes[n])) > continue; > } > > @@ -589,7 +595,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > struct drm_connector *connectors[], > unsigned int connector_count, > struct drm_crtc *crtcs[], > - const struct drm_display_mode *modes[], > + struct drm_display_mode modes[], > struct drm_client_offset offsets[], > bool enabled[], int width, int height) > { > @@ -690,20 +696,20 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > } > > mode_type = "cmdline"; > - modes[i] = drm_connector_pick_cmdline_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connector)); > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "preferred"; > - modes[i] = drm_connector_preferred_mode(connector, width, height); > + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); > } > > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > mode_type = "first"; > - modes[i] = drm_connector_first_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_first_mode(connector)); > } > > /* last resort: use current mode */ > - if (!modes[i]) { > + if (!mode_valid(&modes[i])) { > /* > * IMPORTANT: We want to use the adjusted mode (i.e. > * after the panel fitter upscaling) as the initial > @@ -716,7 +722,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > * fastboot check to work correctly. > */ > mode_type = "current"; > - modes[i] = &connector->state->crtc->mode; > + drm_mode_copy(&modes[i], &connector->state->crtc->mode); > } > > /* > @@ -726,14 +732,14 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > if (connector->has_tile && > num_tiled_conns < connector->num_h_tile * connector->num_v_tile) { > mode_type = "non tiled"; > - modes[i] = drm_connector_fallback_non_tiled_mode(connector); > + drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); > } > crtcs[i] = new_crtc; > > drm_dbg_kms(dev, "[CONNECTOR::%d:%s] on [CRTC:%d:%s] using %s mode: %s\n", > connector->base.id, connector->name, > new_crtc->base.id, new_crtc->name, > - mode_type, modes[i]->name); > + mode_type, modes[i].name); > > fallback = false; > conn_configured |= BIT(i); > @@ -789,8 +795,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, > unsigned int total_modes_count = 0; > struct drm_client_offset *offsets; > unsigned int connector_count = 0; > - /* points to modes protected by mode_config.mutex */ > - const struct drm_display_mode **modes; > + struct drm_display_mode *modes; > struct drm_crtc **crtcs; > int i, ret = 0; > bool *enabled; > @@ -858,10 +863,12 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, > crtcs, modes, 0, width, height); > } > > + mutex_unlock(&dev->mode_config.mutex); > + > drm_client_modeset_release(client); > > for (i = 0; i < connector_count; i++) { > - const struct drm_display_mode *mode = modes[i]; > + const struct drm_display_mode *mode = &modes[i]; > struct drm_crtc *crtc = crtcs[i]; > struct drm_client_offset *offset = &offsets[i]; > > @@ -892,7 +899,6 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, > modeset->y = offset->y; > } > } > - mutex_unlock(&dev->mode_config.mutex); > > mutex_unlock(&client->modeset_mutex); > out: -- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstrasse 146, 90461 Nuernberg, Germany GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman HRB 36809 (AG Nuernberg) ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 4/8] drm/client: Make copies of modes 2024-10-07 7:36 ` [PATCH " Thomas Zimmermann @ 2024-10-08 19:33 ` Ville Syrjälä 2024-10-10 19:28 ` Ville Syrjälä 0 siblings, 1 reply; 28+ messages in thread From: Ville Syrjälä @ 2024-10-08 19:33 UTC (permalink / raw) To: Thomas Zimmermann; +Cc: dri-devel, intel-gfx On Mon, Oct 07, 2024 at 09:36:13AM +0200, Thomas Zimmermann wrote: > Hi > > Am 03.10.24 um 13:33 schrieb Ville Syrjala: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > drm_client_firmware_config() is currently picking up the current > > mode of the crtc via the legacy crtc->mode, which is not supposed > > to be used by atomic drivers at all. We can't simply switch over > > to the proper crtc->state->mode because we drop the crtc->mutex > > (which protects crtc->state) before the mode gets used. > > > > The most straightforward solution to extend the lifetime of > > modes[] seem to be to make full copies of the modes instead > > of just storing pointers. We do have to replace the NULL checks > > with something else though. Checking that mode->clock!=0 > > should be sufficient. > > > > And with this we can undo also commit 3eadd887dbac > > ("drm/client:Fully protect modes[] with dev->mode_config.mutex") > > as the lifetime of modes[] no longer has anything to do with > > that lock. > > I think it would be a lot better to first build that mode list while > holding the mutex, and afterwards copy the resulting modes before > releasing the lock. The code below is convoluted with drm_mode_copy(). My first thought was to make copies but still keep track of pointers. That idea was a complete disaster because you now had to carefully free the modes on the list. I then considred some kind of double list approach, but that too seemed more complicated/confusing than the (IMO fairly straightforward) apporach I ended up with. I'd prefer to reduce the nummber of arrays this thing uses rather than increase them. > > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/drm_client_modeset.c | 80 +++++++++++++++------------- > > 1 file changed, 43 insertions(+), 37 deletions(-) > > > > diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c > > index 888323137a6a..d413e119db3f 100644 > > --- a/drivers/gpu/drm/drm_client_modeset.c > > +++ b/drivers/gpu/drm/drm_client_modeset.c > > @@ -265,10 +265,15 @@ static void drm_client_connectors_enabled(struct drm_connector *connectors[], > > enabled[i] = drm_connector_enabled(connectors[i], false); > > } > > > > +static bool mode_valid(const struct drm_display_mode *mode) > > +{ > > + return mode->clock != 0; > > A mode's clock isn't always known and not all drivers might set it > correctly. At least in simpledrm/ofdrm, we have to make up a clock value > for the firmware framebuffer. Otherwise some of our userspace would oops. > > The test for clock != 0 makes sense, but it's maybe the wrong place to > do this. Would a test for hdisplay/vdisplay != 0 work instead? That would work as well. drm_mode_validate_basic() rejects everything with clock/hdisplay/vdisplay==0. > > > +} > > + > > static bool drm_client_target_cloned(struct drm_device *dev, > > struct drm_connector *connectors[], > > unsigned int connector_count, > > - const struct drm_display_mode *modes[], > > + struct drm_display_mode modes[], > > struct drm_client_offset offsets[], > > bool enabled[], int width, int height) > > { > > @@ -296,15 +301,16 @@ static bool drm_client_target_cloned(struct drm_device *dev, > > for (i = 0; i < connector_count; i++) { > > if (!enabled[i]) > > continue; > > - modes[i] = drm_connector_pick_cmdline_mode(connectors[i]); > > - if (!modes[i]) { > > + > > + drm_mode_copy(&modes[i], drm_connector_pick_cmdline_mode(connectors[i])); > > + if (!mode_valid(&modes[i])) { > > You're copying and only then test for validity? I thought drm_mode_copy() is a nop for NULL. Turns out I was wrong, hence the v2. For this specific case I suppose one could also write something like if (whatever_mode()) drm_mode_copy(&modes[i], whatever_mode()); here, but having to repeat oneself is not so great. We could of course avoid that with mode = whatever_mode(); if (mode) drm_mode_copy(&modes[i], mode); with the downside of needing yet another local variable. -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 4/8] drm/client: Make copies of modes 2024-10-08 19:33 ` Ville Syrjälä @ 2024-10-10 19:28 ` Ville Syrjälä 0 siblings, 0 replies; 28+ messages in thread From: Ville Syrjälä @ 2024-10-10 19:28 UTC (permalink / raw) To: Thomas Zimmermann; +Cc: dri-devel, intel-gfx On Tue, Oct 08, 2024 at 10:33:44PM +0300, Ville Syrjälä wrote: > On Mon, Oct 07, 2024 at 09:36:13AM +0200, Thomas Zimmermann wrote: > > Hi > > > > Am 03.10.24 um 13:33 schrieb Ville Syrjala: > > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > > > drm_client_firmware_config() is currently picking up the current > > > mode of the crtc via the legacy crtc->mode, which is not supposed > > > to be used by atomic drivers at all. We can't simply switch over > > > to the proper crtc->state->mode because we drop the crtc->mutex > > > (which protects crtc->state) before the mode gets used. > > > > > > The most straightforward solution to extend the lifetime of > > > modes[] seem to be to make full copies of the modes instead > > > of just storing pointers. We do have to replace the NULL checks > > > with something else though. Checking that mode->clock!=0 > > > should be sufficient. > > > > > > And with this we can undo also commit 3eadd887dbac > > > ("drm/client:Fully protect modes[] with dev->mode_config.mutex") > > > as the lifetime of modes[] no longer has anything to do with > > > that lock. > > > > I think it would be a lot better to first build that mode list while > > holding the mutex, and afterwards copy the resulting modes before > > releasing the lock. The code below is convoluted with drm_mode_copy(). > > My first thought was to make copies but still keep track > of pointers. That idea was a complete disaster because you > now had to carefully free the modes on the list. > > I then considred some kind of double list approach, but that > too seemed more complicated/confusing than the (IMO fairly > straightforward) apporach I ended up with. I'd prefer to reduce > the nummber of arrays this thing uses rather than increase them. Had another look at the double array approach, and still tought the result would be quite disgusting. So I think the only other viable option is to keep the single array of pointers, and stick copies onto it. But that introduces more ways to leak memory and/or access already freed memory. I don't really like the extra complexity that this requires. It'd perhaps be more palatable if the whole thing would be redesigned to be more AoS instead of SoA... -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 4/8] drm/client: Make copies of modes 2024-10-03 11:33 ` [PATCH 4/8] drm/client: Make copies of modes Ville Syrjala ` (2 preceding siblings ...) 2024-10-07 7:36 ` [PATCH " Thomas Zimmermann @ 2024-10-09 14:09 ` kernel test robot 3 siblings, 0 replies; 28+ messages in thread From: kernel test robot @ 2024-10-09 14:09 UTC (permalink / raw) To: Ville Syrjala; +Cc: oe-lkp, lkp, dri-devel, intel-gfx, oliver.sang hi, Ville Syrjala, we noticed there is a v2 for this commit https://lore.kernel.org/all/20241003181553.8891-1-ville.syrjala@linux.intel.com/ but bot failed to analyze the patch mail structure and re-assemble it with other patches in this serial to form a new branch (which need manual efforts). so we just made this report out FYI. in case you are sure the issue should be addressed by v2, please just ignore. if you want us to test v2, please let us know. thanks Hello, kernel test robot noticed "Oops:general_protection_fault,probably_for_non-canonical_address#:#[##]PREEMPT_SMP_KASAN_PTI" on: commit: 2cc919cccbb5d887534545618d696db4ec5fb691 ("[PATCH 4/8] drm/client: Make copies of modes") url: https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-client-Constify-modes/20241004-061843 base: git://anongit.freedesktop.org/drm/drm-misc drm-misc-next patch link: https://lore.kernel.org/all/20241003113304.11700-5-ville.syrjala@linux.intel.com/ patch subject: [PATCH 4/8] drm/client: Make copies of modes in testcase: boot compiler: gcc-12 test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G (please refer to attached dmesg/kmsg for entire log/backtrace) +----------------------------------------------------------------------------------------------+------------+------------+ | | 40327b7031 | 2cc919cccb | +----------------------------------------------------------------------------------------------+------------+------------+ | boot_successes | 15 | 0 | | boot_failures | 0 | 16 | | Oops:general_protection_fault,probably_for_non-canonical_address#:#[##]PREEMPT_SMP_KASAN_PTI | 0 | 16 | | KASAN:null-ptr-deref_in_range[#-#] | 0 | 16 | | RIP:drm_mode_copy[drm] | 0 | 16 | | Kernel_panic-not_syncing:Fatal_exception | 0 | 16 | +----------------------------------------------------------------------------------------------+------------+------------+ If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <oliver.sang@intel.com> | Closes: https://lore.kernel.org/oe-lkp/202410091649.1353a717-oliver.sang@intel.com [ 12.729071][ T116] bochs-drm 0000:00:02.0: vgaarb: deactivate vga console [ 12.733522][ T116] Console: switching to colour dummy device 80x25 [ 12.738211][ T116] [drm] Found bochs VGA, ID 0xb0c5. [ 12.738603][ T116] [drm] Framebuffer size 16384 kB @ 0xfd000000, mmio @ 0xfebf0000. [ 12.742172][ T116] [drm] Initialized bochs-drm 1.0.0 for 0000:00:02.0 on minor 0 [ 12.744751][ T116] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN PTI [ 12.745622][ T116] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] [ 12.746193][ T116] CPU: 1 UID: 0 PID: 116 Comm: udevd Not tainted 6.12.0-rc1-00311-g2cc919cccbb5 #2 [ 12.746817][ T116] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 12.747510][ T116] RIP: 0010:drm_mode_copy (kbuild/src/consumer/drivers/gpu/drm/drm_modes.c:1422) drm [ 12.748000][ T116] Code: 40 84 c6 0f 85 01 01 00 00 84 c9 0f 95 c2 0f 9e c0 84 c2 0f 85 f1 00 00 00 48 ba 00 00 00 00 00 fc ff df 48 89 e8 48 c1 e8 03 <0f> b6 0c 10 48 8d 45 77 48 89 c6 83 e0 07 48 c1 ee 03 0f b6 14 16 All code ======== 0: 40 84 c6 test %al,%sil 3: 0f 85 01 01 00 00 jne 0x10a 9: 84 c9 test %cl,%cl b: 0f 95 c2 setne %dl e: 0f 9e c0 setle %al 11: 84 c2 test %al,%dl 13: 0f 85 f1 00 00 00 jne 0x10a 19: 48 ba 00 00 00 00 00 movabs $0xdffffc0000000000,%rdx 20: fc ff df 23: 48 89 e8 mov %rbp,%rax 26: 48 c1 e8 03 shr $0x3,%rax 2a:* 0f b6 0c 10 movzbl (%rax,%rdx,1),%ecx <-- trapping instruction 2e: 48 8d 45 77 lea 0x77(%rbp),%rax 32: 48 89 c6 mov %rax,%rsi 35: 83 e0 07 and $0x7,%eax 38: 48 c1 ee 03 shr $0x3,%rsi 3c: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx Code starting with the faulting instruction =========================================== 0: 0f b6 0c 10 movzbl (%rax,%rdx,1),%ecx 4: 48 8d 45 77 lea 0x77(%rbp),%rax 8: 48 89 c6 mov %rax,%rsi b: 83 e0 07 and $0x7,%eax e: 48 c1 ee 03 shr $0x3,%rsi 12: 0f b6 14 16 movzbl (%rsi,%rdx,1),%edx [ 12.749333][ T116] RSP: 0000:ffffc900007ff548 EFLAGS: 00010246 [ 12.749749][ T116] RAX: 0000000000000000 RBX: ffff8881819c6600 RCX: 0000000000000000 [ 12.750284][ T116] RDX: dffffc0000000000 RSI: 1ffff11030338c01 RDI: ffff8881819c6648 [ 12.750820][ T116] RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000001 [ 12.751354][ T116] R10: 0000000000000000 R11: dffffc0000000000 R12: 0000000000000000 [ 12.751889][ T116] R13: 0000000000000000 R14: 0000000000000001 R15: ffff8881819c6600 [ 12.752435][ T116] FS: 0000000000000000(0000) GS:ffff8883a8f00000(0063) knlGS:00000000f7cec740 [ 12.753057][ T116] CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 [ 12.753537][ T116] CR2: 00000000ffc27bf8 CR3: 0000000139596000 CR4: 00000000000406f0 [ 12.754112][ T116] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 12.754674][ T116] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 12.755239][ T116] Call Trace: [ 12.755479][ T116] <TASK> [ 12.755686][ T116] ? die_addr (kbuild/src/consumer/arch/x86/kernel/dumpstack.c:421 kbuild/src/consumer/arch/x86/kernel/dumpstack.c:460) [ 12.755977][ T116] ? exc_general_protection (kbuild/src/consumer/arch/x86/kernel/traps.c:751 kbuild/src/consumer/arch/x86/kernel/traps.c:693) [ 12.756372][ T116] ? asm_exc_general_protection (kbuild/src/consumer/arch/x86/include/asm/idtentry.h:617) [ 12.756757][ T116] ? drm_mode_copy (kbuild/src/consumer/drivers/gpu/drm/drm_modes.c:1422) drm The kernel config and materials to reproduce are available at: https://download.01.org/0day-ci/archive/20241009/202410091649.1353a717-oliver.sang@intel.com -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 5/8] drm/client: Stop using the legacy crtc->mode 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (3 preceding siblings ...) 2024-10-03 11:33 ` [PATCH 4/8] drm/client: Make copies of modes Ville Syrjala @ 2024-10-03 11:33 ` Ville Syrjala 2024-10-03 18:16 ` [PATCH v2 " Ville Syrjala 2024-10-03 11:33 ` [PATCH 6/8] drm/client: s/new_crtc/crtc/ Ville Syrjala ` (7 subsequent siblings) 12 siblings, 1 reply; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:33 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> crtc->mode is legacy junk and shouldn't really be used with atomic drivers. Most (all?) atomic drivers do end up still calling drm_atomic_helper_update_legacy_modeset_state() at some point, so crtc->mode does still get populated, and this does work for now. But now that the modes[] lifetime issues have been sorted out we can just switch over to the proper crtc->state->mode. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index d413e119db3f..3e49448370c4 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -710,19 +710,8 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, /* last resort: use current mode */ if (!mode_valid(&modes[i])) { - /* - * IMPORTANT: We want to use the adjusted mode (i.e. - * after the panel fitter upscaling) as the initial - * config, not the input mode, which is what crtc->mode - * usually contains. But since our current - * code puts a mode derived from the post-pfit timings - * into crtc->mode this works out correctly. - * - * This is crtc->mode and not crtc->state->mode for the - * fastboot check to work correctly. - */ mode_type = "current"; - drm_mode_copy(&modes[i], &connector->state->crtc->mode); + drm_mode_copy(&modes[i], &new_crtc->state->mode); } /* -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 5/8] drm/client: Stop using the legacy crtc->mode 2024-10-03 11:33 ` [PATCH 5/8] drm/client: Stop using the legacy crtc->mode Ville Syrjala @ 2024-10-03 18:16 ` Ville Syrjala 0 siblings, 0 replies; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 18:16 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> crtc->mode is legacy junk and shouldn't really be used with atomic drivers. Most (all?) atomic drivers do end up still calling drm_atomic_helper_update_legacy_modeset_state() at some point, so crtc->mode does still get populated, and this does work for now. But now that the modes[] lifetime issues have been sorted out we can just switch over to the proper crtc->state->mode. v2: Rebase Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 730ed0d4bfa9..0f3418cb59ab 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -724,20 +724,9 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, /* last resort: use current mode */ if (!mode_valid(&modes[i])) { - /* - * IMPORTANT: We want to use the adjusted mode (i.e. - * after the panel fitter upscaling) as the initial - * config, not the input mode, which is what crtc->mode - * usually contains. But since our current - * code puts a mode derived from the post-pfit timings - * into crtc->mode this works out correctly. - * - * This is crtc->mode and not crtc->state->mode for the - * fastboot check to work correctly. - */ mode_type = "current"; mode_copy_if_not_null(&modes[i], - &connector->state->crtc->mode); + &new_crtc->state->mode); } /* -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 6/8] drm/client: s/new_crtc/crtc/ 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (4 preceding siblings ...) 2024-10-03 11:33 ` [PATCH 5/8] drm/client: Stop using the legacy crtc->mode Ville Syrjala @ 2024-10-03 11:33 ` Ville Syrjala 2024-10-03 18:17 ` [PATCH v2 " Ville Syrjala 2024-10-03 11:33 ` [PATCH 7/8] drm/client: Move variables to tighter scope Ville Syrjala ` (6 subsequent siblings) 12 siblings, 1 reply; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:33 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> Rename the 'new_crtc' variable to just 'crtc' in drm_client_firmware_config(). We don't call any of the other stuff in here new or old so this feels out of place. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 3e49448370c4..b82bb3119cb2 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -638,7 +638,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, for (i = 0; i < count; i++) { struct drm_connector *connector; struct drm_encoder *encoder; - struct drm_crtc *new_crtc; + struct drm_crtc *crtc; const char *mode_type; connector = connectors[i]; @@ -680,7 +680,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, num_connectors_enabled++; - new_crtc = connector->state->crtc; + crtc = connector->state->crtc; /* * Make sure we're not trying to drive multiple connectors @@ -688,7 +688,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, * match the BIOS. */ for (j = 0; j < count; j++) { - if (crtcs[j] == new_crtc) { + if (crtcs[j] == crtc) { drm_dbg_kms(dev, "[CONNECTOR:%d:%s] fallback: cloned configuration\n", connector->base.id, connector->name); goto bail; @@ -711,7 +711,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, /* last resort: use current mode */ if (!mode_valid(&modes[i])) { mode_type = "current"; - drm_mode_copy(&modes[i], &new_crtc->state->mode); + drm_mode_copy(&modes[i], &crtc->state->mode); } /* @@ -723,11 +723,11 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, mode_type = "non tiled"; drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); } - crtcs[i] = new_crtc; + crtcs[i] = crtc; drm_dbg_kms(dev, "[CONNECTOR::%d:%s] on [CRTC:%d:%s] using %s mode: %s\n", connector->base.id, connector->name, - new_crtc->base.id, new_crtc->name, + crtc->base.id, crtc->name, mode_type, modes[i].name); fallback = false; -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH v2 6/8] drm/client: s/new_crtc/crtc/ 2024-10-03 11:33 ` [PATCH 6/8] drm/client: s/new_crtc/crtc/ Ville Syrjala @ 2024-10-03 18:17 ` Ville Syrjala 0 siblings, 0 replies; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 18:17 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> Rename the 'new_crtc' variable to just 'crtc' in drm_client_firmware_config(). We don't call any of the other stuff in here new or old so this feels out of place. v2: Rebase Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index 0f3418cb59ab..d0ed7a8effbe 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -649,7 +649,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, for (i = 0; i < count; i++) { struct drm_connector *connector; struct drm_encoder *encoder; - struct drm_crtc *new_crtc; + struct drm_crtc *crtc; const char *mode_type; connector = connectors[i]; @@ -691,7 +691,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, num_connectors_enabled++; - new_crtc = connector->state->crtc; + crtc = connector->state->crtc; /* * Make sure we're not trying to drive multiple connectors @@ -699,7 +699,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, * match the BIOS. */ for (j = 0; j < count; j++) { - if (crtcs[j] == new_crtc) { + if (crtcs[j] == crtc) { drm_dbg_kms(dev, "[CONNECTOR:%d:%s] fallback: cloned configuration\n", connector->base.id, connector->name); goto bail; @@ -726,7 +726,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, if (!mode_valid(&modes[i])) { mode_type = "current"; mode_copy_if_not_null(&modes[i], - &new_crtc->state->mode); + &crtc->state->mode); } /* @@ -739,11 +739,11 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, mode_copy_if_not_null(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); } - crtcs[i] = new_crtc; + crtcs[i] = crtc; drm_dbg_kms(dev, "[CONNECTOR::%d:%s] on [CRTC:%d:%s] using %s mode: %s\n", connector->base.id, connector->name, - new_crtc->base.id, new_crtc->name, + crtc->base.id, crtc->name, mode_type, modes[i].name); fallback = false; -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* [PATCH 7/8] drm/client: Move variables to tighter scope 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (5 preceding siblings ...) 2024-10-03 11:33 ` [PATCH 6/8] drm/client: s/new_crtc/crtc/ Ville Syrjala @ 2024-10-03 11:33 ` Ville Syrjala 2024-10-03 14:59 ` Ville Syrjälä 2024-10-03 11:33 ` [PATCH 8/8] drm/client: s/unsigned int i/int i/ Ville Syrjala ` (5 subsequent siblings) 12 siblings, 1 reply; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:33 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> Bunch of variables are only needed inside loops and whatnot. Move them to a tighter scope to make the code less confusing. Also replace the 'unsigned int i' footguns with plain signed ints. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 33 +++++++++++++++------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index b82bb3119cb2..ccf5c9b5537b 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -73,9 +73,10 @@ int drm_client_modeset_create(struct drm_client_dev *client) static void drm_client_modeset_release(struct drm_client_dev *client) { struct drm_mode_set *modeset; - unsigned int i; drm_client_for_each_modeset(modeset, client) { + unsigned int i; + drm_mode_destroy(client->dev, modeset->mode); modeset->mode = NULL; modeset->fb = NULL; @@ -277,9 +278,8 @@ static bool drm_client_target_cloned(struct drm_device *dev, struct drm_client_offset offsets[], bool enabled[], int width, int height) { - int count, i, j; + int count, i; bool can_clone = false; - const struct drm_display_mode *mode; struct drm_display_mode *dmt_mode; /* only contemplate cloning in the single crtc case */ @@ -299,6 +299,8 @@ static bool drm_client_target_cloned(struct drm_device *dev, /* check the command line or if nothing common pick 1024x768 */ can_clone = true; for (i = 0; i < connector_count; i++) { + int j; + if (!enabled[i]) continue; @@ -332,6 +334,8 @@ static bool drm_client_target_cloned(struct drm_device *dev, goto fail; for (i = 0; i < connector_count; i++) { + const struct drm_display_mode *mode; + if (!enabled[i]) continue; @@ -365,12 +369,12 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, int idx, int h_idx, int v_idx) { - struct drm_connector *connector; int i; int hoffset = 0, voffset = 0; for (i = 0; i < connector_count; i++) { - connector = connectors[i]; + struct drm_connector *connector = connectors[i]; + if (!connector->has_tile) continue; @@ -400,7 +404,6 @@ static bool drm_client_target_preferred(struct drm_device *dev, bool enabled[], int width, int height) { const u64 mask = BIT_ULL(connector_count) - 1; - struct drm_connector *connector; u64 conn_configured = 0; int tile_pass = 0; int num_tiled_conns = 0; @@ -414,9 +417,9 @@ static bool drm_client_target_preferred(struct drm_device *dev, retry: for (i = 0; i < connector_count; i++) { + struct drm_connector *connector = connectors[i]; const char *mode_type; - connector = connectors[i]; if (conn_configured & BIT_ULL(i)) continue; @@ -526,9 +529,8 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, struct drm_device *dev = client->dev; struct drm_connector *connector; int my_score, best_score, score; - struct drm_crtc **crtcs, *crtc; + struct drm_crtc **crtcs; struct drm_mode_set *modeset; - int o; if (n == connector_count) return 0; @@ -558,7 +560,8 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, * remaining connectors */ drm_client_for_each_modeset(modeset, client) { - crtc = modeset->crtc; + struct drm_crtc *crtc = modeset->crtc; + int o; if (!connector_has_possible_crtc(connector, crtc)) continue; @@ -602,7 +605,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, const int count = min_t(unsigned int, connector_count, BITS_PER_LONG); unsigned long conn_configured, conn_seq, mask; struct drm_device *dev = client->dev; - int i, j; + int i; bool *save_enabled; bool fallback = true, ret = true; int num_connectors_enabled = 0; @@ -636,12 +639,11 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, retry: conn_seq = conn_configured; for (i = 0; i < count; i++) { - struct drm_connector *connector; + struct drm_connector *connector = connectors[i]; struct drm_encoder *encoder; struct drm_crtc *crtc; const char *mode_type; - - connector = connectors[i]; + int j; if (conn_configured & BIT(i)) continue; @@ -1204,11 +1206,12 @@ static void drm_client_modeset_dpms_legacy(struct drm_client_dev *client, int dp struct drm_connector *connector; struct drm_mode_set *modeset; struct drm_modeset_acquire_ctx ctx; - int j; int ret; DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret); drm_client_for_each_modeset(modeset, client) { + int j; + if (!modeset->crtc->enabled) continue; -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 7/8] drm/client: Move variables to tighter scope 2024-10-03 11:33 ` [PATCH 7/8] drm/client: Move variables to tighter scope Ville Syrjala @ 2024-10-03 14:59 ` Ville Syrjälä 0 siblings, 0 replies; 28+ messages in thread From: Ville Syrjälä @ 2024-10-03 14:59 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx On Thu, Oct 03, 2024 at 02:33:03PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Bunch of variables are only needed inside loops and whatnot. > Move them to a tighter scope to make the code less confusing. > > Also replace the 'unsigned int i' footguns with plain signed > ints. I moved that last part to a separate patch but forgot to update the commit message here. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_client_modeset.c | 33 +++++++++++++++------------- > 1 file changed, 18 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c > index b82bb3119cb2..ccf5c9b5537b 100644 > --- a/drivers/gpu/drm/drm_client_modeset.c > +++ b/drivers/gpu/drm/drm_client_modeset.c > @@ -73,9 +73,10 @@ int drm_client_modeset_create(struct drm_client_dev *client) > static void drm_client_modeset_release(struct drm_client_dev *client) > { > struct drm_mode_set *modeset; > - unsigned int i; > > drm_client_for_each_modeset(modeset, client) { > + unsigned int i; > + > drm_mode_destroy(client->dev, modeset->mode); > modeset->mode = NULL; > modeset->fb = NULL; > @@ -277,9 +278,8 @@ static bool drm_client_target_cloned(struct drm_device *dev, > struct drm_client_offset offsets[], > bool enabled[], int width, int height) > { > - int count, i, j; > + int count, i; > bool can_clone = false; > - const struct drm_display_mode *mode; > struct drm_display_mode *dmt_mode; > > /* only contemplate cloning in the single crtc case */ > @@ -299,6 +299,8 @@ static bool drm_client_target_cloned(struct drm_device *dev, > /* check the command line or if nothing common pick 1024x768 */ > can_clone = true; > for (i = 0; i < connector_count; i++) { > + int j; > + > if (!enabled[i]) > continue; > > @@ -332,6 +334,8 @@ static bool drm_client_target_cloned(struct drm_device *dev, > goto fail; > > for (i = 0; i < connector_count; i++) { > + const struct drm_display_mode *mode; > + > if (!enabled[i]) > continue; > > @@ -365,12 +369,12 @@ static int drm_client_get_tile_offsets(struct drm_device *dev, > int idx, > int h_idx, int v_idx) > { > - struct drm_connector *connector; > int i; > int hoffset = 0, voffset = 0; > > for (i = 0; i < connector_count; i++) { > - connector = connectors[i]; > + struct drm_connector *connector = connectors[i]; > + > if (!connector->has_tile) > continue; > > @@ -400,7 +404,6 @@ static bool drm_client_target_preferred(struct drm_device *dev, > bool enabled[], int width, int height) > { > const u64 mask = BIT_ULL(connector_count) - 1; > - struct drm_connector *connector; > u64 conn_configured = 0; > int tile_pass = 0; > int num_tiled_conns = 0; > @@ -414,9 +417,9 @@ static bool drm_client_target_preferred(struct drm_device *dev, > > retry: > for (i = 0; i < connector_count; i++) { > + struct drm_connector *connector = connectors[i]; > const char *mode_type; > > - connector = connectors[i]; > > if (conn_configured & BIT_ULL(i)) > continue; > @@ -526,9 +529,8 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > struct drm_device *dev = client->dev; > struct drm_connector *connector; > int my_score, best_score, score; > - struct drm_crtc **crtcs, *crtc; > + struct drm_crtc **crtcs; > struct drm_mode_set *modeset; > - int o; > > if (n == connector_count) > return 0; > @@ -558,7 +560,8 @@ static int drm_client_pick_crtcs(struct drm_client_dev *client, > * remaining connectors > */ > drm_client_for_each_modeset(modeset, client) { > - crtc = modeset->crtc; > + struct drm_crtc *crtc = modeset->crtc; > + int o; > > if (!connector_has_possible_crtc(connector, crtc)) > continue; > @@ -602,7 +605,7 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > const int count = min_t(unsigned int, connector_count, BITS_PER_LONG); > unsigned long conn_configured, conn_seq, mask; > struct drm_device *dev = client->dev; > - int i, j; > + int i; > bool *save_enabled; > bool fallback = true, ret = true; > int num_connectors_enabled = 0; > @@ -636,12 +639,11 @@ static bool drm_client_firmware_config(struct drm_client_dev *client, > retry: > conn_seq = conn_configured; > for (i = 0; i < count; i++) { > - struct drm_connector *connector; > + struct drm_connector *connector = connectors[i]; > struct drm_encoder *encoder; > struct drm_crtc *crtc; > const char *mode_type; > - > - connector = connectors[i]; > + int j; > > if (conn_configured & BIT(i)) > continue; > @@ -1204,11 +1206,12 @@ static void drm_client_modeset_dpms_legacy(struct drm_client_dev *client, int dp > struct drm_connector *connector; > struct drm_mode_set *modeset; > struct drm_modeset_acquire_ctx ctx; > - int j; > int ret; > > DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, ret); > drm_client_for_each_modeset(modeset, client) { > + int j; > + > if (!modeset->crtc->enabled) > continue; > > -- > 2.45.2 -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 28+ messages in thread
* [PATCH 8/8] drm/client: s/unsigned int i/int i/ 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (6 preceding siblings ...) 2024-10-03 11:33 ` [PATCH 7/8] drm/client: Move variables to tighter scope Ville Syrjala @ 2024-10-03 11:33 ` Ville Syrjala 2024-10-07 7:43 ` Thomas Zimmermann 2024-10-03 17:57 ` ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups Patchwork ` (4 subsequent siblings) 12 siblings, 1 reply; 28+ messages in thread From: Ville Syrjala @ 2024-10-03 11:33 UTC (permalink / raw) To: dri-devel; +Cc: intel-gfx From: Ville Syrjälä <ville.syrjala@linux.intel.com> Replace the 'unsigned int i' footguns with plain old signed int. Avoids accidents if/when someone decides they need to iterate backwards. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> --- drivers/gpu/drm/drm_client_modeset.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c index ccf5c9b5537b..875d517fa8f2 100644 --- a/drivers/gpu/drm/drm_client_modeset.c +++ b/drivers/gpu/drm/drm_client_modeset.c @@ -39,7 +39,7 @@ int drm_client_modeset_create(struct drm_client_dev *client) unsigned int max_connector_count = 1; struct drm_mode_set *modeset; struct drm_crtc *crtc; - unsigned int i = 0; + int i = 0; /* Add terminating zero entry to enable index less iteration */ client->modesets = kcalloc(num_crtc + 1, sizeof(*client->modesets), GFP_KERNEL); @@ -75,7 +75,7 @@ static void drm_client_modeset_release(struct drm_client_dev *client) struct drm_mode_set *modeset; drm_client_for_each_modeset(modeset, client) { - unsigned int i; + int i; drm_mode_destroy(client->dev, modeset->mode); modeset->mode = NULL; @@ -925,7 +925,7 @@ bool drm_client_rotation(struct drm_mode_set *modeset, unsigned int *rotation) struct drm_plane *plane = modeset->crtc->primary; struct drm_cmdline_mode *cmdline; u64 valid_mask = 0; - unsigned int i; + int i; if (!modeset->num_connectors) return false; -- 2.45.2 ^ permalink raw reply related [flat|nested] 28+ messages in thread
* Re: [PATCH 8/8] drm/client: s/unsigned int i/int i/ 2024-10-03 11:33 ` [PATCH 8/8] drm/client: s/unsigned int i/int i/ Ville Syrjala @ 2024-10-07 7:43 ` Thomas Zimmermann 2024-10-08 19:12 ` Ville Syrjälä 0 siblings, 1 reply; 28+ messages in thread From: Thomas Zimmermann @ 2024-10-07 7:43 UTC (permalink / raw) To: Ville Syrjala, dri-devel; +Cc: intel-gfx Hi Am 03.10.24 um 13:33 schrieb Ville Syrjala: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > Replace the 'unsigned int i' footguns with plain old signed > int. Avoids accidents if/when someone decides they need > to iterate backwards. Why are signed types preferable here? Best regards Thomas > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/drm_client_modeset.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c > index ccf5c9b5537b..875d517fa8f2 100644 > --- a/drivers/gpu/drm/drm_client_modeset.c > +++ b/drivers/gpu/drm/drm_client_modeset.c > @@ -39,7 +39,7 @@ int drm_client_modeset_create(struct drm_client_dev *client) > unsigned int max_connector_count = 1; > struct drm_mode_set *modeset; > struct drm_crtc *crtc; > - unsigned int i = 0; > + int i = 0; > > /* Add terminating zero entry to enable index less iteration */ > client->modesets = kcalloc(num_crtc + 1, sizeof(*client->modesets), GFP_KERNEL); > @@ -75,7 +75,7 @@ static void drm_client_modeset_release(struct drm_client_dev *client) > struct drm_mode_set *modeset; > > drm_client_for_each_modeset(modeset, client) { > - unsigned int i; > + int i; > > drm_mode_destroy(client->dev, modeset->mode); > modeset->mode = NULL; > @@ -925,7 +925,7 @@ bool drm_client_rotation(struct drm_mode_set *modeset, unsigned int *rotation) > struct drm_plane *plane = modeset->crtc->primary; > struct drm_cmdline_mode *cmdline; > u64 valid_mask = 0; > - unsigned int i; > + int i; > > if (!modeset->num_connectors) > return false; -- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstrasse 146, 90461 Nuernberg, Germany GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman HRB 36809 (AG Nuernberg) ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 8/8] drm/client: s/unsigned int i/int i/ 2024-10-07 7:43 ` Thomas Zimmermann @ 2024-10-08 19:12 ` Ville Syrjälä 2024-10-09 14:32 ` Jani Nikula 0 siblings, 1 reply; 28+ messages in thread From: Ville Syrjälä @ 2024-10-08 19:12 UTC (permalink / raw) To: Thomas Zimmermann; +Cc: dri-devel, intel-gfx On Mon, Oct 07, 2024 at 09:43:47AM +0200, Thomas Zimmermann wrote: > Hi > > Am 03.10.24 um 13:33 schrieb Ville Syrjala: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > Replace the 'unsigned int i' footguns with plain old signed > > int. Avoids accidents if/when someone decides they need > > to iterate backwards. > > Why are signed types preferable here? If you iterate backwards you typically write for (i = max; i >= 0; i--) {...} and i>=0 is always true for unsigned types. Another danger is doing any kind of arithmetic with 'i' and expecting a signed result. Based on my experience in getting burned by C integer promotion/converison rules a good rule of thumb is to always use just "int" unless there is a very good reason for not doing so (eg. if the thing is a bitmask or some kind of other thing where negative values can never ever come up). Also IIRC there was a Linus rant about "unsigned int i" but I can't find it now. -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: [PATCH 8/8] drm/client: s/unsigned int i/int i/ 2024-10-08 19:12 ` Ville Syrjälä @ 2024-10-09 14:32 ` Jani Nikula 0 siblings, 0 replies; 28+ messages in thread From: Jani Nikula @ 2024-10-09 14:32 UTC (permalink / raw) To: Ville Syrjälä, Thomas Zimmermann; +Cc: dri-devel, intel-gfx On Tue, 08 Oct 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote: > On Mon, Oct 07, 2024 at 09:43:47AM +0200, Thomas Zimmermann wrote: >> Hi >> >> Am 03.10.24 um 13:33 schrieb Ville Syrjala: >> > From: Ville Syrjälä <ville.syrjala@linux.intel.com> >> > >> > Replace the 'unsigned int i' footguns with plain old signed >> > int. Avoids accidents if/when someone decides they need >> > to iterate backwards. >> >> Why are signed types preferable here? > > If you iterate backwards you typically write > > for (i = max; i >= 0; i--) {...} > > and i>=0 is always true for unsigned types. > > Another danger is doing any kind of arithmetic > with 'i' and expecting a signed result. > > Based on my experience in getting burned by C integer > promotion/converison rules a good rule of thumb is to > always use just "int" unless there is a very good > reason for not doing so (eg. if the thing is a bitmask > or some kind of other thing where negative values > can never ever come up). Agreed. An even worse antipattern is using u8 or u16 just because it's the smallest type that is enough for the range or whatever. But then it ends up being signed int arithmetic assigned back to the small unsigned type anyway. > Also IIRC there was a Linus rant about "unsigned int i" > but I can't find it now. Another summary at [1]. BR, Jani. [1] https://hamstergene.github.io/posts/2021-10-30-do-not-use-unsigned-for-nonnegativity/ -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 28+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (7 preceding siblings ...) 2024-10-03 11:33 ` [PATCH 8/8] drm/client: s/unsigned int i/int i/ Ville Syrjala @ 2024-10-03 17:57 ` Patchwork 2024-10-03 18:07 ` ✗ Fi.CI.BAT: failure " Patchwork ` (3 subsequent siblings) 12 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2024-10-03 17:57 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: drm/client: Stop using legacy crtc->mode and a bunch of cleanups URL : https://patchwork.freedesktop.org/series/139493/ State : warning == Summary == Error: dim checkpatch failed c792344099fd drm/client: Constify modes dded8f971b9d drm/client: Use array notation for function arguments 5efbfc394267 drm/client: Streamline mode selection debugs 53b2c61a53f2 drm/client: Make copies of modes -:21: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 3eadd887dbac ("drm/client: Fully protect modes[] with dev->mode_config.mutex")' #21: And with this we can undo also commit 3eadd887dbac ("drm/client:Fully protect modes[] with dev->mode_config.mutex") -:131: WARNING:LONG_LINE: line length of 105 exceeds 100 columns #131: FILE: drivers/gpu/drm/drm_client_modeset.c:458: + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); -:147: WARNING:LONG_LINE: line length of 107 exceeds 100 columns #147: FILE: drivers/gpu/drm/drm_client_modeset.c:481: + drm_mode_copy(&modes[i], drm_connector_fallback_non_tiled_mode(connector)); -:211: WARNING:LONG_LINE: line length of 105 exceeds 100 columns #211: FILE: drivers/gpu/drm/drm_client_modeset.c:703: + drm_mode_copy(&modes[i], drm_connector_preferred_mode(connector, width, height)); total: 1 errors, 3 warnings, 0 checks, 235 lines checked 2c97e1fbfe26 drm/client: Stop using the legacy crtc->mode e690a0ca1b17 drm/client: s/new_crtc/crtc/ 761f32dfac6c drm/client: Move variables to tighter scope 44f98be57a2b drm/client: s/unsigned int i/int i/ ^ permalink raw reply [flat|nested] 28+ messages in thread
* ✗ Fi.CI.BAT: failure for drm/client: Stop using legacy crtc->mode and a bunch of cleanups 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (8 preceding siblings ...) 2024-10-03 17:57 ` ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups Patchwork @ 2024-10-03 18:07 ` Patchwork 2024-10-03 21:40 ` ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) Patchwork ` (2 subsequent siblings) 12 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2024-10-03 18:07 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 13486 bytes --] == Series Details == Series: drm/client: Stop using legacy crtc->mode and a bunch of cleanups URL : https://patchwork.freedesktop.org/series/139493/ State : failure == Summary == CI Bug Log - changes from CI_DRM_15481 -> Patchwork_139493v1 ==================================================== Summary ------- **FAILURE** Serious unknown changes coming with Patchwork_139493v1 absolutely need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_139493v1, 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_139493v1/index.html Participating hosts (43 -> 42) ------------------------------ Missing (1): fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_139493v1: ### IGT changes ### #### Possible regressions #### * igt@i915_module_load@load: - fi-ilk-650: [PASS][1] -> [ABORT][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-ilk-650/igt@i915_module_load@load.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-ilk-650/igt@i915_module_load@load.html - bat-jsl-1: [PASS][3] -> [ABORT][4] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-jsl-1/igt@i915_module_load@load.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-jsl-1/igt@i915_module_load@load.html - bat-arls-1: [PASS][5] -> [ABORT][6] [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-arls-1/igt@i915_module_load@load.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-arls-1/igt@i915_module_load@load.html - fi-blb-e6850: [PASS][7] -> [ABORT][8] [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-blb-e6850/igt@i915_module_load@load.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-blb-e6850/igt@i915_module_load@load.html - fi-bsw-n3050: [PASS][9] -> [ABORT][10] [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-bsw-n3050/igt@i915_module_load@load.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-bsw-n3050/igt@i915_module_load@load.html - bat-adlp-6: [PASS][11] -> [ABORT][12] [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-adlp-6/igt@i915_module_load@load.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-adlp-6/igt@i915_module_load@load.html - fi-rkl-11600: [PASS][13] -> [ABORT][14] [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-rkl-11600/igt@i915_module_load@load.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-rkl-11600/igt@i915_module_load@load.html - bat-dg1-7: [PASS][15] -> [ABORT][16] [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-dg1-7/igt@i915_module_load@load.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-dg1-7/igt@i915_module_load@load.html - bat-jsl-3: [PASS][17] -> [ABORT][18] [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-jsl-3/igt@i915_module_load@load.html [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-jsl-3/igt@i915_module_load@load.html - fi-glk-j4005: [PASS][19] -> [ABORT][20] [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-glk-j4005/igt@i915_module_load@load.html [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-glk-j4005/igt@i915_module_load@load.html - bat-adlp-9: [PASS][21] -> [ABORT][22] [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-adlp-9/igt@i915_module_load@load.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-adlp-9/igt@i915_module_load@load.html - bat-twl-2: [PASS][23] -> [ABORT][24] [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-twl-2/igt@i915_module_load@load.html [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-twl-2/igt@i915_module_load@load.html - bat-dg2-11: [PASS][25] -> [ABORT][26] [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-dg2-11/igt@i915_module_load@load.html [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-dg2-11/igt@i915_module_load@load.html - fi-kbl-7567u: [PASS][27] -> [ABORT][28] [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-kbl-7567u/igt@i915_module_load@load.html [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-kbl-7567u/igt@i915_module_load@load.html - fi-cfl-8700k: [PASS][29] -> [ABORT][30] [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-cfl-8700k/igt@i915_module_load@load.html [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-cfl-8700k/igt@i915_module_load@load.html - bat-twl-1: [PASS][31] -> [ABORT][32] [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-twl-1/igt@i915_module_load@load.html [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-twl-1/igt@i915_module_load@load.html - bat-apl-1: [PASS][33] -> [ABORT][34] [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-apl-1/igt@i915_module_load@load.html [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-apl-1/igt@i915_module_load@load.html - bat-dg2-14: [PASS][35] -> [ABORT][36] [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-dg2-14/igt@i915_module_load@load.html [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-dg2-14/igt@i915_module_load@load.html - fi-elk-e7500: [PASS][37] -> [ABORT][38] [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-elk-e7500/igt@i915_module_load@load.html [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-elk-e7500/igt@i915_module_load@load.html - bat-rplp-1: [PASS][39] -> [ABORT][40] [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-rplp-1/igt@i915_module_load@load.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-rplp-1/igt@i915_module_load@load.html - fi-tgl-1115g4: [PASS][41] -> [ABORT][42] [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-tgl-1115g4/igt@i915_module_load@load.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-tgl-1115g4/igt@i915_module_load@load.html - fi-cfl-guc: [PASS][43] -> [ABORT][44] [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-cfl-guc/igt@i915_module_load@load.html [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-cfl-guc/igt@i915_module_load@load.html - fi-hsw-4770: [PASS][45] -> [ABORT][46] [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-hsw-4770/igt@i915_module_load@load.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-hsw-4770/igt@i915_module_load@load.html - fi-cfl-8109u: [PASS][47] -> [ABORT][48] [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-cfl-8109u/igt@i915_module_load@load.html [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-cfl-8109u/igt@i915_module_load@load.html - bat-arls-2: [PASS][49] -> [ABORT][50] [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-arls-2/igt@i915_module_load@load.html [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-arls-2/igt@i915_module_load@load.html - fi-ivb-3770: [PASS][51] -> [ABORT][52] [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-ivb-3770/igt@i915_module_load@load.html [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-ivb-3770/igt@i915_module_load@load.html - bat-mtlp-8: [PASS][53] -> [ABORT][54] [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-mtlp-8/igt@i915_module_load@load.html [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-mtlp-8/igt@i915_module_load@load.html - bat-dg2-8: [PASS][55] -> [ABORT][56] [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-dg2-8/igt@i915_module_load@load.html [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-dg2-8/igt@i915_module_load@load.html - bat-adls-6: [PASS][57] -> [ABORT][58] [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-adls-6/igt@i915_module_load@load.html [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-adls-6/igt@i915_module_load@load.html * igt@kms_force_connector_basic@force-connector-state: - bat-adlm-1: [PASS][59] -> [ABORT][60] [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-adlm-1/igt@kms_force_connector_basic@force-connector-state.html [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-adlm-1/igt@kms_force_connector_basic@force-connector-state.html - bat-mtlp-6: [PASS][61] -> [ABORT][62] [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-mtlp-6/igt@kms_force_connector_basic@force-connector-state.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-mtlp-6/igt@kms_force_connector_basic@force-connector-state.html - fi-bsw-nick: [PASS][63] -> [ABORT][64] [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-bsw-nick/igt@kms_force_connector_basic@force-connector-state.html [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-bsw-nick/igt@kms_force_connector_basic@force-connector-state.html - bat-kbl-2: [PASS][65] -> [ABORT][66] [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-kbl-2/igt@kms_force_connector_basic@force-connector-state.html [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-kbl-2/igt@kms_force_connector_basic@force-connector-state.html - bat-dg2-9: [PASS][67] -> [ABORT][68] [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-dg2-9/igt@kms_force_connector_basic@force-connector-state.html [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-dg2-9/igt@kms_force_connector_basic@force-connector-state.html - fi-kbl-x1275: [PASS][69] -> [ABORT][70] [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-kbl-x1275/igt@kms_force_connector_basic@force-connector-state.html [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-kbl-x1275/igt@kms_force_connector_basic@force-connector-state.html - fi-kbl-guc: [PASS][71] -> [ABORT][72] [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/fi-kbl-guc/igt@kms_force_connector_basic@force-connector-state.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/fi-kbl-guc/igt@kms_force_connector_basic@force-connector-state.html #### Warnings #### * igt@i915_module_load@load: - bat-arls-5: [DMESG-WARN][73] ([i915#11637]) -> [ABORT][74] [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-arls-5/igt@i915_module_load@load.html [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-arls-5/igt@i915_module_load@load.html #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_module_load@load: - {bat-arlh-3}: [PASS][75] -> [ABORT][76] [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-arlh-3/igt@i915_module_load@load.html [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-arlh-3/igt@i915_module_load@load.html * igt@kms_force_connector_basic@force-edid: - {bat-dg1-6}: [PASS][77] -> [ABORT][78] [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15481/bat-dg1-6/igt@kms_force_connector_basic@force-edid.html [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-dg1-6/igt@kms_force_connector_basic@force-edid.html Known issues ------------ Here are the changes found in Patchwork_139493v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@runner@aborted: - bat-dg2-13: NOTRUN -> [FAIL][79] ([i915#12292]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/bat-dg2-13/igt@runner@aborted.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#11637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11637 [i915#12292]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12292 Build changes ------------- * Linux: CI_DRM_15481 -> Patchwork_139493v1 CI-20190529: 20190529 CI_DRM_15481: 17c0158bdb239d8b6d23834db5595ea422b69915 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8051: c2efcb5f207eebb0c19106f27b310f61ded6f11d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_139493v1: 17c0158bdb239d8b6d23834db5595ea422b69915 @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v1/index.html [-- Attachment #2: Type: text/html, Size: 14402 bytes --] ^ permalink raw reply [flat|nested] 28+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (9 preceding siblings ...) 2024-10-03 18:07 ` ✗ Fi.CI.BAT: failure " Patchwork @ 2024-10-03 21:40 ` Patchwork 2024-10-03 21:49 ` ✓ Fi.CI.BAT: success " Patchwork 2024-10-08 6:36 ` ✓ Fi.CI.IGT: " Patchwork 12 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2024-10-03 21:40 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx == Series Details == Series: drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) URL : https://patchwork.freedesktop.org/series/139493/ State : warning == Summary == Error: dim checkpatch failed ee02b235c701 drm/client: Constify modes 8f2ff5600d27 drm/client: Use array notation for function arguments 3359a09a8b20 drm/client: Streamline mode selection debugs b9c677dbe986 drm/client: Make copies of modes -:21: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 3eadd887dbac ("drm/client: Fully protect modes[] with dev->mode_config.mutex")' #21: And with this we can undo also commit 3eadd887dbac ("drm/client:Fully protect modes[] with dev->mode_config.mutex") -:141: WARNING:LONG_LINE: line length of 102 exceeds 100 columns #141: FILE: drivers/gpu/drm/drm_client_modeset.c:466: + drm_connector_preferred_mode(connector, width, height)); -:159: WARNING:LONG_LINE: line length of 104 exceeds 100 columns #159: FILE: drivers/gpu/drm/drm_client_modeset.c:491: + drm_connector_fallback_non_tiled_mode(connector)); -:226: WARNING:LONG_LINE: line length of 102 exceeds 100 columns #226: FILE: drivers/gpu/drm/drm_client_modeset.c:716: + drm_connector_preferred_mode(connector, width, height)); total: 1 errors, 3 warnings, 0 checks, 251 lines checked 1cee507155e9 drm/client: Stop using the legacy crtc->mode eb60357dee42 drm/client: s/new_crtc/crtc/ 380825ae46a6 drm/client: Move variables to tighter scope 18141aafedb0 drm/client: s/unsigned int i/int i/ ^ permalink raw reply [flat|nested] 28+ messages in thread
* ✓ Fi.CI.BAT: success for drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (10 preceding siblings ...) 2024-10-03 21:40 ` ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) Patchwork @ 2024-10-03 21:49 ` Patchwork 2024-10-08 6:36 ` ✓ Fi.CI.IGT: " Patchwork 12 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2024-10-03 21:49 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 5576 bytes --] == Series Details == Series: drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) URL : https://patchwork.freedesktop.org/series/139493/ State : success == Summary == CI Bug Log - changes from CI_DRM_15483 -> Patchwork_139493v4 ==================================================== Summary ------- **WARNING** Minor unknown changes coming with Patchwork_139493v4 need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_139493v4, 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_139493v4/index.html Participating hosts (43 -> 41) ------------------------------ Missing (2): bat-rpls-4 fi-snb-2520m Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_139493v4: ### IGT changes ### #### Warnings #### * igt@i915_selftest@live@gem: - bat-arls-5: [DMESG-WARN][1] ([i915#11637]) -> [INCOMPLETE][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-arls-5/igt@i915_selftest@live@gem.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-arls-5/igt@i915_selftest@live@gem.html Known issues ------------ Here are the changes found in Patchwork_139493v4 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_selftest@live: - bat-adlp-6: [PASS][3] -> [INCOMPLETE][4] ([i915#9413]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-adlp-6/igt@i915_selftest@live.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-adlp-6/igt@i915_selftest@live.html * igt@i915_selftest@live@gt_lrc: - bat-adlp-6: [PASS][5] -> [INCOMPLETE][6] ([i915#10886] / [i915#9413]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-adlp-6/igt@i915_selftest@live@gt_lrc.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-adlp-6/igt@i915_selftest@live@gt_lrc.html * igt@runner@aborted: - bat-dg2-13: NOTRUN -> [FAIL][7] ([i915#12292]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-dg2-13/igt@runner@aborted.html #### Possible fixes #### * igt@i915_selftest@live: - fi-hsw-4770: [DMESG-WARN][8] ([i915#12310]) -> [PASS][9] +1 other test pass [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/fi-hsw-4770/igt@i915_selftest@live.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/fi-hsw-4770/igt@i915_selftest@live.html - bat-mtlp-6: [DMESG-FAIL][10] ([i915#10341] / [i915#9500]) -> [PASS][11] [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-mtlp-6/igt@i915_selftest@live.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-mtlp-6/igt@i915_selftest@live.html - bat-dg2-11: [ABORT][12] ([i915#12133]) -> [PASS][13] [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-dg2-11/igt@i915_selftest@live.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-dg2-11/igt@i915_selftest@live.html * igt@i915_selftest@live@active: - bat-dg2-11: [ABORT][14] ([i915#12305]) -> [PASS][15] [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-dg2-11/igt@i915_selftest@live@active.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-dg2-11/igt@i915_selftest@live@active.html * igt@i915_selftest@live@gt_mocs: - bat-mtlp-6: [DMESG-FAIL][16] ([i915#9500]) -> [PASS][17] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html #### Warnings #### * igt@i915_selftest@live: - bat-arls-5: [DMESG-WARN][18] ([i915#10341] / [i915#12133]) -> [INCOMPLETE][19] ([i915#10341] / [i915#12133]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/bat-arls-5/igt@i915_selftest@live.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/bat-arls-5/igt@i915_selftest@live.html [i915#10341]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10341 [i915#10886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10886 [i915#11637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11637 [i915#12133]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12133 [i915#12292]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12292 [i915#12305]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12305 [i915#12310]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12310 [i915#9413]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9413 [i915#9500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9500 Build changes ------------- * Linux: CI_DRM_15483 -> Patchwork_139493v4 CI-20190529: 20190529 CI_DRM_15483: b147208bee50e8d141c39532f8d2c467b3d1df7f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8051: c2efcb5f207eebb0c19106f27b310f61ded6f11d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_139493v4: b147208bee50e8d141c39532f8d2c467b3d1df7f @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/index.html [-- Attachment #2: Type: text/html, Size: 6816 bytes --] ^ permalink raw reply [flat|nested] 28+ messages in thread
* ✓ Fi.CI.IGT: success for drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala ` (11 preceding siblings ...) 2024-10-03 21:49 ` ✓ Fi.CI.BAT: success " Patchwork @ 2024-10-08 6:36 ` Patchwork 12 siblings, 0 replies; 28+ messages in thread From: Patchwork @ 2024-10-08 6:36 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 93507 bytes --] == Series Details == Series: drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) URL : https://patchwork.freedesktop.org/series/139493/ State : success == Summary == CI Bug Log - changes from CI_DRM_15483_full -> Patchwork_139493v4_full ==================================================== Summary ------- **WARNING** Minor unknown changes coming with Patchwork_139493v4_full need to be verified manually. If you think the reported changes have nothing to do with the changes introduced in Patchwork_139493v4_full, 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. Participating hosts (8 -> 8) ------------------------------ No changes in participating hosts Possible new issues ------------------- Here are the unknown changes that may have been introduced in Patchwork_139493v4_full: ### IGT changes ### #### Warnings #### * igt@kms_flip@2x-plain-flip-ts-check@ac-hdmi-a1-hdmi-a2: - shard-glk: [FAIL][1] ([i915#2122]) -> [FAIL][2] [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk8/igt@kms_flip@2x-plain-flip-ts-check@ac-hdmi-a1-hdmi-a2.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk3/igt@kms_flip@2x-plain-flip-ts-check@ac-hdmi-a1-hdmi-a2.html Known issues ------------ Here are the changes found in Patchwork_139493v4_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@crc32: - shard-tglu: NOTRUN -> [SKIP][3] ([i915#6230]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-6/igt@api_intel_bb@crc32.html * igt@api_intel_bb@object-reloc-keep-cache: - shard-rkl: NOTRUN -> [SKIP][4] ([i915#8411]) +1 other test skip [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@api_intel_bb@object-reloc-keep-cache.html * igt@drm_fdinfo@virtual-busy-idle: - shard-dg2: NOTRUN -> [SKIP][5] ([i915#8414]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-5/igt@drm_fdinfo@virtual-busy-idle.html - shard-dg1: NOTRUN -> [SKIP][6] ([i915#8414]) [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-14/igt@drm_fdinfo@virtual-busy-idle.html * igt@gem_basic@multigpu-create-close: - shard-mtlp: NOTRUN -> [SKIP][7] ([i915#7697]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-7/igt@gem_basic@multigpu-create-close.html * igt@gem_ccs@suspend-resume: - shard-dg2: [PASS][8] -> [INCOMPLETE][9] ([i915#7297]) +1 other test incomplete [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-8/igt@gem_ccs@suspend-resume.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@gem_ccs@suspend-resume.html * igt@gem_create@create-ext-cpu-access-sanity-check: - shard-rkl: NOTRUN -> [SKIP][10] ([i915#6335]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@gem_create@create-ext-cpu-access-sanity-check.html * igt@gem_ctx_engines@invalid-engines: - shard-glk: [PASS][11] -> [FAIL][12] ([i915#12027]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk7/igt@gem_ctx_engines@invalid-engines.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk6/igt@gem_ctx_engines@invalid-engines.html * igt@gem_ctx_persistence@hostile: - shard-rkl: NOTRUN -> [FAIL][13] ([i915#11980]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@gem_ctx_persistence@hostile.html * igt@gem_eio@reset-stress: - shard-dg1: [PASS][14] -> [FAIL][15] ([i915#5784]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-14/igt@gem_eio@reset-stress.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-18/igt@gem_eio@reset-stress.html * igt@gem_exec_balancer@parallel-balancer: - shard-rkl: NOTRUN -> [SKIP][16] ([i915#4525]) +1 other test skip [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_capture@capture-recoverable: - shard-rkl: NOTRUN -> [SKIP][17] ([i915#6344]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@gem_exec_capture@capture-recoverable.html - shard-tglu: NOTRUN -> [SKIP][18] ([i915#6344]) [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@gem_exec_capture@capture-recoverable.html * igt@gem_exec_fair@basic-none: - shard-tglu: NOTRUN -> [FAIL][19] ([i915#2842]) +5 other tests fail [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@gem_exec_fair@basic-none.html * igt@gem_exec_fair@basic-none-solo: - shard-rkl: NOTRUN -> [FAIL][20] ([i915#2842]) +1 other test fail [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@gem_exec_fair@basic-none-solo.html * igt@gem_exec_fair@basic-pace-solo@rcs0: - shard-rkl: [PASS][21] -> [FAIL][22] ([i915#2842]) +1 other test fail [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-rkl-3/igt@gem_exec_fair@basic-pace-solo@rcs0.html [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-4/igt@gem_exec_fair@basic-pace-solo@rcs0.html * igt@gem_exec_reloc@basic-cpu-noreloc: - shard-rkl: NOTRUN -> [SKIP][23] ([i915#3281]) +6 other tests skip [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@gem_exec_reloc@basic-cpu-noreloc.html * igt@gem_lmem_swapping@heavy-verify-random-ccs: - shard-rkl: NOTRUN -> [SKIP][24] ([i915#4613]) +4 other tests skip [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@gem_lmem_swapping@heavy-verify-random-ccs.html - shard-tglu: NOTRUN -> [SKIP][25] ([i915#4613]) +2 other tests skip [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@gem_lmem_swapping@heavy-verify-random-ccs.html * igt@gem_madvise@dontneed-before-pwrite: - shard-rkl: NOTRUN -> [SKIP][26] ([i915#3282]) +4 other tests skip [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@gem_madvise@dontneed-before-pwrite.html * igt@gem_mmap_gtt@coherency: - shard-dg1: NOTRUN -> [SKIP][27] ([i915#4077]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-18/igt@gem_mmap_gtt@coherency.html * igt@gem_mmap_wc@write-cpu-read-wc: - shard-dg1: NOTRUN -> [SKIP][28] ([i915#4083]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-19/igt@gem_mmap_wc@write-cpu-read-wc.html - shard-mtlp: NOTRUN -> [SKIP][29] ([i915#4083]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-8/igt@gem_mmap_wc@write-cpu-read-wc.html * igt@gem_pxp@create-regular-context-1: - shard-tglu: NOTRUN -> [SKIP][30] ([i915#4270]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@gem_pxp@create-regular-context-1.html * igt@gem_pxp@reject-modify-context-protection-off-1: - shard-mtlp: NOTRUN -> [SKIP][31] ([i915#4270]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-3/igt@gem_pxp@reject-modify-context-protection-off-1.html * igt@gem_pxp@reject-modify-context-protection-on: - shard-rkl: NOTRUN -> [SKIP][32] ([i915#4270]) +1 other test skip [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@gem_pxp@reject-modify-context-protection-on.html * igt@gem_readwrite@new-obj: - shard-dg1: NOTRUN -> [SKIP][33] ([i915#3282]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-19/igt@gem_readwrite@new-obj.html * igt@gem_userptr_blits@dmabuf-sync: - shard-glk: NOTRUN -> [SKIP][34] ([i915#3323]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk1/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@unsync-unmap-after-close: - shard-dg1: NOTRUN -> [SKIP][35] ([i915#3297]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-18/igt@gem_userptr_blits@unsync-unmap-after-close.html - shard-mtlp: NOTRUN -> [SKIP][36] ([i915#3297]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-2/igt@gem_userptr_blits@unsync-unmap-after-close.html * igt@gen9_exec_parse@bb-oversize: - shard-rkl: NOTRUN -> [SKIP][37] ([i915#2527]) +3 other tests skip [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@gen9_exec_parse@bb-oversize.html * igt@gen9_exec_parse@shadow-peek: - shard-tglu: NOTRUN -> [SKIP][38] ([i915#2527] / [i915#2856]) +3 other tests skip [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@gen9_exec_parse@shadow-peek.html * igt@i915_module_load@reload-with-fault-injection: - shard-snb: [PASS][39] -> [ABORT][40] ([i915#9820]) [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-snb7/igt@i915_module_load@reload-with-fault-injection.html [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-snb6/igt@i915_module_load@reload-with-fault-injection.html - shard-mtlp: [PASS][41] -> [ABORT][42] ([i915#10131] / [i915#10887] / [i915#9820]) [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-mtlp-8/igt@i915_module_load@reload-with-fault-injection.html [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-2/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_freq_mult@media-freq@gt0: - shard-rkl: NOTRUN -> [SKIP][43] ([i915#6590]) +1 other test skip [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@i915_pm_freq_mult@media-freq@gt0.html - shard-tglu: NOTRUN -> [SKIP][44] ([i915#6590]) +1 other test skip [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@i915_pm_freq_mult@media-freq@gt0.html * igt@i915_pm_rps@reset: - shard-snb: [PASS][45] -> [INCOMPLETE][46] ([i915#7790]) [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-snb4/igt@i915_pm_rps@reset.html [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-snb2/igt@i915_pm_rps@reset.html * igt@i915_pm_sseu@full-enable: - shard-rkl: NOTRUN -> [SKIP][47] ([i915#4387]) [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@i915_pm_sseu@full-enable.html * igt@i915_power@sanity: - shard-mtlp: [PASS][48] -> [SKIP][49] ([i915#7984]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-mtlp-3/igt@i915_power@sanity.html [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-7/igt@i915_power@sanity.html * igt@i915_query@hwconfig_table: - shard-tglu: NOTRUN -> [SKIP][50] ([i915#6245]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@i915_query@hwconfig_table.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-y-rc-ccs: - shard-dg1: NOTRUN -> [SKIP][51] ([i915#8709]) +7 other tests skip [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-12/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-3-y-rc-ccs.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc-ccs: - shard-tglu: NOTRUN -> [SKIP][52] ([i915#8709]) +7 other tests skip [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc-ccs.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-2-4-mc-ccs: - shard-dg2: NOTRUN -> [SKIP][53] ([i915#8709]) +11 other tests skip [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-11/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-hdmi-a-2-4-mc-ccs.html * igt@kms_atomic_transition@modeset-transition-nonblocking: - shard-glk: [PASS][54] -> [FAIL][55] ([i915#12177]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk2/igt@kms_atomic_transition@modeset-transition-nonblocking.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk8/igt@kms_atomic_transition@modeset-transition-nonblocking.html * igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs: - shard-glk: [PASS][56] -> [FAIL][57] ([i915#11859]) [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk2/igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk8/igt@kms_atomic_transition@modeset-transition-nonblocking@2x-outputs.html * igt@kms_big_fb@4-tiled-16bpp-rotate-0: - shard-rkl: NOTRUN -> [SKIP][58] ([i915#5286]) +4 other tests skip [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_big_fb@4-tiled-16bpp-rotate-0.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip: - shard-tglu: NOTRUN -> [SKIP][59] ([i915#5286]) +3 other tests skip [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html * igt@kms_big_fb@linear-64bpp-rotate-90: - shard-rkl: NOTRUN -> [SKIP][60] ([i915#3638]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_big_fb@linear-64bpp-rotate-90.html * igt@kms_busy@basic: - shard-dg2: [PASS][61] -> [SKIP][62] ([i915#9197]) +50 other tests skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_busy@basic.html [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_busy@basic.html * igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1: - shard-dg2: NOTRUN -> [SKIP][63] ([i915#10307] / [i915#10434] / [i915#6095]) +5 other tests skip [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-8/igt@kms_ccs@bad-aux-stride-y-tiled-gen12-rc-ccs@pipe-d-hdmi-a-1.html * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4: - shard-dg1: NOTRUN -> [SKIP][64] ([i915#6095]) +100 other tests skip [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-15/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-4.html * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs: - shard-rkl: NOTRUN -> [SKIP][65] ([i915#12313]) +1 other test skip [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html - shard-tglu: NOTRUN -> [SKIP][66] ([i915#12313]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs: - shard-snb: NOTRUN -> [SKIP][67] +8 other tests skip [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-snb2/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc@pipe-a-edp-1: - shard-mtlp: NOTRUN -> [SKIP][68] ([i915#6095]) +9 other tests skip [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-rc-ccs-cc@pipe-a-edp-1.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][69] ([i915#6095]) +29 other tests skip [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-b-hdmi-a-1.html * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][70] ([i915#10307] / [i915#6095]) +177 other tests skip [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-3.html * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][71] ([i915#6095]) +94 other tests skip [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-3/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html * igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][72] ([i915#4087]) +3 other tests skip [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_cdclk@plane-scaling@pipe-c-hdmi-a-3.html * igt@kms_chamelium_audio@hdmi-audio: - shard-dg1: NOTRUN -> [SKIP][73] ([i915#7828]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-19/igt@kms_chamelium_audio@hdmi-audio.html * igt@kms_chamelium_frames@dp-crc-single: - shard-tglu: NOTRUN -> [SKIP][74] ([i915#7828]) +4 other tests skip [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_chamelium_frames@dp-crc-single.html * igt@kms_chamelium_frames@hdmi-frame-dump: - shard-rkl: NOTRUN -> [SKIP][75] ([i915#7828]) +5 other tests skip [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_chamelium_frames@hdmi-frame-dump.html * igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode: - shard-mtlp: NOTRUN -> [SKIP][76] ([i915#7828]) +2 other tests skip [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-3/igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode.html * igt@kms_color@deep-color: - shard-tglu: NOTRUN -> [SKIP][77] ([i915#3555] / [i915#9979]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_color@deep-color.html * igt@kms_content_protection@content-type-change: - shard-rkl: NOTRUN -> [SKIP][78] ([i915#9424]) [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_content_protection@content-type-change.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-tglu: NOTRUN -> [SKIP][79] ([i915#3116] / [i915#3299]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_cursor_crc@cursor-rapid-movement-512x512: - shard-tglu: NOTRUN -> [SKIP][80] ([i915#11453]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html - shard-rkl: NOTRUN -> [SKIP][81] ([i915#11453]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic: - shard-rkl: NOTRUN -> [SKIP][82] +18 other tests skip [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size: - shard-mtlp: NOTRUN -> [SKIP][83] ([i915#9809]) +1 other test skip [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-3/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot: - shard-rkl: NOTRUN -> [SKIP][84] ([i915#9067]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle: - shard-rkl: NOTRUN -> [SKIP][85] ([i915#4103]) [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html - shard-tglu: NOTRUN -> [SKIP][86] ([i915#4103]) +1 other test skip [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][87] ([i915#3804]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html * igt@kms_dsc@dsc-fractional-bpp-with-bpc: - shard-rkl: NOTRUN -> [SKIP][88] ([i915#3840]) [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html * igt@kms_dsc@dsc-with-output-formats-with-bpc: - shard-tglu: NOTRUN -> [SKIP][89] ([i915#3840] / [i915#9053]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_dsc@dsc-with-output-formats-with-bpc.html * igt@kms_fb_coherency@memset-crc: - shard-dg2: [PASS][90] -> [SKIP][91] [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-5/igt@kms_fb_coherency@memset-crc.html [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_fb_coherency@memset-crc.html * igt@kms_fbcon_fbt@fbc-suspend: - shard-tglu: [PASS][92] -> [FAIL][93] ([i915#4767]) [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-tglu-2/igt@kms_fbcon_fbt@fbc-suspend.html [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-8/igt@kms_fbcon_fbt@fbc-suspend.html * igt@kms_feature_discovery@chamelium: - shard-tglu: NOTRUN -> [SKIP][94] ([i915#2065] / [i915#4854]) [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_feature_discovery@chamelium.html * igt@kms_feature_discovery@display-4x: - shard-rkl: NOTRUN -> [SKIP][95] ([i915#1839]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_feature_discovery@display-4x.html - shard-tglu: NOTRUN -> [SKIP][96] ([i915#1839]) [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_feature_discovery@display-4x.html * igt@kms_feature_discovery@dp-mst: - shard-rkl: NOTRUN -> [SKIP][97] ([i915#9337]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_feature_discovery@dp-mst.html * igt@kms_flip@2x-flip-vs-blocking-wf-vblank@bc-hdmi-a1-hdmi-a2: - shard-glk: [PASS][98] -> [FAIL][99] ([i915#2122]) +1 other test fail [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk2/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@bc-hdmi-a1-hdmi-a2.html [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk8/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@bc-hdmi-a1-hdmi-a2.html * igt@kms_flip@2x-flip-vs-modeset: - shard-tglu: NOTRUN -> [SKIP][100] ([i915#3637] / [i915#3966]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_flip@2x-flip-vs-modeset.html * igt@kms_flip@2x-flip-vs-panning-vs-hang: - shard-mtlp: NOTRUN -> [SKIP][101] ([i915#3637]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-3/igt@kms_flip@2x-flip-vs-panning-vs-hang.html * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible: - shard-snb: [PASS][102] -> [FAIL][103] ([i915#2122]) +12 other tests fail [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-snb1/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-snb2/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html - shard-tglu: NOTRUN -> [SKIP][104] ([i915#3637]) +2 other tests skip [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible.html * igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible: - shard-tglu: [PASS][105] -> [FAIL][106] ([i915#2122]) +6 other tests fail [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-tglu-2/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-8/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible.html * igt@kms_flip@flip-vs-suspend: - shard-dg1: [PASS][107] -> [DMESG-WARN][108] ([i915#4423]) [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-19/igt@kms_flip@flip-vs-suspend.html [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-12/igt@kms_flip@flip-vs-suspend.html * igt@kms_flip@flip-vs-suspend-interruptible: - shard-glk: [PASS][109] -> [INCOMPLETE][110] ([i915#4839]) +1 other test incomplete [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk6/igt@kms_flip@flip-vs-suspend-interruptible.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk5/igt@kms_flip@flip-vs-suspend-interruptible.html * igt@kms_flip@flip-vs-suspend-interruptible@b-hdmi-a3: - shard-dg1: NOTRUN -> [INCOMPLETE][111] ([i915#4839] / [i915#6113]) [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-12/igt@kms_flip@flip-vs-suspend-interruptible@b-hdmi-a3.html * igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2: - shard-dg2: NOTRUN -> [INCOMPLETE][112] ([i915#6113] / [i915#9878]) [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-11/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a2.html * igt@kms_flip@flip-vs-suspend@b-hdmi-a3: - shard-dg1: NOTRUN -> [DMESG-WARN][113] ([i915#4423]) +1 other test dmesg-warn [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-12/igt@kms_flip@flip-vs-suspend@b-hdmi-a3.html * igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1: - shard-mtlp: [PASS][114] -> [FAIL][115] ([i915#2122]) [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-mtlp-3/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1.html [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-1/igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling: - shard-tglu: NOTRUN -> [SKIP][116] ([i915#2672] / [i915#3555]) +2 other tests skip [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling: - shard-tglu: NOTRUN -> [SKIP][117] ([i915#2587] / [i915#2672] / [i915#3555]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode: - shard-tglu: NOTRUN -> [SKIP][118] ([i915#2587] / [i915#2672]) +3 other tests skip [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling: - shard-dg2: [PASS][119] -> [SKIP][120] ([i915#3555]) +5 other tests skip [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode: - shard-dg2: NOTRUN -> [SKIP][121] ([i915#2672]) +2 other tests skip [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling: - shard-rkl: NOTRUN -> [SKIP][122] ([i915#2672] / [i915#3555]) +3 other tests skip [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode: - shard-rkl: NOTRUN -> [SKIP][123] ([i915#2672]) +3 other tests skip [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite: - shard-dg2: [PASS][124] -> [SKIP][125] ([i915#5354]) +13 other tests skip [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt: - shard-snb: [PASS][126] -> [SKIP][127] [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-snb5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-snb4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt: - shard-dg1: NOTRUN -> [SKIP][128] +3 other tests skip [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-19/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html - shard-mtlp: NOTRUN -> [SKIP][129] ([i915#1825]) +3 other tests skip [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc: - shard-dg1: NOTRUN -> [SKIP][130] ([i915#8708]) [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][131] ([i915#3023]) +15 other tests skip [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu: - shard-tglu: NOTRUN -> [SKIP][132] +55 other tests skip [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt: - shard-rkl: NOTRUN -> [SKIP][133] ([i915#1825]) +26 other tests skip [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html * igt@kms_joiner@invalid-modeset-big-joiner: - shard-rkl: NOTRUN -> [SKIP][134] ([i915#10656]) [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_joiner@invalid-modeset-big-joiner.html * igt@kms_plane@pixel-format: - shard-dg2: [PASS][135] -> [SKIP][136] ([i915#8825]) [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane@pixel-format.html [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane@pixel-format.html * igt@kms_plane_alpha_blend@alpha-transparent-fb: - shard-dg2: [PASS][137] -> [SKIP][138] ([i915#7294]) +1 other test skip [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_alpha_blend@alpha-transparent-fb.html [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_alpha_blend@alpha-transparent-fb.html * igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1: - shard-tglu: NOTRUN -> [FAIL][139] ([i915#8292]) +1 other test fail [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_plane_scaling@intel-max-src-size@pipe-a-hdmi-a-1.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation: - shard-dg2: [PASS][140] -> [SKIP][141] ([i915#12247] / [i915#8152] / [i915#9423]) [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation.html [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-d: - shard-dg2: [PASS][142] -> [SKIP][143] ([i915#12247] / [i915#8152]) [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-d.html [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-d.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers: - shard-dg2: [PASS][144] -> [SKIP][145] ([i915#3555] / [i915#8152] / [i915#9423]) [144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers.html [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers@pipe-b: - shard-dg2: [PASS][146] -> [SKIP][147] ([i915#12247]) +11 other tests skip [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers@pipe-b.html [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers@pipe-b.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers@pipe-d: - shard-dg2: [PASS][148] -> [SKIP][149] ([i915#8152]) +2 other tests skip [148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers@pipe-d.html [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers@pipe-d.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation: - shard-rkl: NOTRUN -> [SKIP][150] ([i915#3555]) +2 other tests skip [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b: - shard-rkl: NOTRUN -> [SKIP][151] ([i915#12247]) +4 other tests skip [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html * igt@kms_plane_scaling@plane-upscale-20x20-with-pixel-format: - shard-dg2: [PASS][152] -> [SKIP][153] ([i915#8152] / [i915#9423]) +1 other test skip [152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_scaling@plane-upscale-20x20-with-pixel-format.html [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@plane-upscale-20x20-with-pixel-format.html * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d: - shard-tglu: NOTRUN -> [SKIP][154] ([i915#12247]) +18 other tests skip [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-rotation@pipe-d.html * igt@kms_plane_scaling@planes-downscale-factor-0-5: - shard-tglu: NOTRUN -> [SKIP][155] ([i915#12247] / [i915#6953]) [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_plane_scaling@planes-downscale-factor-0-5.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-a: - shard-glk: NOTRUN -> [SKIP][156] +26 other tests skip [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk1/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-a.html * igt@kms_pm_backlight@fade: - shard-tglu: NOTRUN -> [SKIP][157] ([i915#9812]) +1 other test skip [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-6/igt@kms_pm_backlight@fade.html * igt@kms_pm_dc@dc5-dpms-negative: - shard-dg2: [PASS][158] -> [SKIP][159] ([i915#9293]) [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_pm_dc@dc5-dpms-negative.html [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_pm_dc@dc5-dpms-negative.html * igt@kms_pm_dc@dc6-dpms: - shard-rkl: NOTRUN -> [SKIP][160] ([i915#3361]) [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_pm_dc@dc6-dpms.html * igt@kms_pm_rpm@dpms-lpsp: - shard-rkl: [PASS][161] -> [SKIP][162] ([i915#9519]) +1 other test skip [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-rkl-2/igt@kms_pm_rpm@dpms-lpsp.html [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-1/igt@kms_pm_rpm@dpms-lpsp.html * igt@kms_pm_rpm@modeset-non-lpsp: - shard-dg2: [PASS][163] -> [SKIP][164] ([i915#9519]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-1/igt@kms_pm_rpm@modeset-non-lpsp.html [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-8/igt@kms_pm_rpm@modeset-non-lpsp.html - shard-rkl: NOTRUN -> [SKIP][165] ([i915#9519]) [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp.html * igt@kms_prime@basic-crc-hybrid: - shard-tglu: NOTRUN -> [SKIP][166] ([i915#6524]) [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_prime@basic-crc-hybrid.html * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf: - shard-rkl: NOTRUN -> [SKIP][167] ([i915#11520]) +5 other tests skip [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf: - shard-tglu: NOTRUN -> [SKIP][168] ([i915#11520]) +4 other tests skip [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf: - shard-glk: NOTRUN -> [SKIP][169] ([i915#11520]) [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk1/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-dg1: NOTRUN -> [SKIP][170] ([i915#9683]) [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-19/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_psr@fbc-psr2-sprite-render: - shard-rkl: NOTRUN -> [SKIP][171] ([i915#1072] / [i915#9732]) +15 other tests skip [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_psr@fbc-psr2-sprite-render.html * igt@kms_psr@pr-dpms: - shard-tglu: NOTRUN -> [SKIP][172] ([i915#9732]) +14 other tests skip [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_psr@pr-dpms.html * igt@kms_psr@pr-primary-mmap-gtt: - shard-mtlp: NOTRUN -> [SKIP][173] ([i915#9688]) [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-6/igt@kms_psr@pr-primary-mmap-gtt.html * igt@kms_psr@psr-cursor-plane-onoff: - shard-dg1: NOTRUN -> [SKIP][174] ([i915#1072] / [i915#9732]) +1 other test skip [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-19/igt@kms_psr@psr-cursor-plane-onoff.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-tglu: NOTRUN -> [SKIP][175] ([i915#9685]) [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html - shard-rkl: NOTRUN -> [SKIP][176] ([i915#9685]) [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180: - shard-tglu: NOTRUN -> [SKIP][177] ([i915#5289]) +1 other test skip [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90: - shard-rkl: NOTRUN -> [SKIP][178] ([i915#5289]) [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html * igt@kms_scaling_modes@scaling-mode-full: - shard-tglu: NOTRUN -> [SKIP][179] ([i915#3555]) +2 other tests skip [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-6/igt@kms_scaling_modes@scaling-mode-full.html * igt@kms_selftest@drm_framebuffer: - shard-dg1: NOTRUN -> [ABORT][180] ([i915#12231]) +1 other test abort [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-18/igt@kms_selftest@drm_framebuffer.html - shard-mtlp: NOTRUN -> [ABORT][181] ([i915#12231]) +1 other test abort [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-2/igt@kms_selftest@drm_framebuffer.html * igt@kms_setmode@clone-exclusive-crtc: - shard-dg1: NOTRUN -> [SKIP][182] ([i915#3555]) [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-18/igt@kms_setmode@clone-exclusive-crtc.html - shard-mtlp: NOTRUN -> [SKIP][183] ([i915#3555] / [i915#8809]) [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-2/igt@kms_setmode@clone-exclusive-crtc.html * igt@kms_sysfs_edid_timing: - shard-dg1: NOTRUN -> [FAIL][184] ([IGT#2] / [i915#6493]) [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-18/igt@kms_sysfs_edid_timing.html * igt@kms_tiled_display@basic-test-pattern: - shard-rkl: NOTRUN -> [SKIP][185] ([i915#8623]) [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_tiled_display@basic-test-pattern.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-tglu: NOTRUN -> [SKIP][186] ([i915#8623]) [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html * igt@kms_universal_plane@cursor-fb-leak: - shard-mtlp: [PASS][187] -> [FAIL][188] ([i915#9196]) +1 other test fail [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-mtlp-2/igt@kms_universal_plane@cursor-fb-leak.html [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-6/igt@kms_universal_plane@cursor-fb-leak.html * igt@kms_vrr@seamless-rr-switch-vrr: - shard-rkl: NOTRUN -> [SKIP][189] ([i915#9906]) [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@kms_vrr@seamless-rr-switch-vrr.html * igt@kms_writeback@writeback-check-output-xrgb2101010: - shard-tglu: NOTRUN -> [SKIP][190] ([i915#2437] / [i915#9412]) [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@kms_writeback@writeback-check-output-xrgb2101010.html * igt@kms_writeback@writeback-fb-id: - shard-rkl: NOTRUN -> [SKIP][191] ([i915#2437]) [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@kms_writeback@writeback-fb-id.html * igt@perf@mi-rpc: - shard-rkl: NOTRUN -> [SKIP][192] ([i915#2434]) [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-7/igt@perf@mi-rpc.html * igt@perf@per-context-mode-unprivileged: - shard-rkl: NOTRUN -> [SKIP][193] ([i915#2435]) [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@perf@per-context-mode-unprivileged.html * igt@prime_vgem@basic-write: - shard-rkl: NOTRUN -> [SKIP][194] ([i915#3291] / [i915#3708]) +1 other test skip [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@prime_vgem@basic-write.html * igt@prime_vgem@coherency-gtt: - shard-rkl: NOTRUN -> [SKIP][195] ([i915#3708]) [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@prime_vgem@coherency-gtt.html * igt@sriov_basic@enable-vfs-autoprobe-on: - shard-tglu: NOTRUN -> [SKIP][196] ([i915#9917]) [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-3/igt@sriov_basic@enable-vfs-autoprobe-on.html - shard-rkl: NOTRUN -> [SKIP][197] ([i915#9917]) [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-2/igt@sriov_basic@enable-vfs-autoprobe-on.html * igt@tools_test@sysfs_l3_parity: - shard-mtlp: NOTRUN -> [SKIP][198] ([i915#4818]) [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-3/igt@tools_test@sysfs_l3_parity.html #### Possible fixes #### * igt@gem_eio@kms: - shard-dg2: [FAIL][199] ([i915#5784]) -> [PASS][200] [199]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-11/igt@gem_eio@kms.html [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-8/igt@gem_eio@kms.html * igt@gem_exec_balancer@nop: - shard-mtlp: [DMESG-WARN][201] -> [PASS][202] [201]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-mtlp-3/igt@gem_exec_balancer@nop.html [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-7/igt@gem_exec_balancer@nop.html * igt@i915_module_load@reload-with-fault-injection: - shard-tglu: [ABORT][203] ([i915#9820]) -> [PASS][204] [203]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-tglu-6/igt@i915_module_load@reload-with-fault-injection.html [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-6/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_rc6_residency@rc6-idle: - shard-dg1: [FAIL][205] ([i915#3591]) -> [PASS][206] +1 other test pass [205]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-16/igt@i915_pm_rc6_residency@rc6-idle.html [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle.html * igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4: - shard-dg1: [FAIL][207] ([i915#5956]) -> [PASS][208] +1 other test pass [207]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-14/igt@kms_atomic_transition@plane-all-modeset-transition-fencing@pipe-a-hdmi-a-4.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1: - shard-tglu: [FAIL][209] ([i915#11808]) -> [PASS][210] +1 other test pass [209]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-tglu-6/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html [210]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-10/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0: - shard-mtlp: [FAIL][211] ([i915#5138]) -> [PASS][212] [211]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-mtlp-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs: - shard-dg2: [SKIP][213] ([i915#9197]) -> [PASS][214] +44 other tests pass [213]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html * igt@kms_cursor_legacy@cursora-vs-flipb-legacy: - shard-snb: [SKIP][215] -> [PASS][216] +6 other tests pass [215]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-snb7/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-snb5/igt@kms_cursor_legacy@cursora-vs-flipb-legacy.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size: - shard-glk: [FAIL][217] ([i915#2346]) -> [PASS][218] [217]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk5/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html * igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-vga1-hdmi-a1: - shard-snb: [FAIL][219] ([i915#2122]) -> [PASS][220] +1 other test pass [219]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-snb5/igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-vga1-hdmi-a1.html [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-snb4/igt@kms_flip@2x-wf_vblank-ts-check-interruptible@ab-vga1-hdmi-a1.html * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling: - shard-dg2: [SKIP][221] ([i915#3555]) -> [PASS][222] +3 other tests pass [221]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite: - shard-dg2: [SKIP][223] ([i915#5354]) -> [PASS][224] +12 other tests pass [223]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite.html [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite.html * igt@kms_plane@plane-panning-top-left: - shard-dg2: [SKIP][225] ([i915#8825]) -> [PASS][226] [225]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane@plane-panning-top-left.html [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_plane@plane-panning-top-left.html * igt@kms_plane_scaling@intel-max-src-size: - shard-rkl: [FAIL][227] ([i915#8292]) -> [PASS][228] [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-rkl-2/igt@kms_plane_scaling@intel-max-src-size.html [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-1/igt@kms_plane_scaling@intel-max-src-size.html * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers: - shard-dg2: [SKIP][229] ([i915#8152] / [i915#9423]) -> [PASS][230] +2 other tests pass [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers.html [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers.html * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers@pipe-d: - shard-dg2: [SKIP][231] ([i915#8152]) -> [PASS][232] +2 other tests pass [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers@pipe-d.html [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers@pipe-d.html * igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20: - shard-dg2: [SKIP][233] ([i915#12247] / [i915#3558] / [i915#8152] / [i915#9423]) -> [PASS][234] [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20.html [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20.html * igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20@pipe-c: - shard-dg2: [SKIP][235] ([i915#12247]) -> [PASS][236] +17 other tests pass [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20@pipe-c.html [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20@pipe-c.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75: - shard-dg2: [SKIP][237] ([i915#3555] / [i915#6953] / [i915#8152] / [i915#9423]) -> [PASS][238] [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75.html [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d: - shard-dg2: [SKIP][239] ([i915#12247] / [i915#8152]) -> [PASS][240] +2 other tests pass [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d.html [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75: - shard-dg2: [SKIP][241] ([i915#12247] / [i915#6953] / [i915#8152] / [i915#9423]) -> [PASS][242] [241]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75.html * igt@kms_pm_lpsp@kms-lpsp: - shard-dg2: [SKIP][243] ([i915#9340]) -> [PASS][244] [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-1/igt@kms_pm_lpsp@kms-lpsp.html [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-8/igt@kms_pm_lpsp@kms-lpsp.html * igt@kms_pm_rpm@cursor: - shard-dg2: [SKIP][245] ([i915#1849]) -> [PASS][246] [245]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_pm_rpm@cursor.html [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_pm_rpm@cursor.html * igt@kms_pm_rpm@i2c: - shard-dg2: [SKIP][247] -> [PASS][248] [247]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_pm_rpm@i2c.html [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_pm_rpm@i2c.html * igt@kms_pm_rpm@modeset-lpsp-stress: - shard-rkl: [SKIP][249] ([i915#9519]) -> [PASS][250] +2 other tests pass [249]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-rkl-3/igt@kms_pm_rpm@modeset-lpsp-stress.html [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-4/igt@kms_pm_rpm@modeset-lpsp-stress.html * igt@kms_pm_rpm@modeset-non-lpsp-stress: - shard-dg2: [SKIP][251] ([i915#9519]) -> [PASS][252] [251]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html * igt@kms_properties@crtc-properties-atomic: - shard-dg2: [SKIP][253] ([i915#11521]) -> [PASS][254] [253]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_properties@crtc-properties-atomic.html [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_properties@crtc-properties-atomic.html #### Warnings #### * igt@gem_exec_fair@basic-pace@rcs0: - shard-tglu: [FAIL][255] ([i915#2876]) -> [FAIL][256] ([i915#2842]) [255]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-tglu-10/igt@gem_exec_fair@basic-pace@rcs0.html [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-tglu-4/igt@gem_exec_fair@basic-pace@rcs0.html * igt@i915_pipe_stress@stress-xrgb8888-ytiled: - shard-dg2: [SKIP][257] ([i915#9197]) -> [SKIP][258] ([i915#7091]) [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@i915_pipe_stress@stress-xrgb8888-ytiled.html * igt@i915_selftest@mock: - shard-glk: [DMESG-WARN][259] ([i915#9311]) -> [DMESG-WARN][260] ([i915#1982] / [i915#9311]) [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-glk4/igt@i915_selftest@mock.html [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-glk4/igt@i915_selftest@mock.html * igt@kms_big_fb@x-tiled-16bpp-rotate-270: - shard-dg2: [SKIP][261] -> [SKIP][262] ([i915#9197]) +2 other tests skip [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html * igt@kms_big_fb@x-tiled-64bpp-rotate-270: - shard-dg2: [SKIP][263] ([i915#9197]) -> [SKIP][264] +1 other test skip [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html * igt@kms_big_fb@y-tiled-8bpp-rotate-90: - shard-dg2: [SKIP][265] ([i915#5190] / [i915#9197]) -> [SKIP][266] ([i915#4538] / [i915#5190]) +7 other tests skip [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html * igt@kms_big_fb@y-tiled-addfb-size-overflow: - shard-dg2: [SKIP][267] ([i915#5190]) -> [SKIP][268] ([i915#5190] / [i915#9197]) +3 other tests skip [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-7/igt@kms_big_fb@y-tiled-addfb-size-overflow.html [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_big_fb@y-tiled-addfb-size-overflow.html * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip: - shard-dg2: [SKIP][269] ([i915#4538] / [i915#5190]) -> [SKIP][270] ([i915#5190] / [i915#9197]) +10 other tests skip [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html [270]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs: - shard-dg2: [SKIP][271] ([i915#9197]) -> [SKIP][272] ([i915#12313]) +1 other test skip [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html [272]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html * igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs-cc: - shard-dg2: [SKIP][273] ([i915#9197]) -> [SKIP][274] ([i915#10307] / [i915#6095]) +6 other tests skip [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs-cc.html [274]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_ccs@crc-primary-basic-y-tiled-gen12-rc-ccs-cc.html * igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs: - shard-dg2: [SKIP][275] ([i915#10307] / [i915#6095]) -> [SKIP][276] ([i915#9197]) +10 other tests skip [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs.html [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs.html * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs: - shard-dg2: [SKIP][277] ([i915#12313]) -> [SKIP][278] ([i915#9197]) [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html [278]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html * igt@kms_cdclk@mode-transition-all-outputs: - shard-dg2: [SKIP][279] ([i915#9197]) -> [SKIP][280] ([i915#11616] / [i915#7213]) [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_cdclk@mode-transition-all-outputs.html [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_cdclk@mode-transition-all-outputs.html * igt@kms_cdclk@plane-scaling: - shard-dg2: [SKIP][281] ([i915#9197]) -> [SKIP][282] ([i915#4087]) [281]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_cdclk@plane-scaling.html [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_cdclk@plane-scaling.html * igt@kms_content_protection@atomic: - shard-dg2: [SKIP][283] ([i915#9197]) -> [SKIP][284] ([i915#7118] / [i915#9424]) +1 other test skip [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_content_protection@atomic.html [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_content_protection@atomic.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-dg2: [SKIP][285] ([i915#3299]) -> [SKIP][286] ([i915#9197]) [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-7/igt@kms_content_protection@dp-mst-lic-type-0.html [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_content_protection@legacy: - shard-dg2: [SKIP][287] ([i915#7118] / [i915#9424]) -> [SKIP][288] ([i915#9197]) [287]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-5/igt@kms_content_protection@legacy.html [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_content_protection@legacy.html * igt@kms_content_protection@lic-type-0: - shard-dg2: [SKIP][289] ([i915#9424]) -> [SKIP][290] ([i915#9197]) [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_content_protection@lic-type-0.html [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_content_protection@lic-type-0.html * igt@kms_content_protection@mei-interface: - shard-dg1: [SKIP][291] ([i915#9424]) -> [SKIP][292] ([i915#9433]) [291]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-15/igt@kms_content_protection@mei-interface.html [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-13/igt@kms_content_protection@mei-interface.html * igt@kms_cursor_crc@cursor-offscreen-32x10: - shard-dg2: [SKIP][293] ([i915#9197]) -> [SKIP][294] ([i915#3555]) +4 other tests skip [293]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_cursor_crc@cursor-offscreen-32x10.html [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_cursor_crc@cursor-offscreen-32x10.html * igt@kms_cursor_crc@cursor-onscreen-max-size: - shard-dg2: [SKIP][295] ([i915#3555]) -> [SKIP][296] ([i915#9197]) +4 other tests skip [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_cursor_crc@cursor-onscreen-max-size.html [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_cursor_crc@cursor-onscreen-max-size.html * igt@kms_cursor_crc@cursor-random-512x170: - shard-dg2: [SKIP][297] ([i915#9197]) -> [SKIP][298] ([i915#11453]) +3 other tests skip [297]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_cursor_crc@cursor-random-512x170.html [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_cursor_crc@cursor-random-512x170.html * igt@kms_cursor_crc@cursor-sliding-512x170: - shard-dg2: [SKIP][299] ([i915#11453]) -> [SKIP][300] ([i915#9197]) [299]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-5/igt@kms_cursor_crc@cursor-sliding-512x170.html [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_cursor_crc@cursor-sliding-512x170.html * igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy: - shard-dg2: [SKIP][301] ([i915#5354]) -> [SKIP][302] ([i915#9197]) +3 other tests skip [301]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-5/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html * igt@kms_cursor_legacy@cursorb-vs-flipa-toggle: - shard-dg2: [SKIP][303] ([i915#9197]) -> [SKIP][304] ([i915#5354]) +4 other tests skip [303]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html * igt@kms_dsc@dsc-with-bpc: - shard-dg2: [SKIP][305] ([i915#3555] / [i915#3840]) -> [SKIP][306] ([i915#9197]) +1 other test skip [305]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_dsc@dsc-with-bpc.html [306]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_dsc@dsc-with-bpc.html * igt@kms_dsc@dsc-with-bpc-formats: - shard-dg2: [SKIP][307] ([i915#9197]) -> [SKIP][308] ([i915#3555] / [i915#3840]) [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_dsc@dsc-with-bpc-formats.html [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_dsc@dsc-with-bpc-formats.html * igt@kms_flip@plain-flip-fb-recreate-interruptible: - shard-dg2: [FAIL][309] ([i915#2122]) -> [SKIP][310] ([i915#5354]) [309]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_flip@plain-flip-fb-recreate-interruptible.html [310]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_flip@plain-flip-fb-recreate-interruptible.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling: - shard-dg2: [SKIP][311] ([i915#2672] / [i915#3555]) -> [SKIP][312] ([i915#3555]) +1 other test skip [311]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-7/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling: - shard-dg2: [SKIP][313] ([i915#2672] / [i915#3555] / [i915#5190]) -> [SKIP][314] ([i915#3555] / [i915#5190]) [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling: - shard-dg2: [SKIP][315] ([i915#3555]) -> [SKIP][316] ([i915#2672] / [i915#3555]) +1 other test skip [315]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html [316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling: - shard-dg2: [SKIP][317] ([i915#3555] / [i915#5190]) -> [SKIP][318] ([i915#2672] / [i915#3555] / [i915#5190]) [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html [318]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite: - shard-dg1: [SKIP][319] ([i915#4423]) -> [SKIP][320] [319]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-14/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite.html [320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-14/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render: - shard-dg2: [SKIP][321] ([i915#3458]) -> [SKIP][322] ([i915#5354]) +9 other tests skip [321]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html [322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt: - shard-dg2: [SKIP][323] ([i915#5354]) -> [SKIP][324] ([i915#3458]) +12 other tests skip [323]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html [324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc: - shard-dg2: [SKIP][325] ([i915#8708]) -> [SKIP][326] ([i915#5354]) +19 other tests skip [325]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc.html [326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt: - shard-dg2: [SKIP][327] ([i915#5354]) -> [SKIP][328] ([i915#10433] / [i915#3458]) +1 other test skip [327]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html [328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-plflip-blt.html * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc: - shard-dg2: [SKIP][329] ([i915#5354]) -> [SKIP][330] ([i915#8708]) +17 other tests skip [329]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html [330]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary: - shard-dg2: [SKIP][331] ([i915#10433] / [i915#3458]) -> [SKIP][332] ([i915#5354]) +2 other tests skip [331]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html [332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html * igt@kms_hdr@invalid-metadata-sizes: - shard-dg2: [SKIP][333] ([i915#9197]) -> [SKIP][334] ([i915#3555] / [i915#8228]) [333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_hdr@invalid-metadata-sizes.html [334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-1/igt@kms_hdr@invalid-metadata-sizes.html * igt@kms_hdr@static-swap: - shard-dg2: [SKIP][335] ([i915#3555] / [i915#8228]) -> [SKIP][336] ([i915#9197]) [335]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_hdr@static-swap.html [336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_hdr@static-swap.html * igt@kms_multipipe_modeset@basic-max-pipe-crc-check: - shard-rkl: [SKIP][337] ([i915#4070] / [i915#4816]) -> [SKIP][338] ([i915#4816]) [337]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html [338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-rkl-4/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html * igt@kms_panel_fitting@atomic-fastset: - shard-dg2: [SKIP][339] ([i915#6301]) -> [SKIP][340] ([i915#9197]) [339]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_panel_fitting@atomic-fastset.html [340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_panel_fitting@atomic-fastset.html * igt@kms_plane_lowres@tiling-y: - shard-dg2: [SKIP][341] ([i915#8821]) -> [SKIP][342] ([i915#9197]) [341]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_lowres@tiling-y.html [342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_lowres@tiling-y.html * igt@kms_plane_multiple@tiling-y: - shard-dg2: [SKIP][343] ([i915#9197]) -> [SKIP][344] ([i915#8806]) [343]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_multiple@tiling-y.html [344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_plane_multiple@tiling-y.html * igt@kms_plane_scaling@intel-max-src-size: - shard-dg2: [SKIP][345] ([i915#6953] / [i915#9423]) -> [SKIP][346] ([i915#6953] / [i915#8152] / [i915#9423]) [345]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-7/igt@kms_plane_scaling@intel-max-src-size.html [346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@intel-max-src-size.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling: - shard-dg2: [SKIP][347] ([i915#12247] / [i915#9423]) -> [SKIP][348] ([i915#12247] / [i915#8152] / [i915#9423]) [347]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling.html [348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d: - shard-dg2: [SKIP][349] ([i915#12247]) -> [SKIP][350] ([i915#12247] / [i915#8152]) +1 other test skip [349]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-7/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d.html [350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25: - shard-dg2: [SKIP][351] ([i915#12247] / [i915#6953] / [i915#8152] / [i915#9423]) -> [SKIP][352] ([i915#12247] / [i915#6953] / [i915#9423]) [351]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html [352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25: - shard-dg2: [SKIP][353] ([i915#12247] / [i915#3555] / [i915#8152] / [i915#9423]) -> [SKIP][354] ([i915#12247] / [i915#3555] / [i915#9423]) [353]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html [354]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d: - shard-dg2: [SKIP][355] ([i915#12247] / [i915#8152]) -> [SKIP][356] ([i915#12247]) +1 other test skip [355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d.html [356]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-d.html * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25: - shard-dg2: [SKIP][357] ([i915#12247] / [i915#6953] / [i915#9423]) -> [SKIP][358] ([i915#12247] / [i915#6953] / [i915#8152] / [i915#9423]) [357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html [358]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area: - shard-dg1: [SKIP][359] ([i915#11520]) -> [SKIP][360] ([i915#11520] / [i915#4423]) [359]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-13/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html [360]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-15/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html * igt@kms_psr@fbc-psr2-dpms: - shard-dg1: [SKIP][361] ([i915#1072] / [i915#4423] / [i915#9732]) -> [SKIP][362] ([i915#1072] / [i915#9732]) [361]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg1-19/igt@kms_psr@fbc-psr2-dpms.html [362]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg1-12/igt@kms_psr@fbc-psr2-dpms.html * igt@kms_rotation_crc@primary-rotation-270: - shard-dg2: [SKIP][363] ([i915#11131]) -> [SKIP][364] ([i915#9197]) [363]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-4/igt@kms_rotation_crc@primary-rotation-270.html [364]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-2/igt@kms_rotation_crc@primary-rotation-270.html * igt@kms_vrr@negative-basic: - shard-dg2: [SKIP][365] ([i915#9197]) -> [SKIP][366] ([i915#3555] / [i915#9906]) [365]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15483/shard-dg2-2/igt@kms_vrr@negative-basic.html [366]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/shard-dg2-4/igt@kms_vrr@negative-basic.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2 [i915#10131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10131 [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307 [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433 [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434 [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656 [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072 [i915#10887]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10887 [i915#11131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11131 [i915#11453]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11453 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#11521]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11521 [i915#11616]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11616 [i915#11808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11808 [i915#11859]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11859 [i915#11980]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11980 [i915#12027]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12027 [i915#12177]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12177 [i915#12231]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12231 [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247 [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313 [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839 [i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849 [i915#1982]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1982 [i915#2065]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2065 [i915#2122]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2122 [i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346 [i915#2434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2434 [i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435 [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527 [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587 [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672 [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280 [i915#2842]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2842 [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856 [i915#2876]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2876 [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023 [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116 [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299 [i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323 [i915#3361]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3361 [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458 [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555 [i915#3558]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3558 [i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638 [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708 [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804 [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840 [i915#3966]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3966 [i915#4070]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077 [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083 [i915#4087]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4087 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270 [i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387 [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423 [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525 [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#4767]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4767 [i915#4816]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4816 [i915#4818]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4818 [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839 [i915#4854]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4854 [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138 [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190 [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286 [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289 [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354 [i915#5784]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5784 [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6113]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6113 [i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230 [i915#6245]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6245 [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301 [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335 [i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344 [i915#6493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6493 [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524 [i915#6590]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6590 [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944 [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953 [i915#7091]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7091 [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118 [i915#7213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7213 [i915#7294]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7294 [i915#7297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7297 [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697 [i915#7790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7790 [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828 [i915#7984]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7984 [i915#8152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8152 [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228 [i915#8292]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8292 [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411 [i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414 [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623 [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708 [i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709 [i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806 [i915#8809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8809 [i915#8821]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8821 [i915#8825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8825 [i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053 [i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067 [i915#9196]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9196 [i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197 [i915#9293]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9293 [i915#9311]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9311 [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337 [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340 [i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412 [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423 [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424 [i915#9433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9433 [i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519 [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683 [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685 [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688 [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732 [i915#9781]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9781 [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809 [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812 [i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820 [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878 [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906 [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917 [i915#9979]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9979 Build changes ------------- * Linux: CI_DRM_15483 -> Patchwork_139493v4 CI-20190529: 20190529 CI_DRM_15483: b147208bee50e8d141c39532f8d2c467b3d1df7f @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8051: c2efcb5f207eebb0c19106f27b310f61ded6f11d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_139493v4: b147208bee50e8d141c39532f8d2c467b3d1df7f @ git://anongit.freedesktop.org/gfx-ci/linux piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_139493v4/index.html [-- Attachment #2: Type: text/html, Size: 117914 bytes --] ^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2024-10-10 19:28 UTC | newest] Thread overview: 28+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-10-03 11:32 [PATCH 0/8] drm/client: Stop using legacy crtc->mode and a bunch of cleanups Ville Syrjala 2024-10-03 11:32 ` [PATCH 1/8] drm/client: Constify modes Ville Syrjala 2024-10-04 23:59 ` kernel test robot 2024-10-05 0:19 ` kernel test robot 2024-10-03 11:32 ` [PATCH 2/8] drm/client: Use array notation for function arguments Ville Syrjala 2024-10-03 11:32 ` [PATCH 3/8] drm/client: Streamline mode selection debugs Ville Syrjala 2024-10-03 11:33 ` [PATCH 4/8] drm/client: Make copies of modes Ville Syrjala 2024-10-03 16:45 ` Ville Syrjälä 2024-10-03 18:15 ` [PATCH v2 " Ville Syrjala 2024-10-07 7:36 ` [PATCH " Thomas Zimmermann 2024-10-08 19:33 ` Ville Syrjälä 2024-10-10 19:28 ` Ville Syrjälä 2024-10-09 14:09 ` kernel test robot 2024-10-03 11:33 ` [PATCH 5/8] drm/client: Stop using the legacy crtc->mode Ville Syrjala 2024-10-03 18:16 ` [PATCH v2 " Ville Syrjala 2024-10-03 11:33 ` [PATCH 6/8] drm/client: s/new_crtc/crtc/ Ville Syrjala 2024-10-03 18:17 ` [PATCH v2 " Ville Syrjala 2024-10-03 11:33 ` [PATCH 7/8] drm/client: Move variables to tighter scope Ville Syrjala 2024-10-03 14:59 ` Ville Syrjälä 2024-10-03 11:33 ` [PATCH 8/8] drm/client: s/unsigned int i/int i/ Ville Syrjala 2024-10-07 7:43 ` Thomas Zimmermann 2024-10-08 19:12 ` Ville Syrjälä 2024-10-09 14:32 ` Jani Nikula 2024-10-03 17:57 ` ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups Patchwork 2024-10-03 18:07 ` ✗ Fi.CI.BAT: failure " Patchwork 2024-10-03 21:40 ` ✗ Fi.CI.CHECKPATCH: warning for drm/client: Stop using legacy crtc->mode and a bunch of cleanups (rev4) Patchwork 2024-10-03 21:49 ` ✓ Fi.CI.BAT: success " Patchwork 2024-10-08 6:36 ` ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox