disp: msm: replace msm_smmu_set_attribute with qcom_iommu_enable_s1_translations
Domain attributes has been deprecated on 5.14 kernel, so replace msm_smmu_set_attribute with qcom_iommu_enable_s1_translations. Change-Id: I1bf2d5ee089a418eb73605327e82b2e26bd6bada Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
6a3c793980
commit
8f074719a5
@@ -50,8 +50,7 @@ struct msm_mmu_funcs {
|
|||||||
int dir, u32 flags);
|
int dir, u32 flags);
|
||||||
void (*destroy)(struct msm_mmu *mmu);
|
void (*destroy)(struct msm_mmu *mmu);
|
||||||
bool (*is_domain_secure)(struct msm_mmu *mmu);
|
bool (*is_domain_secure)(struct msm_mmu *mmu);
|
||||||
int (*set_attribute)(struct msm_mmu *mmu,
|
int (*enable_smmu_translations)(struct msm_mmu *mmu);
|
||||||
enum iommu_attr attr, void *data);
|
|
||||||
int (*one_to_one_map)(struct msm_mmu *mmu, uint32_t iova,
|
int (*one_to_one_map)(struct msm_mmu *mmu, uint32_t iova,
|
||||||
uint32_t dest_address, uint32_t size, int prot);
|
uint32_t dest_address, uint32_t size, int prot);
|
||||||
int (*one_to_one_unmap)(struct msm_mmu *mmu, uint32_t dest_address,
|
int (*one_to_one_unmap)(struct msm_mmu *mmu, uint32_t dest_address,
|
||||||
|
@@ -129,8 +129,7 @@ static void msm_smmu_detach(struct msm_mmu *mmu, const char * const *names,
|
|||||||
dev_dbg(client->dev, "iommu domain detached\n");
|
dev_dbg(client->dev, "iommu domain detached\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int msm_smmu_set_attribute(struct msm_mmu *mmu,
|
static int msm_enable_smmu_translations(struct msm_mmu *mmu)
|
||||||
enum iommu_attr attr, void *data)
|
|
||||||
{
|
{
|
||||||
struct msm_smmu *smmu = to_msm_smmu(mmu);
|
struct msm_smmu *smmu = to_msm_smmu(mmu);
|
||||||
struct msm_smmu_client *client = msm_smmu_to_client(smmu);
|
struct msm_smmu_client *client = msm_smmu_to_client(smmu);
|
||||||
@@ -139,9 +138,9 @@ static int msm_smmu_set_attribute(struct msm_mmu *mmu,
|
|||||||
if (!client || !client->domain)
|
if (!client || !client->domain)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
ret = iommu_domain_set_attr(client->domain, attr, data);
|
ret = qcom_iommu_enable_s1_translation(client->domain);
|
||||||
if (ret)
|
if (ret)
|
||||||
DRM_ERROR("set domain attribute failed:%d\n", ret);
|
DRM_ERROR("enable iommu s1 translations failed:%d\n", ret);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -307,7 +306,7 @@ static const struct msm_mmu_funcs funcs = {
|
|||||||
.unmap_dma_buf = msm_smmu_unmap_dma_buf,
|
.unmap_dma_buf = msm_smmu_unmap_dma_buf,
|
||||||
.destroy = msm_smmu_destroy,
|
.destroy = msm_smmu_destroy,
|
||||||
.is_domain_secure = msm_smmu_is_domain_secure,
|
.is_domain_secure = msm_smmu_is_domain_secure,
|
||||||
.set_attribute = msm_smmu_set_attribute,
|
.enable_smmu_translations = msm_enable_smmu_translations,
|
||||||
.one_to_one_map = msm_smmu_one_to_one_map,
|
.one_to_one_map = msm_smmu_one_to_one_map,
|
||||||
.one_to_one_unmap = msm_smmu_one_to_one_unmap,
|
.one_to_one_unmap = msm_smmu_one_to_one_unmap,
|
||||||
.get_dev = msm_smmu_get_dev,
|
.get_dev = msm_smmu_get_dev,
|
||||||
|
@@ -4063,7 +4063,6 @@ static int _sde_kms_mmu_init(struct sde_kms *sde_kms)
|
|||||||
{
|
{
|
||||||
struct msm_mmu *mmu;
|
struct msm_mmu *mmu;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
int early_map = 0;
|
|
||||||
|
|
||||||
if (!sde_kms || !sde_kms->dev || !sde_kms->dev->dev)
|
if (!sde_kms || !sde_kms->dev || !sde_kms->dev->dev)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -4096,7 +4095,7 @@ static int _sde_kms_mmu_init(struct sde_kms *sde_kms)
|
|||||||
ret = _sde_kms_map_all_splash_regions(sde_kms);
|
ret = _sde_kms_map_all_splash_regions(sde_kms);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
SDE_ERROR("failed to map ret:%d\n", ret);
|
SDE_ERROR("failed to map ret:%d\n", ret);
|
||||||
goto early_map_fail;
|
goto enable_trans_fail;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4104,12 +4103,10 @@ static int _sde_kms_mmu_init(struct sde_kms *sde_kms)
|
|||||||
* disable early-map which would have been enabled during
|
* disable early-map which would have been enabled during
|
||||||
* bootup by smmu through the device-tree hint for cont-spash
|
* bootup by smmu through the device-tree hint for cont-spash
|
||||||
*/
|
*/
|
||||||
ret = mmu->funcs->set_attribute(mmu, DOMAIN_ATTR_EARLY_MAP,
|
ret = mmu->funcs->enable_smmu_translations(mmu);
|
||||||
&early_map);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
SDE_ERROR("failed to set_att ret:%d, early_map:%d\n",
|
SDE_ERROR("failed to enable_s1_translations ret:%d\n", ret);
|
||||||
ret, early_map);
|
goto enable_trans_fail;
|
||||||
goto early_map_fail;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4117,7 +4114,7 @@ static int _sde_kms_mmu_init(struct sde_kms *sde_kms)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
early_map_fail:
|
enable_trans_fail:
|
||||||
_sde_kms_unmap_all_splash_regions(sde_kms);
|
_sde_kms_unmap_all_splash_regions(sde_kms);
|
||||||
fail:
|
fail:
|
||||||
_sde_kms_mmu_destroy(sde_kms);
|
_sde_kms_mmu_destroy(sde_kms);
|
||||||
|
Reference in New Issue
Block a user