From ea8b3c581a8e4dbb8ff0250c686def8af4e3b16c Mon Sep 17 00:00:00 2001 From: zyc Date: Thu, 3 Apr 2014 16:49:03 +0800 Subject: [PATCH] isp driver: list must be reinit when openning dev. --- drivers/media/video/rk_camsys/camsys_drv.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/media/video/rk_camsys/camsys_drv.c b/drivers/media/video/rk_camsys/camsys_drv.c index 81fa87ce18c5..6f16df4920eb 100755 --- a/drivers/media/video/rk_camsys/camsys_drv.c +++ b/drivers/media/video/rk_camsys/camsys_drv.c @@ -320,7 +320,7 @@ static int camsys_extdev_deregister(unsigned int dev_id, camsys_dev_t *camsys_de } gpio = &extdev->pwrdn; - for (i=0; i<4; i++) { + for (i=0; i<5; i++) { if (gpio->io!=0xffffffff) { gpio_free(gpio->io); } @@ -354,7 +354,7 @@ static int camsys_extdev_deregister(unsigned int dev_id, camsys_dev_t *camsys_de } gpio = &extdev->pwrdn; - for (i=0; i<4; i++) { + for (i=0; i<5; i++) { if (gpio->io!=0xffffffff) { gpio_free(gpio->io); } @@ -709,6 +709,10 @@ static int camsys_open(struct inode *inode, struct file *file) } } spin_unlock(&camsys_devs.lock); + + //zyc add + INIT_LIST_HEAD(&camsys_dev->extdevs.active); + if (file->private_data == NULL) { camsys_err("Cann't find camsys_dev!"); @@ -725,7 +729,7 @@ end: static int camsys_release(struct inode *inode, struct file *file) { camsys_dev_t *camsys_dev = (camsys_dev_t*)file->private_data; - + camsys_irq_disconnect(NULL,camsys_dev, true); camsys_trace(1,"%s(%p) is closed",dev_name(camsys_dev->miscdev.this_device),camsys_dev); -- 2.34.1