mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
camsys_drv: v0.0x13.0
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user