* [igt-dev] [PATCH i-g-t 2/6] lib/debugfs: Function to read debugfs with the directory already open
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
@ 2018-08-29 21:57 ` Dhinakaran Pandiyan
2018-09-04 21:58 ` Souza, Jose
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 3/6] tests/psr: Avoid opening of already open debugfs dir Dhinakaran Pandiyan
` (10 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Dhinakaran Pandiyan @ 2018-08-29 21:57 UTC (permalink / raw)
To: igt-dev; +Cc: Dhinakaran Pandiyan, rodrigo.vivi
tests/kms_frontbuffer_tracking and tests/kms_psr read debugfs nodes
several times after opening the directory once. There is already an
implementation of this in the kms_frontbuffer_tracking, moving that
functionality to the library will allow us to share the code with kms_psr
and kms_fbcon_fbt
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
lib/igt_debugfs.c | 39 ++++++++++++++++++++++++++++++---------
lib/igt_debugfs.h | 3 ++-
tests/kms_frontbuffer_tracking.c | 7 ++-----
3 files changed, 34 insertions(+), 15 deletions(-)
diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index 14753a9e..baedc225 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -262,26 +262,47 @@ int igt_debugfs_open(int device, const char *filename, int mode)
return ret;
}
+/**
+ * igt_debugfs_simple_read:
+ * @filename: file name
+ * @buf: buffer where the contents will be stored, allocated by the caller
+ * @size: size of the buffer
+ *
+ * This function is similar to __igt_debugfs_read, the difference is that it
+ * expects the debugfs directory to be open and it's descriptor passed as the
+ * first argument.
+ *
+ * Returns:
+ * -errorno on failure or bytes read on success
+ */
+int igt_debugfs_simple_read(int dir, const char *filename, char *buf, int size)
+{
+ int len;
+
+ len = igt_sysfs_read(dir, filename, buf, size - 1);
+ if (len < 0)
+ buf[0] = '\0';
+ else
+ buf[len] = '\0';
+
+ return len;
+}
+
/**
* __igt_debugfs_read:
* @filename: file name
* @buf: buffer where the contents will be stored, allocated by the caller
- * @buf_size: size of the buffer
+ * @size: size of the buffer
*
* This function opens the debugfs file, reads it, stores the content in the
* provided buffer, then closes the file. Users should make sure that the buffer
* provided is big enough to fit the whole file, plus one byte.
*/
-void __igt_debugfs_read(int fd, const char *filename, char *buf, int buf_size)
+void __igt_debugfs_read(int fd, const char *filename, char *buf, int size)
{
- int dir;
- int len;
+ int dir = igt_debugfs_dir(fd);
- dir = igt_debugfs_dir(fd);
- len = igt_sysfs_read(dir, filename, buf, buf_size - 1);
- if (len < 0)
- len = 0;
- buf[len] = '\0';
+ igt_debugfs_simple_read(dir, filename, buf, size);
close(dir);
}
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index db634a82..ff8612dc 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -37,7 +37,8 @@ char *igt_debugfs_path(int device, char *path, int pathlen);
int igt_debugfs_dir(int device);
int igt_debugfs_open(int fd, const char *filename, int mode);
-void __igt_debugfs_read(int fd, const char *filename, char *buf, int buf_size);
+void __igt_debugfs_read(int fd, const char *filename, char *buf, int size);
+int igt_debugfs_simple_read(int dir, const char *filename, char *buf, int size);
bool igt_debugfs_search(int fd, const char *filename, const char *substring);
/**
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 7ea2f697..822f3e74 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -720,12 +720,9 @@ static void set_mode_for_params(struct modeset_params *params)
static void __debugfs_read(const char *param, char *buf, int len)
{
- len = igt_sysfs_read(drm.debugfs, param, buf, len - 1);
- if (len < 0) {
+ len = igt_debugfs_simple_read(drm.debugfs, param, buf, len);
+ if (len < 0)
igt_assert_eq(len, -ENODEV);
- len = 0;
- }
- buf[len] = '\0';
}
static int __debugfs_write(const char *param, char *buf, int len)
--
2.14.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/6] lib/debugfs: Function to read debugfs with the directory already open
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 2/6] lib/debugfs: Function to read debugfs with the directory already open Dhinakaran Pandiyan
@ 2018-09-04 21:58 ` Souza, Jose
0 siblings, 0 replies; 23+ messages in thread
From: Souza, Jose @ 2018-09-04 21:58 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> tests/kms_frontbuffer_tracking and tests/kms_psr read debugfs nodes
> several times after opening the directory once. There is already an
> implementation of this in the kms_frontbuffer_tracking, moving that
> functionality to the library will allow us to share the code with
> kms_psr
> and kms_fbcon_fbt
>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> lib/igt_debugfs.c | 39
> ++++++++++++++++++++++++++++++---------
> lib/igt_debugfs.h | 3 ++-
> tests/kms_frontbuffer_tracking.c | 7 ++-----
> 3 files changed, 34 insertions(+), 15 deletions(-)
>
> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
> index 14753a9e..baedc225 100644
> --- a/lib/igt_debugfs.c
> +++ b/lib/igt_debugfs.c
> @@ -262,26 +262,47 @@ int igt_debugfs_open(int device, const char
> *filename, int mode)
> return ret;
> }
>
> +/**
> + * igt_debugfs_simple_read:
> + * @filename: file name
> + * @buf: buffer where the contents will be stored, allocated by the
> caller
> + * @size: size of the buffer
> + *
> + * This function is similar to __igt_debugfs_read, the difference is
> that it
> + * expects the debugfs directory to be open and it's descriptor
> passed as the
> + * first argument.
> + *
> + * Returns:
> + * -errorno on failure or bytes read on success
> + */
> +int igt_debugfs_simple_read(int dir, const char *filename, char
> *buf, int size)
> +{
> + int len;
> +
> + len = igt_sysfs_read(dir, filename, buf, size - 1);
> + if (len < 0)
> + buf[0] = '\0';
> + else
> + buf[len] = '\0';
> +
> + return len;
> +}
> +
> /**
> * __igt_debugfs_read:
> * @filename: file name
> * @buf: buffer where the contents will be stored, allocated by the
> caller
> - * @buf_size: size of the buffer
> + * @size: size of the buffer
> *
> * This function opens the debugfs file, reads it, stores the
> content in the
> * provided buffer, then closes the file. Users should make sure
> that the buffer
> * provided is big enough to fit the whole file, plus one byte.
> */
> -void __igt_debugfs_read(int fd, const char *filename, char *buf, int
> buf_size)
> +void __igt_debugfs_read(int fd, const char *filename, char *buf, int
> size)
> {
> - int dir;
> - int len;
> + int dir = igt_debugfs_dir(fd);
>
> - dir = igt_debugfs_dir(fd);
> - len = igt_sysfs_read(dir, filename, buf, buf_size - 1);
> - if (len < 0)
> - len = 0;
> - buf[len] = '\0';
> + igt_debugfs_simple_read(dir, filename, buf, size);
> close(dir);
> }
>
> diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
> index db634a82..ff8612dc 100644
> --- a/lib/igt_debugfs.h
> +++ b/lib/igt_debugfs.h
> @@ -37,7 +37,8 @@ char *igt_debugfs_path(int device, char *path, int
> pathlen);
> int igt_debugfs_dir(int device);
>
> int igt_debugfs_open(int fd, const char *filename, int mode);
> -void __igt_debugfs_read(int fd, const char *filename, char *buf, int
> buf_size);
> +void __igt_debugfs_read(int fd, const char *filename, char *buf, int
> size);
> +int igt_debugfs_simple_read(int dir, const char *filename, char
> *buf, int size);
> bool igt_debugfs_search(int fd, const char *filename, const char
> *substring);
>
> /**
> diff --git a/tests/kms_frontbuffer_tracking.c
> b/tests/kms_frontbuffer_tracking.c
> index 7ea2f697..822f3e74 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -720,12 +720,9 @@ static void set_mode_for_params(struct
> modeset_params *params)
>
> static void __debugfs_read(const char *param, char *buf, int len)
> {
> - len = igt_sysfs_read(drm.debugfs, param, buf, len - 1);
> - if (len < 0) {
> + len = igt_debugfs_simple_read(drm.debugfs, param, buf, len);
> + if (len < 0)
> igt_assert_eq(len, -ENODEV);
> - len = 0;
> - }
> - buf[len] = '\0';
> }
>
> static int __debugfs_write(const char *param, char *buf, int len)
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] [PATCH i-g-t 3/6] tests/psr: Avoid opening of already open debugfs dir
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 2/6] lib/debugfs: Function to read debugfs with the directory already open Dhinakaran Pandiyan
@ 2018-08-29 21:57 ` Dhinakaran Pandiyan
2018-09-04 22:07 ` Souza, Jose
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 4/6] tests/fbcon_fbt: Avoid opening debugfs dir repeatedly Dhinakaran Pandiyan
` (9 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Dhinakaran Pandiyan @ 2018-08-29 21:57 UTC (permalink / raw)
To: igt-dev; +Cc: Dhinakaran Pandiyan, rodrigo.vivi
The tests calls igt_debugfs_dir() to open the debugfs dir and further
along calls igt_debugfs_read() each i915_edp_psr_status needs to be
read. The igt_debugfs_read() calls open the directory again, fix this by
making use of the newly added __igt_debugfs_read()
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
lib/igt_psr.c | 2 +-
tests/kms_frontbuffer_tracking.c | 3 ++-
tests/kms_psr.c | 10 ++++++----
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/lib/igt_psr.c b/lib/igt_psr.c
index 614caa6f..b9bfd607 100644
--- a/lib/igt_psr.c
+++ b/lib/igt_psr.c
@@ -30,7 +30,7 @@ bool psr_active(int fd, bool check_active)
bool active;
char buf[512];
- igt_debugfs_read(fd, "i915_edp_psr_status", buf);
+ igt_debugfs_simple_read(fd, "i915_edp_psr_status", buf, sizeof(buf));
active = strstr(buf, "HW Enabled & Active bit: yes\n") &&
(strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
return check_active ? active : !active;
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 822f3e74..1ffe7467 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -1632,7 +1632,8 @@ static void do_status_assertions(int flags)
if (flags & ASSERT_PSR_ENABLED)
igt_assert_f(psr_wait_entry(drm.fd), "PSR still disabled\n");
else if (flags & ASSERT_PSR_DISABLED)
- igt_assert_f(psr_active(drm.fd, false), "PSR still enabled\n");
+ igt_assert_f(psr_active(drm.debugfs, false),
+ "PSR still enabled\n");
}
static void __do_assertions(const struct test_mode *t, int flags,
diff --git a/tests/kms_psr.c b/tests/kms_psr.c
index 218b3960..3e64cf04 100644
--- a/tests/kms_psr.c
+++ b/tests/kms_psr.c
@@ -192,7 +192,8 @@ static bool sink_support(data_t *data)
{
char buf[512];
- igt_debugfs_read(data->drm_fd, "i915_edp_psr_status", buf);
+ igt_debugfs_simple_read(data->debugfs_fd, "i915_edp_psr_status",
+ buf, sizeof(buf));
return data->with_psr_disabled ||
strstr(buf, "Sink_Support: yes\n");
@@ -203,7 +204,7 @@ static bool psr_wait_entry_if_enabled(data_t *data)
if (data->with_psr_disabled)
return true;
- return psr_wait_entry(data->drm_fd);
+ return psr_wait_entry(data->debugfs_fd);
}
static inline void manual(const char *expected)
@@ -215,7 +216,8 @@ static bool drrs_disabled(data_t *data)
{
char buf[512];
- igt_debugfs_read(data->drm_fd, "i915_drrs_status", buf);
+ igt_debugfs_simple_read(data->debugfs_fd, "i915_drrs_status",
+ buf, sizeof(buf));
return !strstr(buf, "DRRS Supported: Yes\n");
}
@@ -292,7 +294,7 @@ static void run_test(data_t *data)
expected = "screen GREEN";
break;
}
- igt_assert(psr_active(data->drm_fd, false));
+ igt_assert(psr_active(data->debugfs_fd, false));
manual(expected);
}
--
2.14.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/6] tests/psr: Avoid opening of already open debugfs dir
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 3/6] tests/psr: Avoid opening of already open debugfs dir Dhinakaran Pandiyan
@ 2018-09-04 22:07 ` Souza, Jose
2018-09-04 22:08 ` Souza, Jose
0 siblings, 1 reply; 23+ messages in thread
From: Souza, Jose @ 2018-09-04 22:07 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> The tests calls igt_debugfs_dir() to open the debugfs dir and further
> along calls igt_debugfs_read() each i915_edp_psr_status needs to be
> read. The igt_debugfs_read() calls open the directory again, fix this
> by
> making use of the newly added __igt_debugfs_read()
>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> lib/igt_psr.c | 2 +-
> tests/kms_frontbuffer_tracking.c | 3 ++-
> tests/kms_psr.c | 10 ++++++----
> 3 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index 614caa6f..b9bfd607 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -30,7 +30,7 @@ bool psr_active(int fd, bool check_active)
> bool active;
> char buf[512];
>
> - igt_debugfs_read(fd, "i915_edp_psr_status", buf);
> + igt_debugfs_simple_read(fd, "i915_edp_psr_status", buf,
> sizeof(buf));
> active = strstr(buf, "HW Enabled & Active bit: yes\n") &&
> (strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
> return check_active ? active : !active;
> diff --git a/tests/kms_frontbuffer_tracking.c
> b/tests/kms_frontbuffer_tracking.c
> index 822f3e74..1ffe7467 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -1632,7 +1632,8 @@ static void do_status_assertions(int flags)
> if (flags & ASSERT_PSR_ENABLED)
> igt_assert_f(psr_wait_entry(drm.fd), "PSR still
> disabled\n");
> else if (flags & ASSERT_PSR_DISABLED)
> - igt_assert_f(psr_active(drm.fd, false), "PSR still
> enabled\n");
> + igt_assert_f(psr_active(drm.debugfs, false),
> + "PSR still enabled\n");
> }
>
> static void __do_assertions(const struct test_mode *t, int flags,
> diff --git a/tests/kms_psr.c b/tests/kms_psr.c
> index 218b3960..3e64cf04 100644
> --- a/tests/kms_psr.c
> +++ b/tests/kms_psr.c
> @@ -192,7 +192,8 @@ static bool sink_support(data_t *data)
> {
> char buf[512];
>
> - igt_debugfs_read(data->drm_fd, "i915_edp_psr_status", buf);
> + igt_debugfs_simple_read(data->debugfs_fd,
> "i915_edp_psr_status",
> + buf, sizeof(buf));
>
> return data->with_psr_disabled ||
> strstr(buf, "Sink_Support: yes\n");
> @@ -203,7 +204,7 @@ static bool psr_wait_entry_if_enabled(data_t
> *data)
> if (data->with_psr_disabled)
> return true;
>
> - return psr_wait_entry(data->drm_fd);
> + return psr_wait_entry(data->debugfs_fd);
> }
>
> static inline void manual(const char *expected)
> @@ -215,7 +216,8 @@ static bool drrs_disabled(data_t *data)
> {
> char buf[512];
>
> - igt_debugfs_read(data->drm_fd, "i915_drrs_status", buf);
> + igt_debugfs_simple_read(data->debugfs_fd, "i915_drrs_status",
> + buf, sizeof(buf));
>
> return !strstr(buf, "DRRS Supported: Yes\n");
> }
> @@ -292,7 +294,7 @@ static void run_test(data_t *data)
> expected = "screen GREEN";
> break;
> }
> - igt_assert(psr_active(data->drm_fd, false));
> + igt_assert(psr_active(data->debugfs_fd, false));
> manual(expected);
> }
>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/6] tests/psr: Avoid opening of already open debugfs dir
2018-09-04 22:07 ` Souza, Jose
@ 2018-09-04 22:08 ` Souza, Jose
0 siblings, 0 replies; 23+ messages in thread
From: Souza, Jose @ 2018-09-04 22:08 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Tue, 2018-09-04 at 15:07 -0700, José Roberto de Souza wrote:
> On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> > The tests calls igt_debugfs_dir() to open the debugfs dir and
> > further
> > along calls igt_debugfs_read() each i915_edp_psr_status needs to be
> > read. The igt_debugfs_read() calls open the directory again, fix
> > this
> > by
> > making use of the newly added __igt_debugfs_read()
> >
Just forgot this:
s/newly added __igt_debugfs_read()/newly added
igt_debugfs_simple_read()
>
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
>
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > ---
> > lib/igt_psr.c | 2 +-
> > tests/kms_frontbuffer_tracking.c | 3 ++-
> > tests/kms_psr.c | 10 ++++++----
> > 3 files changed, 9 insertions(+), 6 deletions(-)
> >
> > diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> > index 614caa6f..b9bfd607 100644
> > --- a/lib/igt_psr.c
> > +++ b/lib/igt_psr.c
> > @@ -30,7 +30,7 @@ bool psr_active(int fd, bool check_active)
> > bool active;
> > char buf[512];
> >
> > - igt_debugfs_read(fd, "i915_edp_psr_status", buf);
> > + igt_debugfs_simple_read(fd, "i915_edp_psr_status", buf,
> > sizeof(buf));
> > active = strstr(buf, "HW Enabled & Active bit: yes\n") &&
> > (strstr(buf, "SRDENT") || strstr(buf, "SLEEP"));
> > return check_active ? active : !active;
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index 822f3e74..1ffe7467 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -1632,7 +1632,8 @@ static void do_status_assertions(int flags)
> > if (flags & ASSERT_PSR_ENABLED)
> > igt_assert_f(psr_wait_entry(drm.fd), "PSR still
> > disabled\n");
> > else if (flags & ASSERT_PSR_DISABLED)
> > - igt_assert_f(psr_active(drm.fd, false), "PSR still
> > enabled\n");
> > + igt_assert_f(psr_active(drm.debugfs, false),
> > + "PSR still enabled\n");
> > }
> >
> > static void __do_assertions(const struct test_mode *t, int flags,
> > diff --git a/tests/kms_psr.c b/tests/kms_psr.c
> > index 218b3960..3e64cf04 100644
> > --- a/tests/kms_psr.c
> > +++ b/tests/kms_psr.c
> > @@ -192,7 +192,8 @@ static bool sink_support(data_t *data)
> > {
> > char buf[512];
> >
> > - igt_debugfs_read(data->drm_fd, "i915_edp_psr_status", buf);
> > + igt_debugfs_simple_read(data->debugfs_fd,
> > "i915_edp_psr_status",
> > + buf, sizeof(buf));
> >
> > return data->with_psr_disabled ||
> > strstr(buf, "Sink_Support: yes\n");
> > @@ -203,7 +204,7 @@ static bool psr_wait_entry_if_enabled(data_t
> > *data)
> > if (data->with_psr_disabled)
> > return true;
> >
> > - return psr_wait_entry(data->drm_fd);
> > + return psr_wait_entry(data->debugfs_fd);
> > }
> >
> > static inline void manual(const char *expected)
> > @@ -215,7 +216,8 @@ static bool drrs_disabled(data_t *data)
> > {
> > char buf[512];
> >
> > - igt_debugfs_read(data->drm_fd, "i915_drrs_status", buf);
> > + igt_debugfs_simple_read(data->debugfs_fd, "i915_drrs_status",
> > + buf, sizeof(buf));
> >
> > return !strstr(buf, "DRRS Supported: Yes\n");
> > }
> > @@ -292,7 +294,7 @@ static void run_test(data_t *data)
> > expected = "screen GREEN";
> > break;
> > }
> > - igt_assert(psr_active(data->drm_fd, false));
> > + igt_assert(psr_active(data->debugfs_fd, false));
> > manual(expected);
> > }
> >
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] [PATCH i-g-t 4/6] tests/fbcon_fbt: Avoid opening debugfs dir repeatedly
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 2/6] lib/debugfs: Function to read debugfs with the directory already open Dhinakaran Pandiyan
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 3/6] tests/psr: Avoid opening of already open debugfs dir Dhinakaran Pandiyan
@ 2018-08-29 21:57 ` Dhinakaran Pandiyan
2018-09-04 22:12 ` Souza, Jose
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr Dhinakaran Pandiyan
` (8 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Dhinakaran Pandiyan @ 2018-08-29 21:57 UTC (permalink / raw)
To: igt-dev; +Cc: Dhinakaran Pandiyan, rodrigo.vivi
Make use of igt_debugfs_simple_read() to open debugfs dir just once.
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
tests/kms_fbcon_fbt.c | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
index 280ddbd7..e9376cde 100644
--- a/tests/kms_fbcon_fbt.c
+++ b/tests/kms_fbcon_fbt.c
@@ -39,6 +39,7 @@ static bool do_wait_user = false;
struct drm_info {
int fd;
+ int debugfs_fd;
drmModeResPtr res;
drmModeConnectorPtr connectors[MAX_CONNECTORS];
};
@@ -58,6 +59,7 @@ static void setup_drm(struct drm_info *drm)
int i;
drm->fd = drm_open_driver_master(DRIVER_INTEL);
+ drm->debugfs_fd = igt_debugfs_dir(drm->fd);
drm->res = drmModeGetResources(drm->fd);
igt_assert(drm->res->count_connectors <= MAX_CONNECTORS);
@@ -85,9 +87,11 @@ static void teardown_drm(struct drm_info *drm)
static bool fbc_supported_on_chipset(int fd)
{
char buf[128];
+ int ret;
- igt_debugfs_read(fd, "i915_fbc_status", buf);
- if (*buf == '\0') /* !HAS_FBC -> -ENODEV*/
+ ret = igt_debugfs_simple_read(fd, "i915_fbc_status",
+ buf, sizeof(buf));
+ if (ret < 0)
return false;
return !strstr(buf, "FBC unsupported on this chipset\n");
@@ -102,7 +106,7 @@ static void fbc_print_status(int fd)
{
static char buf[128];
- igt_debugfs_read(fd, "i915_fbc_status", buf);
+ igt_debugfs_simple_read(fd, "i915_fbc_status", buf, sizeof(buf));
igt_debug("FBC status: %s\n", buf);
}
@@ -110,7 +114,7 @@ static bool fbc_is_enabled(int fd)
{
char buf[128];
- igt_debugfs_read(fd, "i915_fbc_status", buf);
+ igt_debugfs_simple_read(fd, "i915_fbc_status", buf, sizeof(buf));
return strstr(buf, "FBC enabled\n");
}
@@ -163,9 +167,11 @@ static void set_mode_for_one_screen(struct drm_info *drm, struct igt_fb *fb,
static bool psr_supported_on_chipset(int fd)
{
char buf[256];
+ int ret;
- igt_debugfs_read(fd, "i915_edp_psr_status", buf);
- if (*buf == '\0') /* !HAS_PSR -> -ENODEV*/
+ ret = igt_debugfs_simple_read(fd, "i915_edp_psr_status",
+ buf, sizeof(buf));
+ if (ret < 0)
return false;
return strstr(buf, "Sink_Support: yes\n");
@@ -180,7 +186,7 @@ static void psr_print_status(int fd)
{
static char buf[256];
- igt_debugfs_read(fd, "i915_edp_psr_status", buf);
+ igt_debugfs_simple_read(fd, "i915_edp_psr_status", buf, sizeof(buf));
igt_debug("PSR status: %s\n", buf);
}
@@ -188,7 +194,7 @@ static bool psr_is_enabled(int fd)
{
char buf[256];
- igt_debugfs_read(fd, "i915_edp_psr_status", buf);
+ igt_debugfs_simple_read(fd, "i915_edp_psr_status", buf, sizeof(buf));
return strstr(buf, "\nHW Enabled & Active bit: yes\n");
}
@@ -229,24 +235,24 @@ static void subtest(struct feature *feature, bool suspend)
setup_drm(&drm);
- igt_require(feature->supported_on_chipset(drm.fd));
+ igt_require(feature->supported_on_chipset(drm.debugfs_fd));
disable_features();
igt_set_module_param_int(feature->param_name, 1);
kmstest_unset_all_crtcs(drm.fd, drm.res);
wait_user("Modes unset.");
- igt_assert(!feature->wait_until_enabled(drm.fd));
+ igt_assert(!feature->wait_until_enabled(drm.debugfs_fd));
set_mode_for_one_screen(&drm, &fb, feature->connector_possible_fn);
wait_user("Screen set.");
- igt_assert(feature->wait_until_enabled(drm.fd));
+ igt_assert(feature->wait_until_enabled(drm.debugfs_fd));
if (suspend) {
igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
SUSPEND_TEST_NONE);
sleep(5);
- igt_assert(feature->wait_until_enabled(drm.fd));
+ igt_assert(feature->wait_until_enabled(drm.debugfs_fd));
}
igt_remove_fb(drm.fd, &fb);
@@ -256,13 +262,13 @@ static void subtest(struct feature *feature, bool suspend)
sleep(3);
wait_user("Back to fbcon.");
- igt_assert(!feature->wait_until_enabled(drm.fd));
+ igt_assert(!feature->wait_until_enabled(drm.debugfs_fd));
if (suspend) {
igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
SUSPEND_TEST_NONE);
sleep(5);
- igt_assert(!feature->wait_until_enabled(drm.fd));
+ igt_assert(!feature->wait_until_enabled(drm.debugfs_fd));
}
}
--
2.14.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 4/6] tests/fbcon_fbt: Avoid opening debugfs dir repeatedly
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 4/6] tests/fbcon_fbt: Avoid opening debugfs dir repeatedly Dhinakaran Pandiyan
@ 2018-09-04 22:12 ` Souza, Jose
0 siblings, 0 replies; 23+ messages in thread
From: Souza, Jose @ 2018-09-04 22:12 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> Make use of igt_debugfs_simple_read() to open debugfs dir just once.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
But please consider do this renames in this patch and in the previous,
to make the code more easy to understand: fbc_supported_on_chipset(int
fd) to fbc_supported_on_chipset(int debugfs_fd)
>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> tests/kms_fbcon_fbt.c | 34 ++++++++++++++++++++--------------
> 1 file changed, 20 insertions(+), 14 deletions(-)
>
> diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
> index 280ddbd7..e9376cde 100644
> --- a/tests/kms_fbcon_fbt.c
> +++ b/tests/kms_fbcon_fbt.c
> @@ -39,6 +39,7 @@ static bool do_wait_user = false;
>
> struct drm_info {
> int fd;
> + int debugfs_fd;
> drmModeResPtr res;
> drmModeConnectorPtr connectors[MAX_CONNECTORS];
> };
> @@ -58,6 +59,7 @@ static void setup_drm(struct drm_info *drm)
> int i;
>
> drm->fd = drm_open_driver_master(DRIVER_INTEL);
> + drm->debugfs_fd = igt_debugfs_dir(drm->fd);
>
> drm->res = drmModeGetResources(drm->fd);
> igt_assert(drm->res->count_connectors <= MAX_CONNECTORS);
> @@ -85,9 +87,11 @@ static void teardown_drm(struct drm_info *drm)
> static bool fbc_supported_on_chipset(int fd)
> {
> char buf[128];
> + int ret;
>
> - igt_debugfs_read(fd, "i915_fbc_status", buf);
> - if (*buf == '\0') /* !HAS_FBC -> -ENODEV*/
> + ret = igt_debugfs_simple_read(fd, "i915_fbc_status",
> + buf, sizeof(buf));
> + if (ret < 0)
> return false;
>
> return !strstr(buf, "FBC unsupported on this chipset\n");
> @@ -102,7 +106,7 @@ static void fbc_print_status(int fd)
> {
> static char buf[128];
>
> - igt_debugfs_read(fd, "i915_fbc_status", buf);
> + igt_debugfs_simple_read(fd, "i915_fbc_status", buf,
> sizeof(buf));
> igt_debug("FBC status: %s\n", buf);
> }
>
> @@ -110,7 +114,7 @@ static bool fbc_is_enabled(int fd)
> {
> char buf[128];
>
> - igt_debugfs_read(fd, "i915_fbc_status", buf);
> + igt_debugfs_simple_read(fd, "i915_fbc_status", buf,
> sizeof(buf));
> return strstr(buf, "FBC enabled\n");
> }
>
> @@ -163,9 +167,11 @@ static void set_mode_for_one_screen(struct
> drm_info *drm, struct igt_fb *fb,
> static bool psr_supported_on_chipset(int fd)
> {
> char buf[256];
> + int ret;
>
> - igt_debugfs_read(fd, "i915_edp_psr_status", buf);
> - if (*buf == '\0') /* !HAS_PSR -> -ENODEV*/
> + ret = igt_debugfs_simple_read(fd, "i915_edp_psr_status",
> + buf, sizeof(buf));
> + if (ret < 0)
> return false;
>
> return strstr(buf, "Sink_Support: yes\n");
> @@ -180,7 +186,7 @@ static void psr_print_status(int fd)
> {
> static char buf[256];
>
> - igt_debugfs_read(fd, "i915_edp_psr_status", buf);
> + igt_debugfs_simple_read(fd, "i915_edp_psr_status", buf,
> sizeof(buf));
> igt_debug("PSR status: %s\n", buf);
> }
>
> @@ -188,7 +194,7 @@ static bool psr_is_enabled(int fd)
> {
> char buf[256];
>
> - igt_debugfs_read(fd, "i915_edp_psr_status", buf);
> + igt_debugfs_simple_read(fd, "i915_edp_psr_status", buf,
> sizeof(buf));
> return strstr(buf, "\nHW Enabled & Active bit: yes\n");
> }
>
> @@ -229,24 +235,24 @@ static void subtest(struct feature *feature,
> bool suspend)
>
> setup_drm(&drm);
>
> - igt_require(feature->supported_on_chipset(drm.fd));
> + igt_require(feature->supported_on_chipset(drm.debugfs_fd));
>
> disable_features();
> igt_set_module_param_int(feature->param_name, 1);
>
> kmstest_unset_all_crtcs(drm.fd, drm.res);
> wait_user("Modes unset.");
> - igt_assert(!feature->wait_until_enabled(drm.fd));
> + igt_assert(!feature->wait_until_enabled(drm.debugfs_fd));
>
> set_mode_for_one_screen(&drm, &fb, feature-
> >connector_possible_fn);
> wait_user("Screen set.");
> - igt_assert(feature->wait_until_enabled(drm.fd));
> + igt_assert(feature->wait_until_enabled(drm.debugfs_fd));
>
> if (suspend) {
> igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> SUSPEND_TEST_NONE);
> sleep(5);
> - igt_assert(feature->wait_until_enabled(drm.fd));
> + igt_assert(feature-
> >wait_until_enabled(drm.debugfs_fd));
> }
>
> igt_remove_fb(drm.fd, &fb);
> @@ -256,13 +262,13 @@ static void subtest(struct feature *feature,
> bool suspend)
> sleep(3);
>
> wait_user("Back to fbcon.");
> - igt_assert(!feature->wait_until_enabled(drm.fd));
> + igt_assert(!feature->wait_until_enabled(drm.debugfs_fd));
>
> if (suspend) {
> igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
> SUSPEND_TEST_NONE);
> sleep(5);
> - igt_assert(!feature->wait_until_enabled(drm.fd));
> + igt_assert(!feature-
> >wait_until_enabled(drm.debugfs_fd));
> }
> }
>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (2 preceding siblings ...)
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 4/6] tests/fbcon_fbt: Avoid opening debugfs dir repeatedly Dhinakaran Pandiyan
@ 2018-08-29 21:57 ` Dhinakaran Pandiyan
2018-09-04 22:18 ` Souza, Jose
2018-09-04 22:20 ` Souza, Jose
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 6/6] tests/fbcon_fbt: Enable PSR1 via debugfs Dhinakaran Pandiyan
` (7 subsequent siblings)
11 siblings, 2 replies; 23+ messages in thread
From: Dhinakaran Pandiyan @ 2018-08-29 21:57 UTC (permalink / raw)
To: igt-dev; +Cc: Dhinakaran Pandiyan, rodrigo.vivi
The tests we have work only with PSR1, but setting the module parameter
enable_psr enables PSR2 if the panel supports it. Make use of the newly
added debugfs toggle to enable only PSR1 when testing.
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
tests/kms_psr.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tests/kms_psr.c b/tests/kms_psr.c
index 3e64cf04..fcc04770 100644
--- a/tests/kms_psr.c
+++ b/tests/kms_psr.c
@@ -414,8 +414,9 @@ int main(int argc, char *argv[])
kmstest_set_vt_graphics_mode();
data.devid = intel_get_drm_devid(data.drm_fd);
- igt_set_module_param_int("enable_psr", data.with_psr_disabled ?
- 0 : 1);
+ if (!data.with_psr_disabled)
+ psr_enable(data.debugfs_fd);
+
igt_require_f(sink_support(&data),
"Sink does not support PSR\n");
@@ -490,6 +491,9 @@ int main(int argc, char *argv[])
}
igt_fixture {
+ if (!data.with_psr_disabled)
+ psr_disable(data.debugfs_fd);
+
close(data.debugfs_fd);
drm_intel_bufmgr_destroy(data.bufmgr);
display_fini(&data);
--
2.14.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr Dhinakaran Pandiyan
@ 2018-09-04 22:18 ` Souza, Jose
2018-09-05 1:31 ` Dhinakaran Pandiyan
2018-09-04 22:20 ` Souza, Jose
1 sibling, 1 reply; 23+ messages in thread
From: Souza, Jose @ 2018-09-04 22:18 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> The tests we have work only with PSR1, but setting the module
> parameter
> enable_psr enables PSR2 if the panel supports it. Make use of the
> newly
> added debugfs toggle to enable only PSR1 when testing.
If the idea is latter have psr2_enable/disable then:
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> tests/kms_psr.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tests/kms_psr.c b/tests/kms_psr.c
> index 3e64cf04..fcc04770 100644
> --- a/tests/kms_psr.c
> +++ b/tests/kms_psr.c
> @@ -414,8 +414,9 @@ int main(int argc, char *argv[])
> kmstest_set_vt_graphics_mode();
> data.devid = intel_get_drm_devid(data.drm_fd);
>
> - igt_set_module_param_int("enable_psr",
> data.with_psr_disabled ?
> - 0 : 1);
> + if (!data.with_psr_disabled)
> + psr_enable(data.debugfs_fd);
> +
> igt_require_f(sink_support(&data),
> "Sink does not support PSR\n");
>
> @@ -490,6 +491,9 @@ int main(int argc, char *argv[])
> }
>
> igt_fixture {
> + if (!data.with_psr_disabled)
> + psr_disable(data.debugfs_fd);
> +
> close(data.debugfs_fd);
> drm_intel_bufmgr_destroy(data.bufmgr);
> display_fini(&data);
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr
2018-09-04 22:18 ` Souza, Jose
@ 2018-09-05 1:31 ` Dhinakaran Pandiyan
0 siblings, 0 replies; 23+ messages in thread
From: Dhinakaran Pandiyan @ 2018-09-05 1:31 UTC (permalink / raw)
To: Souza, Jose, igt-dev; +Cc: Vivi, Rodrigo
On Tue, 2018-09-04 at 22:18 +0000, Souza, Jose wrote:
> On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> > The tests we have work only with PSR1, but setting the module
> > parameter
> > enable_psr enables PSR2 if the panel supports it. Make use of the
> > newly
> > added debugfs toggle to enable only PSR1 when testing.
>
> If the idea is latter have psr2_enable/disable then:
Yeah, that is the plan. Both psr_wait_for_entry() and psr_active()
aren't compatible with PSR2 as of now. We have to rewrite those
functions. Thanks for the reviews.
>
> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
>
> > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > ---
> > tests/kms_psr.c | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/tests/kms_psr.c b/tests/kms_psr.c
> > index 3e64cf04..fcc04770 100644
> > --- a/tests/kms_psr.c
> > +++ b/tests/kms_psr.c
> > @@ -414,8 +414,9 @@ int main(int argc, char *argv[])
> > kmstest_set_vt_graphics_mode();
> > data.devid = intel_get_drm_devid(data.drm_fd);
> >
> > - igt_set_module_param_int("enable_psr",
> > data.with_psr_disabled ?
> > - 0 : 1);
> > + if (!data.with_psr_disabled)
> > + psr_enable(data.debugfs_fd);
> > +
> > igt_require_f(sink_support(&data),
> > "Sink does not support PSR\n");
> >
> > @@ -490,6 +491,9 @@ int main(int argc, char *argv[])
> > }
> >
> > igt_fixture {
> > + if (!data.with_psr_disabled)
> > + psr_disable(data.debugfs_fd);
> > +
> > close(data.debugfs_fd);
> > drm_intel_bufmgr_destroy(data.bufmgr);
> > display_fini(&data);
>
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr Dhinakaran Pandiyan
2018-09-04 22:18 ` Souza, Jose
@ 2018-09-04 22:20 ` Souza, Jose
1 sibling, 0 replies; 23+ messages in thread
From: Souza, Jose @ 2018-09-04 22:20 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> The tests we have work only with PSR1, but setting the module
> parameter
> enable_psr enables PSR2 if the panel supports it. Make use of the
> newly
> added debugfs toggle to enable only PSR1 when testing.
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> tests/kms_psr.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/tests/kms_psr.c b/tests/kms_psr.c
> index 3e64cf04..fcc04770 100644
> --- a/tests/kms_psr.c
> +++ b/tests/kms_psr.c
> @@ -414,8 +414,9 @@ int main(int argc, char *argv[])
> kmstest_set_vt_graphics_mode();
> data.devid = intel_get_drm_devid(data.drm_fd);
>
> - igt_set_module_param_int("enable_psr",
> data.with_psr_disabled ?
> - 0 : 1);
> + if (!data.with_psr_disabled)
> + psr_enable(data.debugfs_fd);
> +
> igt_require_f(sink_support(&data),
> "Sink does not support PSR\n");
>
> @@ -490,6 +491,9 @@ int main(int argc, char *argv[])
> }
>
> igt_fixture {
> + if (!data.with_psr_disabled)
> + psr_disable(data.debugfs_fd);
> +
> close(data.debugfs_fd);
> drm_intel_bufmgr_destroy(data.bufmgr);
> display_fini(&data);
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] [PATCH i-g-t 6/6] tests/fbcon_fbt: Enable PSR1 via debugfs
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (3 preceding siblings ...)
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 5/6] tests/psr: Test PSR1 in kms_psr Dhinakaran Pandiyan
@ 2018-08-29 21:57 ` Dhinakaran Pandiyan
2018-09-05 21:10 ` Souza, Jose
2018-08-30 8:10 ` [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Patchwork
` (6 subsequent siblings)
11 siblings, 1 reply; 23+ messages in thread
From: Dhinakaran Pandiyan @ 2018-08-29 21:57 UTC (permalink / raw)
To: igt-dev; +Cc: Dhinakaran Pandiyan, rodrigo.vivi
Test only PSR1 on PSR2 panels by making use of the debugfs toggle.
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
---
tests/kms_fbcon_fbt.c | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)
diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
index e9376cde..e28bd770 100644
--- a/tests/kms_fbcon_fbt.c
+++ b/tests/kms_fbcon_fbt.c
@@ -25,6 +25,7 @@
*/
#include "igt.h"
+#include "igt_psr.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -205,29 +206,39 @@ static bool psr_wait_until_enabled(int fd)
return r;
}
+static void disable_features(int fd)
+{
+ igt_set_module_param_int("enable_fbc", 0);
+ psr_disable(fd);
+}
+
+static inline void fbc_modparam_enable(int fd)
+{
+ igt_set_module_param_int("enable_fbc", 1);
+}
+
+static inline void psr_debugfs_enable(int fd)
+{
+ psr_enable(fd);
+}
+
struct feature {
bool (*supported_on_chipset)(int fd);
bool (*wait_until_enabled)(int fd);
bool (*connector_possible_fn)(drmModeConnectorPtr connector);
- const char *param_name;
+ void (*enable)(int fd);
} fbc = {
.supported_on_chipset = fbc_supported_on_chipset,
.wait_until_enabled = fbc_wait_until_enabled,
.connector_possible_fn = connector_can_fbc,
- .param_name = "enable_fbc",
+ .enable = fbc_modparam_enable,
}, psr = {
.supported_on_chipset = psr_supported_on_chipset,
.wait_until_enabled = psr_wait_until_enabled,
.connector_possible_fn = connector_can_psr,
- .param_name = "enable_psr",
+ .enable = psr_debugfs_enable,
};
-static void disable_features(void)
-{
- igt_set_module_param_int(fbc.param_name, 0);
- igt_set_module_param_int(psr.param_name, 0);
-}
-
static void subtest(struct feature *feature, bool suspend)
{
struct drm_info drm;
@@ -237,8 +248,8 @@ static void subtest(struct feature *feature, bool suspend)
igt_require(feature->supported_on_chipset(drm.debugfs_fd));
- disable_features();
- igt_set_module_param_int(feature->param_name, 1);
+ disable_features(drm.debugfs_fd);
+ feature->enable(drm.debugfs_fd);
kmstest_unset_all_crtcs(drm.fd, drm.res);
wait_user("Modes unset.");
--
2.14.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 6/6] tests/fbcon_fbt: Enable PSR1 via debugfs
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 6/6] tests/fbcon_fbt: Enable PSR1 via debugfs Dhinakaran Pandiyan
@ 2018-09-05 21:10 ` Souza, Jose
0 siblings, 0 replies; 23+ messages in thread
From: Souza, Jose @ 2018-09-05 21:10 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> Test only PSR1 on PSR2 panels by making use of the debugfs toggle.
>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> ---
> tests/kms_fbcon_fbt.c | 33 ++++++++++++++++++++++-----------
> 1 file changed, 22 insertions(+), 11 deletions(-)
>
> diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
> index e9376cde..e28bd770 100644
> --- a/tests/kms_fbcon_fbt.c
> +++ b/tests/kms_fbcon_fbt.c
> @@ -25,6 +25,7 @@
> */
>
> #include "igt.h"
> +#include "igt_psr.h"
> #include <sys/types.h>
> #include <sys/stat.h>
> #include <fcntl.h>
> @@ -205,29 +206,39 @@ static bool psr_wait_until_enabled(int fd)
> return r;
> }
>
> +static void disable_features(int fd)
> +{
> + igt_set_module_param_int("enable_fbc", 0);
> + psr_disable(fd);
> +}
> +
> +static inline void fbc_modparam_enable(int fd)
> +{
> + igt_set_module_param_int("enable_fbc", 1);
> +}
> +
> +static inline void psr_debugfs_enable(int fd)
> +{
> + psr_enable(fd);
> +}
> +
> struct feature {
> bool (*supported_on_chipset)(int fd);
> bool (*wait_until_enabled)(int fd);
> bool (*connector_possible_fn)(drmModeConnectorPtr connector);
> - const char *param_name;
> + void (*enable)(int fd);
> } fbc = {
> .supported_on_chipset = fbc_supported_on_chipset,
> .wait_until_enabled = fbc_wait_until_enabled,
> .connector_possible_fn = connector_can_fbc,
> - .param_name = "enable_fbc",
> + .enable = fbc_modparam_enable,
> }, psr = {
> .supported_on_chipset = psr_supported_on_chipset,
> .wait_until_enabled = psr_wait_until_enabled,
> .connector_possible_fn = connector_can_psr,
> - .param_name = "enable_psr",
> + .enable = psr_debugfs_enable,
> };
>
> -static void disable_features(void)
> -{
> - igt_set_module_param_int(fbc.param_name, 0);
> - igt_set_module_param_int(psr.param_name, 0);
> -}
> -
> static void subtest(struct feature *feature, bool suspend)
> {
> struct drm_info drm;
> @@ -237,8 +248,8 @@ static void subtest(struct feature *feature, bool
> suspend)
>
> igt_require(feature->supported_on_chipset(drm.debugfs_fd));
>
> - disable_features();
> - igt_set_module_param_int(feature->param_name, 1);
> + disable_features(drm.debugfs_fd);
> + feature->enable(drm.debugfs_fd);
>
> kmstest_unset_all_crtcs(drm.fd, drm.res);
> wait_user("Modes unset.");
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (4 preceding siblings ...)
2018-08-29 21:57 ` [igt-dev] [PATCH i-g-t 6/6] tests/fbcon_fbt: Enable PSR1 via debugfs Dhinakaran Pandiyan
@ 2018-08-30 8:10 ` Patchwork
2018-08-30 8:12 ` Patchwork
` (5 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2018-08-30 8:10 UTC (permalink / raw)
To: Dhinakaran Pandiyan; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
URL : https://patchwork.freedesktop.org/series/48904/
State : success
== Summary ==
= CI Bug Log - changes from IGT_4610_full -> IGTPW_1755_full =
== Summary - WARNING ==
Minor unknown changes coming with IGTPW_1755_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_1755_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://patchwork.freedesktop.org/api/1.0/series/48904/revisions/1/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1755_full:
=== IGT changes ===
==== Warnings ====
igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-untiled:
shard-snb: SKIP -> PASS
== Known issues ==
Here are the changes found in IGTPW_1755_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@gem_eio@in-flight-internal-immediate:
shard-snb: PASS -> INCOMPLETE (fdo#105411)
igt@kms_flip@2x-flip-vs-expired-vblank:
shard-glk: PASS -> FAIL (fdo#105363) +1
igt@kms_plane@pixel-format-pipe-a-planes:
shard-snb: PASS -> FAIL (fdo#107161)
igt@kms_rotation_crc@sprite-rotation-180:
shard-snb: PASS -> FAIL (fdo#103925)
igt@kms_setmode@basic:
shard-glk: NOTRUN -> FAIL (fdo#99912)
shard-kbl: PASS -> FAIL (fdo#99912)
igt@perf_pmu@rc6-runtime-pm-long:
shard-kbl: PASS -> FAIL (fdo#105010)
==== Possible fixes ====
igt@gem_ctx_isolation@vcs0-s3:
shard-kbl: INCOMPLETE (fdo#103665, fdo#107556) -> PASS
igt@gem_ctx_isolation@vcs1-none:
shard-snb: INCOMPLETE (fdo#105411) -> SKIP
igt@gem_ppgtt@blt-vs-render-ctx0:
shard-kbl: INCOMPLETE (fdo#103665, fdo#106023) -> PASS
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
fdo#105010 https://bugs.freedesktop.org/show_bug.cgi?id=105010
fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
fdo#107161 https://bugs.freedesktop.org/show_bug.cgi?id=107161
fdo#107556 https://bugs.freedesktop.org/show_bug.cgi?id=107556
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* IGT: IGT_4610 -> IGTPW_1755
* Linux: CI_DRM_4706 -> CI_DRM_4715
CI_DRM_4706: 6d5687919f3a3426243041b99111b576dd0576d0 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_4715: 1b73a69651beab39192502181c83e77a1022014a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1755: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1755/
IGT_4610: c40743d3fce5055682d31610519758dd7379c0f8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1755/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (5 preceding siblings ...)
2018-08-30 8:10 ` [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Patchwork
@ 2018-08-30 8:12 ` Patchwork
2018-08-30 8:15 ` [igt-dev] ✓ Fi.CI.BAT: " Patchwork
` (4 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2018-08-30 8:12 UTC (permalink / raw)
To: Dhinakaran Pandiyan; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
URL : https://patchwork.freedesktop.org/series/48904/
State : success
== Summary ==
= CI Bug Log - changes from IGT_4610_full -> IGTPW_1756_full =
== Summary - WARNING ==
Minor unknown changes coming with IGTPW_1756_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_1756_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://patchwork.freedesktop.org/api/1.0/series/48904/revisions/1/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1756_full:
=== IGT changes ===
==== Warnings ====
igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-untiled:
shard-snb: SKIP -> PASS
igt@perf@disabled-read-error:
shard-hsw: PASS -> SKIP
== Known issues ==
Here are the changes found in IGTPW_1756_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_suspend@shrink:
shard-snb: PASS -> FAIL (fdo#106886)
igt@gem_ctx_isolation@bcs0-s3:
shard-glk: PASS -> INCOMPLETE (k.org#198133, fdo#103359)
igt@gem_exec_await@wide-contexts:
shard-glk: PASS -> FAIL (fdo#105900)
igt@gem_pwrite_pread@display-pwrite-blt-gtt_mmap-correctness:
shard-snb: PASS -> INCOMPLETE (fdo#105411)
==== Possible fixes ====
igt@gem_ctx_isolation@vcs0-s3:
shard-kbl: INCOMPLETE (fdo#107556, fdo#103665) -> PASS
igt@gem_ctx_isolation@vcs1-none:
shard-snb: INCOMPLETE (fdo#105411) -> SKIP
igt@gem_ppgtt@blt-vs-render-ctx0:
shard-kbl: INCOMPLETE (fdo#103665, fdo#106023) -> PASS
igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
shard-snb: FAIL (fdo#103166) -> PASS
igt@kms_setmode@basic:
shard-apl: FAIL (fdo#99912) -> PASS
fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#107556 https://bugs.freedesktop.org/show_bug.cgi?id=107556
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* IGT: IGT_4610 -> IGTPW_1756
* Linux: CI_DRM_4706 -> CI_DRM_4715
CI_DRM_4706: 6d5687919f3a3426243041b99111b576dd0576d0 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_4715: 1b73a69651beab39192502181c83e77a1022014a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1756: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/
IGT_4610: c40743d3fce5055682d31610519758dd7379c0f8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (6 preceding siblings ...)
2018-08-30 8:12 ` Patchwork
@ 2018-08-30 8:15 ` Patchwork
2018-08-30 8:27 ` Patchwork
` (3 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2018-08-30 8:15 UTC (permalink / raw)
To: Dhinakaran Pandiyan; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
URL : https://patchwork.freedesktop.org/series/48904/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4715 -> IGTPW_1756 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/48904/revisions/1/mbox/
== Known issues ==
Here are the changes found in IGTPW_1756 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_selftest@live_hangcheck:
fi-skl-guc: PASS -> DMESG-FAIL (fdo#107174, fdo#107710)
{fi-cfl-8109u}: PASS -> DMESG-FAIL (fdo#106560)
igt@gem_basic@bad-close:
fi-skl-6770hq: PASS -> DMESG-WARN (fdo#105541)
igt@prime_vgem@basic-fence-flip:
fi-ilk-650: PASS -> FAIL (fdo#104008)
==== Possible fixes ====
{igt@kms_psr@cursor_plane_move}:
fi-cnl-psr: FAIL (fdo#107717) -> PASS
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fdo#105541 https://bugs.freedesktop.org/show_bug.cgi?id=105541
fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
fdo#107174 https://bugs.freedesktop.org/show_bug.cgi?id=107174
fdo#107710 https://bugs.freedesktop.org/show_bug.cgi?id=107710
fdo#107717 https://bugs.freedesktop.org/show_bug.cgi?id=107717
== Participating hosts (53 -> 49) ==
Additional (1): fi-bxt-dsi
Missing (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
== Build changes ==
* IGT: IGT_4610 -> IGTPW_1756
CI_DRM_4715: 1b73a69651beab39192502181c83e77a1022014a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1756: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/
IGT_4610: c40743d3fce5055682d31610519758dd7379c0f8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (7 preceding siblings ...)
2018-08-30 8:15 ` [igt-dev] ✓ Fi.CI.BAT: " Patchwork
@ 2018-08-30 8:27 ` Patchwork
2018-08-30 9:04 ` Patchwork
` (2 subsequent siblings)
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2018-08-30 8:27 UTC (permalink / raw)
To: Dhinakaran Pandiyan; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
URL : https://patchwork.freedesktop.org/series/48904/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4715 -> IGTPW_1755 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/48904/revisions/1/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1755:
=== IGT changes ===
==== Possible regressions ====
{igt@kms_psr@primary_page_flip}:
fi-kbl-r: PASS -> FAIL
== Known issues ==
Here are the changes found in IGTPW_1755 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_selftest@live_hangcheck:
fi-kbl-7500u: PASS -> DMESG-FAIL (fdo#106947, fdo#106560)
igt@gem_exec_suspend@basic-s3:
{fi-cfl-8109u}: PASS -> INCOMPLETE (fdo#107187)
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
fi-bxt-dsi: NOTRUN -> INCOMPLETE (fdo#103927)
==== Possible fixes ====
igt@debugfs_test@read_all_entries:
fi-snb-2520m: INCOMPLETE (fdo#103713) -> PASS
{igt@kms_psr@cursor_plane_move}:
fi-cnl-psr: FAIL (fdo#107717) -> PASS
{igt@kms_psr@primary_page_flip}:
fi-cnl-psr: FAIL (fdo#107336) -> PASS
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
fdo#107187 https://bugs.freedesktop.org/show_bug.cgi?id=107187
fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336
fdo#107717 https://bugs.freedesktop.org/show_bug.cgi?id=107717
== Participating hosts (53 -> 49) ==
Additional (1): fi-bxt-dsi
Missing (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
== Build changes ==
* IGT: IGT_4610 -> IGTPW_1755
CI_DRM_4715: 1b73a69651beab39192502181c83e77a1022014a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1755: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1755/
IGT_4610: c40743d3fce5055682d31610519758dd7379c0f8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1755/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (8 preceding siblings ...)
2018-08-30 8:27 ` Patchwork
@ 2018-08-30 9:04 ` Patchwork
2018-08-30 9:08 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-09-04 21:59 ` [igt-dev] [PATCH i-g-t 1/6] " Souza, Jose
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2018-08-30 9:04 UTC (permalink / raw)
To: Dhinakaran Pandiyan; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
URL : https://patchwork.freedesktop.org/series/48904/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4715 -> IGTPW_1756 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/48904/revisions/1/mbox/
== Known issues ==
Here are the changes found in IGTPW_1756 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_selftest@live_hangcheck:
fi-skl-guc: PASS -> DMESG-FAIL (fdo#107710, fdo#107174)
{fi-cfl-8109u}: PASS -> DMESG-FAIL (fdo#106560)
igt@gem_basic@bad-close:
fi-skl-6770hq: PASS -> DMESG-WARN (fdo#105541)
igt@prime_vgem@basic-fence-flip:
fi-ilk-650: PASS -> FAIL (fdo#104008)
==== Possible fixes ====
{igt@kms_psr@cursor_plane_move}:
fi-cnl-psr: FAIL (fdo#107717) -> PASS
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fdo#105541 https://bugs.freedesktop.org/show_bug.cgi?id=105541
fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
fdo#107174 https://bugs.freedesktop.org/show_bug.cgi?id=107174
fdo#107710 https://bugs.freedesktop.org/show_bug.cgi?id=107710
fdo#107717 https://bugs.freedesktop.org/show_bug.cgi?id=107717
== Participating hosts (53 -> 49) ==
Additional (1): fi-bxt-dsi
Missing (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
== Build changes ==
* IGT: IGT_4610 -> IGTPW_1756
CI_DRM_4715: 1b73a69651beab39192502181c83e77a1022014a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1756: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/
IGT_4610: c40743d3fce5055682d31610519758dd7379c0f8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (9 preceding siblings ...)
2018-08-30 9:04 ` Patchwork
@ 2018-08-30 9:08 ` Patchwork
2018-09-04 21:59 ` [igt-dev] [PATCH i-g-t 1/6] " Souza, Jose
11 siblings, 0 replies; 23+ messages in thread
From: Patchwork @ 2018-08-30 9:08 UTC (permalink / raw)
To: Dhinakaran Pandiyan; +Cc: igt-dev
== Series Details ==
Series: series starting with [i-g-t,1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
URL : https://patchwork.freedesktop.org/series/48904/
State : success
== Summary ==
= CI Bug Log - changes from IGT_4610_full -> IGTPW_1756_full =
== Summary - WARNING ==
Minor unknown changes coming with IGTPW_1756_full need to be verified
manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_1756_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://patchwork.freedesktop.org/api/1.0/series/48904/revisions/1/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1756_full:
=== IGT changes ===
==== Warnings ====
igt@drv_selftest@mock_timelines:
shard-glk: PASS -> ( 2 PASS ) +1492
igt@gem_busy@extended-parallel-bsd1:
shard-hsw: SKIP -> ( 2 SKIP ) +807
igt@gem_ctx_param@root-set-no-zeromap-disabled:
shard-kbl: PASS -> ( 2 PASS ) +1602
igt@gem_exec_schedule@preempt-other-chain-blt:
shard-snb: SKIP -> ( 2 SKIP ) +1286
igt@gem_pread@stolen-uncached:
shard-kbl: SKIP -> ( 2 SKIP ) +577
igt@gem_pwrite@display:
shard-snb: PASS -> ( 2 PASS ) +1313
igt@kms_chv_cursor_fail@pipe-b-256x256-top-edge:
shard-hsw: PASS -> ( 2 PASS ) +1498
igt@kms_draw_crc@draw-method-xrgb2101010-mmap-wc-untiled:
shard-snb: SKIP -> ( 2 PASS )
igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
shard-glk: SKIP -> ( 2 SKIP ) +560
igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
shard-apl: PASS -> ( 2 PASS ) +1781
igt@perf@disabled-read-error:
shard-hsw: PASS -> ( 1 PASS, 1 SKIP )
igt@prime_vgem@sync-bsd1:
shard-apl: SKIP -> ( 2 SKIP ) +818
== Known issues ==
Here are the changes found in IGTPW_1756_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@drv_suspend@shrink:
shard-snb: PASS -> ( 1 FAIL, 1 PASS ) (fdo#106886)
igt@gem_ctx_isolation@bcs0-s3:
shard-glk: PASS -> ( 1 INCOMPLETE, 1 PASS ) (fdo#103359, k.org#198133)
igt@gem_exec_await@wide-contexts:
shard-glk: PASS -> ( 1 FAIL, 1 PASS ) (fdo#105900)
igt@gem_pwrite_pread@display-pwrite-blt-gtt_mmap-correctness:
shard-snb: PASS -> ( 2 INCOMPLETE ) (fdo#105411)
igt@kms_flip@2x-flip-vs-expired-vblank:
shard-glk: PASS -> ( 1 FAIL, 1 PASS ) (fdo#105363)
igt@kms_setmode@basic:
shard-kbl: PASS -> ( 1 FAIL, 1 PASS ) (fdo#99912)
igt@kms_vblank@pipe-c-ts-continuation-dpms-suspend:
shard-apl: PASS -> ( 1 INCOMPLETE, 1 PASS ) (fdo#103927)
==== Possible fixes ====
igt@gem_ctx_isolation@vcs0-s3:
shard-kbl: INCOMPLETE (fdo#107556, fdo#103665) -> ( 2 PASS )
igt@gem_ctx_isolation@vcs1-none:
shard-snb: INCOMPLETE (fdo#105411) -> ( 2 SKIP )
igt@gem_ppgtt@blt-vs-render-ctx0:
shard-kbl: INCOMPLETE (fdo#103665, fdo#106023) -> ( 2 PASS )
igt@kms_setmode@basic:
shard-apl: FAIL (fdo#99912) -> ( 2 PASS )
==== Warnings ====
igt@gem_exec_schedule@pi-ringfull-blt:
shard-apl: FAIL (fdo#103158) -> ( 2 FAIL ) (fdo#103158) +2
igt@gem_exec_schedule@pi-ringfull-bsd:
shard-glk: FAIL (fdo#103158) -> ( 2 FAIL ) (fdo#103158) +3
igt@gem_exec_schedule@pi-ringfull-bsd1:
shard-kbl: FAIL (fdo#103158) -> ( 2 FAIL ) (fdo#103158) +3
igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
shard-glk: INCOMPLETE (fdo#103359, k.org#198133) -> ( 2 INCOMPLETE ) (fdo#103359, k.org#198133) +1
igt@kms_available_modes_crc@available_mode_test_crc:
shard-glk: FAIL (fdo#106641) -> ( 2 FAIL ) (fdo#106641)
shard-hsw: FAIL (fdo#106641) -> ( 2 FAIL ) (fdo#106641)
igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
shard-apl: FAIL (fdo#105458, fdo#106510) -> ( 2 FAIL ) (fdo#105458, fdo#106510) +1
igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
shard-glk: FAIL (fdo#105454) -> ( 2 FAIL ) (fdo#105454, fdo#106509)
igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
shard-glk: FAIL (fdo#105454, fdo#106509) -> ( 2 FAIL ) (fdo#105454, fdo#106509)
igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
shard-snb: FAIL (fdo#103166) -> ( 1 FAIL, 1 PASS ) (fdo#103166)
igt@kms_setmode@basic:
shard-hsw: FAIL (fdo#99912) -> ( 2 FAIL ) (fdo#99912)
shard-snb: FAIL (fdo#99912) -> ( 2 FAIL ) (fdo#99912)
igt@kms_sysfs_edid_timing:
shard-hsw: WARN (fdo#100047) -> ( 2 WARN ) (fdo#100047)
shard-glk: WARN (fdo#100047) -> ( 2 WARN ) (fdo#100047)
shard-apl: FAIL (fdo#100047) -> ( 2 FAIL ) (fdo#100047)
shard-kbl: FAIL (fdo#100047) -> ( 2 FAIL ) (fdo#100047)
igt@testdisplay:
shard-glk: INCOMPLETE (fdo#103359, k.org#198133, fdo#107093) -> ( 2 INCOMPLETE ) (fdo#103359, k.org#198133, fdo#107093)
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
fdo#105458 https://bugs.freedesktop.org/show_bug.cgi?id=105458
fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
fdo#106510 https://bugs.freedesktop.org/show_bug.cgi?id=106510
fdo#106641 https://bugs.freedesktop.org/show_bug.cgi?id=106641
fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
fdo#107093 https://bugs.freedesktop.org/show_bug.cgi?id=107093
fdo#107556 https://bugs.freedesktop.org/show_bug.cgi?id=107556
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133
== Participating hosts (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* IGT: IGT_4610 -> IGTPW_1756
* Linux: CI_DRM_4706 -> CI_DRM_4715
CI_DRM_4706: 6d5687919f3a3426243041b99111b576dd0576d0 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_4715: 1b73a69651beab39192502181c83e77a1022014a @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1756: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/
IGT_4610: c40743d3fce5055682d31610519758dd7379c0f8 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1756/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-08-29 21:57 [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5 Dhinakaran Pandiyan
` (10 preceding siblings ...)
2018-08-30 9:08 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2018-09-04 21:59 ` Souza, Jose
2018-09-05 17:09 ` Pandiyan, Dhinakaran
11 siblings, 1 reply; 23+ messages in thread
From: Souza, Jose @ 2018-09-04 21:59 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>
> It's harmful to write to enable_psr at runtime, and the patch that
> allows
> us to change i915_edp_psr_debug with the panel running will require
> us
> to abandon the module parameter. Hence the userspace change needs to
> be
> put in IGT first before we can change it at kernel time.
>
> Toggling it to debugfs will mean we can skip a modeset when changing
> our
> feature set.
>
> Changes since v1:
> - Rebase with the previous patches dropped.
> Changes since v2:
> - Rebase on top of new api in i915_edp_psr_debug.
> Changes since v3:
> - Enable IRQ debugging for extra logging.
> - Force PSR1 mode. (dhnkrn)
> - Move PSR enable/disable functions to lib/igt_psr. (dhnkrn)
> Changes since v4:
> - Redisable irqs right away when debugfs api doesn't work. (dhnkrn)
> - Use hex everywhere. (dhnkrn)
>
> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
> lib/igt_psr.c | 86
> +++++++++++++++++++++++++++++++++++++++-
> lib/igt_psr.h | 2 +
> tests/kms_frontbuffer_tracking.c | 6 +--
> 3 files changed, 89 insertions(+), 5 deletions(-)
>
> diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> index c979b0b5..614caa6f 100644
> --- a/lib/igt_psr.c
> +++ b/lib/igt_psr.c
> @@ -21,7 +21,9 @@
> * IN THE SOFTWARE.
> */
>
> -#include "igt_psr.h"
> +#include "igt_psr.h"
> +#include "igt_sysfs.h"
> +#include <errno.h>
>
> bool psr_active(int fd, bool check_active)
> {
> @@ -38,3 +40,85 @@ bool psr_wait_entry(int fd)
> {
> return igt_wait(psr_active(fd, true), 500, 1);
> }
> +
> +static ssize_t psr_write(int fd, const char *buf)
> +{
> + return igt_sysfs_write(fd, "i915_edp_psr_debug", buf,
> strlen(buf));
> +}
> +
> +static int has_psr_debugfs(int fd)
> +{
> + int ret;
> +
> + /*
> + * Check if new PSR debugfs api is usable by writing an invalid
> value.
> + * Legacy mode will return OK here, debugfs api will return
> -EINVAL.
> + * -ENODEV is returned.
> + */
> + ret = psr_write(fd, "0xf");
> + if (ret == -EINVAL)
> + return 0;
> + else if (ret < 0)
> + return ret;
> +
> + /* legacy debugfs api, we enabled irqs by writing, disable
> them. */
> + psr_write(fd, "0");
> + return -EINVAL;
> +}
> +
> +static bool psr_modparam_set(int val)
> +{
> + static int oldval = -1;
This looks wrong, why not read the module parameter? it will guaratee
that the returned value is correct here if something else left the
parameter with another value.
> +
> + igt_set_module_param_int("enable_psr", val);
> +
> + if (val == oldval)
> + return false;
> +
> + oldval = val;
> + return true;
> +}
> +
> +static int psr_restore_debugfs_fd = -1;
Maybe move this to the top of the file.
Other than that LGTM.
> +
> +static void restore_psr_debugfs(int sig)
> +{
> + psr_write(psr_restore_debugfs_fd, "0");
> +}
> +
> +static bool psr_set(int fd, bool enable)
> +{
> + int ret;
> +
> + ret = has_psr_debugfs(fd);
> + if (ret == -ENODEV) {
> + igt_skip_on_f(enable, "PSR not available\n");
> + return false;
> + }
> +
> + if (ret == -EINVAL) {
> + ret = psr_modparam_set(enable);
> + } else {
> + ret = psr_write(fd, enable ? "0x3" : "0x1");
> + igt_assert(ret > 0);
> + }
> +
> + /* Restore original value on exit */
> + if (psr_restore_debugfs_fd == -1) {
> + psr_restore_debugfs_fd = dup(fd);
> + igt_assert(psr_restore_debugfs_fd >= 0);
> + igt_install_exit_handler(restore_psr_debugfs);
> + }
> +
> + return ret;
> +}
> +
> +bool psr_enable(int fd)
> +{
> + return psr_set(fd, true);
> +}
> +
> +bool psr_disable(int fd)
> +{
> + return psr_set(fd, false);
> +}
> diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> index 980f85e0..0ef22c3d 100644
> --- a/lib/igt_psr.h
> +++ b/lib/igt_psr.h
> @@ -30,5 +30,7 @@
>
> bool psr_wait_entry(int fd);
> bool psr_active(int fd, bool check_active);
> +bool psr_enable(int fd);
> +bool psr_disable(int fd);
>
> #endif
> diff --git a/tests/kms_frontbuffer_tracking.c
> b/tests/kms_frontbuffer_tracking.c
> index 1dfd7c1c..7ea2f697 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -941,8 +941,6 @@ static bool
> drrs_wait_until_rr_switch_to_low(void)
>
> #define fbc_enable() igt_set_module_param_int("enable_fbc", 1)
> #define fbc_disable() igt_set_module_param_int("enable_fbc", 0)
> -#define psr_enable() igt_set_module_param_int("enable_psr", 1)
> -#define psr_disable() igt_set_module_param_int("enable_psr", 0)
> #define drrs_enable() drrs_set(1)
> #define drrs_disable() drrs_set(0)
>
> @@ -1137,7 +1135,7 @@ static void disable_features(const struct
> test_mode *t)
> return;
>
> fbc_disable();
> - psr_disable();
> + psr_disable(drm.debugfs);
> drrs_disable();
> }
>
> @@ -1719,7 +1717,7 @@ static void enable_features_for_test(const
> struct test_mode *t)
> if (t->feature & FEATURE_FBC)
> fbc_enable();
> if (t->feature & FEATURE_PSR)
> - psr_enable();
> + psr_enable(drm.debugfs);
> if (t->feature & FEATURE_DRRS)
> drrs_enable();
> }
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-09-04 21:59 ` [igt-dev] [PATCH i-g-t 1/6] " Souza, Jose
@ 2018-09-05 17:09 ` Pandiyan, Dhinakaran
2018-09-05 21:05 ` Souza, Jose
0 siblings, 1 reply; 23+ messages in thread
From: Pandiyan, Dhinakaran @ 2018-09-05 17:09 UTC (permalink / raw)
To: igt-dev, Souza, Jose; +Cc: Vivi, Rodrigo
On Tue, 2018-09-04 at 14:59 -0700, Souza, Jose wrote:
> On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> > From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >
> > It's harmful to write to enable_psr at runtime, and the patch that
> > allows
> > us to change i915_edp_psr_debug with the panel running will require
> > us
> > to abandon the module parameter. Hence the userspace change needs
> > to
> > be
> > put in IGT first before we can change it at kernel time.
> >
> > Toggling it to debugfs will mean we can skip a modeset when
> > changing
> > our
> > feature set.
> >
> > Changes since v1:
> > - Rebase with the previous patches dropped.
> > Changes since v2:
> > - Rebase on top of new api in i915_edp_psr_debug.
> > Changes since v3:
> > - Enable IRQ debugging for extra logging.
> > - Force PSR1 mode. (dhnkrn)
> > - Move PSR enable/disable functions to lib/igt_psr. (dhnkrn)
> > Changes since v4:
> > - Redisable irqs right away when debugfs api doesn't work. (dhnkrn)
> > - Use hex everywhere. (dhnkrn)
> >
> > Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com
> > >
> > ---
> > lib/igt_psr.c | 86
> > +++++++++++++++++++++++++++++++++++++++-
> > lib/igt_psr.h | 2 +
> > tests/kms_frontbuffer_tracking.c | 6 +--
> > 3 files changed, 89 insertions(+), 5 deletions(-)
> >
> > diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> > index c979b0b5..614caa6f 100644
> > --- a/lib/igt_psr.c
> > +++ b/lib/igt_psr.c
> > @@ -21,7 +21,9 @@
> > * IN THE SOFTWARE.
> > */
> >
> > -#include "igt_psr.h"
> > +#include "igt_psr.h"
> > +#include "igt_sysfs.h"
> > +#include <errno.h>
> >
> > bool psr_active(int fd, bool check_active)
> > {
> > @@ -38,3 +40,85 @@ bool psr_wait_entry(int fd)
> > {
> > return igt_wait(psr_active(fd, true), 500, 1);
> > }
> > +
> > +static ssize_t psr_write(int fd, const char *buf)
> > +{
> > + return igt_sysfs_write(fd, "i915_edp_psr_debug", buf,
> > strlen(buf));
> > +}
> > +
> > +static int has_psr_debugfs(int fd)
> > +{
> > + int ret;
> > +
> > + /*
> > + * Check if new PSR debugfs api is usable by writing an
> > invalid
> > value.
> > + * Legacy mode will return OK here, debugfs api will
> > return
> > -EINVAL.
> > + * -ENODEV is returned.
> > + */
> > + ret = psr_write(fd, "0xf");
> > + if (ret == -EINVAL)
> > + return 0;
> > + else if (ret < 0)
> > + return ret;
> > +
> > + /* legacy debugfs api, we enabled irqs by writing, disable
> > them. */
> > + psr_write(fd, "0");
> > + return -EINVAL;
> > +}
> > +
> > +static bool psr_modparam_set(int val)
> > +{
> > + static int oldval = -1;
>
> This looks wrong, why not read the module parameter? it will guaratee
> that the returned value is correct here if something else left the
> parameter with another value.
>
This patch was merged as part of a different series, send a fix and Cc
Maarten?
>
> > +
> > + igt_set_module_param_int("enable_psr", val);
> > +
> > + if (val == oldval)
> > + return false;
> > +
> > + oldval = val;
> > + return true;
> > +}
> > +
> > +static int psr_restore_debugfs_fd = -1;
>
> Maybe move this to the top of the file.
>
> Other than that LGTM.
>
> > +
> > +static void restore_psr_debugfs(int sig)
> > +{
> > + psr_write(psr_restore_debugfs_fd, "0");
> > +}
> > +
> > +static bool psr_set(int fd, bool enable)
> > +{
> > + int ret;
> > +
> > + ret = has_psr_debugfs(fd);
> > + if (ret == -ENODEV) {
> > + igt_skip_on_f(enable, "PSR not available\n");
> > + return false;
> > + }
> > +
> > + if (ret == -EINVAL) {
> > + ret = psr_modparam_set(enable);
> > + } else {
> > + ret = psr_write(fd, enable ? "0x3" : "0x1");
> > + igt_assert(ret > 0);
> > + }
> > +
> > + /* Restore original value on exit */
> > + if (psr_restore_debugfs_fd == -1) {
> > + psr_restore_debugfs_fd = dup(fd);
> > + igt_assert(psr_restore_debugfs_fd >= 0);
> > + igt_install_exit_handler(restore_psr_debugfs);
> > + }
> > +
> > + return ret;
> > +}
> > +
> > +bool psr_enable(int fd)
> > +{
> > + return psr_set(fd, true);
> > +}
> > +
> > +bool psr_disable(int fd)
> > +{
> > + return psr_set(fd, false);
> > +}
> > diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> > index 980f85e0..0ef22c3d 100644
> > --- a/lib/igt_psr.h
> > +++ b/lib/igt_psr.h
> > @@ -30,5 +30,7 @@
> >
> > bool psr_wait_entry(int fd);
> > bool psr_active(int fd, bool check_active);
> > +bool psr_enable(int fd);
> > +bool psr_disable(int fd);
> >
> > #endif
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index 1dfd7c1c..7ea2f697 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -941,8 +941,6 @@ static bool
> > drrs_wait_until_rr_switch_to_low(void)
> >
> > #define fbc_enable() igt_set_module_param_int("enable_fbc", 1)
> > #define fbc_disable() igt_set_module_param_int("enable_fbc", 0)
> > -#define psr_enable() igt_set_module_param_int("enable_psr", 1)
> > -#define psr_disable() igt_set_module_param_int("enable_psr", 0)
> > #define drrs_enable() drrs_set(1)
> > #define drrs_disable() drrs_set(0)
> >
> > @@ -1137,7 +1135,7 @@ static void disable_features(const struct
> > test_mode *t)
> > return;
> >
> > fbc_disable();
> > - psr_disable();
> > + psr_disable(drm.debugfs);
> > drrs_disable();
> > }
> >
> > @@ -1719,7 +1717,7 @@ static void enable_features_for_test(const
> > struct test_mode *t)
> > if (t->feature & FEATURE_FBC)
> > fbc_enable();
> > if (t->feature & FEATURE_PSR)
> > - psr_enable();
> > + psr_enable(drm.debugfs);
> > if (t->feature & FEATURE_DRRS)
> > drrs_enable();
> > }
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/6] lib/psr: Add support for toggling edp psr through debugfs, v5.
2018-09-05 17:09 ` Pandiyan, Dhinakaran
@ 2018-09-05 21:05 ` Souza, Jose
0 siblings, 0 replies; 23+ messages in thread
From: Souza, Jose @ 2018-09-05 21:05 UTC (permalink / raw)
To: igt-dev, Pandiyan, Dhinakaran; +Cc: Vivi, Rodrigo
On Wed, 2018-09-05 at 10:09 -0700, Pandiyan, Dhinakaran wrote:
> On Tue, 2018-09-04 at 14:59 -0700, Souza, Jose wrote:
> > On Wed, 2018-08-29 at 14:57 -0700, Dhinakaran Pandiyan wrote:
> > > From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> > >
> > > It's harmful to write to enable_psr at runtime, and the patch
> > > that
> > > allows
> > > us to change i915_edp_psr_debug with the panel running will
> > > require
> > > us
> > > to abandon the module parameter. Hence the userspace change needs
> > > to
> > > be
> > > put in IGT first before we can change it at kernel time.
> > >
> > > Toggling it to debugfs will mean we can skip a modeset when
> > > changing
> > > our
> > > feature set.
> > >
> > > Changes since v1:
> > > - Rebase with the previous patches dropped.
> > > Changes since v2:
> > > - Rebase on top of new api in i915_edp_psr_debug.
> > > Changes since v3:
> > > - Enable IRQ debugging for extra logging.
> > > - Force PSR1 mode. (dhnkrn)
> > > - Move PSR enable/disable functions to lib/igt_psr. (dhnkrn)
> > > Changes since v4:
> > > - Redisable irqs right away when debugfs api doesn't work.
> > > (dhnkrn)
> > > - Use hex everywhere. (dhnkrn)
> > >
> > > Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > > Signed-off-by: Maarten Lankhorst <
> > > maarten.lankhorst@linux.intel.com
> > > >
> > >
> > > ---
> > > lib/igt_psr.c | 86
> > > +++++++++++++++++++++++++++++++++++++++-
> > > lib/igt_psr.h | 2 +
> > > tests/kms_frontbuffer_tracking.c | 6 +--
> > > 3 files changed, 89 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> > > index c979b0b5..614caa6f 100644
> > > --- a/lib/igt_psr.c
> > > +++ b/lib/igt_psr.c
> > > @@ -21,7 +21,9 @@
> > > * IN THE SOFTWARE.
> > > */
> > >
> > > -#include "igt_psr.h"
> > > +#include "igt_psr.h"
> > > +#include "igt_sysfs.h"
> > > +#include <errno.h>
> > >
> > > bool psr_active(int fd, bool check_active)
> > > {
> > > @@ -38,3 +40,85 @@ bool psr_wait_entry(int fd)
> > > {
> > > return igt_wait(psr_active(fd, true), 500, 1);
> > > }
> > > +
> > > +static ssize_t psr_write(int fd, const char *buf)
> > > +{
> > > + return igt_sysfs_write(fd, "i915_edp_psr_debug", buf,
> > > strlen(buf));
> > > +}
> > > +
> > > +static int has_psr_debugfs(int fd)
> > > +{
> > > + int ret;
> > > +
> > > + /*
> > > + * Check if new PSR debugfs api is usable by writing an
> > > invalid
> > > value.
> > > + * Legacy mode will return OK here, debugfs api will
> > > return
> > > -EINVAL.
> > > + * -ENODEV is returned.
> > > + */
> > > + ret = psr_write(fd, "0xf");
> > > + if (ret == -EINVAL)
> > > + return 0;
> > > + else if (ret < 0)
> > > + return ret;
> > > +
> > > + /* legacy debugfs api, we enabled irqs by writing, disable
> > > them. */
> > > + psr_write(fd, "0");
> > > + return -EINVAL;
> > > +}
> > > +
> > > +static bool psr_modparam_set(int val)
> > > +{
> > > + static int oldval = -1;
> >
> > This looks wrong, why not read the module parameter? it will
> > guaratee
> > that the returned value is correct here if something else left the
> > parameter with another value.
> >
>
> This patch was merged as part of a different series, send a fix and
> Cc
> Maarten?
Okay, I did the patch and sent it to ML.
Thanks for the feedbak.
> >
> > > +
> > > + igt_set_module_param_int("enable_psr", val);
> > > +
> > > + if (val == oldval)
> > > + return false;
> > > +
> > > + oldval = val;
> > > + return true;
> > > +}
> > > +
> > > +static int psr_restore_debugfs_fd = -1;
> >
> > Maybe move this to the top of the file.
> >
> > Other than that LGTM.
> >
> > > +
> > > +static void restore_psr_debugfs(int sig)
> > > +{
> > > + psr_write(psr_restore_debugfs_fd, "0");
> > > +}
> > > +
> > > +static bool psr_set(int fd, bool enable)
> > > +{
> > > + int ret;
> > > +
> > > + ret = has_psr_debugfs(fd);
> > > + if (ret == -ENODEV) {
> > > + igt_skip_on_f(enable, "PSR not available\n");
> > > + return false;
> > > + }
> > > +
> > > + if (ret == -EINVAL) {
> > > + ret = psr_modparam_set(enable);
> > > + } else {
> > > + ret = psr_write(fd, enable ? "0x3" : "0x1");
> > > + igt_assert(ret > 0);
> > > + }
> > > +
> > > + /* Restore original value on exit */
> > > + if (psr_restore_debugfs_fd == -1) {
> > > + psr_restore_debugfs_fd = dup(fd);
> > > + igt_assert(psr_restore_debugfs_fd >= 0);
> > > + igt_install_exit_handler(restore_psr_debugfs);
> > > + }
> > > +
> > > + return ret;
> > > +}
> > > +
> > > +bool psr_enable(int fd)
> > > +{
> > > + return psr_set(fd, true);
> > > +}
> > > +
> > > +bool psr_disable(int fd)
> > > +{
> > > + return psr_set(fd, false);
> > > +}
> > > diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> > > index 980f85e0..0ef22c3d 100644
> > > --- a/lib/igt_psr.h
> > > +++ b/lib/igt_psr.h
> > > @@ -30,5 +30,7 @@
> > >
> > > bool psr_wait_entry(int fd);
> > > bool psr_active(int fd, bool check_active);
> > > +bool psr_enable(int fd);
> > > +bool psr_disable(int fd);
> > >
> > > #endif
> > > diff --git a/tests/kms_frontbuffer_tracking.c
> > > b/tests/kms_frontbuffer_tracking.c
> > > index 1dfd7c1c..7ea2f697 100644
> > > --- a/tests/kms_frontbuffer_tracking.c
> > > +++ b/tests/kms_frontbuffer_tracking.c
> > > @@ -941,8 +941,6 @@ static bool
> > > drrs_wait_until_rr_switch_to_low(void)
> > >
> > > #define fbc_enable() igt_set_module_param_int("enable_fbc", 1)
> > > #define fbc_disable() igt_set_module_param_int("enable_fbc", 0)
> > > -#define psr_enable() igt_set_module_param_int("enable_psr", 1)
> > > -#define psr_disable() igt_set_module_param_int("enable_psr", 0)
> > > #define drrs_enable() drrs_set(1)
> > > #define drrs_disable() drrs_set(0)
> > >
> > > @@ -1137,7 +1135,7 @@ static void disable_features(const struct
> > > test_mode *t)
> > > return;
> > >
> > > fbc_disable();
> > > - psr_disable();
> > > + psr_disable(drm.debugfs);
> > > drrs_disable();
> > > }
> > >
> > > @@ -1719,7 +1717,7 @@ static void enable_features_for_test(const
> > > struct test_mode *t)
> > > if (t->feature & FEATURE_FBC)
> > > fbc_enable();
> > > if (t->feature & FEATURE_PSR)
> > > - psr_enable();
> > > + psr_enable(drm.debugfs);
> > > if (t->feature & FEATURE_DRRS)
> > > drrs_enable();
> > > }
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 23+ messages in thread