mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
ALSA: fireworks: use managed-resource to maintain response buffer
ALSA fireworks driver allocates memory object to handle response from target unit. The object is used to initiate transaction unique to Fireworks board module. This can be released as managed-resource of 'struct snd_card.card_dev'. This commit uses managed-resource of the sound card device for this purpose. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
a3aaf7d2bd
commit
784fffbcfe
@ -189,8 +189,6 @@ static void efw_free(struct snd_efw *efw)
|
||||
snd_efw_stream_destroy_duplex(efw);
|
||||
snd_efw_transaction_remove_instance(efw);
|
||||
|
||||
kfree(efw->resp_buf);
|
||||
|
||||
mutex_destroy(&efw->mutex);
|
||||
fw_unit_put(efw->unit);
|
||||
}
|
||||
@ -247,8 +245,9 @@ do_registration(struct work_struct *work)
|
||||
/* prepare response buffer */
|
||||
snd_efw_resp_buf_size = clamp(snd_efw_resp_buf_size,
|
||||
SND_EFW_RESPONSE_MAXIMUM_BYTES, 4096U);
|
||||
efw->resp_buf = kzalloc(snd_efw_resp_buf_size, GFP_KERNEL);
|
||||
if (efw->resp_buf == NULL) {
|
||||
efw->resp_buf = devm_kzalloc(&efw->card->card_dev,
|
||||
snd_efw_resp_buf_size, GFP_KERNEL);
|
||||
if (!efw->resp_buf) {
|
||||
err = -ENOMEM;
|
||||
goto error;
|
||||
}
|
||||
@ -300,8 +299,6 @@ error:
|
||||
snd_efw_transaction_remove_instance(efw);
|
||||
snd_efw_stream_destroy_duplex(efw);
|
||||
snd_card_free(efw->card);
|
||||
kfree(efw->resp_buf);
|
||||
efw->resp_buf = NULL;
|
||||
dev_info(&efw->unit->device,
|
||||
"Sound card registration failed: %d\n", err);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user