Subject: linux-next: build failure after merge of the i2c tree

From: Stephen Rothwell <[email-masked]>
Date: Tue, 1 Jun 2021 10:32:50 +1000

Hi all,

After merging the i2c tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

In file included from drivers/gpu/drm/i915/i915_gem.c:1250:
drivers/gpu/drm/i915/selftests/i915_gem.c:97:13: error: conflicting types for 'pm_suspend'
   97 | static void pm_suspend(struct drm_i915_private *i915)
      |             ^~~~~~~~~~
In file included from include/linux/regulator/consumer.h:35,
                 from include/linux/i2c.h:18,
                 from drivers/gpu/drm/i915/i915_drv.h:39,
                 from drivers/gpu/drm/i915/gt/intel_context.h:14,
                 from drivers/gpu/drm/i915/gem/i915_gem_context.h:12,
                 from drivers/gpu/drm/i915/i915_gem.c:44:
include/linux/suspend.h:331:12: note: previous declaration of 'pm_suspend' was here
  331 | extern int pm_suspend(suspend_state_t state);
      |            ^~~~~~~~~~

Caused by commit

  5a7b95fb993e ("i2c: core: support bus regulator controlling in adapter")

interacting with commit

  3f51b7e1f36a ("drm/i915/selftests: Add a simple exerciser for suspend/hibernate")

from Linus' tree (v4.20-rc1)

I have added the following merge fix patch:

From: Stephen Rothwell <[email-masked]>
Date: Tue, 1 Jun 2021 10:25:49 +1000
Subject: [PATCH] drm/i915/selftests: Avoid name clash with pm_ global functions

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 drivers/gpu/drm/i915/selftests/i915_gem.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/selftests/i915_gem.c b/drivers/gpu/drm/i915/selftests/i915_gem.c
index dc394fb7ccfa..5d674708b047 100644
--- a/drivers/gpu/drm/i915/selftests/i915_gem.c
+++ b/drivers/gpu/drm/i915/selftests/i915_gem.c
@@ -87,14 +87,14 @@ static void simulate_hibernate(struct drm_i915_private *i915)
 	intel_runtime_pm_put(&i915->runtime_pm, wakeref);
 }
 
-static int pm_prepare(struct drm_i915_private *i915)
+static int test_pm_prepare(struct drm_i915_private *i915)
 {
 	i915_gem_suspend(i915);
 
 	return 0;
 }
 
-static void pm_suspend(struct drm_i915_private *i915)
+static void test_pm_suspend(struct drm_i915_private *i915)
 {
 	intel_wakeref_t wakeref;
 
@@ -104,7 +104,7 @@ static void pm_suspend(struct drm_i915_private *i915)
 	}
 }
 
-static void pm_hibernate(struct drm_i915_private *i915)
+static void test_pm_hibernate(struct drm_i915_private *i915)
 {
 	intel_wakeref_t wakeref;
 
@@ -116,7 +116,7 @@ static void pm_hibernate(struct drm_i915_private *i915)
 	}
 }
 
-static void pm_resume(struct drm_i915_private *i915)
+static void test_pm_resume(struct drm_i915_private *i915)
 {
 	intel_wakeref_t wakeref;
 
@@ -148,16 +148,16 @@ static int igt_gem_suspend(void *arg)
 	if (err)
 		goto out;
 
-	err = pm_prepare(i915);
+	err = test_pm_prepare(i915);
 	if (err)
 		goto out;
 
-	pm_suspend(i915);
+	test_pm_suspend(i915);
 
 	/* Here be dragons! Note that with S3RST any S3 may become S4! */
 	simulate_hibernate(i915);
 
-	pm_resume(i915);
+	test_pm_resume(i915);
 
 	err = switch_to_context(ctx);
 out:
@@ -183,16 +183,16 @@ static int igt_gem_hibernate(void *arg)
 	if (err)
 		goto out;
 
-	err = pm_prepare(i915);
+	err = test_pm_prepare(i915);
 	if (err)
 		goto out;
 
-	pm_hibernate(i915);
+	test_pm_hibernate(i915);
 
 	/* Here be dragons! */
 	simulate_hibernate(i915);
 
-	pm_resume(i915);
+	test_pm_resume(i915);
 
 	err = switch_to_context(ctx);
 out:
-- 
2.30.2

-- 
Cheers,
Stephen Rothwell