Skip to content

Commit f7ec2d7

Browse files
committed
Revert "Update ect_parser.c"
This reverts commit 21824d3.
1 parent 1031482 commit f7ec2d7

1 file changed

Lines changed: 51 additions & 32 deletions

File tree

drivers/soc/samsung/ect_parser.c

Lines changed: 51 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
static struct ect_info ect_list[];
2828

2929
#define G3D_TOP_LEVEL_KHZ 754000
30-
#define G3D_TOP_LEVEL_MHZ 754
3130

3231
static char ect_signature[] = "PARA";
3332

@@ -2692,7 +2691,7 @@ static int ect_extend_g3d_asv(void)
26922691
goto err_table_pointers;
26932692
}
26942693

2695-
level_list[0] = G3D_TOP_LEVEL_MHZ;
2694+
level_list[0] = G3D_TOP_LEVEL_KHZ;
26962695
memcpy(&level_list[1], domain->level_list, sizeof(*level_list) * num_of_level);
26972696

26982697
for (i = 0; i < num_of_table; ++i) {
@@ -2781,49 +2780,69 @@ static int ect_extend_g3d_asv(void)
27812780
return ret;
27822781
}
27832782

2784-
static int ect_extend_g3d_dd_margin_genparam(void)
2783+
static int ect_extend_g3d_margin(void)
27852784
{
2786-
void *gen_block;
2787-
struct ect_gen_param_table *table;
2788-
int32_t *oldp, *newp;
2789-
int i;
2790-
2791-
gen_block = ect_get_block(BLOCK_GEN_PARAM);
2792-
if (!gen_block)
2793-
return -EINVAL;
2785+
int i, j;
2786+
void *margin_block;
2787+
struct ect_margin_domain *domain;
2788+
int num_of_level, num_of_group;
27942789

2795-
table = ect_gen_param_get_table(gen_block, "G3D_DD_margin");
2796-
if (!table)
2790+
margin_block = ect_get_block(BLOCK_MARGIN);
2791+
if (!margin_block)
27972792
return -EINVAL;
27982793

2799-
if (table->num_of_col != 2)
2794+
domain = ect_margin_get_domain(margin_block, "G3D_DD_margin");
2795+
if (!domain)
28002796
return -EINVAL;
28012797

2802-
if (table->num_of_row >= 13)
2798+
if (domain->num_of_level >= 13)
28032799
return 0;
28042800

2805-
if (!table->parameter)
2801+
num_of_level = domain->num_of_level;
2802+
num_of_group = domain->num_of_group;
2803+
2804+
if (!num_of_group)
28062805
return -EINVAL;
28072806

2808-
oldp = (int32_t *)table->parameter; /* 2 * 12 ints */
2809-
newp = kzalloc(sizeof(*newp) * 2 * 13, GFP_KERNEL);
2810-
if (!newp)
2811-
return -ENOMEM;
2807+
if (domain->offset_compact) {
2808+
unsigned char *offset = kzalloc(
2809+
sizeof(unsigned char) * (num_of_level + 1) * num_of_group, GFP_KERNEL);
2810+
2811+
if (!offset)
2812+
return -ENOMEM;
28122813

2813-
/* new row 0 for 754: index 0, margin as old level 0 */
2814-
newp[0] = 0;
2815-
newp[1] = oldp[1];
2814+
memcpy(offset, domain->offset_compact,
2815+
sizeof(unsigned char) * num_of_group);
28162816

2817-
/* old rows 0..11 -> new rows 1..12 */
2818-
for (i = 0; i < 12; i++) {
2819-
newp[(i + 1) * 2 + 0] = i + 1;
2820-
newp[(i + 1) * 2 + 1] = oldp[i * 2 + 1];
2821-
}
2817+
for (i = 0; i < num_of_level; ++i) {
2818+
for (j = 0; j < num_of_group; ++j)
2819+
offset[(i + 1) * num_of_group + j] =
2820+
domain->offset_compact[i * num_of_group + j];
2821+
}
28222822

2823-
table->parameter = newp;
2824-
table->num_of_row = 13;
2823+
domain->offset_compact = offset;
2824+
} else if (domain->offset) {
2825+
unsigned int *offset = kzalloc(
2826+
sizeof(unsigned int) * (num_of_level + 1) * num_of_group, GFP_KERNEL);
28252827

2826-
kfree(oldp);
2828+
if (!offset)
2829+
return -ENOMEM;
2830+
2831+
memcpy(offset, domain->offset,
2832+
sizeof(unsigned int) * num_of_group);
2833+
2834+
for (i = 0; i < num_of_level; ++i) {
2835+
for (j = 0; j < num_of_group; ++j)
2836+
offset[(i + 1) * num_of_group + j] =
2837+
domain->offset[i * num_of_group + j];
2838+
}
2839+
2840+
domain->offset = offset;
2841+
} else {
2842+
return -EINVAL;
2843+
}
2844+
2845+
domain->num_of_level = num_of_level + 1;
28272846

28282847
return 0;
28292848
}
@@ -2884,7 +2903,7 @@ int ect_parse_binary_header(void) {
28842903
pr_warn("[ECT] : failed to extend dvfs_g3d levels\n");
28852904
if (ect_extend_g3d_asv())
28862905
pr_warn("[ECT] : failed to extend asv dvfs_g3d levels\n");
2887-
if (ect_extend_g3d_dd_margin_genparam())
2906+
if (ect_extend_g3d_margin())
28882907
pr_warn("[ECT] : failed to extend G3D_DD_margin levels\n");
28892908

28902909
ect_header_info.block_handle = ect_header;

0 commit comments

Comments
 (0)