Hwmon reads the energy/power consumed by discrete soc,
i.e. energy/power includes the power drawn from non-gfx discrete
components

This test uses the power consumed by GT to validate RC6
power consumption.
Skip comparison of power for discrete graphics

TODO : measure power of GT in discrete graphics and modify the
condition

v2: update commit message (Anshuman)

Signed-off-by: Riana Tauro <riana.ta...@intel.com>
Reviewed-by: Anshuman Gupta <anshuman.gu...@intel.com>
---
 drivers/gpu/drm/i915/gt/selftest_rc6.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/selftest_rc6.c 
b/drivers/gpu/drm/i915/gt/selftest_rc6.c
index 682f2fe67b3a..47165f490449 100644
--- a/drivers/gpu/drm/i915/gt/selftest_rc6.c
+++ b/drivers/gpu/drm/i915/gt/selftest_rc6.c
@@ -107,7 +107,15 @@ int live_rc6_manual(void *arg)
                                      ktime_to_ns(dt));
                pr_info("GPU consumed %llduW in RC0 and %llduW in RC6\n",
                        rc0_power, rc6_power);
-               if (2 * rc6_power > rc0_power) {
+
+               /*
+                * Condition valid for integrated graphics
+                * On discrete graphics, hwwmon reads the energy/power from
+                * discrete SOC that includes non-gfx components.
+                * TODO : Measure power of GT for discrete graphics and
+                * modify the condition
+                */
+               if (!IS_DGFX(gt->i915) && (2 * rc6_power > rc0_power)) {
                        pr_err("GPU leaked energy while in RC6!\n");
                        err = -EINVAL;
                        goto out_unlock;
-- 
2.40.0

Reply via email to