[alsa-devel] [PATCH] ALSA: HDA - Check return value to reduce useless delay

Wang Xingchao xingchao.wang at intel.com
Wed Oct 24 08:53:23 CEST 2012


For verb 705h, it's useless to read response, so use *write api would be
better. If there's error after sending cmd, just try again without continue
after wrong operation.Otherwise there's long time delay.

Signed-off-by: Wang Xingchao <xingchao.wang at intel.com>
---
 sound/pci/hda/hda_codec.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 960800b..0946eca 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -3569,6 +3569,7 @@ static unsigned int hda_set_power_state(struct hda_codec *codec,
 	hda_nid_t fg = codec->afg ? codec->afg : codec->mfg;
 	int count;
 	unsigned int state;
+	int err;
 
 	/* this delay seems necessary to avoid click noise at power-down */
 	if (power_state == AC_PWRST_D3) {
@@ -3582,9 +3583,11 @@ static unsigned int hda_set_power_state(struct hda_codec *codec,
 			codec->patch_ops.set_power_state(codec, fg,
 							 power_state);
 		else {
-			snd_hda_codec_read(codec, fg, 0,
+			err = snd_hda_codec_write(codec, fg, 0,
 					   AC_VERB_SET_POWER_STATE,
 					   power_state);
+			if (err < 0)
+				continue;
 			snd_hda_codec_set_power_to_all(codec, fg, power_state,
 						       true);
 		}
-- 
1.7.9.5



More information about the Alsa-devel mailing list