@@ -901,25 +901,26 @@ static int __updated_type_c_parameter_by_efuse(struct type_c_data *type_c)
901901 int value_mask = (BIT (value_size ) - 1 );
902902
903903 buf = nvmem_cell_read (cell , & buf_size );
904-
905- cc1_0p2v = get_value ((buf [0 ] >> value_size * 0 ) & value_mask );
906- cc1_0p8v = get_value ((buf [0 ] >> value_size * 1 ) & value_mask );
907- cc1_2p6v = get_value ((buf [1 ] >> value_size * 0 ) & value_mask );
908- cc1_0p66v = get_value ((buf [1 ] >> value_size * 1 ) & value_mask );
909- cc1_1p23v = get_value ((buf [2 ] >> value_size * 0 ) & value_mask );
910-
911- cc2_0p2v = get_value ((buf [3 ] >> value_size * 0 ) & value_mask );
912- cc2_0p8v = get_value ((buf [3 ] >> value_size * 1 ) & value_mask );
913- cc2_2p6v = get_value ((buf [4 ] >> value_size * 0 ) & value_mask );
914- cc2_0p66v = get_value ((buf [4 ] >> value_size * 1 ) & value_mask );
915- cc2_1p23v = get_value ((buf [5 ] >> value_size * 0 ) & value_mask );
916-
917- cc1_4p7k = get_value ((buf [6 ] >> value_size * 0 ) & value_mask );
918- cc1_12k = get_value ((buf [6 ] >> value_size * 1 ) & value_mask );
919- cc2_4p7k = get_value ((buf [7 ] >> value_size * 0 ) & value_mask );
920- cc2_12k = get_value ((buf [7 ] >> value_size * 1 ) & value_mask );
921-
922- kfree (buf );
904+ if (!IS_ERR (buf )) {
905+ cc1_0p2v = get_value ((buf [0 ] >> value_size * 0 ) & value_mask );
906+ cc1_0p8v = get_value ((buf [0 ] >> value_size * 1 ) & value_mask );
907+ cc1_2p6v = get_value ((buf [1 ] >> value_size * 0 ) & value_mask );
908+ cc1_0p66v = get_value ((buf [1 ] >> value_size * 1 ) & value_mask );
909+ cc1_1p23v = get_value ((buf [2 ] >> value_size * 0 ) & value_mask );
910+
911+ cc2_0p2v = get_value ((buf [3 ] >> value_size * 0 ) & value_mask );
912+ cc2_0p8v = get_value ((buf [3 ] >> value_size * 1 ) & value_mask );
913+ cc2_2p6v = get_value ((buf [4 ] >> value_size * 0 ) & value_mask );
914+ cc2_0p66v = get_value ((buf [4 ] >> value_size * 1 ) & value_mask );
915+ cc2_1p23v = get_value ((buf [5 ] >> value_size * 0 ) & value_mask );
916+
917+ cc1_4p7k = get_value ((buf [6 ] >> value_size * 0 ) & value_mask );
918+ cc1_12k = get_value ((buf [6 ] >> value_size * 1 ) & value_mask );
919+ cc2_4p7k = get_value ((buf [7 ] >> value_size * 0 ) & value_mask );
920+ cc2_12k = get_value ((buf [7 ] >> value_size * 1 ) & value_mask );
921+
922+ kfree (buf );
923+ }
923924 nvmem_cell_put (cell );
924925 }
925926
@@ -984,29 +985,30 @@ static int __updated_type_c_parameter_by_efuse_v2(struct type_c_data *type_c)
984985 int value_mask = (BIT (value_size ) - 1 );
985986
986987 buf = nvmem_cell_read (cell , & buf_size );
987-
988- value_size = 5 ;
989- value_mask = (BIT (value_size ) - 1 );
990- cc1_4p7k = buf [0 ] & value_mask ;
991- cc1_12k = buf [1 ] & value_mask ;
992- cc2_4p7k = buf [2 ] & value_mask ;
993- cc2_12k = buf [3 ] & value_mask ;
994-
995- value_size = 4 ;
996- value_mask = (BIT (value_size ) - 1 );
997- cc1_0p2v = (buf [4 ] >> value_size * 0 ) & value_mask ;
998- cc1_0p66v = (buf [4 ] >> value_size * 1 ) & value_mask ;
999- cc1_0p8v = (buf [5 ] >> value_size * 0 ) & value_mask ;
1000- cc1_1p23v = (buf [5 ] >> value_size * 1 ) & value_mask ;
1001- cc1_2p6v = (buf [6 ] >> value_size * 0 ) & value_mask ;
1002-
1003- cc2_0p2v = (buf [6 ] >> value_size * 1 ) & value_mask ;
1004- cc2_0p66v = (buf [7 ] >> value_size * 0 ) & value_mask ;
1005- cc2_0p8v = (buf [7 ] >> value_size * 1 ) & value_mask ;
1006- cc2_1p23v = (buf [8 ] >> value_size * 0 ) & value_mask ;
1007- cc2_2p6v = (buf [8 ] >> value_size * 1 ) & value_mask ;
1008-
1009- kfree (buf );
988+ if (!IS_ERR (buf )) {
989+ value_size = 5 ;
990+ value_mask = (BIT (value_size ) - 1 );
991+ cc1_4p7k = buf [0 ] & value_mask ;
992+ cc1_12k = buf [1 ] & value_mask ;
993+ cc2_4p7k = buf [2 ] & value_mask ;
994+ cc2_12k = buf [3 ] & value_mask ;
995+
996+ value_size = 4 ;
997+ value_mask = (BIT (value_size ) - 1 );
998+ cc1_0p2v = (buf [4 ] >> value_size * 0 ) & value_mask ;
999+ cc1_0p66v = (buf [4 ] >> value_size * 1 ) & value_mask ;
1000+ cc1_0p8v = (buf [5 ] >> value_size * 0 ) & value_mask ;
1001+ cc1_1p23v = (buf [5 ] >> value_size * 1 ) & value_mask ;
1002+ cc1_2p6v = (buf [6 ] >> value_size * 0 ) & value_mask ;
1003+
1004+ cc2_0p2v = (buf [6 ] >> value_size * 1 ) & value_mask ;
1005+ cc2_0p66v = (buf [7 ] >> value_size * 0 ) & value_mask ;
1006+ cc2_0p8v = (buf [7 ] >> value_size * 1 ) & value_mask ;
1007+ cc2_1p23v = (buf [8 ] >> value_size * 0 ) & value_mask ;
1008+ cc2_2p6v = (buf [8 ] >> value_size * 1 ) & value_mask ;
1009+
1010+ kfree (buf );
1011+ }
10101012 nvmem_cell_put (cell );
10111013 }
10121014
0 commit comments