msm: camera: smmu: Moves custom smmu API's to cam_compat
Moves custom smmu API's to cam_compat as some of them are legacy and will not be supported in newer kernel versions. CRs-Fixed: 3048249 Change-Id: Ic9db5d9d295eb02e8bd2d593721b65e30d605f72 Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
This commit is contained in:
@@ -3863,10 +3863,8 @@ static int cam_smmu_setup_cb(struct cam_context_bank_info *cb,
|
|||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
iommu_dma_enable_best_fit_algo(dev);
|
/* Enable custom iommu features, if applicable */
|
||||||
|
cam_smmu_util_iommu_custom(dev, cb->discard_iova_start,
|
||||||
if (cb->discard_iova_start)
|
|
||||||
iommu_dma_reserve_iova(dev, cb->discard_iova_start,
|
|
||||||
cb->discard_iova_len);
|
cb->discard_iova_len);
|
||||||
|
|
||||||
cb->state = CAM_SMMU_ATTACH;
|
cb->state = CAM_SMMU_ATTACH;
|
||||||
|
@@ -294,6 +294,12 @@ static int inline cam_subdev_list_cmp(struct cam_subdev *entry_1, struct cam_sub
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
|
||||||
|
void cam_smmu_util_iommu_custom(struct device *dev,
|
||||||
|
dma_addr_t discard_start, size_t discard_length)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int cam_req_mgr_ordered_list_cmp(void *priv,
|
int cam_req_mgr_ordered_list_cmp(void *priv,
|
||||||
const struct list_head *head_1, const struct list_head *head_2)
|
const struct list_head *head_1, const struct list_head *head_2)
|
||||||
{
|
{
|
||||||
@@ -323,6 +329,17 @@ int cam_get_ddr_type(void)
|
|||||||
return DDR_TYPE_LPDDR5;
|
return DDR_TYPE_LPDDR5;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
void cam_smmu_util_iommu_custom(struct device *dev,
|
||||||
|
dma_addr_t discard_start, size_t discard_length)
|
||||||
|
{
|
||||||
|
iommu_dma_enable_best_fit_algo(dev);
|
||||||
|
|
||||||
|
if (discard_start)
|
||||||
|
iommu_dma_reserve_iova(dev, discard_start, discard_length);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int cam_req_mgr_ordered_list_cmp(void *priv,
|
int cam_req_mgr_ordered_list_cmp(void *priv,
|
||||||
struct list_head *head_1, struct list_head *head_2)
|
struct list_head *head_1, struct list_head *head_2)
|
||||||
{
|
{
|
||||||
|
@@ -12,6 +12,7 @@
|
|||||||
#include <linux/iommu.h>
|
#include <linux/iommu.h>
|
||||||
#include <linux/qcom_scm.h>
|
#include <linux/qcom_scm.h>
|
||||||
#include <linux/list_sort.h>
|
#include <linux/list_sort.h>
|
||||||
|
#include <linux/dma-iommu.h>
|
||||||
|
|
||||||
#include "cam_csiphy_dev.h"
|
#include "cam_csiphy_dev.h"
|
||||||
#include "cam_cpastop_hw.h"
|
#include "cam_cpastop_hw.h"
|
||||||
@@ -48,6 +49,8 @@ void cam_check_iommu_faults(struct iommu_domain *domain,
|
|||||||
struct cam_smmu_pf_info *pf_info);
|
struct cam_smmu_pf_info *pf_info);
|
||||||
int cam_get_ddr_type(void);
|
int cam_get_ddr_type(void);
|
||||||
int cam_compat_util_get_dmabuf_va(struct dma_buf *dmabuf, uintptr_t *vaddr);
|
int cam_compat_util_get_dmabuf_va(struct dma_buf *dmabuf, uintptr_t *vaddr);
|
||||||
|
void cam_smmu_util_iommu_custom(struct device *dev,
|
||||||
|
dma_addr_t discard_start, size_t discard_length);
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0)
|
||||||
int cam_req_mgr_ordered_list_cmp(void *priv,
|
int cam_req_mgr_ordered_list_cmp(void *priv,
|
||||||
|
Reference in New Issue
Block a user