]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/msm: allow compile_test on !ARM
authorChristian König <christian.koenig@amd.com>
Thu, 23 Sep 2021 12:47:57 +0000 (14:47 +0200)
committerChristian König <christian.koenig@amd.com>
Tue, 28 Sep 2021 06:42:00 +0000 (08:42 +0200)
MSM is one of the few drivers which won't even compile
test on !ARM platforms.

Looking into this a bit more it turned out that there is
actually not that much missing to at least let the driver
compile on x86 as well.

So this patch replaces the use of phys_to_page() with the
open coded version and provides a dummy for of_drm_find_bridge().

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210924071759.22659-2-christian.koenig@amd.com
drivers/gpu/drm/msm/Kconfig
drivers/gpu/drm/msm/msm_gem.c
include/drm/drm_bridge.h

index e9c6af78b1d7c340d996f85644a3fbb39d8aa9f9..5879f67bc88c5c23e7aae5f5ab2419332a8b3528 100644 (file)
@@ -3,9 +3,9 @@
 config DRM_MSM
        tristate "MSM DRM"
        depends on DRM
-       depends on ARCH_QCOM || SOC_IMX5 || (ARM && COMPILE_TEST)
+       depends on ARCH_QCOM || SOC_IMX5 || COMPILE_TEST
        depends on IOMMU_SUPPORT
-       depends on OF && COMMON_CLK
+       depends on (OF && COMMON_CLK) || COMPILE_TEST
        depends on QCOM_OCMEM || QCOM_OCMEM=n
        depends on QCOM_LLCC || QCOM_LLCC=n
        depends on QCOM_COMMAND_DB || QCOM_COMMAND_DB=n
index 22308a1b66fc3cab8cc9a847d3a4005eb37aa22d..40a9863f5951c78f4fc4c7e67be37ec7ffece257 100644 (file)
@@ -85,7 +85,7 @@ static struct page **get_pages_vram(struct drm_gem_object *obj, int npages)
 
        paddr = physaddr(obj);
        for (i = 0; i < npages; i++) {
-               p[i] = phys_to_page(paddr);
+               p[i] = pfn_to_page(__phys_to_pfn(paddr));
                paddr += PAGE_SIZE;
        }
 
index 9cdbd209388ed139698b28d4916a652163491aeb..a445298e1c2518343173904f2b4a9946d7059ffc 100644 (file)
@@ -790,11 +790,19 @@ drm_priv_to_bridge(struct drm_private_obj *priv)
 
 void drm_bridge_add(struct drm_bridge *bridge);
 void drm_bridge_remove(struct drm_bridge *bridge);
-struct drm_bridge *of_drm_find_bridge(struct device_node *np);
 int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
                      struct drm_bridge *previous,
                      enum drm_bridge_attach_flags flags);
 
+#ifdef CONFIG_OF
+struct drm_bridge *of_drm_find_bridge(struct device_node *np);
+#else
+static inline struct drm_bridge *of_drm_find_bridge(struct device_node *np)
+{
+       return NULL;
+}
+#endif
+
 /**
  * drm_bridge_get_next_bridge() - Get the next bridge in the chain
  * @bridge: bridge object