[media] s5p-mfc: Remove deprecated create_singlethread_workqueue
alloc_workqueue replaces deprecated create_singlethread_workqueue(). The MFC device driver is a v4l2 driver which can encode/decode video raw/elementary streams and has support for all popular video codecs. The driver's watchdog_workqueue has been replaced with system_wq since it queues a single work item, &dev->watchdog_work, which calls for no ordering requirement. The work item is involved in running the watchdog timer and is not being used on a memory reclaim path. Work item has been flushed in s5p_mfc_remove() to ensure that there are no pending tasks while disconnecting the driver. Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
605b892061
commit
ed90013e40
@ -153,7 +153,7 @@ static void s5p_mfc_watchdog(unsigned long arg)
|
|||||||
* error. Now it is time to kill all instances and
|
* error. Now it is time to kill all instances and
|
||||||
* reset the MFC. */
|
* reset the MFC. */
|
||||||
mfc_err("Time out during waiting for HW\n");
|
mfc_err("Time out during waiting for HW\n");
|
||||||
queue_work(dev->watchdog_workqueue, &dev->watchdog_work);
|
schedule_work(&dev->watchdog_work);
|
||||||
}
|
}
|
||||||
dev->watchdog_timer.expires = jiffies +
|
dev->watchdog_timer.expires = jiffies +
|
||||||
msecs_to_jiffies(MFC_WATCHDOG_INTERVAL);
|
msecs_to_jiffies(MFC_WATCHDOG_INTERVAL);
|
||||||
@ -1246,7 +1246,6 @@ static int s5p_mfc_probe(struct platform_device *pdev)
|
|||||||
platform_set_drvdata(pdev, dev);
|
platform_set_drvdata(pdev, dev);
|
||||||
|
|
||||||
dev->hw_lock = 0;
|
dev->hw_lock = 0;
|
||||||
dev->watchdog_workqueue = create_singlethread_workqueue(S5P_MFC_NAME);
|
|
||||||
INIT_WORK(&dev->watchdog_work, s5p_mfc_watchdog_worker);
|
INIT_WORK(&dev->watchdog_work, s5p_mfc_watchdog_worker);
|
||||||
atomic_set(&dev->watchdog_cnt, 0);
|
atomic_set(&dev->watchdog_cnt, 0);
|
||||||
init_timer(&dev->watchdog_timer);
|
init_timer(&dev->watchdog_timer);
|
||||||
@ -1324,8 +1323,7 @@ static int s5p_mfc_remove(struct platform_device *pdev)
|
|||||||
mutex_unlock(&dev->mfc_mutex);
|
mutex_unlock(&dev->mfc_mutex);
|
||||||
|
|
||||||
del_timer_sync(&dev->watchdog_timer);
|
del_timer_sync(&dev->watchdog_timer);
|
||||||
flush_workqueue(dev->watchdog_workqueue);
|
flush_work(&dev->watchdog_work);
|
||||||
destroy_workqueue(dev->watchdog_workqueue);
|
|
||||||
|
|
||||||
video_unregister_device(dev->vfd_enc);
|
video_unregister_device(dev->vfd_enc);
|
||||||
video_unregister_device(dev->vfd_dec);
|
video_unregister_device(dev->vfd_dec);
|
||||||
|
Loading…
Reference in New Issue
Block a user