media: s5p-mfc: Make additional clocks optional
authorMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 13 Jun 2019 10:48:34 +0000 (06:48 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 21 Jun 2019 20:50:54 +0000 (16:50 -0400)
Since the beginning the second clock ('special', 'sclk') was optional and
it is not available on some variants of Exynos SoCs (i.e. Exynos5420 with
v7 of MFC hardware).

However commit 1bce6fb3edf1 ("[media] s5p-mfc: Rework clock handling")
made handling of all specified clocks mandatory. This patch restores
original behavior of the driver and fixes its operation on
Exynos5420 SoCs.

Fixes: 1bce6fb3edf1 ("[media] s5p-mfc: Rework clock handling")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/platform/s5p-mfc/s5p_mfc_pm.c

index 2e62f8721fa5950bc5f9996c9bc39728aaa99fd5..7d52431c2c837da88a90f33a2cb1de89fc271192 100644 (file)
@@ -34,6 +34,11 @@ int s5p_mfc_init_pm(struct s5p_mfc_dev *dev)
        for (i = 0; i < pm->num_clocks; i++) {
                pm->clocks[i] = devm_clk_get(pm->device, pm->clk_names[i]);
                if (IS_ERR(pm->clocks[i])) {
+                       /* additional clocks are optional */
+                       if (i && PTR_ERR(pm->clocks[i]) == -ENOENT) {
+                               pm->clocks[i] = NULL;
+                               continue;
+                       }
                        mfc_err("Failed to get clock: %s\n",
                                pm->clk_names[i]);
                        return PTR_ERR(pm->clocks[i]);