X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=drivers%2Fmedia%2Fvideo%2Frk_camsys%2Fcamsys_marvin.c;h=c6a61d8b7317e048aa638fc52e55f08a34a4f932;hb=651397146e4137ab694eb74d6852b97a69fda3cf;hp=c05ebd6d298befd3c647255970e4aa3b5f380648;hpb=68fe6924d38d1df6042a59acb04d6bfc8669e0d8;p=firefly-linux-kernel-4.4.55.git diff --git a/drivers/media/video/rk_camsys/camsys_marvin.c b/drivers/media/video/rk_camsys/camsys_marvin.c index c05ebd6d298b..c6a61d8b7317 100755 --- a/drivers/media/video/rk_camsys/camsys_marvin.c +++ b/drivers/media/video/rk_camsys/camsys_marvin.c @@ -246,7 +246,6 @@ static int camsys_mrv_iommu_cb(void *ptr,camsys_sysctrl_t *devctl) ret = -1; goto iommu_end; } - iommu_dev = rockchip_get_sysmmu_device_by_compatible(ISP_IOMMU_COMPATIBLE_NAME); if(!iommu_dev){ camsys_err("get iommu device erro!\n"); @@ -400,13 +399,14 @@ static irqreturn_t camsys_mrv_irq(int irq, void *data) camsys_dev_t *camsys_dev = (camsys_dev_t*)data; camsys_irqstas_t *irqsta; camsys_irqpool_t *irqpool; - unsigned int isp_mis,mipi_mis,mi_mis,*mis; + unsigned int isp_mis,mipi_mis,mi_mis,*mis,jpg_mis,jpg_err_mis; unsigned int mi_ris,mi_imis; isp_mis = __raw_readl((void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_ISP_MIS)); mipi_mis = __raw_readl((void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_MIPI_MIS)); - + jpg_mis = __raw_readl((void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_JPG_MIS)); + jpg_err_mis = __raw_readl((void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_JPG_ERR_MIS)); mi_mis = __raw_readl((void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_MI_MIS)); #if 1 mi_ris = __raw_readl((void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_MI_RIS)); @@ -422,6 +422,8 @@ static irqreturn_t camsys_mrv_irq(int irq, void *data) __raw_writel(isp_mis, (void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_ISP_ICR)); __raw_writel(mipi_mis, (void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_MIPI_ICR)); + __raw_writel(jpg_mis, (void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_JPG_ICR)); + __raw_writel(jpg_err_mis, (void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_JPG_ERR_ICR)); __raw_writel(mi_mis, (void volatile *)(camsys_dev->devmems.registermem->vir_base + MRV_MI_ICR)); spin_lock(&camsys_dev->irq.lock); @@ -447,6 +449,18 @@ static irqreturn_t camsys_mrv_irq(int irq, void *data) break; } + case MRV_JPG_MIS: + { + mis = &jpg_mis; + break; + } + + case MRV_JPG_ERR_MIS: + { + mis = &jpg_err_mis; + break; + } + default: { camsys_trace(2,"Thread(pid:%d) irqpool mis(%d) is invalidate",irqpool->pid,irqpool->mis);