diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_dfs_tables.h b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_dfs_tables.h index e3acf7881627..f5e16e968cd3 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_dfs_tables.h +++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_dfs_tables.h @@ -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, diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c index 8e3d2df74eaa..55bb513b933a 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c +++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_v4l2.c @@ -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;