[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ba78f528-dd3c-49b6-920a-0c0758946f16@linaro.org>
Date: Fri, 29 Aug 2025 08:44:11 +0200
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Srinivas Kandagatla <srinivas.kandagatla@....qualcomm.com>,
Srinivas Kandagatla <srini@...nel.org>, Liam Girdwood <lgirdwood@...il.com>,
Mark Brown <broonie@...nel.org>, Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>, linux-sound@...r.kernel.org,
linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] ASoC: qcom: audioreach: Add support for Speaker
Protection module
On 22/08/2025 12:39, Srinivas Kandagatla wrote:
>> +static int audioreach_speaker_protection(struct q6apm_graph *graph,
>> + struct audioreach_module *module,
>> + uint32_t operation_mode)
>> +{
>> + return audioreach_send_u32_param(graph, module, PARAM_ID_SP_OP_MODE,
>> + operation_mode);
>> +}
>> +
>> +
>> int audioreach_set_media_format(struct q6apm_graph *graph, struct audioreach_module *module,
>> struct audioreach_module_config *cfg)
>> {
>> @@ -1299,6 +1308,10 @@ int audioreach_set_media_format(struct q6apm_graph *graph, struct audioreach_mod
>> case MODULE_ID_GAPLESS:
>> rc = audioreach_gapless_set_media_format(graph, module, cfg);
>> break;
>> + case MODULE_ID_SPEAKER_PROTECTION:
>> + rc = audioreach_speaker_protection(graph, module,
>> + PARAM_ID_SP_OP_MODE_CALIBRATION);
>
> Are we leaving this in calibration mode forever? When does the mode change?
That should be a normal mode, thanks for catching this.
>
>> + break;
>> default:
>> rc = 0;
>> }
>> diff --git a/sound/soc/qcom/qdsp6/audioreach.h b/sound/soc/qcom/qdsp6/audioreach.h
>> index 790fba96e34d..0ad566e45e09 100644
>> --- a/sound/soc/qcom/qdsp6/audioreach.h
>> +++ b/sound/soc/qcom/qdsp6/audioreach.h
>> @@ -31,6 +31,7 @@ struct q6apm_graph;
>> #define MODULE_ID_MP3_DECODE 0x0700103B
>> #define MODULE_ID_GAPLESS 0x0700104D
>> #define MODULE_ID_DISPLAY_PORT_SINK 0x07001069
>> +#define MODULE_ID_SPEAKER_PROTECTION 0x070010E2
>>
>> #define APM_CMD_GET_SPF_STATE 0x01001021
>> #define APM_CMD_RSP_GET_SPF_STATE 0x02001007
>> @@ -542,6 +543,16 @@ struct data_logging_config {
>> uint32_t mode;
>> } __packed;
>>
>> +/* Speaker Protection */
>> +#define PARAM_ID_SP_OP_MODE 0x080011e9
>
>
> Are we missing
>
> #define PARAM_ID_SP_OP_MODE_NORMAL 0
I'll double check with the docs, but indeed feels like that.
> ?
>
>> +#define PARAM_ID_SP_OP_MODE_CALIBRATION 1
>> +#define PARAM_ID_SP_OP_MODE_FACTORY_TEST 2
>> +#define PARAM_ID_SP_OP_MODE_VALIDATION 3
>
>> +
Best regards,
Krzysztof
Powered by blists - more mailing lists