From: zyc Date: Thu, 3 Apr 2014 08:49:03 +0000 (+0800) Subject: isp driver: list must be reinit when openning dev. X-Git-Tag: firefly_0821_release~5623 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ea8b3c581a8e4dbb8ff0250c686def8af4e3b16c;p=firefly-linux-kernel-4.4.55.git isp driver: list must be reinit when openning dev. --- 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);