lkml.org 
[lkml]   [2025]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 1/2] ASoC: qcom: audioreach: Add support for Speaker Protection module
From
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

\
 
 \ /
  Last update: 2025-08-29 08:45    [from the cache]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and my Meterkast|Read the blog