]> www.infradead.org Git - users/hch/misc.git/commitdiff
ASoC: Intel: avs: Print IPC error messages in lower layer
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Thu, 9 Jan 2025 12:22:09 +0000 (13:22 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 9 Jan 2025 12:14:21 +0000 (12:14 +0000)
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>
sound/soc/intel/avs/loader.c
sound/soc/intel/avs/messages.c

index 37de077a99838618b4c6c835ef31f6bc1408c0ef..4203b216ae1351381f0f66e23cea466a5697b7d1 100644 (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);
index ec458bd51b10b69e3e3490e76621d9c8565b0990..30b666f8909b2fc0ba0f8b7d0138ccf315e7271b 100644 (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;
 }