diff --git a/driver/platform/diwali/src/msm_vidc_diwali.c b/driver/platform/diwali/src/msm_vidc_diwali.c index 77d4e03ffa..dee054a645 100644 --- a/driver/platform/diwali/src/msm_vidc_diwali.c +++ b/driver/platform/diwali/src/msm_vidc_diwali.c @@ -6,6 +6,7 @@ #include #include +#include #include "msm_vidc_diwali.h" #include "msm_vidc_platform.h" @@ -4992,6 +4993,8 @@ static int msm_vidc_init_data(struct msm_vidc_core *core) } if (platform_data->sku_version) { + sort(core->dt->allowed_clks_tbl, core->dt->allowed_clks_tbl_size, + sizeof(*core->dt->allowed_clks_tbl), cmp, NULL); d_vpr_h("Updated allowed clock rates\n"); for (i = 0; i < core->dt->allowed_clks_tbl_size; i++) d_vpr_h(" %d\n", core->dt->allowed_clks_tbl[i]); diff --git a/driver/vidc/inc/msm_vidc_dt.h b/driver/vidc/inc/msm_vidc_dt.h index 6f6c70b195..1ae0a0bb22 100644 --- a/driver/vidc/inc/msm_vidc_dt.h +++ b/driver/vidc/inc/msm_vidc_dt.h @@ -226,4 +226,12 @@ int msm_vidc_init_dt(struct platform_device *pdev); int msm_vidc_read_context_bank_resources_from_dt(struct platform_device *pdev); void msm_vidc_deinit_dt(struct platform_device *pdev); +/* A comparator to compare loads (needed later on) */ +static inline int cmp(const void *a, const void *b) +{ + /* want to sort in reverse so flip the comparison */ + return ((struct allowed_clock_rates_table *)b)->clock_rate - + ((struct allowed_clock_rates_table *)a)->clock_rate; +} + #endif // _MSM_VIDC_DT_H_ diff --git a/driver/vidc/src/msm_vidc_dt.c b/driver/vidc/src/msm_vidc_dt.c index 01821d2a01..128b1452ac 100644 --- a/driver/vidc/src/msm_vidc_dt.c +++ b/driver/vidc/src/msm_vidc_dt.c @@ -91,14 +91,6 @@ static int msm_vidc_load_u32_table(struct platform_device *pdev, return rc; } -/* A comparator to compare loads (needed later on) */ -static int cmp(const void *a, const void *b) -{ - /* want to sort in reverse so flip the comparison */ - return ((struct allowed_clock_rates_table *)b)->clock_rate - - ((struct allowed_clock_rates_table *)a)->clock_rate; -} - static void msm_vidc_free_allowed_clocks_table(struct msm_vidc_dt *dt) { dt->allowed_clks_tbl = NULL;