[Intel-gfx] [PATCH i-g-t 4/7] lib/igt_chamelium: Add support for configurable DUT suspend/resume delay
Paul Kocialkowski
paul.kocialkowski at linux.intel.com
Tue Jun 27 07:33:51 UTC 2017
On Mon, 2017-06-26 at 18:15 +0300, Martin Peres wrote:
> On 26/06/17 17:33, Paul Kocialkowski wrote:
> > On Mon, 2017-06-26 at 17:25 +0300, Martin Peres wrote:
> > > On 26/06/17 16:59, Paul Kocialkowski wrote:
> > > > This adds support for reading a SuspendResumeDelay property (under
> > > > [DUT]) in the IGT configuration (igtrc) and exposing it through a
> > > > chamelium_get_suspend_resume_delay function.
> > > >
> > > > Signed-off-by: Paul Kocialkowski <paul.kocialkowski at linux.intel.com>
> > > > ---
> > > > lib/igt_chamelium.c | 31 ++++++++++++++++++++++++++++++-
> > > > lib/igt_chamelium.h | 1 +
> > > > 2 files changed, 31 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
> > > > index 225f98c3..a1aaf405 100644
> > > > --- a/lib/igt_chamelium.c
> > > > +++ b/lib/igt_chamelium.c
> > > > @@ -58,7 +58,7 @@
> > > > * [Chamelium]
> > > > * URL=http://chameleon:9992 # The URL used for connecting to
> > > > the
> > > > Chamelium's RPC server
> > > > *
> > > > - * # The rest of the sections are used for defining connector
> > > > mappings.
> > > > + * # The following sections are used for defining connector
> > > > mappings.
> > > > * # This is required so any tests using the Chamelium know
> > > > which
> > > > connector
> > > > * # on the test machine should be connected to each Chamelium
> > > > port.
> > > > * #
> > > > @@ -70,12 +70,19 @@
> > > > *
> > > > * [Chamelium:HDMI-A-1]
> > > > * ChameliumPortID=3
> > > > + *
> > > > + * # The following section is used for configuring the Device
> > > > Under
> > > > Test.
> > > > + * # It is not mandatory and allows overriding default values.
> > > > + * [DUT]
> > > > + * SuspendResumeDelay=10
> > > > * ]|
> > > > *
> > > > * By default, this file is expected to exist in ~/.igtrc . The
> > > > directory
> > > > for
> > > > * this can be overriden by setting the environment variable
> > > > %IGT_CONFIG_PATH.
> > > > */
> > > >
> > > > +#define SUSPEND_RESUME_DELAY_DEFAULT 20 /* seconds */
> > > > +
> > > > struct chamelium_edid {
> > > > int id;
> > > > struct igt_list link;
> > > > @@ -100,6 +107,7 @@ struct chamelium {
> > > > xmlrpc_env env;
> > > > xmlrpc_client *client;
> > > > char *url;
> > > > + int suspend_resume_delay;
> > > >
> > > > /* Indicates the last port to have been used for capturing
> > > > video
> > > > */
> > > > struct chamelium_port *capturing_port;
> > > > @@ -114,6 +122,20 @@ struct chamelium {
> > > > static struct chamelium *cleanup_instance;
> > >
> > > Why do you make this part of the chamelium configuration? This should be
> > > common to all the suspend tests.
> >
> > Fair enough, but at this point, only lib/igt_chamelium.c is using igtrc and
> > all
> > the parsing is implemented there.
> >
> > So one course of action here would be to move igtrc parsing outside of
> > igt_chamelium (maybe to igt_core?) and use some global variable for storing
> > this
> > value. What do you think?
> >
>
> That seems like a plan, except you can just call a function that will do
> the parsing for you and return a structure with all the parameters. If
> it is called a second time, just return the cached value.
Thinking about it twice, I think it would make a lot more sense to delegate (at
least some of) the parsing to specific parts of the code. For instance for
chamelium, the data structures are really only defined in igt_chamelium and I
don't think it would make a lot of sense to make those common just for the sake
of returning a common configuration structure. We could also have some
intermediate representation of that data for that structure, which isn't very
straightforward either.
So I would suggest making GKeyFile *igt_key_file; a global (instead of the
parsed parameters) so that specific parts of IGT can use it to get the keys they
want.
Then, having a common parsing function for common things (suspend/resume delay
would fit well there). Also, we already have igt_set_autoresume_delay so no
extra global variable would be needed for that (or rather, it already exists).
Does that seem agreeable?
--
Paul Kocialkowski <paul.kocialkowski at linux.intel.com>
Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo
More information about the Intel-gfx
mailing list