Merge tag 'media/v5.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[linux-2.6-microblaze.git] / drivers / media / platform / rockchip / rkisp1 / rkisp1-dev.c
index 02cde70..7474150 100644 (file)
 struct rkisp1_match_data {
        const char * const *clks;
        unsigned int size;
+       enum rkisp1_cif_isp_version isp_ver;
 };
 
 /* ----------------------------------------------------------------------------
@@ -406,15 +407,16 @@ static const char * const rk3399_isp_clks[] = {
        "hclk",
 };
 
-static const struct rkisp1_match_data rk3399_isp_clk_data = {
+static const struct rkisp1_match_data rk3399_isp_match_data = {
        .clks = rk3399_isp_clks,
        .size = ARRAY_SIZE(rk3399_isp_clks),
+       .isp_ver = RKISP1_V10,
 };
 
 static const struct of_device_id rkisp1_of_match[] = {
        {
                .compatible = "rockchip,rk3399-cif-isp",
-               .data = &rk3399_isp_clk_data,
+               .data = &rk3399_isp_match_data,
        },
        {},
 };
@@ -452,15 +454,15 @@ static void rkisp1_debug_init(struct rkisp1_device *rkisp1)
 
 static int rkisp1_probe(struct platform_device *pdev)
 {
-       const struct rkisp1_match_data *clk_data;
+       const struct rkisp1_match_data *match_data;
        struct device *dev = &pdev->dev;
        struct rkisp1_device *rkisp1;
        struct v4l2_device *v4l2_dev;
        unsigned int i;
        int ret, irq;
 
-       clk_data = of_device_get_match_data(&pdev->dev);
-       if (!clk_data)
+       match_data = of_device_get_match_data(&pdev->dev);
+       if (!match_data)
                return -ENODEV;
 
        rkisp1 = devm_kzalloc(dev, sizeof(*rkisp1), GFP_KERNEL);
@@ -489,15 +491,16 @@ static int rkisp1_probe(struct platform_device *pdev)
 
        rkisp1->irq = irq;
 
-       for (i = 0; i < clk_data->size; i++)
-               rkisp1->clks[i].id = clk_data->clks[i];
-       ret = devm_clk_bulk_get(dev, clk_data->size, rkisp1->clks);
+       for (i = 0; i < match_data->size; i++)
+               rkisp1->clks[i].id = match_data->clks[i];
+       ret = devm_clk_bulk_get(dev, match_data->size, rkisp1->clks);
        if (ret)
                return ret;
-       rkisp1->clk_size = clk_data->size;
+       rkisp1->clk_size = match_data->size;
 
        pm_runtime_enable(&pdev->dev);
 
+       rkisp1->media_dev.hw_revision = match_data->isp_ver;
        strscpy(rkisp1->media_dev.model, RKISP1_DRIVER_NAME,
                sizeof(rkisp1->media_dev.model));
        rkisp1->media_dev.dev = &pdev->dev;