Skip to content

Commit 3322803

Browse files
Amadeusz Sławińskibroonie
authored andcommitted
ASoC: Intel: avs: Print IPC error messages in lower layer
It is preferred to send error message in handler itself instead of leaving it to caller. Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com> Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://patch.msgid.link/20250109122216.3667847-7-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent e314677 commit 3322803

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

sound/soc/intel/avs/loader.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -675,16 +675,12 @@ int avs_dsp_first_boot_firmware(struct avs_dev *adev)
675675
}
676676

677677
ret = avs_ipc_get_hw_config(adev, &adev->hw_cfg);
678-
if (ret) {
679-
dev_err(adev->dev, "get hw cfg failed: %d\n", ret);
678+
if (ret)
680679
return AVS_IPC_RET(ret);
681-
}
682680

683681
ret = avs_ipc_get_fw_config(adev, &adev->fw_cfg);
684-
if (ret) {
685-
dev_err(adev->dev, "get fw cfg failed: %d\n", ret);
682+
if (ret)
686683
return AVS_IPC_RET(ret);
687-
}
688684

689685
adev->core_refs = devm_kcalloc(adev->dev, adev->hw_cfg.dsp_cores,
690686
sizeof(*adev->core_refs), GFP_KERNEL);

sound/soc/intel/avs/messages.c

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -400,10 +400,12 @@ int avs_ipc_get_fw_config(struct avs_dev *adev, struct avs_fw_cfg *cfg)
400400
AVS_BASEFW_FIRMWARE_CONFIG, NULL, 0,
401401
&payload, &payload_size);
402402
if (ret)
403-
return ret;
403+
goto err;
404404
/* Non-zero payload expected for FIRMWARE_CONFIG. */
405-
if (!payload_size)
406-
return -EREMOTEIO;
405+
if (!payload_size) {
406+
ret = -EREMOTEIO;
407+
goto err;
408+
}
407409

408410
while (offset < payload_size) {
409411
tlv = (struct avs_tlv *)(payload + offset);
@@ -502,6 +504,9 @@ int avs_ipc_get_fw_config(struct avs_dev *adev, struct avs_fw_cfg *cfg)
502504

503505
/* No longer needed, free it as it's owned by the get_large_config() caller. */
504506
kfree(payload);
507+
err:
508+
if (ret)
509+
dev_err(adev->dev, "get fw cfg failed: %d\n", ret);
505510
return ret;
506511
}
507512

@@ -517,10 +522,12 @@ int avs_ipc_get_hw_config(struct avs_dev *adev, struct avs_hw_cfg *cfg)
517522
AVS_BASEFW_HARDWARE_CONFIG, NULL, 0,
518523
&payload, &payload_size);
519524
if (ret)
520-
return ret;
525+
goto err;
521526
/* Non-zero payload expected for HARDWARE_CONFIG. */
522-
if (!payload_size)
523-
return -EREMOTEIO;
527+
if (!payload_size) {
528+
ret = -EREMOTEIO;
529+
goto err;
530+
}
524531

525532
while (offset < payload_size) {
526533
tlv = (struct avs_tlv *)(payload + offset);
@@ -590,6 +597,9 @@ int avs_ipc_get_hw_config(struct avs_dev *adev, struct avs_hw_cfg *cfg)
590597
exit:
591598
/* No longer needed, free it as it's owned by the get_large_config() caller. */
592599
kfree(payload);
600+
err:
601+
if (ret)
602+
dev_err(adev->dev, "get hw cfg failed: %d\n", ret);
593603
return ret;
594604
}
595605

0 commit comments

Comments
 (0)