From 4bd12e67116ab48db3abe7bfe2fa751bbddebf89 Mon Sep 17 00:00:00 2001 From: Zefa Chen Date: Tue, 20 Dec 2022 16:16:50 +0800 Subject: [PATCH] media: rockchip: vicap fix error state about get clk/rst Signed-off-by: Zefa Chen Change-Id: I4e19314f273f9d7077d9067c32d13c030b95dffc --- drivers/media/platform/rockchip/cif/Kconfig | 2 +- drivers/media/platform/rockchip/cif/hw.c | 5 +++-- drivers/media/platform/rockchip/cif/mipi-csi2.c | 6 ++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/rockchip/cif/Kconfig b/drivers/media/platform/rockchip/cif/Kconfig index 04944b0ef987..d5b1c7a17393 100644 --- a/drivers/media/platform/rockchip/cif/Kconfig +++ b/drivers/media/platform/rockchip/cif/Kconfig @@ -5,8 +5,8 @@ config VIDEO_ROCKCHIP_CIF depends on ARCH_ROCKCHIP || COMPILE_TEST depends on MEDIA_CAMERA_SUPPORT select VIDEOBUF2_CMA_SG + select VIDEOBUF2_VMALLOC select V4L2_FWNODE - select PHY_ROCKCHIP_MIPI_RX default n help Support for CIF on the rockchip SoCs like rk312x, rk3288. diff --git a/drivers/media/platform/rockchip/cif/hw.c b/drivers/media/platform/rockchip/cif/hw.c index 44156003b9d7..fbbc797c5f29 100644 --- a/drivers/media/platform/rockchip/cif/hw.c +++ b/drivers/media/platform/rockchip/cif/hw.c @@ -1233,10 +1233,11 @@ static int rkcif_plat_hw_probe(struct platform_device *pdev) if (data->rsts[i]) rst = devm_reset_control_get(dev, data->rsts[i]); if (IS_ERR(rst)) { + cif_hw->cif_rst[i] = NULL; dev_err(dev, "failed to get %s\n", data->rsts[i]); - return PTR_ERR(rst); + } else { + cif_hw->cif_rst[i] = rst; } - cif_hw->cif_rst[i] = rst; } cif_hw->cif_regs = data->cif_regs; diff --git a/drivers/media/platform/rockchip/cif/mipi-csi2.c b/drivers/media/platform/rockchip/cif/mipi-csi2.c index a82fa6453d2e..1b80309d9af9 100644 --- a/drivers/media/platform/rockchip/cif/mipi-csi2.c +++ b/drivers/media/platform/rockchip/cif/mipi-csi2.c @@ -979,14 +979,16 @@ static int csi2_probe(struct platform_device *pdev) platform_set_drvdata(pdev, &csi2->sd); csi2->clks_num = devm_clk_bulk_get_all(dev, &csi2->clks_bulk); - if (csi2->clks_num < 0) + if (csi2->clks_num < 0) { + csi2->clks_num = 0; dev_err(dev, "failed to get csi2 clks\n"); + } csi2->rsts_bulk = devm_reset_control_array_get_optional_exclusive(dev); if (IS_ERR(csi2->rsts_bulk)) { if (PTR_ERR(csi2->rsts_bulk) != -EPROBE_DEFER) dev_err(dev, "failed to get csi2 reset\n"); - return PTR_ERR(csi2->rsts_bulk); + csi2->rsts_bulk = NULL; } res = platform_get_resource(pdev, IORESOURCE_MEM, 0);