All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] Qcom smmu-500 wait-for-safe handling for sdm845
@ 2019-06-12  7:15 ` Vivek Gautam
  0 siblings, 0 replies; 73+ messages in thread
From: Vivek Gautam @ 2019-06-12  7:15 UTC (permalink / raw)
  To: agross, robh+dt, will.deacon, robin.murphy, joro,
	bjorn.andersson, linux-arm-msm, devicetree, iommu
  Cc: linux-kernel, david.brown, Vivek Gautam

Subject changed, older subject was -
Qcom smmu-500 TLB invalidation errata for sdm845.
Previous version of the patches are at [1]:

Qcom's implementation of smmu-500 on sdm845 adds a hardware logic called
wait-for-safe. This logic helps in meeting the invalidation requirements
from 'real-time clients', such as display and camera. This wait-for-safe
logic ensures that the invalidations happen after getting an ack from these
devices.
In this patch-series we are disabling this wait-for-safe logic from the
arm-smmu driver's probe as with this enabled the hardware tries to
throttle invalidations from 'non-real-time clients', such as USB and UFS.

For detailed information please refer to patch [3/4] in this series.
I have included the device tree patch too in this series for someone who
would like to test out this. Here's a branch [2] that gets display on MTP
SDM845 device.

This patch series is inspired from downstream work to handle under-performance
issues on real-time clients on sdm845. In downstream we add separate page table
ops to handle TLB maintenance and toggle wait-for-safe in tlb_sync call so that
achieve required performance for display and camera [3, 4].

Changes since v2:
 * Dropped the patch to add atomic io_read/write scm API.
 * Removed support for any separate page table ops to handle wait-for-safe.
   Currently just disabling this wait-for-safe logic from arm_smmu_device_probe()
   to achieve performance on USB/UFS on sdm845.
 * Added a device tree patch to add smmu option for fw-implemented support
   for SCM call to take care of SAFE toggling.

Changes since v1:
 * Addressed Will and Robin's comments:
    - Dropped the patch[4] that forked out __arm_smmu_tlb_inv_range_nosync(),
      and __arm_smmu_tlb_sync().
    - Cleaned up the errata patch further to use downstream polling mechanism
      for tlb sync.
 * No change in SCM call patches - patches 1 to 3.

[1] https://lore.kernel.org/patchwork/cover/983913/
[2] https://github.com/vivekgautam1/linux/tree/v5.2-rc4/sdm845-display-working
[3] https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/drivers/iommu/arm-smmu.c?h=CogSystems-msm-49/msm-4.9&id=da765c6c75266b38191b38ef086274943f353ea7
[4] https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/drivers/iommu/arm-smmu.c?h=CogSystems-msm-49/msm-4.9&id=8696005aaaf745de68f57793c1a534a34345c30a

Vivek Gautam (4):
  firmware: qcom_scm-64: Add atomic version of qcom_scm_call
  firmware/qcom_scm: Add scm call to handle smmu errata
  iommu/arm-smmu: Add support to handle Qcom's wait-for-safe logic
  arm64: dts/sdm845: Enable FW implemented safe sequence handler on MTP

 arch/arm64/boot/dts/qcom/sdm845.dtsi |   1 +
 drivers/firmware/qcom_scm-32.c       |   5 ++
 drivers/firmware/qcom_scm-64.c       | 149 ++++++++++++++++++++++++-----------
 drivers/firmware/qcom_scm.c          |   6 ++
 drivers/firmware/qcom_scm.h          |   5 ++
 drivers/iommu/arm-smmu.c             |  16 ++++
 include/linux/qcom_scm.h             |   2 +
 7 files changed, 140 insertions(+), 44 deletions(-)

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation


^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2019-08-11 19:01 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-12  7:15 [PATCH v3 0/4] Qcom smmu-500 wait-for-safe handling for sdm845 Vivek Gautam
2019-06-12  7:15 ` Vivek Gautam
2019-06-12  7:15 ` [PATCH v3 1/4] firmware: qcom_scm-64: Add atomic version of qcom_scm_call Vivek Gautam
2019-06-12  7:15   ` Vivek Gautam
2019-06-18 17:55   ` Will Deacon
2019-06-18 17:55     ` Will Deacon
2019-06-19 11:34     ` Vivek Gautam
2019-06-19 11:34       ` Vivek Gautam
2019-06-19 11:34       ` Vivek Gautam
2019-08-05 22:27       ` Bjorn Andersson
2019-08-05 22:27         ` Bjorn Andersson
2019-08-05 22:27         ` Bjorn Andersson
2019-08-08 11:35         ` Vivek Gautam
2019-08-08 11:35           ` Vivek Gautam
2019-08-08 11:35           ` Vivek Gautam
2019-08-08 16:30           ` Will Deacon
2019-08-08 16:30             ` Will Deacon
2019-08-08 16:30             ` Will Deacon
2019-06-12  7:15 ` [PATCH v3 2/4] firmware/qcom_scm: Add scm call to handle smmu errata Vivek Gautam
2019-06-12  7:15   ` Vivek Gautam
2019-06-12  7:15 ` [PATCH v3 3/4] iommu/arm-smmu: Add support to handle Qcom's wait-for-safe logic Vivek Gautam
2019-06-12  7:15   ` Vivek Gautam
2019-06-14  4:05   ` Bjorn Andersson
2019-06-14  4:05     ` Bjorn Andersson
2019-06-14  4:05     ` Bjorn Andersson
2019-06-14  9:18     ` Vivek Gautam
2019-06-14  9:18       ` Vivek Gautam
2019-06-18 17:52       ` Will Deacon
2019-06-18 17:52         ` Will Deacon
2019-06-24 10:28         ` Vivek Gautam
2019-06-24 10:28           ` Vivek Gautam
2019-06-24 10:28           ` Vivek Gautam
2019-06-24 17:03           ` Will Deacon
2019-06-24 17:03             ` Will Deacon
2019-06-24 17:03             ` Will Deacon
2019-06-25  7:04             ` Vivek Gautam
2019-06-25  7:04               ` Vivek Gautam
2019-06-25  7:04               ` Vivek Gautam
2019-06-25 13:39               ` Will Deacon
2019-06-25 13:39                 ` Will Deacon
2019-06-25 13:39                 ` Will Deacon
2019-06-26  6:33                 ` Vivek Gautam
2019-06-26  6:33                   ` Vivek Gautam
2019-06-26  6:33                   ` Vivek Gautam
2019-06-26 14:48                   ` Will Deacon
2019-06-26 14:48                     ` Will Deacon
2019-06-26 14:48                     ` Will Deacon
2019-06-27  7:05                     ` Vivek Gautam
2019-06-27  7:05                       ` Vivek Gautam
2019-06-27  7:05                       ` Vivek Gautam
2019-06-14 13:15   ` Marc Gonzalez
2019-06-14 13:15     ` Marc Gonzalez
2019-06-17  9:50     ` Vivek Gautam
2019-06-17  9:50       ` Vivek Gautam
2019-06-17 10:48       ` Marc Gonzalez
2019-06-17 10:48         ` Marc Gonzalez
2019-06-12  7:15 ` [PATCH v3 4/4] arm64: dts/sdm845: Enable FW implemented safe sequence handler on MTP Vivek Gautam
2019-06-12  7:15   ` Vivek Gautam
2019-06-14  4:06   ` Bjorn Andersson
2019-06-14  4:06     ` Bjorn Andersson
2019-06-14  4:06     ` Bjorn Andersson
2019-06-14  9:01     ` Vivek Gautam
2019-06-14  9:01       ` Vivek Gautam
2019-06-14  9:01       ` Vivek Gautam
2019-08-05 22:26   ` Bjorn Andersson
2019-08-05 22:26     ` Bjorn Andersson
2019-08-05 22:26     ` Bjorn Andersson
2019-08-11 16:08     ` Vivek Gautam
2019-08-11 16:08       ` Vivek Gautam
2019-08-11 16:08       ` Vivek Gautam
2019-08-11 19:01       ` Bjorn Andersson
2019-08-11 19:01         ` Bjorn Andersson
2019-08-11 19:01         ` Bjorn Andersson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.