@@ -686,10 +686,8 @@ static int patch_vt1708(struct hda_codec *codec)
686
686
687
687
/* automatic parse from the BIOS config */
688
688
err = via_parse_auto_config (codec );
689
- if (err < 0 ) {
690
- via_free (codec );
691
- return err ;
692
- }
689
+ if (err < 0 )
690
+ goto error ;
693
691
694
692
/* add jack detect on/off control */
695
693
spec -> mixers [spec -> num_mixers ++ ] = vt1708_jack_detect_ctl ;
@@ -700,6 +698,10 @@ static int patch_vt1708(struct hda_codec *codec)
700
698
codec -> jackpoll_interval = 0 ;
701
699
702
700
return 0 ;
701
+
702
+ error :
703
+ via_free (codec );
704
+ return err ;
703
705
}
704
706
705
707
static int patch_vt1709 (struct hda_codec * codec )
@@ -715,12 +717,14 @@ static int patch_vt1709(struct hda_codec *codec)
715
717
spec -> gen .mixer_nid = 0x18 ;
716
718
717
719
err = via_parse_auto_config (codec );
718
- if (err < 0 ) {
719
- via_free (codec );
720
- return err ;
721
- }
720
+ if (err < 0 )
721
+ goto error ;
722
722
723
723
return 0 ;
724
+
725
+ error :
726
+ via_free (codec );
727
+ return err ;
724
728
}
725
729
726
730
static int patch_vt1708S (struct hda_codec * codec );
@@ -741,12 +745,14 @@ static int patch_vt1708B(struct hda_codec *codec)
741
745
742
746
/* automatic parse from the BIOS config */
743
747
err = via_parse_auto_config (codec );
744
- if (err < 0 ) {
745
- via_free (codec );
746
- return err ;
747
- }
748
+ if (err < 0 )
749
+ goto error ;
748
750
749
751
return 0 ;
752
+
753
+ error :
754
+ via_free (codec );
755
+ return err ;
750
756
}
751
757
752
758
/* Patch for VT1708S */
@@ -793,14 +799,16 @@ static int patch_vt1708S(struct hda_codec *codec)
793
799
794
800
/* automatic parse from the BIOS config */
795
801
err = via_parse_auto_config (codec );
796
- if (err < 0 ) {
797
- via_free (codec );
798
- return err ;
799
- }
802
+ if (err < 0 )
803
+ goto error ;
800
804
801
805
spec -> init_verbs [spec -> num_iverbs ++ ] = vt1708S_init_verbs ;
802
806
803
807
return 0 ;
808
+
809
+ error :
810
+ via_free (codec );
811
+ return err ;
804
812
}
805
813
806
814
/* Patch for VT1702 */
@@ -834,14 +842,16 @@ static int patch_vt1702(struct hda_codec *codec)
834
842
835
843
/* automatic parse from the BIOS config */
836
844
err = via_parse_auto_config (codec );
837
- if (err < 0 ) {
838
- via_free (codec );
839
- return err ;
840
- }
845
+ if (err < 0 )
846
+ goto error ;
841
847
842
848
spec -> init_verbs [spec -> num_iverbs ++ ] = vt1702_init_verbs ;
843
849
844
850
return 0 ;
851
+
852
+ error :
853
+ via_free (codec );
854
+ return err ;
845
855
}
846
856
847
857
/* Patch for VT1718S */
@@ -906,14 +916,16 @@ static int patch_vt1718S(struct hda_codec *codec)
906
916
907
917
/* automatic parse from the BIOS config */
908
918
err = via_parse_auto_config (codec );
909
- if (err < 0 ) {
910
- via_free (codec );
911
- return err ;
912
- }
919
+ if (err < 0 )
920
+ goto error ;
913
921
914
922
spec -> init_verbs [spec -> num_iverbs ++ ] = vt1718S_init_verbs ;
915
923
916
924
return 0 ;
925
+
926
+ error :
927
+ via_free (codec );
928
+ return err ;
917
929
}
918
930
919
931
/* Patch for VT1716S */
@@ -1002,17 +1014,19 @@ static int patch_vt1716S(struct hda_codec *codec)
1002
1014
1003
1015
/* automatic parse from the BIOS config */
1004
1016
err = via_parse_auto_config (codec );
1005
- if (err < 0 ) {
1006
- via_free (codec );
1007
- return err ;
1008
- }
1017
+ if (err < 0 )
1018
+ goto error ;
1009
1019
1010
1020
spec -> init_verbs [spec -> num_iverbs ++ ] = vt1716S_init_verbs ;
1011
1021
1012
1022
spec -> mixers [spec -> num_mixers ++ ] = vt1716s_dmic_mixer ;
1013
1023
spec -> mixers [spec -> num_mixers ++ ] = vt1716S_mono_out_mixer ;
1014
1024
1015
1025
return 0 ;
1026
+
1027
+ error :
1028
+ via_free (codec );
1029
+ return err ;
1016
1030
}
1017
1031
1018
1032
/* for vt2002P */
@@ -1109,17 +1123,19 @@ static int patch_vt2002P(struct hda_codec *codec)
1109
1123
1110
1124
/* automatic parse from the BIOS config */
1111
1125
err = via_parse_auto_config (codec );
1112
- if (err < 0 ) {
1113
- via_free (codec );
1114
- return err ;
1115
- }
1126
+ if (err < 0 )
1127
+ goto error ;
1116
1128
1117
1129
if (spec -> codec_type == VT1802 )
1118
1130
spec -> init_verbs [spec -> num_iverbs ++ ] = vt1802_init_verbs ;
1119
1131
else
1120
1132
spec -> init_verbs [spec -> num_iverbs ++ ] = vt2002P_init_verbs ;
1121
1133
1122
1134
return 0 ;
1135
+
1136
+ error :
1137
+ via_free (codec );
1138
+ return err ;
1123
1139
}
1124
1140
1125
1141
/* for vt1812 */
@@ -1150,14 +1166,16 @@ static int patch_vt1812(struct hda_codec *codec)
1150
1166
1151
1167
/* automatic parse from the BIOS config */
1152
1168
err = via_parse_auto_config (codec );
1153
- if (err < 0 ) {
1154
- via_free (codec );
1155
- return err ;
1156
- }
1169
+ if (err < 0 )
1170
+ goto error ;
1157
1171
1158
1172
spec -> init_verbs [spec -> num_iverbs ++ ] = vt1812_init_verbs ;
1159
1173
1160
1174
return 0 ;
1175
+
1176
+ error :
1177
+ via_free (codec );
1178
+ return err ;
1161
1179
}
1162
1180
1163
1181
/* patch for vt3476 */
@@ -1187,14 +1205,16 @@ static int patch_vt3476(struct hda_codec *codec)
1187
1205
1188
1206
/* automatic parse from the BIOS config */
1189
1207
err = via_parse_auto_config (codec );
1190
- if (err < 0 ) {
1191
- via_free (codec );
1192
- return err ;
1193
- }
1208
+ if (err < 0 )
1209
+ goto error ;
1194
1210
1195
1211
spec -> init_verbs [spec -> num_iverbs ++ ] = vt3476_init_verbs ;
1196
1212
1197
1213
return 0 ;
1214
+
1215
+ error :
1216
+ via_free (codec );
1217
+ return err ;
1198
1218
}
1199
1219
1200
1220
/*
0 commit comments