Message ID | 20240129-x1e80100-remoteproc-v1-0-15d21ef58a4b@linaro.org |
---|---|
Headers | show |
Series | remoteproc: qcom_q6v5_pas: Add aDSP and cDSP for X1E80100 | expand |
On Mon, 29 Jan 2024 at 15:35, Abel Vesa <abel.vesa@linaro.org> wrote: > > From: Sibi Sankar <quic_sibis@quicinc.com> > > The UEFI loads a lite variant of the ADSP firmware to support charging > use cases. The kernel needs to unload and reload it with the firmware > that has full feature support for audio. This patch arbitarily shutsdown > the lite firmware before loading the full firmware. > > Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com> > Signed-off-by: Abel Vesa <abel.vesa@linaro.org> > --- > drivers/remoteproc/qcom_q6v5_pas.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c > index 083d71f80e5c..4f6940368eb4 100644 > --- a/drivers/remoteproc/qcom_q6v5_pas.c > +++ b/drivers/remoteproc/qcom_q6v5_pas.c > @@ -39,6 +39,7 @@ struct adsp_data { > const char *dtb_firmware_name; > int pas_id; > int dtb_pas_id; > + int lite_pas_id; > unsigned int minidump_id; > bool auto_boot; > bool decrypt_shutdown; > @@ -72,6 +73,7 @@ struct qcom_adsp { > const char *dtb_firmware_name; > int pas_id; > int dtb_pas_id; > + int lite_pas_id; > unsigned int minidump_id; > int crash_reason_smem; > bool decrypt_shutdown; > @@ -210,6 +212,10 @@ static int adsp_load(struct rproc *rproc, const struct firmware *fw) > /* Store firmware handle to be used in adsp_start() */ > adsp->firmware = fw; > > + /* WIP: Shutdown the ADSP if it's running a lite version of the firmware*/ Why is it still marked as WIP? > + if (adsp->lite_pas_id) > + ret = qcom_scm_pas_shutdown(adsp->lite_pas_id); > + > if (adsp->dtb_pas_id) { > ret = request_firmware(&adsp->dtb_firmware, adsp->dtb_firmware_name, adsp->dev); > if (ret) { > @@ -693,6 +699,7 @@ static int adsp_probe(struct platform_device *pdev) > adsp->rproc = rproc; > adsp->minidump_id = desc->minidump_id; > adsp->pas_id = desc->pas_id; > + adsp->lite_pas_id = desc->lite_pas_id; > adsp->info_name = desc->sysmon_name; > adsp->decrypt_shutdown = desc->decrypt_shutdown; > adsp->region_assign_idx = desc->region_assign_idx; > @@ -990,6 +997,7 @@ static const struct adsp_data x1e80100_adsp_resource = { > .dtb_firmware_name = "adsp_dtb.mdt", > .pas_id = 1, > .dtb_pas_id = 0x24, > + .lite_pas_id = 0x1f, > .minidump_id = 5, > .auto_boot = true, > .proxy_pd_names = (char*[]){ > > -- > 2.34.1 > >
On 29/01/2024 14:34, Abel Vesa wrote: > Document the aDSP and cDSP Peripheral Authentication Service on the > X1E80100 Platform. > > Signed-off-by: Abel Vesa <abel.vesa@linaro.org> > --- > Documentation/devicetree/bindings/remoteproc/qcom,sm8550-pas.yaml | 6 ++++++ > 1 file changed, 6 insertions(+) > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Best regards, Krzysztof
On 1/31/24 15:00, Abel Vesa wrote: > On 24-01-29 17:17:28, Dmitry Baryshkov wrote: >> On Mon, 29 Jan 2024 at 15:35, Abel Vesa <abel.vesa@linaro.org> wrote: >>> >>> From: Sibi Sankar <quic_sibis@quicinc.com> >>> >>> The UEFI loads a lite variant of the ADSP firmware to support charging >>> use cases. The kernel needs to unload and reload it with the firmware >>> that has full feature support for audio. This patch arbitarily shutsdown >>> the lite firmware before loading the full firmware. >>> >>> Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com> >>> Signed-off-by: Abel Vesa <abel.vesa@linaro.org> >>> --- >>> drivers/remoteproc/qcom_q6v5_pas.c | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c >>> index 083d71f80e5c..4f6940368eb4 100644 >>> --- a/drivers/remoteproc/qcom_q6v5_pas.c >>> +++ b/drivers/remoteproc/qcom_q6v5_pas.c >>> @@ -39,6 +39,7 @@ struct adsp_data { >>> const char *dtb_firmware_name; >>> int pas_id; >>> int dtb_pas_id; >>> + int lite_pas_id; >>> unsigned int minidump_id; >>> bool auto_boot; >>> bool decrypt_shutdown; >>> @@ -72,6 +73,7 @@ struct qcom_adsp { >>> const char *dtb_firmware_name; >>> int pas_id; >>> int dtb_pas_id; >>> + int lite_pas_id; >>> unsigned int minidump_id; >>> int crash_reason_smem; >>> bool decrypt_shutdown; >>> @@ -210,6 +212,10 @@ static int adsp_load(struct rproc *rproc, const struct firmware *fw) >>> /* Store firmware handle to be used in adsp_start() */ >>> adsp->firmware = fw; >>> >>> + /* WIP: Shutdown the ADSP if it's running a lite version of the firmware*/ >> >> Why is it still marked as WIP? > > AFAIU, there was more to be done here w.r.t. preloaded lite version > firmware. > > Later, was agreed that that is not case. > > So maybe I just need to drop the comment. > > Sibi, can you confirm? ack, this is the best we can currently do. Please drop the comment when you re-spin the series. Thanks for sending this out. -Sibi > >> >>> + if (adsp->lite_pas_id) >>> + ret = qcom_scm_pas_shutdown(adsp->lite_pas_id); >>> + >>> if (adsp->dtb_pas_id) { >>> ret = request_firmware(&adsp->dtb_firmware, adsp->dtb_firmware_name, adsp->dev); >>> if (ret) { >>> @@ -693,6 +699,7 @@ static int adsp_probe(struct platform_device *pdev) >>> adsp->rproc = rproc; >>> adsp->minidump_id = desc->minidump_id; >>> adsp->pas_id = desc->pas_id; >>> + adsp->lite_pas_id = desc->lite_pas_id; >>> adsp->info_name = desc->sysmon_name; >>> adsp->decrypt_shutdown = desc->decrypt_shutdown; >>> adsp->region_assign_idx = desc->region_assign_idx; >>> @@ -990,6 +997,7 @@ static const struct adsp_data x1e80100_adsp_resource = { >>> .dtb_firmware_name = "adsp_dtb.mdt", >>> .pas_id = 1, >>> .dtb_pas_id = 0x24, >>> + .lite_pas_id = 0x1f, >>> .minidump_id = 5, >>> .auto_boot = true, >>> .proxy_pd_names = (char*[]){ >>> >>> -- >>> 2.34.1 >>> >>> >> >> >> -- >> With best wishes >> Dmitry
Signed-off-by: Abel Vesa <abel.vesa@linaro.org> --- Abel Vesa (1): dt-bindings: remoteproc: qcom,sm8550-pas: document the X1E80100 aDSP & cDSP Sibi Sankar (2): remoteproc: qcom_q6v5_pas: Add support for X1E80100 ADSP/CDSP remoteproc: qcom_q6v5_pas: Unload lite firmware on ADSP .../bindings/remoteproc/qcom,sm8550-pas.yaml | 6 +++ drivers/remoteproc/qcom_q6v5_pas.c | 49 ++++++++++++++++++++++ 2 files changed, 55 insertions(+) --- base-commit: 01af33cc9894b4489fb68fa35c40e9fe85df63dc change-id: 20231201-x1e80100-remoteproc-b27da583e8cc Best regards,