media: atomisp: atomisp_dfs_tables.h: don't depend on ISP version
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Mon, 20 Apr 2020 10:42:52 +0000 (12:42 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 20 May 2020 10:32:16 +0000 (12:32 +0200)
There's a dependency on this header for the ISP model. While
this sounds really weird (as just one resolution needs it),
as we don't know what's the right value, let's just keep it.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/atomisp/pci/atomisp2/atomisp_dfs_tables.h
drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c

index e3acf788162752e7a9db2b80afd917e049d3a4ab..f5e16e968cd310434b1f0dcfef922409b6613e3d 100644 (file)
@@ -128,7 +128,7 @@ static const struct atomisp_dfs_config dfs_config_merr_1179 = {
        .dfs_table_size = ARRAY_SIZE(dfs_rules_merr_1179),
 };
 
-static const struct atomisp_freq_scaling_rule dfs_rules_merr_117a[] = {
+static struct atomisp_freq_scaling_rule dfs_rules_merr_117a[] = {
        {
                .width = 1920,
                .height = 1080,
@@ -140,11 +140,11 @@ static const struct atomisp_freq_scaling_rule dfs_rules_merr_117a[] = {
                .width = 1080,
                .height = 1920,
                .fps = 30,
-#ifndef ISP2401
-               .isp_freq = ISP_FREQ_266MHZ,
-#else
-               .isp_freq = ISP_FREQ_400MHZ,
-#endif
+               /*
+                * FIXME: this is weird, but .isp_freq depends on
+                * the chip being ISP2400 or ISP2401. So, this should be
+                * initialized on runtime.
+                */
                .run_mode = ATOMISP_RUN_MODE_VIDEO,
        },
        {
@@ -205,7 +205,7 @@ static const struct atomisp_freq_scaling_rule dfs_rules_merr_117a[] = {
        },
 };
 
-static const struct atomisp_dfs_config dfs_config_merr_117a = {
+static struct atomisp_dfs_config dfs_config_merr_117a = {
        .lowest_freq = ISP_FREQ_200MHZ,
        .max_freq_at_vmin = ISP_FREQ_200MHZ,
        .highest_freq = ISP_FREQ_400MHZ,
index 8e3d2df74eaa5a1b288076e8c6e6604dcbcd8e6a..55bb513b933ae049654d35317ede56ddb549ad5b 100644 (file)
@@ -1246,7 +1246,17 @@ static int atomisp_pci_probe(struct pci_dev *dev,
                        isp->dfs = &dfs_config_merr_1179;
                        break;
                case ATOMISP_PCI_DEVICE_SOC_MRFLD_117A:
+                       /*
+                        * FIXME: This should likely be uneeded. Either one
+                        * value is likely the correct one for this resolution
+                        */
+                       if (!atomisp_hw_is_isp2401)
+                               dfs_rules_merr_117a[1].isp_freq = ISP_FREQ_266MHZ;
+                       else
+                               dfs_rules_merr_117a[1].isp_freq = ISP_FREQ_400MHZ;
+
                        isp->dfs = &dfs_config_merr_117a;
+
                        break;
                default:
                        isp->dfs = &dfs_config_merr;