media: s5p-mfc: Make additional clocks optional

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 1bce6fb3ed ("[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: 1bce6fb3ed ("[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>
This commit is contained in:
Marek Szyprowski 2019-06-13 06:48:34 -04:00 committed by Mauro Carvalho Chehab
parent fc47bf1147
commit e08efef8fe
1 changed files with 5 additions and 0 deletions

View File

@ -34,6 +34,11 @@ int s5p_mfc_init_pm(struct s5p_mfc_dev *dev)
for (i = 0; i < pm->num_clocks; i++) { for (i = 0; i < pm->num_clocks; i++) {
pm->clocks[i] = devm_clk_get(pm->device, pm->clk_names[i]); pm->clocks[i] = devm_clk_get(pm->device, pm->clk_names[i]);
if (IS_ERR(pm->clocks[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", mfc_err("Failed to get clock: %s\n",
pm->clk_names[i]); pm->clk_names[i]);
return PTR_ERR(pm->clocks[i]); return PTR_ERR(pm->clocks[i]);