[igt-dev] [PATCH i-g-t v1 1/6] [intel-gfx] lib/igt_pm : Moves Dmc_loaded() function into library. Because it will be used by new test pm_dc.c which will validate Display C States.

Imre Deak imre.deak at intel.com
Tue Oct 2 13:11:37 UTC 2018


On Wed, Sep 26, 2018 at 11:59:18AM -0400, Jyoti Yadav wrote:

Please use a tag format for the one line description like
lib/igt_pm:
(so no space before :), and always provide a longer description
in the message body. I guess it got mangled into your message
subject due to a missing new line.

Any reason you sent this to the intel-gfx list too? For IGT patches I'd
use only the IGT ML.

> Signed-off-by: Jyoti Yadav <jyoti.r.yadav at intel.com>
> ---
>  lib/igt_pm.c   | 29 +++++++++++++++++++++++++++++
>  lib/igt_pm.h   |  1 +
>  tests/pm_rpm.c | 17 +----------------
>  3 files changed, 31 insertions(+), 16 deletions(-)
> 
> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> index 4902723..ae87ab4 100644
> --- a/lib/igt_pm.c
> +++ b/lib/igt_pm.c
> @@ -38,6 +38,7 @@
>  #include "drmtest.h"
>  #include "igt_pm.h"
>  #include "igt_aux.h"
> +#include "igt_sysfs.h"
>  
>  /**
>   * SECTION:igt_pm
> @@ -620,3 +621,31 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
>  {
>  	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
>  }
> +
> +/**
> + * dmc_loaded:
> + * @debugfs : indicator that debugfs dir /sys/kerenl/debug/dri/0/i915 is
> + * available or not.

It's an fd to the debugfs dir.

> +
> + * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
> + * states like DC5 and DC6. FW does the Context Save and Restore during Display
> + * C States entry and exit.
> + *
> + * Returns:
> + * True if DMC FW is loaded otherwise false.
> + */
> +bool dmc_loaded(int debugfs)

Missing igt_pm_ prefix.

> +{
> +	igt_require(debugfs != -1);
> +	char buf[15];
> +	int len;
> +
> +	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
> +	if (len < 0)
> +		return true; /* no CSR support, no DMC requirement */
> +
> +	buf[len] = '\0';
> +
> +	igt_info("DMC: %s\n", buf);

igt_debug() seems more proper for a lib function.

> +	return strstr(buf, "fw loaded: yes");
> +}
> diff --git a/lib/igt_pm.h b/lib/igt_pm.h
> index 10cc679..b4a98aa 100644
> --- a/lib/igt_pm.h
> +++ b/lib/igt_pm.h
> @@ -50,5 +50,6 @@ bool igt_setup_runtime_pm(void);
>  void igt_restore_runtime_pm(void);
>  enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
>  bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
> +bool dmc_loaded(int debugfs);
>  
>  #endif /* IGT_PM_H */
> diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c
> index c24fd95..ebb624b 100644
> --- a/tests/pm_rpm.c
> +++ b/tests/pm_rpm.c
> @@ -693,21 +693,6 @@ static void setup_pc8(void)
>  	has_pc8 = true;
>  }
>  
> -static bool dmc_loaded(void)
> -{
> -	char buf[15];
> -	int len;
> -
> -	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
> -	if (len < 0)
> -	    return true; /* no CSR support, no DMC requirement */
> -
> -	buf[len] = '\0';
> -
> -	igt_info("DMC: %s\n", buf);
> -	return strstr(buf, "fw loaded: yes");
> -}
> -
>  static bool setup_environment(void)
>  {
>  	if (has_runtime_pm)
> @@ -730,7 +715,7 @@ static bool setup_environment(void)
>  	igt_info("Runtime PM support: %d\n", has_runtime_pm);
>  	igt_info("PC8 residency support: %d\n", has_pc8);
>  	igt_require(has_runtime_pm);
> -	igt_require(dmc_loaded());
> +	igt_require(dmc_loaded(debugfs));
>  
>  out:
>  	disable_all_screens(&ms_data);
> -- 
> 2.7.4
> 


More information about the igt-dev mailing list