Skip to content

iommu/arm-smmu: Add interconnect bandwidth voting support#575

Open
bibekpatro wants to merge 3 commits into
qualcomm-linux:mainfrom
bibekpatro:main
Open

iommu/arm-smmu: Add interconnect bandwidth voting support#575
bibekpatro wants to merge 3 commits into
qualcomm-linux:mainfrom
bibekpatro:main

Conversation

@bibekpatro
Copy link
Copy Markdown

Add interconnect bandwidth voting support and related DT bindings, along with the corresponding dt entries for Qcom's Kodiak based platforms.

Some SoC implementations require a bandwidth vote on an interconnect
path before the SMMU register space is accessible. Add the optional
'interconnects' and 'interconnect-names' properties to the binding to
allow platform DT nodes to describe this path.

The arm-smmu driver uses these properties to vote for bandwidth before
accessing any SMMU registers and releases the vote on runtime suspend.

Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
iommu/arm-smmu: Add interconnect bandwidth voting support
On some SoCs the SMMU registers are only accessible once the
interconnect path described by the SMMU device node is enabled.
If no bandwidth vote is in place, early register accesses (e.g.
ID register reads during probe) can fail.
Add support for an optional interconnect path to the arm-smmu
driver and vote for bandwidth while the SMMU is active. The path
is acquired from DT if present and ignored otherwise.
The bandwidth vote is enabled before accessing SMMU registers
during probe and runtime resume, and released during runtime
suspend and on error paths.

Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
The GPU SMMU (adreno_smmu) on sc7280 requires a bandwidth vote on the
gem_noc MASTER_GPU_TCU -> mc_virt SLAVE_EBI1 path before its registers
can be accessed. Without this vote the SMMU is unreachable, leading to
probe failures when the driver reads the ID registers.

Add the interconnect path to the adreno_smmu node so the arm-smmu
driver can acquire and vote it during probe and runtime resume/suspend.

Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
@sgaud-quic
Copy link
Copy Markdown
Contributor

@bibekpatro is this change intended for QLI2.0 ? If yes please send PR to qcom-6.18.y branch

@bibekpatro
Copy link
Copy Markdown
Author

@bibekpatro is this change intended for QLI2.0 ? If yes please send PR to qcom-6.18.y branch

It is intended to send to LKML arm-smmu list first, then can be pulled into QLI2.0 branches, so to create a reference of the changes raised the PR for now here, till I post the patches to the LKML forum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants