[alsa-devel] [PATCH] Return hw error directly from oustream_write.
From: Eliot Blennerhassett eblennerhassett@audioscience.com
If hw error is ignored, status is updated with invalid info.
Signed-off-by: Eliot Blennerhassett eblennerhassett@audioscience.com --- 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 3b44134..22c5fc6 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)
At Sat, 28 Aug 2010 19:52:24 +1200, linux@audioscience.com wrote:
From: Eliot Blennerhassett eblennerhassett@audioscience.com
If hw error is ignored, status is updated with invalid info.
Signed-off-by: Eliot Blennerhassett eblennerhassett@audioscience.com
Thanks, applied now.
Takashi
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 3b44134..22c5fc6 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)
-- 1.7.0.4
participants (2)
-
linuxï¼ audioscience.com
-
Takashi Iwai