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>
This commit is contained in:
Amadeusz Sławiński
2025-01-09 13:22:09 +01:00
committed by Mark Brown
parent e3146775f0
commit 33228036ff
2 changed files with 18 additions and 12 deletions
+2 -6
View File
@@ -675,16 +675,12 @@ int avs_dsp_first_boot_firmware(struct avs_dev *adev)
}
ret = avs_ipc_get_hw_config(adev, &adev->hw_cfg);
if (ret) {
dev_err(adev->dev, "get hw cfg failed: %d\n", ret);
if (ret)
return AVS_IPC_RET(ret);
}
ret = avs_ipc_get_fw_config(adev, &adev->fw_cfg);
if (ret) {
dev_err(adev->dev, "get fw cfg failed: %d\n", ret);
if (ret)
return AVS_IPC_RET(ret);
}
adev->core_refs = devm_kcalloc(adev->dev, adev->hw_cfg.dsp_cores,
sizeof(*adev->core_refs), GFP_KERNEL);
+16 -6
View File
@@ -400,10 +400,12 @@ int avs_ipc_get_fw_config(struct avs_dev *adev, struct avs_fw_cfg *cfg)
AVS_BASEFW_FIRMWARE_CONFIG, NULL, 0,
&payload, &payload_size);
if (ret)
return ret;
goto err;
/* Non-zero payload expected for FIRMWARE_CONFIG. */
if (!payload_size)
return -EREMOTEIO;
if (!payload_size) {
ret = -EREMOTEIO;
goto err;
}
while (offset < payload_size) {
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)
/* No longer needed, free it as it's owned by the get_large_config() caller. */
kfree(payload);
err:
if (ret)
dev_err(adev->dev, "get fw cfg failed: %d\n", ret);
return ret;
}
@@ -517,10 +522,12 @@ int avs_ipc_get_hw_config(struct avs_dev *adev, struct avs_hw_cfg *cfg)
AVS_BASEFW_HARDWARE_CONFIG, NULL, 0,
&payload, &payload_size);
if (ret)
return ret;
goto err;
/* Non-zero payload expected for HARDWARE_CONFIG. */
if (!payload_size)
return -EREMOTEIO;
if (!payload_size) {
ret = -EREMOTEIO;
goto err;
}
while (offset < payload_size) {
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)
exit:
/* No longer needed, free it as it's owned by the get_large_config() caller. */
kfree(payload);
err:
if (ret)
dev_err(adev->dev, "get hw cfg failed: %d\n", ret);
return ret;
}