camsys_drv: v0.0x13.0

This commit is contained in:
ddl
2014-08-13 15:19:21 +08:00
parent f17795c900
commit 3fc7712fef
4 changed files with 33 additions and 5 deletions

View File

@@ -167,7 +167,7 @@ static int camsys_extdev_register(camsys_devio_name_t *devio, camsys_dev_t *cams
extdev = camsys_find_extdev(devio->dev_id, camsys_dev);
if (extdev != NULL) {
err = 0;
err = -EINVAL; /* ddl@rock-chips.com: v0.0x13.0 */
camsys_warn("Extdev(dev_id: 0x%x) has been registered in %s!",
devio->dev_id, dev_name(camsys_dev->miscdev.this_device));
goto end;
@@ -467,7 +467,9 @@ static int camsys_irq_connect(camsys_irqcnnt_t *irqcnnt, camsys_dev_t *camsys_de
if ((irqcnnt->mis != MRV_ISP_MIS) &&
(irqcnnt->mis != MRV_MIPI_MIS) &&
(irqcnnt->mis != MRV_MI_MIS)) {
(irqcnnt->mis != MRV_MI_MIS) &&
(irqcnnt->mis != MRV_JPG_MIS) &&
(irqcnnt->mis != MRV_JPG_ERR_MIS)) {
camsys_err("this thread(pid: %d) irqcnnt->mis(0x%x) is invalidate, irq connect failed!",
irqcnnt->pid, irqcnnt->mis);

View File

@@ -92,8 +92,11 @@
1) raise qos of isp up to the same as lcdc.
*v0.0x12.0:
1) support iommu.
*v0.0x13.0:
1) camsys_extdev_register return failed when this dev_id has been registered;
2) add support JPG irq connect;
*/
#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0x12,0)
#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0x13,0)
#define CAMSYS_PLATFORM_DRV_NAME "RockChip-CamSys"

View File

@@ -400,13 +400,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 +423,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 +450,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);

View File

@@ -30,6 +30,14 @@
#define MRV_FLASH_CONFIG (0x664)
#define MRV_JPG_BASE (0x1800)
#define MRV_JPG_ERR_RIS (MRV_JPG_BASE+0x6C)
#define MRV_JPG_ERR_MIS (MRV_JPG_BASE+0x70)
#define MRV_JPG_ERR_ICR (MRV_JPG_BASE+0x74)
#define MRV_JPG_MIS (MRV_JPG_BASE+0x84)
#define MRV_JPG_RIS (MRV_JPG_BASE+0x80)
#define MRV_JPG_ICR (MRV_JPG_BASE+0x88)
typedef enum IO_USE_TYPE_e{
USE_AS_GPIO,
USE_AS_ISP_INTERNAL,