From: "Souza, Jose" <jose.souza@intel.com>
To: "igt-dev@lists.freedesktop.org" <igt-dev@lists.freedesktop.org>,
"Pandiyan, Dhinakaran" <dhinakaran.pandiyan@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t 08/10] lib/psr: Add PSR2 support to the remaning psr functions
Date: Thu, 17 Jan 2019 02:14:13 +0000 [thread overview]
Message-ID: <7cdbac7ba93f447f2bd1a28a5e97fa010cecea75.camel@intel.com> (raw)
In-Reply-To: <06761ec3764ef20700119539be30fbf3c859e484.camel@intel.com>
[-- Attachment #1.1: Type: text/plain, Size: 7530 bytes --]
On Tue, 2019-01-15 at 21:33 -0800, Dhinakaran Pandiyan wrote:
> On Fri, 2019-01-11 at 17:46 -0800, José Roberto de Souza wrote:
> > Add the mode parameter to psr_enable() and psr_sink_support() so
> > PSR1
> > and PSR2 can be tested separated.
> > For now all PSR tests will run only with PSR1 and the tests for
> > PSR2
> > will come in the future.
> >
> > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > ---
> > lib/igt_psr.c | 39 +++++++++++++++++++++++++---
> > --
> > --
> > lib/igt_psr.h | 4 ++--
> > tests/kms_fbcon_fbt.c | 9 ++++++--
> > tests/kms_frontbuffer_tracking.c | 4 ++--
> > tests/kms_psr.c | 5 ++--
> > 5 files changed, 45 insertions(+), 16 deletions(-)
> >
> > diff --git a/lib/igt_psr.c b/lib/igt_psr.c
> > index 5cc0fbc2..d7028f6c 100644
> > --- a/lib/igt_psr.c
> > +++ b/lib/igt_psr.c
> > @@ -83,9 +83,10 @@ static void restore_psr_debugfs(int sig)
> > psr_write(psr_restore_debugfs_fd, "0");
> > }
> >
> > -static bool psr_set(int debugfs_fd, bool enable)
> > +static bool psr_set(int debugfs_fd, enum psr_mode mode)
> > {
> > int ret;
> > + const char *debug_val;
> >
> > ret = has_psr_debugfs(debugfs_fd);
> > if (ret == -ENODEV) {
> > @@ -96,7 +97,18 @@ static bool psr_set(int debugfs_fd, bool enable)
> > return false;
> > }
> >
> > - ret = psr_write(debugfs_fd, enable ? "0x3" : "0x1");
> > + switch (mode) {
> > + case PSR_MODE_1:
> > + debug_val = "0x3";
> > + break;
> > + case PSR_MODE_2:
> > + debug_val = "0x2";
> > + break;
> > + default:
> > + debug_val = "0x1";
> > + }
> > +
> > + ret = psr_write(debugfs_fd, debug_val);
> > igt_assert(ret > 0);
> >
> > /* Restore original value on exit */
> > @@ -109,23 +121,34 @@ static bool psr_set(int debugfs_fd, bool
> > enable)
> > return ret;
> > }
> >
> > -bool psr_enable(int debugfs_fd)
> > +bool psr_enable(int debugfs_fd, enum psr_mode mode)
> > {
> > - return psr_set(debugfs_fd, true);
> > + return psr_set(debugfs_fd, mode);
> > }
> >
> > bool psr_disable(int debugfs_fd)
> > {
> > - return psr_set(debugfs_fd, false);
> > + /* Any mode different than PSR_MODE_1/2 will disable PSR */
> Please consider adding PSR_MODE_DISABLE to get rid of this comment.
I have commented in the previous patch, my opinion is that is better
have this comments and handle this way than let user call all other
functions with PSR_MODE_DISABLE.
>
> > + return psr_set(debugfs_fd, PSR_MODE_2 + 1);
> > }
> >
> > -bool psr_sink_support(int debugfs_fd)
> > +bool psr_sink_support(int debugfs_fd, enum psr_mode mode)
> > {
> > char buf[PSR_STATUS_MAX_LEN];
> > int ret;
> >
> > ret = igt_debugfs_simple_read(debugfs_fd,
> > "i915_edp_psr_status", buf,
> > sizeof(buf));
> > - return ret > 0 && (strstr(buf, "Sink_Support: yes\n") ||
> > - strstr(buf, "Sink support: yes"));
> > + if (ret < 1)
> > + return false;
> > +
> > + if (mode == PSR_MODE_1)
> > + return strstr(buf, "Sink_Support: yes\n") ||
> > + strstr(buf, "Sink support: yes");
> > + else
> > + /*
> > + * i915 requires PSR version 0x03 that is PSR2 + SU
> > with
> > + * Y-coordinate to support PSR2
> > + */
> > + return strstr(buf, "Sink support: yes [0x03]");
> For some reason, I thought we also print whether the sink supports
> PSR1
> or PSR2 in debugfs. Hope it's not too late, did we ever consider
>
> Sink support: {No, PSR1, PSR2} [<PSR dpcd version>]?
Okay, I will change kernel and IGT to have this debugfs output.
We should print it just based on the DPCD version? Like version 0x2 is
PSR2 but we don't support PSR2 in that version of panel, same as a
version 0x3 that do not require the Y-coordinate.
>
> > }
> > diff --git a/lib/igt_psr.h b/lib/igt_psr.h
> > index 4fff77ec..7e7017bf 100644
> > --- a/lib/igt_psr.h
> > +++ b/lib/igt_psr.h
> > @@ -37,8 +37,8 @@ enum psr_mode {
> >
> > bool psr_wait_entry(int debugfs_fd, enum psr_mode mode);
> > bool psr_wait_update(int debugfs_fd, enum psr_mode mode);
> > -bool psr_enable(int debugfs_fd);
> > +bool psr_enable(int debugfs_fd, enum psr_mode);
> > bool psr_disable(int debugfs_fd);
> > -bool psr_sink_support(int debugfs_fd);
> > +bool psr_sink_support(int debugfs_fd, enum psr_mode);
> >
> > #endif
> > diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
> > index 2823b47a..9d0d5a36 100644
> > --- a/tests/kms_fbcon_fbt.c
> > +++ b/tests/kms_fbcon_fbt.c
> > @@ -199,6 +199,11 @@ static bool psr_wait_until_enabled(int
> > debugfs_fd)
> > return r;
> > }
> >
> > +static bool psr_supported_on_chipset(int debugfs_fd)
> > +{
> > + return psr_sink_support(debugfs_fd, PSR_MODE_1);
> > +}
> > +
> > static void disable_features(int debugfs_fd)
> > {
> > igt_set_module_param_int("enable_fbc", 0);
> > @@ -212,7 +217,7 @@ static inline void fbc_modparam_enable(int
> > debugfs_fd)
> >
> > static inline void psr_debugfs_enable(int debugfs_fd)
> > {
> > - psr_enable(debugfs_fd);
> > + psr_enable(debugfs_fd, PSR_MODE_1);
> > }
> >
> > struct feature {
> > @@ -226,7 +231,7 @@ struct feature {
> > .connector_possible_fn = connector_can_fbc,
> > .enable = fbc_modparam_enable,
> > }, psr = {
> > - .supported_on_chipset = psr_sink_support,
> > + .supported_on_chipset = psr_supported_on_chipset,
> > .wait_until_enabled = psr_wait_until_enabled,
> > .connector_possible_fn = connector_can_psr,
> > .enable = psr_debugfs_enable,
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index ed9a039a..609f7b41 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -1425,7 +1425,7 @@ static void setup_psr(void)
> > return;
> > }
> >
> > - if (!psr_sink_support(drm.debugfs)) {
> > + if (!psr_sink_support(drm.debugfs, PSR_MODE_1)) {
> > igt_info("Can't test PSR: not supported by sink.\n");
> > return;
> > }
> > @@ -1722,7 +1722,7 @@ static bool enable_features_for_test(const
> > struct test_mode *t)
> > if (t->feature & FEATURE_FBC)
> > fbc_enable();
> > if (t->feature & FEATURE_PSR)
> > - ret = psr_enable(drm.debugfs);
> > + ret = psr_enable(drm.debugfs, PSR_MODE_1);
> > if (t->feature & FEATURE_DRRS)
> > drrs_enable();
> >
> > diff --git a/tests/kms_psr.c b/tests/kms_psr.c
> > index 23d000bd..c31dc317 100644
> > --- a/tests/kms_psr.c
> > +++ b/tests/kms_psr.c
> > @@ -191,7 +191,8 @@ static void fill_render(data_t *data, uint32_t
> > handle, unsigned char color)
> >
> > static bool sink_support(data_t *data)
> > {
> > - return data->with_psr_disabled || psr_sink_support(data-
> > > debugfs_fd);
> > + return data->with_psr_disabled ||
> > + psr_sink_support(data->debugfs_fd, PSR_MODE_1);
> > }
> >
> > static bool psr_wait_entry_if_enabled(data_t *data)
> > @@ -410,7 +411,7 @@ int main(int argc, char *argv[])
> > data.devid = intel_get_drm_devid(data.drm_fd);
> >
> Store it in struct data so that the value stays consistent throughout
> the test case?
> > if (!data.with_psr_disabled)
> > - psr_enable(data.debugfs_fd);
> > + psr_enable(data.debugfs_fd, PSR_MODE_1);
> >
> > igt_require_f(sink_support(&data),
> > "Sink does not support PSR\n");
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
next prev parent reply other threads:[~2019-01-17 2:14 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-12 1:45 [igt-dev] [PATCH i-g-t 01/10] lib/psr: Add a macro with the maximum lenght of i915_edp_psr_status and use it José Roberto de Souza
2019-01-12 1:45 ` [igt-dev] [PATCH i-g-t 02/10] tests/psr: Share the code check if sink supports PSR José Roberto de Souza
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 03/10] lib/psr: Add support to new modified i915_edp_psr_status output José Roberto de Souza
2019-01-14 18:26 ` Rodrigo Vivi
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 04/10] lib/psr: Only care about DEEP_SLEEP state for PSR2 José Roberto de Souza
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 05/10] lib/psr: Rename psr_wait_exit to psr_wait_update José Roberto de Souza
2019-01-16 4:55 ` Dhinakaran Pandiyan
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 06/10] lib/psr: Make psr_wait_entry and psr_wait_update aware of the PSR version tested José Roberto de Souza
2019-01-16 5:19 ` Dhinakaran Pandiyan
2019-01-17 1:59 ` Souza, Jose
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 07/10] lib/psr: Drop support to old kernels without new PSR debugfs interface José Roberto de Souza
2019-01-16 5:21 ` Dhinakaran Pandiyan
2019-01-17 2:07 ` Souza, Jose
2019-01-17 2:16 ` Dhinakaran Pandiyan
2019-01-17 21:17 ` Souza, Jose
2019-01-17 9:50 ` Petri Latvala
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 08/10] lib/psr: Add PSR2 support to the remaning psr functions José Roberto de Souza
2019-01-16 5:33 ` Dhinakaran Pandiyan
2019-01-17 2:14 ` Souza, Jose [this message]
2019-01-17 2:27 ` Dhinakaran Pandiyan
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 09/10] test/psr: Add a generic function to setup each test José Roberto de Souza
2019-01-12 1:46 ` [igt-dev] [PATCH i-g-t 10/10] tests/psr: Add the same test coverage that we have for PSR1 to PSR2 José Roberto de Souza
2019-01-14 18:25 ` Rodrigo Vivi
2019-01-16 6:44 ` Dhinakaran Pandiyan
2019-01-17 21:43 ` Souza, Jose
2019-01-17 21:51 ` Dhinakaran Pandiyan
2019-01-17 23:05 ` Souza, Jose
2019-01-17 23:09 ` Pandiyan, Dhinakaran
2019-01-17 23:41 ` Souza, Jose
2019-01-12 2:32 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,01/10] lib/psr: Add a macro with the maximum lenght of i915_edp_psr_status and use it Patchwork
2019-01-12 8:48 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7cdbac7ba93f447f2bd1a28a5e97fa010cecea75.camel@intel.com \
--to=jose.souza@intel.com \
--cc=dhinakaran.pandiyan@intel.com \
--cc=igt-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox