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:
committed by
Mark Brown
parent
e3146775f0
commit
33228036ff
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user