Earlier version was just introducing secure rmw API introduction and its use in pinctrl/scm dload register. Current version also seems to fix some of the identified issue in scm driver code. Patch #1-3 patches are for secure rmw api. Patch #4 is slight optimization for the newer SoCs. Patch #5 is using the introduce api. Patch #6-9 try to avoid NUll pointer or to remove redundant code. Change from v11: https://lore.kernel.org/lkml/1704727654-13999-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - New patches #1 and #6-9 - Renamed scm_query_lock to scm_lock and reuse it in qcom_scm_io_rmw() - Added comment for scm_lock Changes from v10: - Rebased on linux-next tag 20240108 Changes from v9: https://lore.kernel.org/lkml/1698648967-974-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Added 3/4 new patch. - commit subject modification. Change from v8: https://lore.kernel.org/lkml/1698235506-16993-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Introduce enum for dload mode constants as per suggestion from [Elliot]. - Rebased on linux-next. Changes from v7: https://lore.kernel.org/lkml/1696440338-12561-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Rebased it on next-20231025. - Added reviewed-by tag and take care of comment made about commit text should be in imperative mode. - Modified the name of the API to qcom_scm_io_rmw() as per suggestion made by [Dmitry] - Moved spinlock inside qcom_scm structure. - Corrected the patch order as per subsystem SCM first then pinctrl. Change from minidump-v5(13/17-15/17):https://lore.kernel.org/lkml/1694429639-21484-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Removed mistakenly added macros. https://lore.kernel.org/lkml/9da888dc-401a-4cbb-b616-b4654fa79e35@xxxxxxxxxxx/ - Added Acked-by tag from Linus.w to 2/3. Change from minidump-v5(13/17-15/17):https://lore.kernel.org/lkml/1694429639-21484-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Removed mistakenly added macros. https://lore.kernel.org/lkml/9da888dc-401a-4cbb-b616-b4654fa79e35@xxxxxxxxxxx/ - Added Acked-by tag from Linus.w to 2/3. Changes in v6: https://lore.kernel.org/lkml/1680076012-10785-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Rebased it on latest tag available on linux-next - Added missed Poovendhan sign-off on 15/17 and tested-by tag from Kathiravan. Thanks to him for testing and reminding me of missing sign-off. - Addressed comments made on dload mode patch v6 version Changes in v5: https://lore.kernel.org/lkml/1680017869-22421-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Tried to fix the issue reported by kernel test robot https://lore.kernel.org/lkml/202303280535.acb66sQT-lkp@xxxxxxxxx/ - Applied some of the improvement suggested by [Bjorn.andersson] . Dropped 'both' instead support full,mini or mini,full for setting download mode to collect both minidump and full dump. . logging improvement. Changes in v4: https://lore.kernel.org/lkml/1679935281-18445-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - val should be shifted within the function [srinivas.kandagatla] i.e new = (old & ~mask) | (val << ffs(mask) - 1); - Added Acked-by [linus.walleij] on pinctrl change. Changes in v3 : https://lore.kernel.org/lkml/1679070482-8391-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Removed [1] from the series and sent as a separate patch[2], although this series should be applied on top [2]. [1] https://lore.kernel.org/lkml/1677664555-30191-2-git-send-email-quic_mojha@xxxxxxxxxxx/ [2] https://lore.kernel.org/lkml/1678979666-551-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Introduce new exported symbol on suggestion from [srinivas.kandagatla] - Use the symbol from drivers/pinctrl/qcom/pinctrl-msm.c. - Addressed comment given by [dmitry.baryshkov] - Converted non-standard Originally-by to Signed-off-by. Changes in v2: https://lore.kernel.org/lkml/1677664555-30191-1-git-send-email-quic_mojha@xxxxxxxxxxx/ - Addressed comment made by [bjorn] - Added download mask. - Passed download mode as parameter - Accept human accepatable download mode string. - enable = !!dload_mode - Shifted module param callback to somewhere down in the file so that it no longer need to know the prototype of qcom_scm_set_download_mode() - updated commit text. Mukesh Ojha (9): firmware: qcom: scm: Rename scm_query_lock to scm_lock firmware: qcom: scm: provide a read-modify-write function firmware: qcom: scm: Modify only the download bits in TCSR register firmware: qcom: scm: Rework dload mode availability check pinctrl: qcom: Use qcom_scm_io_rmw() function firmware: qcom: scm: Remove log reporting memory allocation failure firmware: qcom: scm: Fix __scm->dev assignement firmware: qcom: scm: Add check to prevent Null pointer dereference firmware: scm: Remove redundant scm argument from qcom_scm_waitq_wakeup() drivers/firmware/qcom/qcom_scm.c | 162 +++++++++++++++++++------ drivers/pinctrl/qcom/pinctrl-msm.c | 10 +- include/linux/firmware/qcom/qcom_scm.h | 1 + 3 files changed, 128 insertions(+), 45 deletions(-) -- 2.43.0.254.ga26002b62827