[PATCH 2/4] drm/msm: allow compile_test on !ARM

Christian König ckoenig.leichtzumerken at gmail.com
Mon Sep 27 07:01:18 UTC 2021


As long as nobody objects I'm going to push this one here to 
drm-misc-next with Rob's rb.

The other patches still need a bit more work, but being able to at least 
compile test MSM on x86 is really helpful.

Christian.

Am 24.09.21 um 09:17 schrieb Christian König:
> 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 at amd.com>
> ---
>   drivers/gpu/drm/msm/Kconfig   |  4 ++--
>   drivers/gpu/drm/msm/msm_gem.c |  2 +-
>   include/drm/drm_bridge.h      | 10 +++++++++-
>   3 files changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/Kconfig b/drivers/gpu/drm/msm/Kconfig
> index e9c6af78b1d7..5879f67bc88c 100644
> --- a/drivers/gpu/drm/msm/Kconfig
> +++ b/drivers/gpu/drm/msm/Kconfig
> @@ -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
> diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
> index 14907622769f..5bd511f07c07 100644
> --- a/drivers/gpu/drm/msm/msm_gem.c
> +++ b/drivers/gpu/drm/msm/msm_gem.c
> @@ -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;
>   	}
>   
> diff --git a/include/drm/drm_bridge.h b/include/drm/drm_bridge.h
> index 9cdbd209388e..a445298e1c25 100644
> --- a/include/drm/drm_bridge.h
> +++ b/include/drm/drm_bridge.h
> @@ -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



More information about the dri-devel mailing list