diff mbox series

[1/2] drm/msm/mdp4: move iommu_domain_alloc() call close to its usage

Message ID 20220505135008.1351533-2-dmitry.baryshkov@linaro.org (mailing list archive)
State New, archived
Headers show
Series drm/msm/mpd4: get rid of struct mdp4_platform_config | expand

Commit Message

Dmitry Baryshkov May 5, 2022, 1:50 p.m. UTC
Move iommu_domain_alloc() in front of adress space/IOMMU initialization.
This allows us to drop it from struct mdp4_cfg_platform which
remained from the pre-DT days.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 8 ++++----
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 1 -
 2 files changed, 4 insertions(+), 5 deletions(-)

Comments

Abhinav Kumar June 16, 2022, 6:36 a.m. UTC | #1
On 5/5/2022 6:50 AM, Dmitry Baryshkov wrote:
> Move iommu_domain_alloc() in front of adress space/IOMMU initialization.
> This allows us to drop it from struct mdp4_cfg_platform which
> remained from the pre-DT days.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> ---
>   drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 8 ++++----
>   drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 1 -
>   2 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
> index fb48c8c19ec3..1fba6ab06eb1 100644
> --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
> +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
> @@ -388,6 +388,7 @@ static int mdp4_kms_init(struct drm_device *dev)
>   	struct msm_drm_private *priv = dev->dev_private;
>   	struct mdp4_kms *mdp4_kms;
>   	struct msm_kms *kms = NULL;
> +	struct iommu_domain *iommu;
>   	struct msm_gem_address_space *aspace;
>   	int irq, ret;
>   	u32 major, minor;
> @@ -495,9 +496,9 @@ static int mdp4_kms_init(struct drm_device *dev)
>   	mdp4_disable(mdp4_kms);
>   	mdelay(16);
>   
> -	if (config->iommu) {
> -		struct msm_mmu *mmu = msm_iommu_new(&pdev->dev,
> -			config->iommu);
> +	iommu = iommu_domain_alloc(pdev->dev.bus);
> +	if (iommu) {
> +		struct msm_mmu *mmu = msm_iommu_new(&pdev->dev, iommu);
>   
>   		aspace  = msm_gem_address_space_create(mmu,
>   			"mdp4", 0x1000, 0x100000000 - 0x1000);
> @@ -557,7 +558,6 @@ static struct mdp4_platform_config *mdp4_get_config(struct platform_device *dev)
>   
>   	/* TODO: Chips that aren't apq8064 have a 200 Mhz max_clk */
>   	config.max_clk = 266667000;
> -	config.iommu = iommu_domain_alloc(&platform_bus_type);
>   
>   	return &config;
>   }
> diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h
> index e8ee92ab7956..7cc549b6a82b 100644
> --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h
> +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h
> @@ -44,7 +44,6 @@ struct mdp4_kms {
>   
>   /* platform config data (ie. from DT, or pdata) */
>   struct mdp4_platform_config {
> -	struct iommu_domain *iommu;
>   	uint32_t max_clk;
>   };
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
index fb48c8c19ec3..1fba6ab06eb1 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c
@@ -388,6 +388,7 @@  static int mdp4_kms_init(struct drm_device *dev)
 	struct msm_drm_private *priv = dev->dev_private;
 	struct mdp4_kms *mdp4_kms;
 	struct msm_kms *kms = NULL;
+	struct iommu_domain *iommu;
 	struct msm_gem_address_space *aspace;
 	int irq, ret;
 	u32 major, minor;
@@ -495,9 +496,9 @@  static int mdp4_kms_init(struct drm_device *dev)
 	mdp4_disable(mdp4_kms);
 	mdelay(16);
 
-	if (config->iommu) {
-		struct msm_mmu *mmu = msm_iommu_new(&pdev->dev,
-			config->iommu);
+	iommu = iommu_domain_alloc(pdev->dev.bus);
+	if (iommu) {
+		struct msm_mmu *mmu = msm_iommu_new(&pdev->dev, iommu);
 
 		aspace  = msm_gem_address_space_create(mmu,
 			"mdp4", 0x1000, 0x100000000 - 0x1000);
@@ -557,7 +558,6 @@  static struct mdp4_platform_config *mdp4_get_config(struct platform_device *dev)
 
 	/* TODO: Chips that aren't apq8064 have a 200 Mhz max_clk */
 	config.max_clk = 266667000;
-	config.iommu = iommu_domain_alloc(&platform_bus_type);
 
 	return &config;
 }
diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h
index e8ee92ab7956..7cc549b6a82b 100644
--- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h
+++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h
@@ -44,7 +44,6 @@  struct mdp4_kms {
 
 /* platform config data (ie. from DT, or pdata) */
 struct mdp4_platform_config {
-	struct iommu_domain *iommu;
 	uint32_t max_clk;
 };