0116-remoteproc-qcom-Update-regmap-offsets-for-halt-regis.patch 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. From 8c73af6e8d78c66cfef0f551b00d375ec0b67ff3 Mon Sep 17 00:00:00 2001
  2. From: Gokul Sriram Palanisamy <[email protected]>
  3. Date: Sat, 30 Jan 2021 10:50:09 +0530
  4. Subject: [PATCH] remoteproc: qcom: Update regmap offsets for halt register
  5. Fixed issue in reading halt-regs parameter from device-tree.
  6. Signed-off-by: Gokul Sriram Palanisamy <[email protected]>
  7. Signed-off-by: Sricharan R <[email protected]>
  8. ---
  9. drivers/remoteproc/qcom_q6v5_wcss.c | 22 ++++++++++++++--------
  10. 1 file changed, 14 insertions(+), 8 deletions(-)
  11. --- a/drivers/remoteproc/qcom_q6v5_wcss.c
  12. +++ b/drivers/remoteproc/qcom_q6v5_wcss.c
  13. @@ -86,7 +86,7 @@
  14. #define TCSR_WCSS_CLK_MASK 0x1F
  15. #define TCSR_WCSS_CLK_ENABLE 0x14
  16. -#define MAX_HALT_REG 3
  17. +#define MAX_HALT_REG 4
  18. #define WCNSS_PAS_ID 6
  19. @@ -154,6 +154,7 @@ struct wcss_data {
  20. u32 version;
  21. bool aon_reset_required;
  22. bool wcss_q6_reset_required;
  23. + bool bcr_reset_required;
  24. const char *ssr_name;
  25. const char *sysmon_name;
  26. int ssctl_id;
  27. @@ -875,10 +876,13 @@ static int q6v5_wcss_init_reset(struct q
  28. }
  29. }
  30. - wcss->wcss_q6_bcr_reset = devm_reset_control_get_exclusive(dev, "wcss_q6_bcr_reset");
  31. - if (IS_ERR(wcss->wcss_q6_bcr_reset)) {
  32. - dev_err(wcss->dev, "unable to acquire wcss_q6_bcr_reset\n");
  33. - return PTR_ERR(wcss->wcss_q6_bcr_reset);
  34. + if (desc->bcr_reset_required) {
  35. + wcss->wcss_q6_bcr_reset = devm_reset_control_get_exclusive(dev,
  36. + "wcss_q6_bcr_reset");
  37. + if (IS_ERR(wcss->wcss_q6_bcr_reset)) {
  38. + dev_err(wcss->dev, "unable to acquire wcss_q6_bcr_reset\n");
  39. + return PTR_ERR(wcss->wcss_q6_bcr_reset);
  40. + }
  41. }
  42. return 0;
  43. @@ -928,9 +932,9 @@ static int q6v5_wcss_init_mmio(struct q6
  44. return -EINVAL;
  45. }
  46. - wcss->halt_q6 = halt_reg[0];
  47. - wcss->halt_wcss = halt_reg[1];
  48. - wcss->halt_nc = halt_reg[2];
  49. + wcss->halt_q6 = halt_reg[1];
  50. + wcss->halt_wcss = halt_reg[2];
  51. + wcss->halt_nc = halt_reg[3];
  52. return 0;
  53. }
  54. @@ -1176,6 +1180,7 @@ static const struct wcss_data wcss_ipq80
  55. .crash_reason_smem = WCSS_CRASH_REASON,
  56. .aon_reset_required = true,
  57. .wcss_q6_reset_required = true,
  58. + .bcr_reset_required = false,
  59. .ssr_name = "q6wcss",
  60. .ops = &q6v5_wcss_ipq8074_ops,
  61. .requires_force_stop = true,
  62. @@ -1190,6 +1195,7 @@ static const struct wcss_data wcss_qcs40
  63. .version = WCSS_QCS404,
  64. .aon_reset_required = false,
  65. .wcss_q6_reset_required = false,
  66. + .bcr_reset_required = true,
  67. .ssr_name = "mpss",
  68. .sysmon_name = "wcnss",
  69. .ssctl_id = 0x12,