Commit 6ef1f08b authored by Geoffrey D. Bennett's avatar Geoffrey D. Bennett Committed by Takashi Iwai

ALSA: scarlett2: Fix Scarlett 4th Gen 4i4 low-voltage detection

The value currently being read to determine the low-voltage state is
actually the front panel state. Fix the code to use the correct offset
for the low-voltage state.
Signed-off-by: default avatarGeoffrey D. Bennett <g@b4.vu>
Fixes: d7cfa2fd ("ALSA: scarlett2: Add power status control")
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Message-ID: <d97b7d87f43b0e54f37e1552394be2f3ae182704.1710047969.git.g@b4.vu>
parent 9fc91a6f
...@@ -415,7 +415,7 @@ enum { ...@@ -415,7 +415,7 @@ enum {
SCARLETT2_CONFIG_INPUT_SELECT_SWITCH, SCARLETT2_CONFIG_INPUT_SELECT_SWITCH,
SCARLETT2_CONFIG_INPUT_LINK_SWITCH, SCARLETT2_CONFIG_INPUT_LINK_SWITCH,
SCARLETT2_CONFIG_POWER_EXT, SCARLETT2_CONFIG_POWER_EXT,
SCARLETT2_CONFIG_POWER_STATUS, SCARLETT2_CONFIG_POWER_LOW,
SCARLETT2_CONFIG_PCM_INPUT_SWITCH, SCARLETT2_CONFIG_PCM_INPUT_SWITCH,
SCARLETT2_CONFIG_DIRECT_MONITOR_GAIN, SCARLETT2_CONFIG_DIRECT_MONITOR_GAIN,
SCARLETT2_CONFIG_COUNT SCARLETT2_CONFIG_COUNT
...@@ -723,8 +723,8 @@ static const struct scarlett2_config_set scarlett2_config_set_gen4_4i4 = { ...@@ -723,8 +723,8 @@ static const struct scarlett2_config_set scarlett2_config_set_gen4_4i4 = {
[SCARLETT2_CONFIG_POWER_EXT] = { [SCARLETT2_CONFIG_POWER_EXT] = {
.offset = 0x168 }, .offset = 0x168 },
[SCARLETT2_CONFIG_POWER_STATUS] = { [SCARLETT2_CONFIG_POWER_LOW] = {
.offset = 0x66 } .offset = 0x16d }
} }
}; };
...@@ -6294,8 +6294,7 @@ static int scarlett2_update_power_status(struct usb_mixer_interface *mixer) ...@@ -6294,8 +6294,7 @@ static int scarlett2_update_power_status(struct usb_mixer_interface *mixer)
{ {
struct scarlett2_data *private = mixer->private_data; struct scarlett2_data *private = mixer->private_data;
int err; int err;
u8 power_ext; u8 power_ext, power_low;
u8 power_status;
private->power_status_updated = 0; private->power_status_updated = 0;
...@@ -6304,12 +6303,12 @@ static int scarlett2_update_power_status(struct usb_mixer_interface *mixer) ...@@ -6304,12 +6303,12 @@ static int scarlett2_update_power_status(struct usb_mixer_interface *mixer)
if (err < 0) if (err < 0)
return err; return err;
err = scarlett2_usb_get_config(mixer, SCARLETT2_CONFIG_POWER_STATUS, err = scarlett2_usb_get_config(mixer, SCARLETT2_CONFIG_POWER_LOW,
1, &power_status); 1, &power_low);
if (err < 0) if (err < 0)
return err; return err;
if (power_status > 1) if (power_low)
private->power_status = SCARLETT2_POWER_STATUS_FAIL; private->power_status = SCARLETT2_POWER_STATUS_FAIL;
else if (power_ext) else if (power_ext)
private->power_status = SCARLETT2_POWER_STATUS_EXT; private->power_status = SCARLETT2_POWER_STATUS_EXT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment