This reverts commit 781d32d1c970 as it causes regression(reboot
does not work) for target like IPQ4019 that does not support
download mode scm calls end to end.
Fixes: 781d32d1c970 ("firmware: qcom_scm: Clear download bit during reboot")
Signed-off-by: Mukesh Ojha <[email protected]>
---
drivers/firmware/qcom_scm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index fde33acd46b7..a4bb9265d9c0 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -1508,7 +1508,8 @@ static int qcom_scm_probe(struct platform_device *pdev)
static void qcom_scm_shutdown(struct platform_device *pdev)
{
/* Clean shutdown, disable download mode to allow normal restart */
- qcom_scm_set_download_mode(false);
+ if (download_mode)
+ qcom_scm_set_download_mode(false);
}
static const struct of_device_id qcom_scm_dt_match[] = {
--
2.7.4
> This reverts commit 781d32d1c970 as it causes regression(reboot
> does not work) for target like IPQ4019 that does not support
> download mode scm calls end to end.
>
> Fixes: 781d32d1c970 ("firmware: qcom_scm: Clear download bit during reboot")
> Signed-off-by: Mukesh Ojha <[email protected]>
> ---
> drivers/firmware/qcom_scm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
> index fde33acd46b7..a4bb9265d9c0 100644
> --- a/drivers/firmware/qcom_scm.c
> +++ b/drivers/firmware/qcom_scm.c
> @@ -1508,7 +1508,8 @@ static int qcom_scm_probe(struct platform_device *pdev)
> static void qcom_scm_shutdown(struct platform_device *pdev)
> {
> /* Clean shutdown, disable download mode to allow normal restart */
> - qcom_scm_set_download_mode(false);
> + if (download_mode)
> + qcom_scm_set_download_mode(false);
> }
>
> static const struct of_device_id qcom_scm_dt_match[] = {
>
Tested-by: Robert Marko <[email protected]>
Hey Robert,
https://lore.kernel.org/linux-arm-msm/[email protected]/
Would be good if you can provide your Tested-by ?
--Mukesh
On 5/18/2023 4:50 PM, Mukesh Ojha wrote:
> This reverts commit 781d32d1c970 as it causes regression(reboot
> does not work) for target like IPQ4019 that does not support
> download mode scm calls end to end.
>
> Fixes: 781d32d1c970 ("firmware: qcom_scm: Clear download bit during reboot")
> Signed-off-by: Mukesh Ojha <[email protected]>
> ---
> drivers/firmware/qcom_scm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
> index fde33acd46b7..a4bb9265d9c0 100644
> --- a/drivers/firmware/qcom_scm.c
> +++ b/drivers/firmware/qcom_scm.c
> @@ -1508,7 +1508,8 @@ static int qcom_scm_probe(struct platform_device *pdev)
> static void qcom_scm_shutdown(struct platform_device *pdev)
> {
> /* Clean shutdown, disable download mode to allow normal restart */
> - qcom_scm_set_download_mode(false);
> + if (download_mode)
> + qcom_scm_set_download_mode(false);
> }
>
> static const struct of_device_id qcom_scm_dt_match[] = {
On Thu, May 18, 2023 at 04:50:23PM +0530, Mukesh Ojha wrote:
> This reverts commit 781d32d1c970 as it causes regression(reboot
> does not work) for target like IPQ4019 that does not support
> download mode scm calls end to end.
>
What do you mean with "reboot does not work"?
Does qcom_scm_set_download_mode() crash the board? Does the reboot
always end up in download mode? Or some other form of "not work"?
Regards,
Bjorn
> Fixes: 781d32d1c970 ("firmware: qcom_scm: Clear download bit during reboot")
> Signed-off-by: Mukesh Ojha <[email protected]>
> ---
> drivers/firmware/qcom_scm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
> index fde33acd46b7..a4bb9265d9c0 100644
> --- a/drivers/firmware/qcom_scm.c
> +++ b/drivers/firmware/qcom_scm.c
> @@ -1508,7 +1508,8 @@ static int qcom_scm_probe(struct platform_device *pdev)
> static void qcom_scm_shutdown(struct platform_device *pdev)
> {
> /* Clean shutdown, disable download mode to allow normal restart */
> - qcom_scm_set_download_mode(false);
> + if (download_mode)
> + qcom_scm_set_download_mode(false);
> }
>
> static const struct of_device_id qcom_scm_dt_match[] = {
> --
> 2.7.4
>
+Robert
On 5/20/2023 7:42 AM, Bjorn Andersson wrote:
> On Thu, May 18, 2023 at 04:50:23PM +0530, Mukesh Ojha wrote:
>> This reverts commit 781d32d1c970 as it causes regression(reboot
>> does not work) for target like IPQ4019 that does not support
>> download mode scm calls end to end.
>>
>
> What do you mean with "reboot does not work"?
>
> Does qcom_scm_set_download_mode() crash the board? Does the reboot
> always end up in download mode? Or some other form of "not work"?
As per the discussion here, it seems qcom_scm_set_download_mode()
does not work on some legacy target like IPQ4019..may be because
firmware does not have the support..
https://lore.kernel.org/lkml/[email protected]/
-- Mukesh
>
> Regards,
> Bjorn
>
>> Fixes: 781d32d1c970 ("firmware: qcom_scm: Clear download bit during reboot")
>> Signed-off-by: Mukesh Ojha <[email protected]>
>> ---
>> drivers/firmware/qcom_scm.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
>> index fde33acd46b7..a4bb9265d9c0 100644
>> --- a/drivers/firmware/qcom_scm.c
>> +++ b/drivers/firmware/qcom_scm.c
>> @@ -1508,7 +1508,8 @@ static int qcom_scm_probe(struct platform_device *pdev)
>> static void qcom_scm_shutdown(struct platform_device *pdev)
>> {
>> /* Clean shutdown, disable download mode to allow normal restart */
>> - qcom_scm_set_download_mode(false);
>> + if (download_mode)
>> + qcom_scm_set_download_mode(false);
>> }
>>
>> static const struct of_device_id qcom_scm_dt_match[] = {
>> --
>> 2.7.4
>>