diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-06-02 01:20:22 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-06-02 01:21:30 +0200 |
commit | b20f3b834673be9ead83a3c6f07fa3881d1a990f (patch) | |
tree | 719597407012fca08c66ef5f4565193765a042ed /sound/pci/hda/hda_codec.c | |
parent | 8dd783304e6d0f7c2830365d63f75f08aa343e10 (diff) |
ALSA: hda - Limit codec-verb retry to limited hardwares
The reset of a BUS controller during operations is somehow risky and
shouldn't be done inevitably for devices that have apparently no such
codec-communication problems.
This patch adds the check of the hardware and limits the bus-reset
capability.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_codec.c')
-rw-r--r-- | sound/pci/hda/hda_codec.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index aa0e1c18b60..562403a2348 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -214,11 +214,6 @@ unsigned int snd_hda_codec_read(struct hda_codec *codec, hda_nid_t nid, } EXPORT_SYMBOL_HDA(snd_hda_codec_read); -/* Define the below to send and receive verbs synchronously. - * If you often get any codec communication errors, this is worth to try. - */ -/* #define SND_HDA_SUPPORT_SYNC_WRITE */ - /** * snd_hda_codec_write - send a single command without waiting for response * @codec: the HDA codec @@ -235,12 +230,9 @@ int snd_hda_codec_write(struct hda_codec *codec, hda_nid_t nid, int direct, unsigned int verb, unsigned int parm) { unsigned int cmd = make_codec_cmd(codec, nid, direct, verb, parm); -#ifdef SND_HDA_SUPPORT_SYNC_WRITE unsigned int res; - return codec_exec_verb(codec, cmd, &res); -#else - return codec_exec_verb(codec, cmd, NULL); -#endif + return codec_exec_verb(codec, cmd, + codec->bus->sync_write ? &res : NULL); } EXPORT_SYMBOL_HDA(snd_hda_codec_write); |