lpsp platform agnostic support
v8 cover lpsp platform agnostic support
This is v8 added Imre's patch to patch list,
as it is dependent on lpsp patch series.
Fixed some review comment provided by ankit.
Anshuman Gupta (5):
tests/i915_pm_lpsp: Nuke the panel-fitter test lib/igt_pm: Add lib func to get lpsp capability tests/i915_pm_lpsp: lpsp platform agnostic support tests/i915_pm_lpsp: screens-disabled subtest use igt_wait tests/i915_pm_rpm: lpsp/non-lpsp screen mode_set_data
Imre Deak (1):
tests/i915_pm_rpm: Fix the universal-plane cap setting in plane tests
lib/igt_pm.c | 29 ++++ lib/igt_pm.h | 1 + tests/i915/i915_pm_lpsp.c | 317 ++++++++++++++++++-------------------- tests/i915/i915_pm_rpm.c | 69 +++++---- 4 files changed, 215 insertions(+), 201 deletions(-)
Signature · 6 lines
2.26.0 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
PATCH v8 1/6 tests/i915_pm_lpsp: Nuke the panel-fitter test
panel-fitter subtest is only applicable to HASWELL/BROADWELL. It just tests non-lpsp(lpsp disabled) when panel fitter is enforced by std 1024x768 mode.
There is no ROI to test non-lpsp kind of thing,
If HSW_GLOBAL power well is not enabled we would see other display issues in other display tests.
Gen9+ platform has display scaling feature in built per pipe, as lpsp is all about low power single pipe (PIPE A) usage, gen9+ platforms also don't require panel-fitter subtest. This should save some CI cycles.
--- tests/i915/i915_pm_lpsp.c | 2 -- 1 file changed, 2 deletions(-)
tests/i915/i915_pm_lpsp.c +0 -2
@@ -219,8 +219,6 @@ igt_mainscreens_disabled_subtest (drm_fd, drm_res); igt_subtest("edp-native")edp_subtest (drm_fd, drm_res, drm_connectors, devid, false); - igt_subtest("edp-panel-fitter") -edp_subtest (drm_fd, drm_res, drm_connectors, devid, true); igt_subtest("non-edp")non_edp_subtest (drm_fd, drm_res, drm_connectors);
Signature · 6 lines
2.26.0 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
PATCH v8 2/6 lib/igt_pm: Add lib func to get lpsp capability
In reply to Anshuman GuptaThis lib function evaluate the lpsp capability from the connector specific debugfs attribute i915_lpsp_info.
v2:
- changed the lib function prefix igt_output_is_lpsp_capable to i915_output_is_lpsp_capable. [Martin]
v3:
- early return for the connector which doesn't support lpsp on any platform.
v4:
- debugfs entry changed from i915_lpsp_info to i915_lpsp_capability. v5:
- return lpsp capability false if i915_lpsp_capability debugfs is not present. [Animesh]
--- lib/igt_pm.c | 29 +++++++++++++++++++++++++++++ lib/igt_pm.h | 1 + 2 files changed, 30 insertions(+)
lib/igt_pm.c +29 -0
@@ -37,6 +37,7 @@#include <dirent.h> #include "drmtest.h" +#include "igt_kms.h" #include "igt_pm.h" #include "igt_aux.h" #include "igt_sysfs.h"
@@ -827,3 +828,31 @@ bool igt_pm_pc8_plus_residencies_enabled(int msr_fd)return true; } + +/** +* i915_output_is_lpsp_capable: +* @drm_fd: fd to drm device +* @output: igt output for which lpsp capability need to be evaluated +* Check lpsp capability for a given output. +* +* Returns: +* True if given output is lpsp capable otherwise false. +*/ +bool i915_output_is_lpsp_capable (int drm_fd,igt_output_t *output) +{ +char buf[256 ]; +int fd, len; + + fd =igt_debugfs_connector_dir (drm_fd, output->name,O_RDONLY ); +igt_require (fd >=0 ); + len =igt_debugfs_simple_read (fd,"i915_lpsp_capability" , + buf,sizeof (buf)); + +/* if i915_lpsp_capability not present return the capability as false */ +if (len <0 ) +return false; + +close (fd); + +return strstr (buf,"LPSP: capable" ); +}
lib/igt_pm.h +1 -0
@@ -53,5 +53,6 @@ enum igt_runtime_pm_status igt_get_runtime_pm_status(void);bool igt_wait_for_pm_status (enum igt_runtime_pm_status status);bool igt_pm_dmc_loaded (int debugfs);bool igt_pm_pc8_plus_residencies_enabled (int msr_fd); +bool i915_output_is_lpsp_capable (int drm_fd,igt_output_t *output);#endif /* IGT_PM_H */
Signature · 6 lines
2.26.0 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
PATCH v8 3/6 tests/i915_pm_lpsp: lpsp platform agnostic support
In reply to Anshuman GuptaCurrent implementation of lpsp igt test, assumed that every non-edp panel isn't a lpsp panel but it is not true on TGL anymore, any HDMI/DP/DSI panel connected on pipe A and connected to PORT_{A,B,C} can drive LPSP.
Even on older Gen9 platform a DP panel can drive lpsp on Port A. This requires complete design change in current lpsp igt for a platform agnostic support.
The new igt approach is relies on connector specific i915_lpsp_capability and i915_lpsp_status debugfs attributes, these debugfs exposes whether an output is capable of driving lpsp and lpsp is enabled.
Nuking edp-native and non-edp test, introducing a new dynamic igt subtest kms-lpsp, which validates lpsp on each connected output and skip the subtest if output is not lpsp capable.
Skip screens-disabled test for platform which support DC states. screens-disabled test is only valid for the platforms like HSW/BDW where PG1 is Always-ON power domain, so these platform test lpsp with all screen disabled i.e validate PG2 when all screen are disabled.
DC state i.e DMC f/w supported platforms don't have any ROI to validate screens-disabled subtest as existing dc*-dpms i915_pm_dc subtest already validate it implicitly.
v2:
- CI failures fixup.
v3:
- removed unloading of snd_modules. [Martin]
v4:
- Don't test non-lpsp(if lpsp disabled), no ROI to test that.
- nuke panel-fitter test.
v5:
- Added dynamic subtest and igt changes according to kernel debugfs i915_lpsp_status changes.
v6:
- Avoided pipe big joiner by using 4k or lesser mode, so igt will not fail when pipe big joiner patches will land to kernel.
v7:
- Combined [v6 4/6] patch to this patch, skip the screens-disabled subtest for DC state supported platforms. [Animesh]
v8:
- 4k mode correction 3840*2160 and for loop for available modes should iterate from c->modes[0]. [Ankit]
--- tests/i915/i915_pm_lpsp.c | 313 ++++++++++++++++++-------------------- 1 file changed, 147 insertions(+), 166 deletions(-)
tests/i915/i915_pm_lpsp.c +147 -166
@@ -25,210 +25,191 @@*/ #include "igt.h" +#include "igt_kmod.h" +#include "igt_pm.h" +#include "igt_sysfs.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> +#define MAX_SINK_LPSP_INFO_BUF_LEN 4096 -static bool supports_lpsp (uint32_t devid) -{ -return IS_HASWELL (devid) ||IS_BROADWELL (devid); -} +#define PWR_DOMAIN_INFO "i915_power_domain_info" -static bool lpsp_is_enabled (int drm_fd) +typedef struct { +int drm_fd; +int debugfs_fd; +uint32_t devid; +char *pwr_dmn_info; +igt_display_t display; +struct igt_fb fb; +drmModeModeInfo *mode; +igt_output_t *output; +}data_t ; + +static bool lpsp_is_enabled (data_t *data) { -uint32_t val; +char buf[MAX_SINK_LPSP_INFO_BUF_LEN ]; +int len; - val =INREG (HSW_PWR_WELL_CTL2 ); -return !(val &HSW_PWR_WELL_STATE_ENABLED ); -} + len =igt_debugfs_simple_read (data->debugfs_fd,"i915_lpsp_status" , + buf,sizeof (buf)); +if (len <0 ) +igt_assert_eq (len, -ENODEV ); -/* The LPSP mode is all about an enabled pipe, but we expect to also be in the -* low power mode when no pipes are enabled, so do this check anyway. */ -static void screens_disabled_subtest (int drm_fd,drmModeResPtr drm_res) -{ -kmstest_unset_all_crtcs (drm_fd, drm_res); -igt_assert (lpsp_is_enabled (drm_fd)); +igt_skip_on (strstr (buf,"LPSP: not supported" )); + +return strstr (buf,"LPSP: enabled" ); } -static uint32_t create_fb (int drm_fd,int width,int height) +static bool dmc_supported (int debugfs) { -struct igt_fb fb; +char buf[15 ]; +int len; -return igt_create_pattern_fb (drm_fd, width, height,DRM_FORMAT_XRGB8888 , -LOCAL_DRM_FORMAT_MOD_NONE , &fb); + len =igt_sysfs_read (debugfs,"i915_dmc_info" , buf,sizeof (buf) -1 ); + +if (len <0 ) +return false; +else +return true; } -static void edp_subtest (int drm_fd,drmModeResPtr drm_res, -drmModeConnectorPtr *drm_connectors,uint32_t devid, -bool use_panel_fitter) +/* +* The LPSP mode is all about an enabled pipe, but we expect to also be in the +* low power mode when no pipes are enabled, so do this check anyway. +*/ +static void screens_disabled_subtest (data_t *data) { -int i, rc; -uint32_t crtc_id =0 , buffer_id =0 ; -drmModeConnectorPtr connector =NULL ; -drmModeModeInfoPtr mode =NULL ; -drmModeModeInfo std_1024_mode = { - .clock =65000 , - .hdisplay =1024 , - .hsync_start =1048 , - .hsync_end =1184 , - .htotal =1344 , - .hskew =0 , - .vdisplay =768 , - .vsync_start =771 , - .vsync_end =777 , - .vtotal =806 , - .vscan =0 , - .vrefresh =60 , - .flags =0xA , - .type =0x40 , - .name ="Custom 1024x768" , - }; - -kmstest_unset_all_crtcs (drm_fd, drm_res); - -for (i =0 ; i < drm_res->count_connectors; i++) { -drmModeConnectorPtr c = drm_connectors[i]; - -if (c->connector_type != DRM_MODE_CONNECTOR_eDP) -continue ; -if (c->connection !=DRM_MODE_CONNECTED ) -continue ; - -if (!use_panel_fitter && c->count_modes) { - connector = c; - mode = &c->modes[0 ]; -break ; - } -if (use_panel_fitter) { - connector = c; - -/* This is one of the modes Xorg creates for panels, so -* it should work just fine. Notice that Gens that -* support LPSP are too new for panels with native -* 1024x768 resolution, so this should force the panel -* fitter. */ -igt_assert (c->count_modes && - c->modes[0 ].hdisplay >1024 ); -igt_assert (c->count_modes && - c->modes[0 ].vdisplay >768 ); - mode = &std_1024_mode; -break ; - } - } -igt_require (connector); - - crtc_id =kmstest_find_crtc_for_connector (drm_fd, drm_res, connector, -0 ); - buffer_id =create_fb (drm_fd, mode->hdisplay, mode->vdisplay); - -igt_assert (buffer_id); -igt_assert (connector); -igt_assert (mode); - - rc =drmModeSetCrtc (drm_fd, crtc_id, buffer_id,0 ,0 , - &connector->connector_id,1 , mode); -igt_assert_eq (rc,0 ); - -if (use_panel_fitter) { -if (IS_HASWELL (devid)) -igt_assert (!lpsp_is_enabled (drm_fd)); -else -igt_assert (lpsp_is_enabled (drm_fd)); - }else { -igt_assert (lpsp_is_enabled (drm_fd)); +igt_output_t *output; +int valid_output =0 ; +enum pipe pipe; + +for_each_pipe_with_single_output (&data->display, pipe, output) { + data->output = output; +igt_output_set_pipe (data->output,PIPE_NONE ); +igt_display_commit (&data->display); + valid_output++; } + +igt_require_f (valid_output,"No connected output found\n" ); +igt_assert_f (lpsp_is_enabled (data),"lpsp is not enabled\n%s:\n%s\n" , +PWR_DOMAIN_INFO , data->pwr_dmn_info = +igt_sysfs_get (data->debugfs_fd,PWR_DOMAIN_INFO )); } -static void non_edp_subtest (int drm_fd,drmModeResPtr drm_res, -drmModeConnectorPtr *drm_connectors) +static void setup_lpsp_output (data_t *data) { -int i, rc; -uint32_t crtc_id =0 , buffer_id =0 ; -drmModeConnectorPtr connector =NULL ; -drmModeModeInfoPtr mode =NULL ; - -kmstest_unset_all_crtcs (drm_fd, drm_res); - -for (i =0 ; i < drm_res->count_connectors; i++) { -drmModeConnectorPtr c = drm_connectors[i]; +igt_plane_t *primary; + +/* set output pipe = PIPE_A for LPSP */ +igt_output_set_pipe (data->output,PIPE_A ); + primary =igt_output_get_plane_type (data->output, +DRM_PLANE_TYPE_PRIMARY ); +igt_plane_set_fb (primary,NULL ); +igt_create_pattern_fb (data->drm_fd, + data->mode->hdisplay, data->mode->vdisplay, +DRM_FORMAT_XRGB8888 , +LOCAL_DRM_FORMAT_MOD_NONE , + &data->fb); +igt_plane_set_fb (primary, &data->fb); +igt_display_commit (&data->display); +} -if (c->connector_type == DRM_MODE_CONNECTOR_eDP) -continue ; -if (c->connection !=DRM_MODE_CONNECTED ) -continue ; +static void test_cleanup (data_t *data) +{ +igt_plane_t *primary; + +if (!data->output || data->output->pending_pipe ==PIPE_NONE ) +return ; + + primary =igt_output_get_plane_type (data->output, +DRM_PLANE_TYPE_PRIMARY ); +igt_plane_set_fb (primary,NULL ); +igt_output_set_pipe (data->output,PIPE_NONE ); +igt_display_commit (&data->display); +igt_remove_fb (data->drm_fd, &data->fb); + data->output =NULL ; +} -if (c->count_modes) { - connector = c; - mode = &c->modes[0 ]; -break ; +static void test_lpsp (data_t *data) +{ +drmModeConnectorPtr c = data->output->config.connector; +int i; + +/* LPSP is low power single pipe usages i.e. PIPE_A */ +igt_require (igt_pipe_connector_valid (PIPE_A , data->output)); +igt_require_f (i915_output_is_lpsp_capable (data->drm_fd, data->output), +"output is not lpsp capable\n" ); + + data->mode =igt_output_get_mode (data->output); + +/* For LPSP avoid pipe big joiner by atleast 4k mode */ +if (data->mode->hdisplay >3840 && data->mode->vdisplay >2160 ) +for (i =0 ; i < c->count_modes; i++) { +if (c->modes[i].hdisplay <=3840 && + c->modes[i].vdisplay <=2160 ) { + data->mode = &c->modes[i]; +igt_output_override_mode (data->output, + data->mode); +break ; + } } - } -igt_require (connector); - - crtc_id =kmstest_find_crtc_for_connector (drm_fd, drm_res, connector, -0 ); - buffer_id =create_fb (drm_fd, mode->hdisplay, mode->vdisplay); - -igt_assert (buffer_id); -igt_assert (mode); - rc =drmModeSetCrtc (drm_fd, crtc_id, buffer_id,0 ,0 , - &connector->connector_id,1 , mode); -igt_assert_eq (rc,0 ); +igt_require (data->mode->hdisplay <=3840 && + data->mode->vdisplay <=2160 ); -igt_assert (!lpsp_is_enabled (drm_fd)); +setup_lpsp_output (data); +igt_assert_f (lpsp_is_enabled (data),"%s: lpsp is not enabled\n%s:\n%s\n" , + data->output->name,PWR_DOMAIN_INFO , data->pwr_dmn_info = +igt_sysfs_get (data->debugfs_fd,PWR_DOMAIN_INFO )); } -#define MAX_CONNECTORS 32 - -int drm_fd; -uint32_t devid; -drmModeResPtr drm_res; -drmModeConnectorPtr drm_connectors[MAX_CONNECTORS ]; -struct intel_mmio_data mmio_data; +IGT_TEST_DESCRIPTION ("These tests validates display Low Power Single Pipe configurations" ); igt_main { - igt_fixture { -int i; - - drm_fd =drm_open_driver_master (DRIVER_INTEL ); -igt_require (drm_fd >=0 ); - - devid =intel_get_drm_devid (drm_fd); - - drm_res =drmModeGetResources (drm_fd); -igt_require (drm_res); -igt_assert (drm_res->count_connectors <=MAX_CONNECTORS ); +data_t data = {}; -for (i =0 ; i < drm_res->count_connectors; i++) - drm_connectors[i] =drmModeGetConnectorCurrent (drm_fd, - drm_res->connectors[i]); + igt_fixture { + data.drm_fd =drm_open_driver_master (DRIVER_INTEL ); +igt_require (data.drm_fd >=0 ); + data.debugfs_fd =igt_debugfs_dir (data.drm_fd); +igt_require (data.debugfs_fd >=0 );igt_pm_enable_audio_runtime_pm (); +kmstest_set_vt_graphics_mode (); + data.devid =intel_get_drm_devid (data.drm_fd); +igt_display_require (&data.display, data.drm_fd); +igt_require (igt_pm_dmc_loaded (data.debugfs_fd)); + } -igt_require (supports_lpsp (devid)); +igt_describe ("This test validates lpsp while all crtc are disabled" ); + igt_subtest("screens-disabled") { +igt_require_f (!dmc_supported (data.debugfs_fd), +"DC states supported platform don't have ROI for this subtest\n" ); +screens_disabled_subtest (&data); + } -intel_register_access_init (&mmio_data,intel_get_pci_device (),0 , drm_fd); +igt_describe ("This test validates lpsp on all connected outputs on low power PIPE_A" ); + igt_subtest_with_dynamic_f("kms-lpsp") { +igt_display_t *display = &data.display; +igt_output_t *output; -kmstest_set_vt_graphics_mode (); - } +for_each_connected_output (display, output) { +igt_dynamic_f ("kms-lpsp-%s" , + kmstest_connector_type_str(output->config.connector->connector_type)) { + data.output = output; +test_lpsp (&data); + } - igt_subtest("screens-disabled") -screens_disabled_subtest (drm_fd, drm_res); - igt_subtest("edp-native") -edp_subtest (drm_fd, drm_res, drm_connectors, devid, false); - igt_subtest("non-edp") -non_edp_subtest (drm_fd, drm_res, drm_connectors); +test_cleanup (&data); + } + } igt_fixture { -int i; - -intel_register_access_fini (&mmio_data); -for (i =0 ; i < drm_res->count_connectors; i++) -drmModeFreeConnector (drm_connectors[i]); -drmModeFreeResources (drm_res); -close (drm_fd); +free (data.pwr_dmn_info); +close (data.drm_fd); +igt_display_fini (&data.display); } }
Signature · 6 lines
2.26.0 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] [PATCH i-g-t v8 3/6] tests/i915_pm_lpsp: lpsp platform agnostic support
LGTM.
Quoted 405 lines · Anshuman Gupta
Current implementation of lpsp igt test, assumed that every non-edp panel isn't a lpsp panel but it is not true on TGL anymore, any HDMI/DP/DSI panel connected on pipe A and connected to PORT_{A,B,C} can drive LPSP.
Even on older Gen9 platform a DP panel can drive lpsp on Port A. This requires complete design change in current lpsp igt for a platform agnostic support.The new igt approach is relies on connector specific
i915_lpsp_capabilityandi915_lpsp_statusdebugfs attributes, these debugfs exposes whether an output is capable of driving lpsp and lpsp is enabled.Nuking edp-native and non-edp test, introducing a new dynamic igt subtest kms-lpsp, which validates lpsp on each connected output and skip the subtest if output is not lpsp capable.
Skip screens-disabled test for platform which support DC states. screens-disabled test is only valid for the platforms like HSW/BDW where PG1 is Always-ON power domain, so these platform test lpsp with all screen disabled i.e validate PG2 when all screen are disabled.
DC state i.e DMC f/w supported platforms don't have any ROI to validate screens-disabled subtest as existing dc*-dpmsi915_pm_dcsubtest already validate it implicitly.v2:
- CI failures fixup.
v3:
- removed unloading ofsnd_modules. [Martin]
v4:
- Don't test non-lpsp(if lpsp disabled), no ROI to test that.
- nuke panel-fitter test.
v5:
- Added dynamic subtest and igt changes according to kernel debugfsi915_lpsp_statuschanges.
v6:
- Avoided pipe big joiner by using 4k or lesser mode, so igt will not fail when pipe big joiner patches will land to kernel.
v7:
- Combined [v6 4/6] patch to this patch, skip the screens-disabled subtest for DC state supported platforms. [Animesh]
v8:
- 4k mode correction 3840*2160 and for loop for available modes should iterate from c->modes[0]. [Ankit]Reviewed-by Animesh Manna <[email protected]>Signed-off-by Anshuman Gupta <[email protected]>--- tests/i915/i915_pm_lpsp.c | 313 ++++++++++++++++++-------------------- 1 file changed, 147 insertions(+), 166 deletions(-)tests/i915/i915_pm_lpsp.c +144
-161@@ -25,210 +25,191 @@*/ #include "igt.h" +#include "igt_kmod.h" +#include "igt_pm.h" +#include "igt_sysfs.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> +#define MAX_SINK_LPSP_INFO_BUF_LEN 4096 -static bool supports_lpsp (uint32_t devid) -{ -return IS_HASWELL (devid) ||IS_BROADWELL (devid); -} +#define PWR_DOMAIN_INFO "i915_power_domain_info" -static bool lpsp_is_enabled (int drm_fd) +typedef struct { +int drm_fd; +int debugfs_fd; +uint32_t devid; +char *pwr_dmn_info; +igt_display_t display; +struct igt_fb fb; +drmModeModeInfo *mode; +igt_output_t *output; +}data_t ; + +static bool lpsp_is_enabled (data_t *data) { -uint32_t val; +char buf[MAX_SINK_LPSP_INFO_BUF_LEN ]; +int len; - val =INREG (HSW_PWR_WELL_CTL2 ); -return !(val &HSW_PWR_WELL_STATE_ENABLED ); -} + len =igt_debugfs_simple_read (data->debugfs_fd,"i915_lpsp_status" , + buf,sizeof (buf)); +if (len <0 ) +igt_assert_eq (len, -ENODEV ); -/* The LPSP mode is all about an enabled pipe, but we expect to also be in the -* low power mode when no pipes are enabled, so do this check anyway. */ -static void screens_disabled_subtest (int drm_fd,drmModeResPtr drm_res) -{ -kmstest_unset_all_crtcs (drm_fd, drm_res); -igt_assert (lpsp_is_enabled (drm_fd)); +igt_skip_on (strstr (buf,"LPSP: not supported" )); + +return strstr (buf,"LPSP: enabled" ); } -static uint32_t create_fb (int drm_fd,int width,int height) +static bool dmc_supported (int debugfs) { -struct igt_fb fb; +char buf[15 ]; +int len; -return igt_create_pattern_fb (drm_fd, width, height,DRM_FORMAT_XRGB8888 , -LOCAL_DRM_FORMAT_MOD_NONE , &fb); + len =igt_sysfs_read (debugfs,"i915_dmc_info" , buf,sizeof (buf) -1 ); + +if (len <0 ) +return false; +else +return true; } -static void edp_subtest (int drm_fd,drmModeResPtr drm_res, -drmModeConnectorPtr *drm_connectors,uint32_t devid, -bool use_panel_fitter) +/* +* The LPSP mode is all about an enabled pipe, but we expect to also be in the +* low power mode when no pipes are enabled, so do this check anyway. +*/ +static void screens_disabled_subtest (data_t *data) { -int i, rc; -uint32_t crtc_id =0 , buffer_id =0 ; -drmModeConnectorPtr connector =NULL ; -drmModeModeInfoPtr mode =NULL ; -drmModeModeInfo std_1024_mode = { - .clock =65000 , - .hdisplay =1024 , - .hsync_start =1048 , - .hsync_end =1184 , - .htotal =1344 , - .hskew =0 , - .vdisplay =768 , - .vsync_start =771 , - .vsync_end =777 , - .vtotal =806 , - .vscan =0 , - .vrefresh =60 , - .flags =0xA , - .type =0x40 , - .name ="Custom 1024x768" , - }; - -kmstest_unset_all_crtcs (drm_fd, drm_res); - -for (i =0 ; i < drm_res->count_connectors; i++) { -drmModeConnectorPtr c = drm_connectors[i]; - -if (c->connector_type != DRM_MODE_CONNECTOR_eDP) -continue ; -if (c->connection !=DRM_MODE_CONNECTED ) -continue ; - -if (!use_panel_fitter && c->count_modes) { - connector = c; - mode = &c->modes[0 ]; -break ; - } -if (use_panel_fitter) { - connector = c; - -/* This is one of the modes Xorg creates for panels, so -* it should work just fine. Notice that Gens that -* support LPSP are too new for panels with native -* 1024x768 resolution, so this should force the panel -* fitter. */ -igt_assert (c->count_modes && - c->modes[0 ].hdisplay >1024 ); -igt_assert (c->count_modes && - c->modes[0 ].vdisplay >768 ); - mode = &std_1024_mode; -break ; - } - } -igt_require (connector); - - crtc_id =kmstest_find_crtc_for_connector (drm_fd, drm_res, connector, -0 ); - buffer_id =create_fb (drm_fd, mode->hdisplay, mode->vdisplay); - -igt_assert (buffer_id); -igt_assert (connector); -igt_assert (mode); - - rc =drmModeSetCrtc (drm_fd, crtc_id, buffer_id,0 ,0 , - &connector->connector_id,1 , mode); -igt_assert_eq (rc,0 ); - -if (use_panel_fitter) { -if (IS_HASWELL (devid)) -igt_assert (!lpsp_is_enabled (drm_fd)); -else -igt_assert (lpsp_is_enabled (drm_fd)); - }else { -igt_assert (lpsp_is_enabled (drm_fd)); +igt_output_t *output; +int valid_output =0 ; +enum pipe pipe; + +for_each_pipe_with_single_output (&data->display, pipe, output) { + data->output = output; +igt_output_set_pipe (data->output,PIPE_NONE ); +igt_display_commit (&data->display); + valid_output++; } + +igt_require_f (valid_output,"No connected output found\n" ); +igt_assert_f (lpsp_is_enabled (data),"lpsp is not enabled\n%s:\n%s\n" , +PWR_DOMAIN_INFO , data->pwr_dmn_info = +igt_sysfs_get (data->debugfs_fd,PWR_DOMAIN_INFO )); } -static void non_edp_subtest (int drm_fd,drmModeResPtr drm_res, -drmModeConnectorPtr *drm_connectors) +static void setup_lpsp_output (data_t *data) { -int i, rc; -uint32_t crtc_id =0 , buffer_id =0 ; -drmModeConnectorPtr connector =NULL ; -drmModeModeInfoPtr mode =NULL ; - -kmstest_unset_all_crtcs (drm_fd, drm_res); - -for (i =0 ; i < drm_res->count_connectors; i++) { -drmModeConnectorPtr c = drm_connectors[i]; +igt_plane_t *primary; + +/* set output pipe = PIPE_A for LPSP */ +igt_output_set_pipe (data->output,PIPE_A ); + primary =igt_output_get_plane_type (data->output, +DRM_PLANE_TYPE_PRIMARY ); +igt_plane_set_fb (primary,NULL ); +igt_create_pattern_fb (data->drm_fd, + data->mode->hdisplay, data->mode->vdisplay, +DRM_FORMAT_XRGB8888 , +LOCAL_DRM_FORMAT_MOD_NONE , + &data->fb); +igt_plane_set_fb (primary, &data->fb); +igt_display_commit (&data->display); +} -if (c->connector_type == DRM_MODE_CONNECTOR_eDP) -continue ; -if (c->connection !=DRM_MODE_CONNECTED ) -continue ; +static void test_cleanup (data_t *data) +{ +igt_plane_t *primary; + +if (!data->output || data->output->pending_pipe ==PIPE_NONE ) +return ; + + primary =igt_output_get_plane_type (data->output, +DRM_PLANE_TYPE_PRIMARY ); +igt_plane_set_fb (primary,NULL ); +igt_output_set_pipe (data->output,PIPE_NONE ); +igt_display_commit (&data->display); +igt_remove_fb (data->drm_fd, &data->fb); + data->output =NULL ; +} -if (c->count_modes) { - connector = c; - mode = &c->modes[0 ]; -break ; +static void test_lpsp (data_t *data) +{ +drmModeConnectorPtr c = data->output->config.connector; +int i; + +/* LPSP is low power single pipe usages i.e. PIPE_A */ +igt_require (igt_pipe_connector_valid (PIPE_A , data->output)); +igt_require_f (i915_output_is_lpsp_capable (data->drm_fd, data->output), +"output is not lpsp capable\n" ); + + data->mode =igt_output_get_mode (data->output); + +/* For LPSP avoid pipe big joiner by atleast 4k mode */ +if (data->mode->hdisplay >3840 && data->mode->vdisplay >2160 ) +for (i =0 ; i < c->count_modes; i++) { +if (c->modes[i].hdisplay <=3840 && + c->modes[i].vdisplay <=2160 ) { + data->mode = &c->modes[i]; +igt_output_override_mode (data->output, + data->mode); +break ; + } } - } -igt_require (connector); - - crtc_id =kmstest_find_crtc_for_connector (drm_fd, drm_res, connector, -0 ); - buffer_id =create_fb (drm_fd, mode->hdisplay, mode->vdisplay); - -igt_assert (buffer_id); -igt_assert (mode); - rc =drmModeSetCrtc (drm_fd, crtc_id, buffer_id,0 ,0 , - &connector->connector_id,1 , mode); -igt_assert_eq (rc,0 ); +igt_require (data->mode->hdisplay <=3840 && + data->mode->vdisplay <=2160 ); -igt_assert (!lpsp_is_enabled (drm_fd)); +setup_lpsp_output (data); +igt_assert_f (lpsp_is_enabled (data),"%s: lpsp is not enabled\n%s:\n%s\n" , + data->output->name,PWR_DOMAIN_INFO , data->pwr_dmn_info = +igt_sysfs_get (data->debugfs_fd,PWR_DOMAIN_INFO )); } -#define MAX_CONNECTORS 32 - -int drm_fd; -uint32_t devid; -drmModeResPtr drm_res; -drmModeConnectorPtr drm_connectors[MAX_CONNECTORS ]; -struct intel_mmio_data mmio_data; +IGT_TEST_DESCRIPTION ("These tests validates display Low Power Single Pipe configurations" ); igt_main { - igt_fixture { -int i; - - drm_fd =drm_open_driver_master (DRIVER_INTEL ); -igt_require (drm_fd >=0 ); - - devid =intel_get_drm_devid (drm_fd); - - drm_res =drmModeGetResources (drm_fd); -igt_require (drm_res); -igt_assert (drm_res->count_connectors <=MAX_CONNECTORS ); +data_t data = {}; -for (i =0 ; i < drm_res->count_connectors; i++) - drm_connectors[i] =drmModeGetConnectorCurrent (drm_fd, - drm_res->connectors[i]); + igt_fixture { + data.drm_fd =drm_open_driver_master (DRIVER_INTEL ); +igt_require (data.drm_fd >=0 ); + data.debugfs_fd =igt_debugfs_dir (data.drm_fd); +igt_require (data.debugfs_fd >=0 );igt_pm_enable_audio_runtime_pm (); +kmstest_set_vt_graphics_mode (); + data.devid =intel_get_drm_devid (data.drm_fd); +igt_display_require (&data.display, data.drm_fd); +igt_require (igt_pm_dmc_loaded (data.debugfs_fd)); + } -igt_require (supports_lpsp (devid)); +igt_describe ("This test validates lpsp while all crtc are disabled" ); + igt_subtest("screens-disabled") { +igt_require_f (!dmc_supported (data.debugfs_fd), +"DC states supported platform don't have ROI for this subtest\n" ); +screens_disabled_subtest (&data); + } -intel_register_access_init (&mmio_data,intel_get_pci_device (),0 , drm_fd); +igt_describe ("This test validates lpsp on all connected outputs on low power PIPE_A" ); + igt_subtest_with_dynamic_f("kms-lpsp") { +igt_display_t *display = &data.display; +igt_output_t *output; -kmstest_set_vt_graphics_mode (); - } +for_each_connected_output (display, output) { +igt_dynamic_f ("kms-lpsp-%s" , + kmstest_connector_type_str(output->config.connector->connector_type)) { + data.output = output; +test_lpsp (&data); + } - igt_subtest("screens-disabled") -screens_disabled_subtest (drm_fd, drm_res); - igt_subtest("edp-native") -edp_subtest (drm_fd, drm_res, drm_connectors, devid, false); - igt_subtest("non-edp") -non_edp_subtest (drm_fd, drm_res, drm_connectors); +test_cleanup (&data); + } + } igt_fixture { -int i; -
tests/i915/i915_pm_lpsp.c line 215
Quoted 10 lines
tests/i915/i915_pm_lpsp.c +3
-5-intel_register_access_fini (&mmio_data); -for (i =0 ; i < drm_res->count_connectors; i++) -drmModeFreeConnector (drm_connectors[i]); -drmModeFreeResources (drm_res); -close (drm_fd); +free (data.pwr_dmn_info); +close (data.drm_fd); +igt_display_fini (&data.display); } }
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] [PATCH i-g-t v8 3/6] tests/i915_pm_lpsp: lpsp platform agnostic support
In reply to Anshuman GuptaQuoted 214 lines · Anshuman Gupta
Current implementation of lpsp igt test, assumed that every non-edp panel isn't a lpsp panel but it is not true on TGL anymore, any HDMI/DP/DSI panel connected on pipe A and connected to PORT_{A,B,C} can drive LPSP.
Even on older Gen9 platform a DP panel can drive lpsp on Port A. This requires complete design change in current lpsp igt for a platform agnostic support.The new igt approach is relies on connector specific
i915_lpsp_capabilityandi915_lpsp_statusdebugfs attributes, these debugfs exposes whether an output is capable of driving lpsp and lpsp is enabled.Nuking edp-native and non-edp test, introducing a new dynamic igt subtest kms-lpsp, which validates lpsp on each connected output and skip the subtest if output is not lpsp capable.
Skip screens-disabled test for platform which support DC states. screens-disabled test is only valid for the platforms like HSW/BDW where PG1 is Always-ON power domain, so these platform test lpsp with all screen disabled i.e validate PG2 when all screen are disabled.
DC state i.e DMC f/w supported platforms don't have any ROI to validate screens-disabled subtest as existing dc*-dpmsi915_pm_dcsubtest already validate it implicitly.v2:
- CI failures fixup.
v3:
- removed unloading ofsnd_modules. [Martin]
v4:
- Don't test non-lpsp(if lpsp disabled), no ROI to test that.
- nuke panel-fitter test.
v5:
- Added dynamic subtest and igt changes according to kernel debugfsi915_lpsp_statuschanges.
v6:
- Avoided pipe big joiner by using 4k or lesser mode, so igt will not fail when pipe big joiner patches will land to kernel.
v7:
- Combined [v6 4/6] patch to this patch, skip the screens-disabled subtest for DC state supported platforms. [Animesh]
v8:
- 4k mode correction 3840*2160 and for loop for available modes should iterate from c->modes[0]. [Ankit]Reviewed-by Animesh Manna <[email protected]>Signed-off-by Anshuman Gupta <[email protected]>--- tests/i915/i915_pm_lpsp.c | 313 ++++++++++++++++++-------------------- 1 file changed, 147 insertions(+), 166 deletions(-)tests/i915/i915_pm_lpsp.c +40
-96@@ -25,210 +25,191 @@*/ #include "igt.h" +#include "igt_kmod.h" +#include "igt_pm.h" +#include "igt_sysfs.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> +#define MAX_SINK_LPSP_INFO_BUF_LEN 4096 -static bool supports_lpsp (uint32_t devid) -{ -return IS_HASWELL (devid) ||IS_BROADWELL (devid); -} +#define PWR_DOMAIN_INFO "i915_power_domain_info" -static bool lpsp_is_enabled (int drm_fd) +typedef struct { +int drm_fd; +int debugfs_fd; +uint32_t devid; +char *pwr_dmn_info; +igt_display_t display; +struct igt_fb fb; +drmModeModeInfo *mode; +igt_output_t *output; +}data_t ; + +static bool lpsp_is_enabled (data_t *data) { -uint32_t val; +char buf[MAX_SINK_LPSP_INFO_BUF_LEN ]; +int len; - val =INREG (HSW_PWR_WELL_CTL2 ); -return !(val &HSW_PWR_WELL_STATE_ENABLED ); -} + len =igt_debugfs_simple_read (data->debugfs_fd,"i915_lpsp_status" , + buf,sizeof (buf)); +if (len <0 ) +igt_assert_eq (len, -ENODEV ); -/* The LPSP mode is all about an enabled pipe, but we expect to also be in the -* low power mode when no pipes are enabled, so do this check anyway. */ -static void screens_disabled_subtest (int drm_fd,drmModeResPtr drm_res) -{ -kmstest_unset_all_crtcs (drm_fd, drm_res); -igt_assert (lpsp_is_enabled (drm_fd)); +igt_skip_on (strstr (buf,"LPSP: not supported" )); + +return strstr (buf,"LPSP: enabled" ); } -static uint32_t create_fb (int drm_fd,int width,int height) +static bool dmc_supported (int debugfs) { -struct igt_fb fb; +char buf[15 ]; +int len; -return igt_create_pattern_fb (drm_fd, width, height,DRM_FORMAT_XRGB8888 , -LOCAL_DRM_FORMAT_MOD_NONE , &fb); + len =igt_sysfs_read (debugfs,"i915_dmc_info" , buf,sizeof (buf) -1 ); + +if (len <0 ) +return false; +else +return true; } -static void edp_subtest (int drm_fd,drmModeResPtr drm_res, -drmModeConnectorPtr *drm_connectors,uint32_t devid, -bool use_panel_fitter) +/* +* The LPSP mode is all about an enabled pipe, but we expect to also be in the +* low power mode when no pipes are enabled, so do this check anyway. +*/ +static void screens_disabled_subtest (data_t *data) { -int i, rc; -uint32_t crtc_id =0 , buffer_id =0 ; -drmModeConnectorPtr connector =NULL ; -drmModeModeInfoPtr mode =NULL ; -drmModeModeInfo std_1024_mode = { - .clock =65000 , - .hdisplay =1024 , - .hsync_start =1048 , - .hsync_end =1184 , - .htotal =1344 , - .hskew =0 , - .vdisplay =768 , - .vsync_start =771 , - .vsync_end =777 , - .vtotal =806 , - .vscan =0 , - .vrefresh =60 , - .flags =0xA , - .type =0x40 , - .name ="Custom 1024x768" , - }; - -kmstest_unset_all_crtcs (drm_fd, drm_res); - -for (i =0 ; i < drm_res->count_connectors; i++) { -drmModeConnectorPtr c = drm_connectors[i]; - -if (c->connector_type != DRM_MODE_CONNECTOR_eDP) -continue ; -if (c->connection !=DRM_MODE_CONNECTED ) -continue ; - -if (!use_panel_fitter && c->count_modes) { - connector = c; - mode = &c->modes[0 ]; -break ; - } -if (use_panel_fitter) { - connector = c; - -/* This is one of the modes Xorg creates for panels, so -* it should work just fine. Notice that Gens that -* support LPSP are too new for panels with native -* 1024x768 resolution, so this should force the panel -* fitter. */ -igt_assert (c->count_modes && - c->modes[0 ].hdisplay >1024 ); -igt_assert (c->count_modes && - c->modes[0 ].vdisplay >768 ); - mode = &std_1024_mode; -break ; - } - } -igt_require (connector); - - crtc_id =kmstest_find_crtc_for_connector (drm_fd, drm_res, connector, -0 ); - buffer_id =create_fb (drm_fd, mode->hdisplay, mode->vdisplay); - -igt_assert (buffer_id); -igt_assert (connector); -igt_assert (mode); - - rc =drmModeSetCrtc (drm_fd, crtc_id, buffer_id,0 ,0 , - &connector->connector_id,1 , mode); -igt_assert_eq (rc,0 ); - -if (use_panel_fitter) { -if (IS_HASWELL (devid)) -igt_assert (!lpsp_is_enabled (drm_fd)); -else -igt_assert (lpsp_is_enabled (drm_fd)); - }else { -igt_assert (lpsp_is_enabled (drm_fd));
tests/i915/i915_pm_lpsp.c line 94
Quoted 10 lines
tests/i915/i915_pm_lpsp.c +9
-0+igt_output_t *output; +int valid_output =0 ; +enum pipe pipe; + +for_each_pipe_with_single_output (&data->display, pipe, output) { + data->output = output; +igt_output_set_pipe (data->output,PIPE_NONE ); +igt_display_commit (&data->display); + valid_output++; }
This code is already merged, but nonetheless:
This for loop doesn't do what you probably think it does. This loops through each pipe, possibly giving you the same output for every pipe.
An immediate effect is that this introduces a new compile warning:
../tests/i915/i915_pm_lpsp.c: In function ‘screens_disabled_subtest’:../tests/i915/i915_pm_lpsp.c:87:12: warning: variable ‘pipe’ set but not used [-Wunused-but-set-variable]
enum pipe pipe;
^~~~Signature · 5 lines
Petri Latvala _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] [PATCH i-g-t v8 3/6] tests/i915_pm_lpsp: lpsp platform agnostic support
Quoted 219 lines · Petri Latvala
Quoted 218 lines · Anshuman Gupta
Current implementation of lpsp igt test, assumed that every non-edp panel isn't a lpsp panel but it is not true on TGL anymore, any HDMI/DP/DSI panel connected on pipe A and connected to PORT_{A,B,C} can drive LPSP.
Even on older Gen9 platform a DP panel can drive lpsp on Port A. This requires complete design change in current lpsp igt for a platform agnostic support.The new igt approach is relies on connector specific
i915_lpsp_capabilityandi915_lpsp_statusdebugfs attributes, these debugfs exposes whether an output is capable of driving lpsp and lpsp is enabled.Nuking edp-native and non-edp test, introducing a new dynamic igt subtest kms-lpsp, which validates lpsp on each connected output and skip the subtest if output is not lpsp capable.
Skip screens-disabled test for platform which support DC states. screens-disabled test is only valid for the platforms like HSW/BDW where PG1 is Always-ON power domain, so these platform test lpsp with all screen disabled i.e validate PG2 when all screen are disabled.
DC state i.e DMC f/w supported platforms don't have any ROI to validate screens-disabled subtest as existing dc*-dpmsi915_pm_dcsubtest already validate it implicitly.v2:
- CI failures fixup.
v3:
- removed unloading ofsnd_modules. [Martin]
v4:
- Don't test non-lpsp(if lpsp disabled), no ROI to test that.
- nuke panel-fitter test.
v5:
- Added dynamic subtest and igt changes according to kernel debugfsi915_lpsp_statuschanges.
v6:
- Avoided pipe big joiner by using 4k or lesser mode, so igt will not fail when pipe big joiner patches will land to kernel.
v7:
- Combined [v6 4/6] patch to this patch, skip the screens-disabled subtest for DC state supported platforms. [Animesh]
v8:
- 4k mode correction 3840*2160 and for loop for available modes should iterate from c->modes[0]. [Ankit]Reviewed-by Animesh Manna <[email protected]>Signed-off-by Anshuman Gupta <[email protected]>--- tests/i915/i915_pm_lpsp.c | 313 ++++++++++++++++++-------------------- 1 file changed, 147 insertions(+), 166 deletions(-)tests/i915/i915_pm_lpsp.c +44
-96@@ -25,210 +25,191 @@*/ #include "igt.h" +#include "igt_kmod.h" +#include "igt_pm.h" +#include "igt_sysfs.h" #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> +#define MAX_SINK_LPSP_INFO_BUF_LEN 4096 -static bool supports_lpsp (uint32_t devid) -{ -return IS_HASWELL (devid) ||IS_BROADWELL (devid); -} +#define PWR_DOMAIN_INFO "i915_power_domain_info" -static bool lpsp_is_enabled (int drm_fd) +typedef struct { +int drm_fd; +int debugfs_fd; +uint32_t devid; +char *pwr_dmn_info; +igt_display_t display; +struct igt_fb fb; +drmModeModeInfo *mode; +igt_output_t *output; +}data_t ; + +static bool lpsp_is_enabled (data_t *data) { -uint32_t val; +char buf[MAX_SINK_LPSP_INFO_BUF_LEN ]; +int len; - val =INREG (HSW_PWR_WELL_CTL2 ); -return !(val &HSW_PWR_WELL_STATE_ENABLED ); -} + len =igt_debugfs_simple_read (data->debugfs_fd,"i915_lpsp_status" , + buf,sizeof (buf)); +if (len <0 ) +igt_assert_eq (len, -ENODEV ); -/* The LPSP mode is all about an enabled pipe, but we expect to also be in the -* low power mode when no pipes are enabled, so do this check anyway. */ -static void screens_disabled_subtest (int drm_fd,drmModeResPtr drm_res) -{ -kmstest_unset_all_crtcs (drm_fd, drm_res); -igt_assert (lpsp_is_enabled (drm_fd)); +igt_skip_on (strstr (buf,"LPSP: not supported" )); + +return strstr (buf,"LPSP: enabled" ); } -static uint32_t create_fb (int drm_fd,int width,int height) +static bool dmc_supported (int debugfs) { -struct igt_fb fb; +char buf[15 ]; +int len; -return igt_create_pattern_fb (drm_fd, width, height,DRM_FORMAT_XRGB8888 , -LOCAL_DRM_FORMAT_MOD_NONE , &fb); + len =igt_sysfs_read (debugfs,"i915_dmc_info" , buf,sizeof (buf) -1 ); + +if (len <0 ) +return false; +else +return true; } -static void edp_subtest (int drm_fd,drmModeResPtr drm_res, -drmModeConnectorPtr *drm_connectors,uint32_t devid, -bool use_panel_fitter) +/* +* The LPSP mode is all about an enabled pipe, but we expect to also be in the +* low power mode when no pipes are enabled, so do this check anyway. +*/ +static void screens_disabled_subtest (data_t *data) { -int i, rc; -uint32_t crtc_id =0 , buffer_id =0 ; -drmModeConnectorPtr connector =NULL ; -drmModeModeInfoPtr mode =NULL ; -drmModeModeInfo std_1024_mode = { - .clock =65000 , - .hdisplay =1024 , - .hsync_start =1048 , - .hsync_end =1184 , - .htotal =1344 , - .hskew =0 , - .vdisplay =768 , - .vsync_start =771 , - .vsync_end =777 , - .vtotal =806 , - .vscan =0 , - .vrefresh =60 , - .flags =0xA , - .type =0x40 , - .name ="Custom 1024x768" , - }; - -kmstest_unset_all_crtcs (drm_fd, drm_res); - -for (i =0 ; i < drm_res->count_connectors; i++) { -drmModeConnectorPtr c = drm_connectors[i]; - -if (c->connector_type != DRM_MODE_CONNECTOR_eDP) -continue ; -if (c->connection !=DRM_MODE_CONNECTED ) -continue ; - -if (!use_panel_fitter && c->count_modes) { - connector = c; - mode = &c->modes[0 ]; -break ; - } -if (use_panel_fitter) { - connector = c; - -/* This is one of the modes Xorg creates for panels, so -* it should work just fine. Notice that Gens that -* support LPSP are too new for panels with native -* 1024x768 resolution, so this should force the panel -* fitter. */ -igt_assert (c->count_modes && - c->modes[0 ].hdisplay >1024 ); -igt_assert (c->count_modes && - c->modes[0 ].vdisplay >768 ); - mode = &std_1024_mode; -break ; - } - } -igt_require (connector); - - crtc_id =kmstest_find_crtc_for_connector (drm_fd, drm_res, connector, -0 ); - buffer_id =create_fb (drm_fd, mode->hdisplay, mode->vdisplay); - -igt_assert (buffer_id); -igt_assert (connector); -igt_assert (mode); - - rc =drmModeSetCrtc (drm_fd, crtc_id, buffer_id,0 ,0 , - &connector->connector_id,1 , mode); -igt_assert_eq (rc,0 ); - -if (use_panel_fitter) { -if (IS_HASWELL (devid)) -igt_assert (!lpsp_is_enabled (drm_fd)); -else -igt_assert (lpsp_is_enabled (drm_fd)); - }else { -igt_assert (lpsp_is_enabled (drm_fd)); +igt_output_t *output; +int valid_output =0 ; +enum pipe pipe; +
Quoted 8 lines
tests/i915/i915_pm_lpsp.c line 94
Quoted 6 lines
tests/i915/i915_pm_lpsp.c +5
-0+for_each_pipe_with_single_output (&data->display, pipe, output) { + data->output = output; +igt_output_set_pipe (data->output,PIPE_NONE ); +igt_display_commit (&data->display); + valid_output++; }This code is already merged, but nonetheless:
Thanks for reporting this,
I will fix this, is there a way to replicate what legacy kmstest_unset_all_crtcs() does, Thanks,
Anshuman Gupta.
Quoted 4 lines
This for loop doesn't do what you probably think it does. This loops through each pipe, possibly giving you the same output for every pipe.
Quoted 11 lines
An immediate effect is that this introduces a new compile warning:
../tests/i915/i915_pm_lpsp.c: In function ‘screens_disabled_subtest’:../tests/i915/i915_pm_lpsp.c:87:12: warning: variable ‘pipe’ set but not used [-Wunused-but-set-variable]enum pipe pipe; ^~~~Signature · 1 line
Petri Latvala
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
PATCH v8 4/6 tests/i915_pm_lpsp: screens-disabled subtest use igt_wait
In reply to Anshuman GuptaWhen all screens are disabled, it takes some time to release eDP/DP AUX IO power domain ref count. Also, delayed audio codec disabling takes time to release AUDIO power domain ref-count, using igt_wait to check lpsp after disabling all screens.
v2:
- Added a code comment for delay of igt_wait. [Animesh]
--- tests/i915/i915_pm_lpsp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
tests/i915/i915_pm_lpsp.c +3 -1
@@ -94,7 +94,9 @@ static void screens_disabled_subtest(data_t *data) }igt_require_f (valid_output,"No connected output found\n" ); -igt_assert_f (lpsp_is_enabled (data),"lpsp is not enabled\n%s:\n%s\n" , +/* eDP panel may have power_cycle_delay of 600ms, 1sec delay is safer */ +igt_assert_f (igt_wait (lpsp_is_enabled (data),1000 ,100 ), +"lpsp is not enabled\n%s:\n%s\n" ,PWR_DOMAIN_INFO , data->pwr_dmn_info =igt_sysfs_get (data->debugfs_fd,PWR_DOMAIN_INFO )); }
Signature · 6 lines
2.26.0 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
PATCH v8 5/6 tests/i915_pm_rpm: lpsp/non-lpsp screen mode_set_data
In reply to Anshuman GuptaInitialize the mode set params for lpsp/non-lpsp screen based upon their output lpsp capability instead of edp/non-edp output type.
v2:
- CI failures fixup.
v3:
- changes according to lib function igt_output_is_lpsp_capable, prefix changed to i915_output_is_lpsp_capable.
--- tests/i915/i915_pm_rpm.c | 53 +++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 23 deletions(-)
tests/i915/i915_pm_rpm.c +30 -23
@@ -95,6 +95,7 @@ struct mode_set_data {drmModeResPtr res;drmModeConnectorPtr connectors[MAX_CONNECTORS ];drmModePropertyBlobPtr edids[MAX_CONNECTORS ]; +igt_display_t display;uint32_t devid; };
@@ -255,29 +256,29 @@ static bool init_modeset_params_for_type(struct mode_set_data *data, {drmModeConnectorPtr connector =NULL ;drmModeModeInfoPtr mode =NULL ; +igt_output_t *output =NULL ; +igt_display_t *display = &data->display; -if (!data->res) +if (!data->res || !display)return false; -for (int i =0 ; i < data->res->count_connectors; i++) { -drmModeConnectorPtr c = data->connectors[i]; +for_each_connected_output (display, output) { +drmModeConnectorPtr c = output->config.connector;if (type ==SCREEN_TYPE_LPSP && - c->connector_type != DRM_MODE_CONNECTOR_eDP) + !i915_output_is_lpsp_capable (drm_fd, output))continue ;if (type ==SCREEN_TYPE_NON_LPSP && - c->connector_type == DRM_MODE_CONNECTOR_eDP) +i915_output_is_lpsp_capable (drm_fd, output))continue ; -if (c->connection ==DRM_MODE_CONNECTED && c->count_modes) { - connector = c; - mode = &c->modes[0 ]; -break ; - } + connector = c; + mode =igt_output_get_mode (output); +break ; } -if (!connector) +if (!connector || !mode)return false; igt_create_pattern_fb(drm_fd, mode->hdisplay, mode->vdisplay,
@@ -398,6 +399,7 @@ static void init_mode_set_data(struct mode_set_data *data)kmstest_set_vt_graphics_mode (); } +igt_display_require (&data->display, drm_fd); data->devid =intel_get_drm_devid (drm_fd);init_modeset_cached_params (&ms_data); }
@@ -411,6 +413,8 @@ static void fini_mode_set_data(struct mode_set_data *data) }drmModeFreeResources (data->res); } + +igt_display_fini (&data->display); }static void get_drm_info (struct compare_data *data)
@@ -761,7 +765,7 @@ static void dump_file(int dir, const char *filename)free (contents); } -static bool setup_environment (void ) +static bool setup_environment (bool display_disabled) {if (has_runtime_pm) goto out;
@@ -773,7 +777,8 @@ static bool setup_environment(void) debugfs =igt_debugfs_dir (drm_fd);igt_require (debugfs !=-1 ); -init_mode_set_data (&ms_data); +if (!display_disabled) +init_mode_set_data (&ms_data);igt_pm_enable_sata_link_power_management ();
@@ -786,13 +791,14 @@ static bool setup_environment(void)igt_require (igt_pm_dmc_loaded (debugfs)); out: -disable_all_screens (&ms_data); +if (!display_disabled) +disable_all_screens (&ms_data);dump_file (debugfs,"i915_runtime_pm_status" );return wait_for_suspended (); } -static void teardown_environment (void ) +static void teardown_environment (bool display_disabled) {close (msr_fd);if (has_pc8)
@@ -802,7 +808,8 @@ static void teardown_environment(void)igt_pm_restore_sata_link_power_management (); -fini_mode_set_data (&ms_data); +if (!display_disabled) +fini_mode_set_data (&ms_data);close (debugfs);close (drm_fd);
@@ -2005,7 +2012,7 @@ static struct option long_options[] = { igt_main_args("", long_options, help_str, opt_handler, NULL) { igt_subtest("basic-rte") { -igt_assert (setup_environment ()); +igt_assert (setup_environment (false));basic_subtest (); }
@@ -2013,7 +2020,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)* PC8+. We don't want bug reports from cases where the machine is just * not properly configured. */ igt_fixture -igt_require (setup_environment ()); +igt_require (setup_environment (false ));if (stay)igt_subtest ("stay" )
@@ -2143,7 +2150,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL) }igt_fixture -teardown_environment (); +teardown_environment (false ); igt_subtest("module-reload") {igt_debug ("Reload w/o display\n" );
@@ -2152,9 +2159,9 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)igt_kmsg (KMSG_INFO "Reloading i915 w/o display\n" );igt_assert_eq (igt_i915_driver_load ("disable_display=1 mmio_debug=-1" ),0 ); -igt_assert (setup_environment ()); +igt_assert (setup_environment (true));igt_assert (igt_wait (device_in_pci_d3 (),2000 ,100 )); -teardown_environment (); +teardown_environment (true);igt_debug ("Reload as normal\n" );igt_i915_driver_unload ();
@@ -2162,11 +2169,11 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)igt_kmsg (KMSG_INFO "Reloading i915 as normal\n" );igt_assert_eq (igt_i915_driver_load ("mmio_debug=-1" ),0 ); -igt_assert (setup_environment ()); +igt_assert (setup_environment (false));igt_assert (igt_wait (device_in_pci_d3 (),2000 ,100 ));if (enable_one_screen_with_type (&ms_data,SCREEN_TYPE_ANY ))drm_resources_equal_subtest (); -teardown_environment (); +teardown_environment (false);/* Remove our mmio_debugging module */ igt_i915_driver_unload ();
Signature · 6 lines
2.26.0 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
PATCH v8 6/6 tests/i915_pm_rpm: Fix the universal-plane cap setting in plane tests
In reply to Anshuman GuptaFrom: Imre Deak <[email protected]>
The current value of the universal-plane capability is 1 if igt_display_require() has been called, so make sure we always set the value expected by the test and restore the correct original value.
--- tests/i915/i915_pm_rpm.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-)
tests/i915/i915_pm_rpm.c +6 -10
@@ -1786,18 +1786,15 @@ static void test_one_plane(bool dpms, uint32_t plane_id,/* This one also triggered WARNs on our driver at some point in time. */ static void planes_subtest (bool universal,bool dpms) { -int i, rc, crtc_idx; +int i, planes_tested =0 , crtc_idx;drmModePlaneResPtr planes;igt_require (default_mode_params); crtc_idx =kmstest_get_crtc_idx (ms_data.res, default_mode_params->crtc_id); -if (universal) { - rc =drmSetClientCap (drm_fd,DRM_CLIENT_CAP_UNIVERSAL_PLANES , -1 ); -igt_require (rc ==0 ); - } +igt_assert_eq (drmSetClientCap (drm_fd,DRM_CLIENT_CAP_UNIVERSAL_PLANES , + universal),0 ); planes =drmModeGetPlaneResources (drm_fd);for (i =0 ; i < planes->count_planes; i++) {
@@ -1818,10 +1815,9 @@ static void planes_subtest(bool universal, bool dpms) }drmModeFreePlaneResources (planes); -if (universal) { - rc =drmSetClientCap (drm_fd,DRM_CLIENT_CAP_UNIVERSAL_PLANES ,0 ); -igt_assert_eq (rc,0 ); - } +igt_assert_eq (drmSetClientCap (drm_fd,DRM_CLIENT_CAP_UNIVERSAL_PLANES , +1 ),0 ); +igt_assert_lte (universal ?3 :1 , planes_tested); }static void pm_test_tiling (void )
Signature · 6 lines
2.26.0 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✓ Fi.CI.BAT: success for lpsp platform agnostic support (rev11)
In reply to Anshuman Gupta== Series Details ==
== Series Details ==
Series: lpsp platform agnostic support (rev11)
URL : https://patchwork.freedesktop.org/series/74647/
State : success
== Summary ==
CI Bug Log - changes from IGT_5651 -> IGTPW_4561
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with IGTPW_4561 need to be verified manually.
If you think the reported changes have nothing to do with the changes introduced in IGTPW_4561, please notify your bug team 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/IGTPW_4561/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_4561:
### IGT changes ###
#### Warnings ####
* igt@i915_pm_rpm@basic-rte:
- fi-kbl-guc: [SKIP][1] ([fdo#109271]) -> [FAIL][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/fi-kbl-guc/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/fi-kbl-guc/igt@[email protected]
Known issues
------------
Here are the changes found in IGTPW_4561 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_pm_rpm@module-reload:
- fi-kbl-8809g: [PASS][3] -> [SKIP][4] ([fdo#109271])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/fi-kbl-8809g/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/fi-kbl-8809g/igt@[email protected]
* igt@i915_selftest@live@reset:
- fi-bwr-2160: [PASS][5] -> [INCOMPLETE][6] ([i915#489])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/fi-bwr-2160/igt@i915_selftest@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/fi-bwr-2160/igt@i915_selftest@[email protected]
#### Possible fixes ####
* igt@i915_selftest@live@execlists:
- fi-skl-guc: [INCOMPLETE][7] ([i915#1874]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/fi-skl-guc/igt@i915_selftest@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/fi-skl-guc/igt@i915_selftest@[email protected]
- fi-skl-6700k2: [INCOMPLETE][9] ([i915#1874]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/fi-skl-6700k2/igt@i915_selftest@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/fi-skl-6700k2/igt@i915_selftest@[email protected]
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#1874]: https://gitlab.freedesktop.org/drm/intel/issues/1874
[i915#489]: https://gitlab.freedesktop.org/drm/intel/issues/489
Participating hosts (50 -> 43)
------------------------------
Missing (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-kbl-7560u fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5651 -> IGTPW_4561
CI-20190529: 20190529
CI_DRM_8467: 1a0f0c378117fc90f421a692698ad85963ecdb3a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4561: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/index.html
IGT_5651: e54e2642f1967ca3c488db32264607df670d1dfb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Testlist changes ==
+igt@i915_pm_lpsp@kms-lpsp
-igt@i915_pm_lpsp@edp-native
-igt@i915_pm_lpsp@edp-panel-fitter
-igt@i915_pm_lpsp@non-edp
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✓ Fi.CI.IGT: success for lpsp platform agnostic support (rev11)
In reply to Anshuman Gupta== Series Details ==
== Series Details ==
Series: lpsp platform agnostic support (rev11)
URL : https://patchwork.freedesktop.org/series/74647/
State : success
== Summary ==
CI Bug Log - changes from IGT_5651_full -> IGTPW_4561_full
====================================================
Summary
-------
**WARNING**
Minor unknown changes coming with IGTPW_4561_full need to be verified manually.
If you think the reported changes have nothing to do with the changes introduced in IGTPW_4561_full, please notify your bug team 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/IGTPW_4561/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_4561_full:
### IGT changes ###
#### Warnings ####
* igt@i915_pm_lpsp@screens-disabled:
- shard-tglb: [SKIP][1] ([fdo#109301]) -> [SKIP][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-tglb5/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-tglb3/igt@[email protected]
- shard-iclb: [SKIP][3] ([fdo#109301]) -> [SKIP][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-iclb4/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-iclb6/igt@[email protected]
New tests
---------
New tests have been introduced between IGT_5651_full and IGTPW_4561_full:
### New IGT tests (5) ###
* igt@i915_pm_lpsp@kms-lpsp:
- Statuses :
- Exec time: [None] s
* igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-dp:
- Statuses : 2 skip(s)
- Exec time: [0.0] s
* igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-edp:
- Statuses : 2 pass(s)
- Exec time: [0.11, 0.17] s
* igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a:
- Statuses : 2 skip(s)
- Exec time: [0.0, 0.00] s
* igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-vga:
- Statuses : 2 skip(s)
- Exec time: [0.0, 0.00] s
Known issues
------------
Here are the changes found in IGTPW_4561_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_suspend@basic-s3:
- shard-kbl: [PASS][5] -> [DMESG-WARN][6] ([i915#180]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl2/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl4/igt@[email protected]
* igt@gem_mmap_gtt@medium-copy-odd:
- shard-hsw: [PASS][7] -> [INCOMPLETE][8] ([i915#61])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-hsw4/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-hsw7/igt@[email protected]
* igt@gen9_exec_parse@allowed-all:
- shard-apl: [PASS][9] -> [DMESG-WARN][10] ([i915#1436] / [i915#716])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl3/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl3/igt@[email protected]
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-hsw: [PASS][11] -> [WARN][12] ([i915#1519])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-hsw8/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-hsw4/igt@[email protected]
* igt@kms_big_fb@linear-32bpp-rotate-0:
- shard-kbl: [PASS][13] -> [FAIL][14] ([i915#1119] / [i915#93] / [i915#95])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl6/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl7/igt@[email protected]
* igt@kms_cursor_crc@pipe-a-cursor-128x128-offscreen:
- shard-kbl: [PASS][15] -> [FAIL][16] ([i915#54] / [i915#93] / [i915#95]) +2 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl2/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl2/igt@[email protected]
* igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-kbl: [PASS][17] -> [INCOMPLETE][18] ([i915#155])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl2/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl4/igt@[email protected]
* igt@kms_flip_tiling@flip-changes-tiling:
- shard-apl: [PASS][19] -> [FAIL][20] ([i915#95])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl3/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl8/igt@[email protected]
- shard-kbl: [PASS][21] -> [FAIL][22] ([i915#699] / [i915#93] / [i915#95])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl1/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl1/igt@[email protected]
* igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
- shard-kbl: [PASS][23] -> [FAIL][24] ([i915#53] / [i915#93] / [i915#95])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl1/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl4/igt@[email protected]
- shard-apl: [PASS][25] -> [FAIL][26] ([i915#53] / [i915#95])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl3/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl8/igt@[email protected]
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-iclb: [PASS][27] -> [INCOMPLETE][28] ([i915#1185] / [i915#250])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-iclb8/igt@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-iclb3/igt@[email protected]
- shard-apl: [PASS][29] -> [DMESG-WARN][30] ([i915#180]) +3 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl7/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl6/igt@[email protected]
* igt@kms_plane_cursor@pipe-a-overlay-size-64:
- shard-apl: [PASS][31] -> [FAIL][32] ([i915#1559] / [i915#95])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl1/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl2/igt@[email protected]
- shard-kbl: [PASS][33] -> [FAIL][34] ([i915#1559] / [i915#93] / [i915#95])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl3/igt@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl3/igt@[email protected]
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: [PASS][35] -> [SKIP][36] ([fdo#109441]) +2 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-iclb7/igt@kms_psr@psr2_primary_mmap_cpu.html
#### Possible fixes ####
* {igt@gem_exec_schedule@smoketest@bcs0}:
- shard-tglb: [INCOMPLETE][37] -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-tglb8/igt@gem_exec_schedule@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-tglb7/igt@gem_exec_schedule@[email protected]
* igt@i915_suspend@forcewake:
- shard-apl: [DMESG-WARN][39] ([i915#180]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl1/igt@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl3/igt@[email protected]
* igt@kms_cursor_crc@pipe-a-cursor-256x85-offscreen:
- shard-kbl: [FAIL][41] ([i915#54] / [i915#93] / [i915#95]) -> [PASS][42] +1 similar issue
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl6/igt@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl4/igt@[email protected]
* igt@kms_cursor_crc@pipe-c-cursor-suspend:
- shard-tglb: [INCOMPLETE][43] ([i915#1602] / [i915#456]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-tglb3/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-tglb1/igt@[email protected]
* igt@kms_fbcon_fbt@fbc:
- shard-tglb: [FAIL][45] ([i915#64]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-tglb6/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-tglb2/igt@[email protected]
* igt@kms_hdmi_inject@inject-audio:
- shard-tglb: [SKIP][47] ([i915#433]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-tglb8/igt@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-tglb7/igt@[email protected]
* igt@kms_hdr@bpc-switch-suspend:
- shard-kbl: [DMESG-WARN][49] ([i915#180]) -> [PASS][50] +3 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl4/igt@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl7/igt@[email protected]
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-kbl: [FAIL][51] ([i915#53] / [i915#93] / [i915#95]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl2/igt@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl7/igt@[email protected]
- shard-apl: [FAIL][53] ([i915#53] / [i915#95]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl1/igt@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl1/igt@[email protected]
* igt@kms_plane_cursor@pipe-a-viewport-size-64:
- shard-kbl: [FAIL][55] ([i915#1559] / [i915#93] / [i915#95]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-kbl6/igt@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-kbl2/igt@[email protected]
- shard-apl: [FAIL][57] ([i915#1559] / [i915#95]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl2/igt@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl6/igt@[email protected]
* igt@kms_psr@psr2_cursor_render:
- shard-iclb: [SKIP][59] ([fdo#109441]) -> [PASS][60] +2 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-iclb7/igt@kms_psr@psr2_cursor_render.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
* {igt@perf@blocking-parameterized}:
- shard-iclb: [FAIL][61] ([i915#1542]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-iclb8/igt@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-iclb6/igt@[email protected]
#### Warnings ####
* igt@i915_pm_dc@dc6-psr:
- shard-tglb: [SKIP][63] ([i915#468]) -> [FAIL][64] ([i915#454])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-tglb2/igt@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-tglb8/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
- shard-apl: [FAIL][65] ([fdo#108145] / [i915#265]) -> [FAIL][66] ([fdo#108145] / [i915#265] / [i915#95])
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5651/shard-apl2/igt@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/shard-apl8/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109301]: https://bugs.freedesktop.org/show_bug.cgi?id=109301
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[i915#1119]: https://gitlab.freedesktop.org/drm/intel/issues/1119
[i915#1185]: https://gitlab.freedesktop.org/drm/intel/issues/1185
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1519]: https://gitlab.freedesktop.org/drm/intel/issues/1519
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
[i915#1559]: https://gitlab.freedesktop.org/drm/intel/issues/1559
[i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#250]: https://gitlab.freedesktop.org/drm/intel/issues/250
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
[i915#468]: https://gitlab.freedesktop.org/drm/intel/issues/468
[i915#53]: https://gitlab.freedesktop.org/drm/intel/issues/53
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
[i915#64]: https://gitlab.freedesktop.org/drm/intel/issues/64
[i915#699]: https://gitlab.freedesktop.org/drm/intel/issues/699
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#93]: https://gitlab.freedesktop.org/drm/intel/issues/93
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (8 -> 8)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5651 -> IGTPW_4561
CI-20190529: 20190529
CI_DRM_8467: 1a0f0c378117fc90f421a692698ad85963ecdb3a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4561: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/index.html
IGT_5651: e54e2642f1967ca3c488db32264607df670d1dfb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4561/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✗ GitLab.Pipeline: failure for lpsp platform agnostic support (rev11)
In reply to Anshuman Gupta== Series Details ==
== Series Details ==
Series: lpsp platform agnostic support (rev11)
URL : https://patchwork.freedesktop.org/series/74647/
State : failure
== Summary ==
ERROR! This series introduces new undocumented tests:
gem_exec_fence@concurrent
gem_exec_fence@submit
gem_exec_fence@submit3
gem_exec_fence@submit67
gem_exec_reloc@basic-many-active
gem_exec_reloc@basic-wide-active
gem_exec_schedule@lateslice
gem_exec_schedule@manyslice
gem_exec_schedule@thriceslice
gem_exec_schedule@timeslicing
gem_mmap_gtt@ptrace
gem_mmap_offset@ptrace
gem_ringfill@basic-all
gem_ringfill@engines-S3
gem_ringfill@engines-S4
gem_ringfill@engines-basic
gem_ringfill@engines-bomb
gem_ringfill@engines-child
gem_ringfill@engines-fd
gem_ringfill@engines-forked
gem_ringfill@engines-hang
gem_ringfill@engines-interruptible
gem_ringfill@legacy-S3
gem_ringfill@legacy-S4
gem_ringfill@legacy-basic
gem_ringfill@legacy-bomb
gem_ringfill@legacy-child
gem_ringfill@legacy-fd
gem_ringfill@legacy-forked
gem_ringfill@legacy-hang
gem_ringfill@legacy-interruptible
perf_pmu@module-unload
Can you document them as per the requirement in the [CONTRIBUTING.md]?
[Documentation] has more details on how to do this.
Here are few examples:
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/0316695d03aa46108296b27f3982ec93200c7a6e
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/443cc658e1e6b492ee17bf4f4d891029eb7a205d
Thanks in advance!
[CONTRIBUTING.md]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/CONTRIBUTING.md#L19
[Documentation]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
Other than that, pipeline status: SUCCESS.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/145325 for the overview.
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/145325
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] ✗ GitLab.Pipeline: failure for lpsp platform agnostic support (rev11)
Quoted 34 lines · Patchwork
== Series Details ==
Series: lpsp platform agnostic support (rev11)
URL : https://patchwork.freedesktop.org/series/74647/
State : failure== Summary ==
ERROR! This series introduces new undocumented tests:
gem_exec_fence@concurrent
gem_exec_fence@submit
gem_exec_fence@submit3
gem_exec_fence@submit67
gem_exec_reloc@basic-many-active
gem_exec_reloc@basic-wide-active
gem_exec_schedule@lateslice
gem_exec_schedule@manyslice
gem_exec_schedule@thriceslice
gem_exec_schedule@timeslicing
gem_mmap_gtt@ptrace
gem_mmap_offset@ptrace
gem_ringfill@basic-all
gem_ringfill@engines-S3
gem_ringfill@engines-S4
gem_ringfill@engines-basic
gem_ringfill@engines-bomb
gem_ringfill@engines-child
gem_ringfill@engines-fd
gem_ringfill@engines-forked
gem_ringfill@engines-hang
gem_ringfill@engines-interruptible
gem_ringfill@legacy-S3
gem_ringfill@legacy-S4
Quoted 8 lines
gem_ringfill@legacy-basic
gem_ringfill@legacy-bomb
gem_ringfill@legacy-child
gem_ringfill@legacy-fd
gem_ringfill@legacy-forked
gem_ringfill@legacy-hang
gem_ringfill@legacy-interruptible
perf_pmu@module-unload
Hi Lakshmi,
Above test which are not documented are not part of my series https://patchwork.freedesktop.org/series/74647/
Could you please rereport it.
Thanks,
Anshuman Gupta.
Quoted 14 lines
Can you document them as per the requirement in the [CONTRIBUTING.md]?
[Documentation] has more details on how to do this.
Here are few examples:
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/0316695d03aa46108296b27f3982ec93200c7a6e
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/443cc658e1e6b492ee17bf4f4d891029eb7a205dThanks in advance!
[CONTRIBUTING.md]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/CONTRIBUTING.md#L19
[Documentation]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe
Quoted 7 lines
Other than that, pipeline status: SUCCESS.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/145325 for the overview.
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/145325
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Re: [igt-dev] ✗ GitLab.Pipeline: failure for lpsp platform agnostic support (rev11)
Anshuman,
Looks like there is no action to be taken as we have BAT/shard results already. This patch series has nothing to do with undocumented tests. It's a CI fluke.
Thanks,
Lakshmi.
-----Original Message-----
From: Gupta, Anshuman <[email protected]>
Sent: Monday, May 18, 2020 9:35 AM
To: Vudum, Lakshminarayana <[email protected]>
Cc: [email protected]
Subject: Re: ✗ GitLab.Pipeline: failure for lpsp platform agnostic support (rev11)
Quoted 34 lines · Patchwork
== Series Details ==
Series: lpsp platform agnostic support (rev11)
URL : https://patchwork.freedesktop.org/series/74647/
State : failure== Summary ==
ERROR! This series introduces new undocumented tests:
gem_exec_fence@concurrent
gem_exec_fence@submit
gem_exec_fence@submit3
gem_exec_fence@submit67
gem_exec_reloc@basic-many-active
gem_exec_reloc@basic-wide-active
gem_exec_schedule@lateslice
gem_exec_schedule@manyslice
gem_exec_schedule@thriceslice
gem_exec_schedule@timeslicing
gem_mmap_gtt@ptrace
gem_mmap_offset@ptrace
gem_ringfill@basic-all
gem_ringfill@engines-S3
gem_ringfill@engines-S4
gem_ringfill@engines-basic
gem_ringfill@engines-bomb
gem_ringfill@engines-child
gem_ringfill@engines-fd
gem_ringfill@engines-forked
gem_ringfill@engines-hang
gem_ringfill@engines-interruptible
gem_ringfill@legacy-S3
gem_ringfill@legacy-S4
Quoted 8 lines
gem_ringfill@legacy-basic
gem_ringfill@legacy-bomb
gem_ringfill@legacy-child
gem_ringfill@legacy-fd
gem_ringfill@legacy-forked
gem_ringfill@legacy-hang
gem_ringfill@legacy-interruptible
perf_pmu@module-unload
Hi Lakshmi,
Above test which are not documented are not part of my series https://patchwork.freedesktop.org/series/74647/
Could you please rereport it.
Thanks,
Anshuman Gupta.
Quoted 20 lines
Can you document them as per the requirement in the [CONTRIBUTING.md]?
[Documentation] has more details on how to do this.
Here are few examples:
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/0316695d03aa46108296b27f3982ec93200c7a6e
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/443cc658e1e6b492ee17bf4f4d891029eb7a205dThanks in advance!
[CONTRIBUTING.md]:
https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/CONTRIBUT
ING.md#L19
[Documentation]:
https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.htm
l#igt-describe
Quoted 8 lines
Other than that, pipeline status: SUCCESS.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/145325 for the overview.
== Logs ==
For more details see:
https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/145325
---------------------------------------------------------------------
Intel Finland Oy
Registered Address: PL 281, 00181 Helsinki
Business Identity Code: 0357606 - 4
Domiciled in Helsinki
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev