Skip to content

Commit 8fc4650

Browse files
marcanjannau
authored andcommitted
macaudio: Fix CHECK return condition checking
Signed-off-by: Hector Martin <marcan@marcan.st>
1 parent 99f07db commit 8fc4650

1 file changed

Lines changed: 20 additions & 15 deletions

File tree

sound/soc/apple/macaudio.c

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,20 +1162,25 @@ static int macaudio_late_probe(struct snd_soc_card *card)
11621162
return 0;
11631163
}
11641164

1165-
#define CHECK(call, pattern, value) \
1166-
{ \
1167-
int ret = call(card, pattern, value); \
1168-
if (ret < 1 && (please_blow_up_my_speakers < 2)) { \
1169-
dev_err(card->dev, "%s on '%s': %d\n", #call, pattern, ret); \
1170-
return ret; \
1171-
} \
1172-
dev_dbg(card->dev, "%s on '%s': %d hits\n", #call, pattern, ret); \
1165+
#define CHECK(call, pattern, value, min) \
1166+
{ \
1167+
int ret = call(card, pattern, value); \
1168+
int err = (ret >= 0 && ret < min) ? -ERANGE : ret; \
1169+
if (err < 0) { \
1170+
dev_err(card->dev, "%s on '%s': %d\n", #call, pattern, \
1171+
ret); \
1172+
if (please_blow_up_my_speakers < 2) \
1173+
return err; \
1174+
} else { \
1175+
dev_dbg(card->dev, "%s on '%s': %d hits\n", #call, \
1176+
pattern, ret); \
1177+
} \
11731178
}
11741179

11751180
#define CHECK_CONCAT(call, suffix, value) \
11761181
{ \
11771182
snprintf(buf, sizeof(buf), "%s%s", prefix, suffix); \
1178-
CHECK(call, buf, value); \
1183+
CHECK(call, buf, value, 1); \
11791184
}
11801185

11811186
static int macaudio_set_speaker(struct snd_soc_card *card, const char *prefix, bool tweeter)
@@ -1248,16 +1253,16 @@ static int macaudio_fixup_controls(struct snd_soc_card *card)
12481253
return please_blow_up_my_speakers >= 2 ? 0 : -EINVAL;
12491254
case SPKR_1W:
12501255
case SPKR_2W:
1251-
CHECK(macaudio_set_speaker, "* ", false);
1256+
CHECK(macaudio_set_speaker, "* ", false, 0);
12521257
break;
12531258
case SPKR_1W1T:
1254-
CHECK(macaudio_set_speaker, "* Tweeter ", true);
1255-
CHECK(macaudio_set_speaker, "* Woofer ", false);
1259+
CHECK(macaudio_set_speaker, "* Tweeter ", true, 0);
1260+
CHECK(macaudio_set_speaker, "* Woofer ", false, 0);
12561261
break;
12571262
case SPKR_2W1T:
1258-
CHECK(macaudio_set_speaker, "* Tweeter ", true);
1259-
CHECK(macaudio_set_speaker, "* Woofer 1 ", false);
1260-
CHECK(macaudio_set_speaker, "* Woofer 2 ", false);
1263+
CHECK(macaudio_set_speaker, "* Tweeter ", true, 0);
1264+
CHECK(macaudio_set_speaker, "* Woofer 1 ", false, 0);
1265+
CHECK(macaudio_set_speaker, "* Woofer 2 ", false, 0);
12611266
break;
12621267
}
12631268

0 commit comments

Comments
 (0)