drm/i915: abstraction for iosf to compile on all archs
authorMullati, Siva <siva.mullati@intel.com>
Fri, 22 Oct 2021 19:27:56 +0000 (00:57 +0530)
committerLucas De Marchi <lucas.demarchi@intel.com>
Wed, 27 Oct 2021 07:32:01 +0000 (00:32 -0700)
The asm/iosf_mbi.h header is x86-only. Let's make IOSF_MBI kconfig
selection conditional to x86 and provide a header with stubs for other
architectures. This helps getting i915 available for other
architectures in future.

Signed-off-by: Mullati, Siva <siva.mullati@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211022192756.1228354-1-siva.mullati@intel.com
drivers/gpu/drm/i915/Kconfig
drivers/gpu/drm/i915/i915_iosf_mbi.h [new file with mode: 0644]
drivers/gpu/drm/i915/intel_uncore.c
drivers/gpu/drm/i915/vlv_sideband.c

index bf041b26ffec3665fcbbbd93c1e59335fc5fcda4..8bea99622dd580b42e1ee059cad84d2761d2d0e3 100644 (file)
@@ -21,7 +21,7 @@ config DRM_I915
        select ACPI_VIDEO if ACPI
        select ACPI_BUTTON if ACPI
        select SYNC_FILE
-       select IOSF_MBI
+       select IOSF_MBI if X86
        select CRC32
        select SND_HDA_I915 if SND_HDA_CORE
        select CEC_CORE if CEC_NOTIFIER
diff --git a/drivers/gpu/drm/i915/i915_iosf_mbi.h b/drivers/gpu/drm/i915/i915_iosf_mbi.h
new file mode 100644 (file)
index 0000000..8f81b76
--- /dev/null
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2021 Intel Corporation
+ */
+
+#ifndef __I915_IOSF_MBI_H__
+#define __I915_IOSF_MBI_H__
+
+#if IS_ENABLED(CONFIG_IOSF_MBI)
+#include <asm/iosf_mbi.h>
+#else
+
+/* Stubs to compile for all non-x86 archs */
+#define MBI_PMIC_BUS_ACCESS_BEGIN       1
+#define MBI_PMIC_BUS_ACCESS_END         2
+
+struct notifier_block;
+
+static inline void iosf_mbi_punit_acquire(void) {}
+static inline void iosf_mbi_punit_release(void) {}
+static inline void iosf_mbi_assert_punit_acquired(void) {}
+
+static inline
+int iosf_mbi_register_pmic_bus_access_notifier(struct notifier_block *nb)
+{
+       return 0;
+}
+
+static inline int
+iosf_mbi_unregister_pmic_bus_access_notifier_unlocked(struct notifier_block *nb)
+{
+       return 0;
+}
+
+static inline
+int iosf_mbi_unregister_pmic_bus_access_notifier(struct notifier_block *nb)
+{
+       return 0;
+}
+#endif
+
+#endif /* __I915_IOSF_MBI_H__ */
index e072054adac5762abb1649a045aa82d562991f58..722910d02b5fff8c7131732d239812005af84e2e 100644 (file)
  */
 
 #include <linux/pm_runtime.h>
-#include <asm/iosf_mbi.h>
 
 #include "gt/intel_lrc_reg.h" /* for shadow reg list */
 
 #include "i915_drv.h"
+#include "i915_iosf_mbi.h"
 #include "i915_trace.h"
 #include "i915_vgpu.h"
 #include "intel_pm.h"
index 35380738a95183b2980ebca48b7d7d646b61c526..ed2ac5752ac4d146802bf49ddbc1ef63b21b5f07 100644 (file)
@@ -3,9 +3,8 @@
  * Copyright © 2013-2021 Intel Corporation
  */
 
-#include <asm/iosf_mbi.h>
-
 #include "i915_drv.h"
+#include "i915_iosf_mbi.h"
 #include "vlv_sideband.h"
 
 /*