summaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorEliot Blennerhassett <eblennerhassett@audioscience.com>2010-08-28 09:52:24 +0200
committerTakashi Iwai <tiwai@suse.de>2010-08-28 11:55:07 +0200
commit60f1deb595c08687a96157a6a3ce08ef34142362 (patch)
treeb3ee0d40829094c0de81c6922e517e751284104a /sound/pci
parentMerge branch 'fix/asoc' into for-linus (diff)
downloadlinux-60f1deb595c08687a96157a6a3ce08ef34142362.tar.xz
linux-60f1deb595c08687a96157a6a3ce08ef34142362.zip
ALSA: asihpi - Return hw error directly from oustream_write.
If hw error is ignored, status is updated with invalid info. Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/asihpi/hpi6205.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/pci/asihpi/hpi6205.c b/sound/pci/asihpi/hpi6205.c
index 3b4413448226..22c5fc625533 100644
--- a/sound/pci/asihpi/hpi6205.c
+++ b/sound/pci/asihpi/hpi6205.c
@@ -941,8 +941,7 @@ static void outstream_host_buffer_free(struct hpi_adapter_obj *pao,
}
-static u32 outstream_get_space_available(struct hpi_hostbuffer_status
- *status)
+static u32 outstream_get_space_available(struct hpi_hostbuffer_status *status)
{
return status->size_in_bytes - (status->host_index -
status->dSP_index);
@@ -987,6 +986,10 @@ static void outstream_write(struct hpi_adapter_obj *pao,
/* write it */
phm->function = HPI_OSTREAM_WRITE;
hw_message(pao, phm, phr);
+
+ if (phr->error)
+ return;
+
/* update status information that the DSP would typically
* update (and will update next time the DSP
* buffer update task reads data from the host BBM buffer)