mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
camsys_drv: v0.0x17.0
This commit is contained in:
@@ -1263,7 +1263,7 @@
|
||||
rockchip,isp,cifphy = <1>;
|
||||
rockchip,isp,mipiphy1,reg = <0xff968000 0x4000>;
|
||||
rockchip,gpios = <&gpio7 GPIO_B5 GPIO_ACTIVE_HIGH>;
|
||||
rockchip,isp,iommu_enable = <0>;
|
||||
rockchip,isp,iommu_enable = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
@@ -790,8 +790,17 @@ static long camsys_ioctl(struct file *filp,unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
int iommu_enabled = 0;
|
||||
#ifdef CONFIG_ROCKCHIP_IOMMU
|
||||
//of_property_read_u32(camsys_dev->pdev->dev.of_node, "rockchip,isp,iommu_enable", &iommu_enabled);
|
||||
iommu_enabled = 1;
|
||||
struct device_node * vpu_node =NULL;
|
||||
int vpu_iommu_enabled = 0;
|
||||
vpu_node = of_find_compatible_node(NULL,NULL, "vpu_service");
|
||||
if(vpu_node){
|
||||
of_property_read_u32(vpu_node, "iommu_enabled", &vpu_iommu_enabled);
|
||||
of_property_read_u32(camsys_dev->pdev->dev.of_node, "rockchip,isp,iommu_enable", &iommu_enabled);
|
||||
if(iommu_enabled != vpu_iommu_enabled){
|
||||
camsys_err("iommu status not consistent,check the dts file ! isp:%d,vpu:%d",iommu_enabled,vpu_iommu_enabled);
|
||||
return -EFAULT;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (copy_to_user((void __user *)arg,(void*)&iommu_enabled, sizeof(iommu_enabled)))
|
||||
return -EFAULT;
|
||||
@@ -1036,7 +1045,6 @@ static int camsys_platform_probe(struct platform_device *pdev){
|
||||
goto fail_end;
|
||||
}
|
||||
|
||||
|
||||
//map irqs
|
||||
irq_id = irq_of_parse_and_map(dev->of_node, 0);
|
||||
if (irq_id < 0) {
|
||||
|
||||
@@ -101,8 +101,10 @@
|
||||
1) check extdev name when dev_id has been registered;
|
||||
*v0.0x16.0:
|
||||
1) enable or disable IOMMU just depending on CONFIG_ROCKCHIP_IOMMU.
|
||||
*v0.0x17.0:
|
||||
1) isp iommu status depend on vpu iommu status.
|
||||
*/
|
||||
#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0x16,0)
|
||||
#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0x17,0)
|
||||
|
||||
|
||||
#define CAMSYS_PLATFORM_DRV_NAME "RockChip-CamSys"
|
||||
|
||||
@@ -237,17 +237,15 @@ static int camsys_mrv_iommu_cb(void *ptr,camsys_sysctrl_t *devctl)
|
||||
struct ion_client *client = NULL;
|
||||
struct ion_handle *handle = NULL;
|
||||
camsys_iommu_t *iommu = NULL;
|
||||
int ret = 0;
|
||||
int ret = 0,iommu_enabled = 0;
|
||||
camsys_dev_t * camsys_dev = (camsys_dev_t *)ptr;
|
||||
|
||||
#if 0
|
||||
of_property_read_u32(camsys_dev->pdev->dev.of_node, "rockchip,isp,iommu_enable", &iommu_enabled);
|
||||
if(iommu_enabled != 1){
|
||||
camsys_err("isp iommu have not been enabled!\n");
|
||||
ret = -1;
|
||||
goto iommu_end;
|
||||
}
|
||||
#endif
|
||||
iommu_dev = rockchip_get_sysmmu_device_by_compatible(ISP_IOMMU_COMPATIBLE_NAME);
|
||||
if(!iommu_dev){
|
||||
camsys_err("get iommu device erro!\n");
|
||||
|
||||
Reference in New Issue
Block a user