Merge "msm: camera: smmu: Fix the smmu create_handle function" into camera-kernel.lnx.4.0
This commit is contained in:

gecommit door
Gerrit - the friendly Code Review server

commit
3da4013942
@@ -218,7 +218,7 @@ static struct cam_iommu_cb_set iommu_cb_set;
|
||||
static enum dma_data_direction cam_smmu_translate_dir(
|
||||
enum cam_smmu_map_dir dir);
|
||||
|
||||
static int cam_smmu_check_handle_unique(int hdl);
|
||||
static bool cam_smmu_is_hdl_nonunique_or_null(int hdl);
|
||||
|
||||
static int cam_smmu_create_iommu_handle(int idx);
|
||||
|
||||
@@ -810,13 +810,12 @@ void cam_smmu_reset_iommu_table(enum cam_smmu_init_dir ops)
|
||||
}
|
||||
}
|
||||
|
||||
static int cam_smmu_check_handle_unique(int hdl)
|
||||
static bool cam_smmu_is_hdl_nonunique_or_null(int hdl)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (hdl == HANDLE_INIT) {
|
||||
CAM_DBG(CAM_SMMU,
|
||||
"iommu handle is init number. Need to try again");
|
||||
if ((hdl == HANDLE_INIT) || (!hdl)) {
|
||||
CAM_DBG(CAM_SMMU, "iommu handle: %d is not valid", hdl);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -876,11 +875,12 @@ static int cam_smmu_create_add_handle_in_table(char *name,
|
||||
|
||||
if (iommu_cb_set.cb_info[i].handle == HANDLE_INIT) {
|
||||
mutex_lock(&iommu_cb_set.cb_info[i].lock);
|
||||
/* make sure handle is unique */
|
||||
/* make sure handle is unique and non-zero*/
|
||||
do {
|
||||
handle =
|
||||
cam_smmu_create_iommu_handle(i);
|
||||
} while (cam_smmu_check_handle_unique(handle));
|
||||
} while (cam_smmu_is_hdl_nonunique_or_null(
|
||||
handle));
|
||||
|
||||
/* put handle in the table */
|
||||
iommu_cb_set.cb_info[i].handle = handle;
|
||||
|
Verwijs in nieuw issue
Block a user