diff options
author | Eliot Blennerhassett <eblennerhassett@audioscience.com> | 2010-08-28 19:52:24 +1200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-08-28 11:55:07 +0200 |
commit | 60f1deb595c08687a96157a6a3ce08ef34142362 (patch) | |
tree | b3ee0d40829094c0de81c6922e517e751284104a | |
parent | e9a8a85d9f88313264d59d40815951a46ff9a4bb (diff) | |
download | linux-60f1deb595c08687a96157a6a3ce08ef34142362.tar.bz2 |
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>
-rw-r--r-- | sound/pci/asihpi/hpi6205.c | 7 |
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) |