Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

media: imx-jpeg: Use devm_pm_runtime_enable() helper

Use devm_pm_runtime_enable() to simplify probe and exit paths.

No functional change.

Signed-off-by: Ming Qian <ming.qian@oss.nxp.com>
Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Ming Qian and committed by
Hans Verkuil
80930797 a980f845

+12 -3
+12 -3
drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c
··· 2971 2971 jpeg->dec_vdev->minor); 2972 2972 2973 2973 platform_set_drvdata(pdev, jpeg); 2974 - pm_runtime_enable(dev); 2974 + ret = devm_pm_runtime_enable(dev); 2975 + if (ret) { 2976 + dev_err(dev, "Failed to enable runtime PM: %d\n", ret); 2977 + goto err_pm; 2978 + } 2975 2979 2976 2980 return 0; 2977 2981 2982 + err_pm: 2983 + video_unregister_device(jpeg->dec_vdev); 2984 + /* set NULL to prevent double-free */ 2985 + jpeg->dec_vdev = NULL; 2978 2986 err_vdev_register: 2979 - video_device_release(jpeg->dec_vdev); 2987 + /* Only release if allocation succeeded but registration failed */ 2988 + if (jpeg->dec_vdev) 2989 + video_device_release(jpeg->dec_vdev); 2980 2990 2981 2991 err_vdev_alloc: 2982 2992 v4l2_m2m_release(jpeg->m2m_dev); ··· 3057 3047 3058 3048 mxc_jpeg_free_slot_data(jpeg); 3059 3049 3060 - pm_runtime_disable(&pdev->dev); 3061 3050 video_unregister_device(jpeg->dec_vdev); 3062 3051 v4l2_m2m_release(jpeg->m2m_dev); 3063 3052 v4l2_device_unregister(&jpeg->v4l2_dev);