mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
media: rockchip: cif: clear unready subdevice when kernel boot complete
Change-Id: Ib53d8138dce1e9237cf40d776241eaa2ac05f816 Signed-off-by: Hu Kejun <william.hu@rock-chips.com>
This commit is contained in:
@@ -43,6 +43,9 @@ MODULE_PARM_DESC(version, "version number");
|
||||
|
||||
int using_pingpong;
|
||||
|
||||
static DEFINE_MUTEX(rkcif_dev_mutex);
|
||||
static LIST_HEAD(rkcif_device_list);
|
||||
|
||||
/***************************** media controller *******************************/
|
||||
static int rkcif_create_links(struct rkcif_device *dev)
|
||||
{
|
||||
@@ -632,6 +635,10 @@ static int rkcif_plat_probe(struct platform_device *pdev)
|
||||
|
||||
pm_runtime_enable(&pdev->dev);
|
||||
|
||||
mutex_lock(&rkcif_dev_mutex);
|
||||
list_add_tail(&cif_dev->list, &rkcif_device_list);
|
||||
mutex_unlock(&rkcif_dev_mutex);
|
||||
|
||||
return 0;
|
||||
|
||||
err_unreg_media_dev:
|
||||
@@ -678,6 +685,19 @@ static int __maybe_unused rkcif_runtime_resume(struct device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init rkcif_clr_unready_dev(void)
|
||||
{
|
||||
struct rkcif_device *cif_dev;
|
||||
|
||||
mutex_lock(&rkcif_dev_mutex);
|
||||
list_for_each_entry(cif_dev, &rkcif_device_list, list)
|
||||
v4l2_async_notifier_clr_unready_dev(&cif_dev->notifier);
|
||||
mutex_unlock(&rkcif_dev_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
late_initcall_sync(rkcif_clr_unready_dev);
|
||||
|
||||
static const struct dev_pm_ops rkcif_plat_pm_ops = {
|
||||
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
|
||||
@@ -186,6 +186,7 @@ static inline struct rkcif_stream *to_rkcif_stream(struct video_device *vdev)
|
||||
* @stream: capture video device
|
||||
*/
|
||||
struct rkcif_device {
|
||||
struct list_head list;
|
||||
struct device *dev;
|
||||
int irq;
|
||||
void __iomem *base_addr;
|
||||
|
||||
Reference in New Issue
Block a user