ALSA: asihpi: Simplify error handling in PCM substream setup
Refactor error handling in the PCM substream setup to combine redundant checks and improve code readability. Free the dpcm structure and return appropriate error codes (-EBUSY for HPI_ERROR_OBJ_ALREADY_OPEN, -EIO for other errors) in a single block. Signed-off-by: Jihed Chaibi <jihed.chaibi.dev@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
e135eeef0b
commit
c29287bb32
1 changed files with 8 additions and 8 deletions
|
|
@ -982,12 +982,12 @@ static int snd_card_asihpi_playback_open(struct snd_pcm_substream *substream)
|
|||
err = hpi_outstream_open(card->hpi->adapter->index,
|
||||
substream->number, &dpcm->h_stream);
|
||||
hpi_handle_error(err);
|
||||
if (err)
|
||||
if (err) {
|
||||
kfree(dpcm);
|
||||
if (err == HPI_ERROR_OBJ_ALREADY_OPEN)
|
||||
return -EBUSY;
|
||||
if (err)
|
||||
if (err == HPI_ERROR_OBJ_ALREADY_OPEN)
|
||||
return -EBUSY;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/*? also check ASI5000 samplerate source
|
||||
If external, only support external rate.
|
||||
|
|
@ -1156,12 +1156,12 @@ static int snd_card_asihpi_capture_open(struct snd_pcm_substream *substream)
|
|||
err = hpi_handle_error(
|
||||
hpi_instream_open(card->hpi->adapter->index,
|
||||
substream->number, &dpcm->h_stream));
|
||||
if (err)
|
||||
if (err) {
|
||||
kfree(dpcm);
|
||||
if (err == HPI_ERROR_OBJ_ALREADY_OPEN)
|
||||
return -EBUSY;
|
||||
if (err)
|
||||
if (err == HPI_ERROR_OBJ_ALREADY_OPEN)
|
||||
return -EBUSY;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
timer_setup(&dpcm->timer, snd_card_asihpi_timer_function, 0);
|
||||
dpcm->substream = substream;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue