Skip to content

FROMLIST: arm64: dts: qcom: purwa: Fix GPU IOMMU property - #448

Merged
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
jiezh-qualcomm:fix_purwa_gpu_sid_2.0
Apr 12, 2026
Merged

FROMLIST: arm64: dts: qcom: purwa: Fix GPU IOMMU property#448
Salendarsingh Gaud (sgaud-quic) merged 1 commit into
qualcomm-linux:qcom-6.18.yfrom
jiezh-qualcomm:fix_purwa_gpu_sid_2.0

Conversation

@jiezh-qualcomm

Copy link
Copy Markdown

Purwa's GPU does not support SID 1, which is typically used for LPAC-related traffic. Remove SID 1 from the GPU node's iommus property to accurately describe the hardware. This fixes the splat below, seen with some versions of Gunyah hypervisor:

Internal error: synchronous external abort: 0000000096000010 [#1] SMP
CPU: 0 UID: 0 PID: 80 Comm: kworker/u33:2 Tainted: G M
Tainted: [M]=MACHINE_CHECK
Hardware name: Qualcomm Technologies, Inc. Purwa IoT EVK (DT)
Workqueue: events_unbound deferred_probe_work_func
pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
pc : arm_smmu_write_s2cr+0x9c/0xbc
lr : arm_smmu_master_install_s2crs+0x78/0xa4
sp : ffff80008039b570
x29: ffff80008039b570 x28: 0000000000000000 x27: ffffaddd62f1ab78
x26: ffff00080a4ff280 x25: 0000000000000018 x24: ffff00080b896480
x23: ffff00080ba9b7a0 x22: ffff00080bb05160 x21: 0000000000000000
x20: 0000000000000000 x19: 0000000000000001 x18: 00000000ffffffff
x17: 0000000000000000 x16: 0000000000000000 x15: ffff80008039b1d0
x14: ffff80010039b37d x13: 00746c7561662d74 x12: 0000000000000000
x11: ffff00080b7fbd98 x10: ffffffffffffffc0 x9 : ffffffffffffffff
x8 : 0000000000000228 x7 : 0000000000000e87 x6 : 0000000000000000
x5 : 0000000000000000 x4 : ffff00080a4ff280 x3 : 0000000000000000
x2 : ffff800082a40c04 x1 : 0000000000000000 x0 : ffff800082a40000
Call trace:
arm_smmu_write_s2cr+0x9c/0xbc (P)
arm_smmu_master_install_s2crs+0x78/0xa4
arm_smmu_attach_dev+0xb0/0x1d8
__iommu_device_set_domain+0x84/0x11c
__iommu_group_set_domain_internal+0x60/0x120
__iommu_attach_group+0x88/0x9c
iommu_attach_device+0x6c/0xa0
msm_iommu_new.part.0+0x84/0xe4 [msm]
msm_iommu_gpu_new+0x3c/0x104 [msm]
adreno_iommu_create_vm+0x24/0xc8 [msm]
a6xx_create_vm+0x48/0x78 [msm]
msm_gpu_init+0x2d8/0x508 [msm]
adreno_gpu_init+0x208/0x324 [msm]
a6xx_gpu_init+0x604/0x8cc [msm]
adreno_bind+0xb4/0x124 [msm]
component_bind_all+0x114/0x23c
msm_drm_init+0x1b0/0x1ec [msm]
msm_drm_bind+0x30/0x3c [msm]
try_to_bring_up_aggregate_device+0x164/0x1d0
__component_add+0xa4/0x16c
component_add+0x14/0x20
msm_dp_display_probe_tail+0x4c/0xac [msm]
msm_dp_auxbus_done_probe+0x14/0x20 [msm]
dp_aux_ep_probe+0x4c/0xf4 [drm_dp_aux_bus]
really_probe+0xbc/0x29c
__driver_probe_device+0x78/0x12c
driver_probe_device+0x3c/0x15c
__device_attach_driver+0xb8/0x134
bus_for_each_drv+0x88/0xe8
__device_attach+0xa0/0x190
device_initial_probe+0x50/0x54
bus_probe_device+0x38/0xa4
deferred_probe_work_func+0x88/0xc0
process_one_work+0x148/0x28c
worker_thread+0x2cc/0x3d4
kthread+0x12c/0x204
ret_from_fork+0x10/0x20
---[ end trace 0000000000000000 ]---

Fixes: 1aa0b4e ("arm64: dts: qcom: x1p42100: Add GPU support")

Link: https://lore.kernel.org/r/20260410-purwa-gpu-dt-fix-v1-1-4637892156cf@oss.qualcomm.com

CRs-Fixed: 4497701

@jiezh-qualcomm
jiezh-qualcomm requested a review from a teamApril 10, 2026 04:42
@jiezh-qualcomm
jiezh-qualcommforce-pushed the fix_purwa_gpu_sid_2.0 branch 3 times, most recently from a3ee04c to 32b7f8dCompareApril 10, 2026 05:16
Purwa's GPU does not support SID 1, which is typically used for
LPAC-related traffic. Remove SID 1 from the GPU node's iommus property to
accurately describe the hardware. This fixes the splat below, seen with
some versions of Gunyah hypervisor:
Internal error: synchronous external abort: 0000000096000010 [qualcomm-linux#1] SMP
CPU: 0 UID: 0 PID: 80 Comm: kworker/u33:2 Tainted: G M
Tainted: [M]=MACHINE_CHECK
Hardware name: Qualcomm Technologies, Inc. Purwa IoT EVK (DT)
Workqueue: events_unbound deferred_probe_work_func
pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
pc : arm_smmu_write_s2cr+0x9c/0xbc
lr : arm_smmu_master_install_s2crs+0x78/0xa4
sp : ffff80008039b570
x29: ffff80008039b570 x28: 0000000000000000 x27: ffffaddd62f1ab78
x26: ffff00080a4ff280 x25: 0000000000000018 x24: ffff00080b896480
x23: ffff00080ba9b7a0 x22: ffff00080bb05160 x21: 0000000000000000
x20: 0000000000000000 x19: 0000000000000001 x18: 00000000ffffffff
x17: 0000000000000000 x16: 0000000000000000 x15: ffff80008039b1d0
x14: ffff80010039b37d x13: 00746c7561662d74 x12: 0000000000000000
x11: ffff00080b7fbd98 x10: ffffffffffffffc0 x9 : ffffffffffffffff
x8 : 0000000000000228 x7 : 0000000000000e87 x6 : 0000000000000000
x5 : 0000000000000000 x4 : ffff00080a4ff280 x3 : 0000000000000000
x2 : ffff800082a40c04 x1 : 0000000000000000 x0 : ffff800082a40000
Call trace:
arm_smmu_write_s2cr+0x9c/0xbc (P)
arm_smmu_master_install_s2crs+0x78/0xa4
arm_smmu_attach_dev+0xb0/0x1d8
__iommu_device_set_domain+0x84/0x11c
__iommu_group_set_domain_internal+0x60/0x120
__iommu_attach_group+0x88/0x9c
iommu_attach_device+0x6c/0xa0
msm_iommu_new.part.0+0x84/0xe4 [msm]
msm_iommu_gpu_new+0x3c/0x104 [msm]
adreno_iommu_create_vm+0x24/0xc8 [msm]
a6xx_create_vm+0x48/0x78 [msm]
msm_gpu_init+0x2d8/0x508 [msm]
adreno_gpu_init+0x208/0x324 [msm]
a6xx_gpu_init+0x604/0x8cc [msm]
adreno_bind+0xb4/0x124 [msm]
component_bind_all+0x114/0x23c
msm_drm_init+0x1b0/0x1ec [msm]
msm_drm_bind+0x30/0x3c [msm]
try_to_bring_up_aggregate_device+0x164/0x1d0
__component_add+0xa4/0x16c
component_add+0x14/0x20
msm_dp_display_probe_tail+0x4c/0xac [msm]
msm_dp_auxbus_done_probe+0x14/0x20 [msm]
dp_aux_ep_probe+0x4c/0xf4 [drm_dp_aux_bus]
really_probe+0xbc/0x29c
__driver_probe_device+0x78/0x12c
driver_probe_device+0x3c/0x15c
__device_attach_driver+0xb8/0x134
bus_for_each_drv+0x88/0xe8
__device_attach+0xa0/0x190
device_initial_probe+0x50/0x54
bus_probe_device+0x38/0xa4
deferred_probe_work_func+0x88/0xc0
process_one_work+0x148/0x28c
worker_thread+0x2cc/0x3d4
kthread+0x12c/0x204
ret_from_fork+0x10/0x20
---[ end trace 0000000000000000 ]---
Fixes: 1aa0b4e ("arm64: dts: qcom: x1p42100: Add GPU support")
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260410-purwa-gpu-dt-fix-v1-1-4637892156cf@oss.qualcomm.com
@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Caselemans-evkmonaco-evkqcs615-rideqcs6490-rb3gen2qcs8300-rideqcs9100-ride-r3sm8750-mtpx1e80100-crd
BT_FW_KMD_Service❌ Fail❌ Fail◻️✅ Pass✅ Pass✅ Pass◻️◻️
BT_ON_OFF✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
BT_SCAN❌ Fail❌ Fail◻️✅ Pass✅ Pass✅ Pass◻️◻️
CPUFreq_Validation✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
CPU_affinity✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
DSP_AudioPD✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
Ethernet✅ Pass✅ Pass◻️⚠️ skip✅ Pass⚠️ skip◻️◻️
Freq_Scaling✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
GIC✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
IPA✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
Interrupts✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
OpenCV⚠️ skip⚠️ skip◻️⚠️ skip⚠️ skip⚠️ skip◻️◻️
PCIe✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
Probe_Failure_Check❌ Fail❌ Fail◻️❌ Fail❌ Fail❌ Fail◻️◻️
RMNET✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
UFS_Validation✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
USBHost✅ Pass✅ Pass◻️❌ Fail✅ Pass✅ Pass◻️◻️
WiFi_Firmware_Driver⚠️ skip⚠️ skip◻️⚠️ skip⚠️ skip⚠️ skip◻️◻️
WiFi_OnOff✅ Pass⚠️ skip◻️✅ Pass✅ Pass✅ Pass◻️◻️
cdsp_remoteproc✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
hotplug✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
irq✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
kaslr✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
pinctrl✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
qcom_hwrng✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
remoteproc✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
rngtest✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
shmbridge✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
smmu✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
watchdog✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️
wpss_remoteproc✅ Pass✅ Pass◻️✅ Pass✅ Pass✅ Pass◻️◻️

@sgaud-quic
Salendarsingh Gaud (sgaud-quic) merged commit e4cae56 into qualcomm-linux:qcom-6.18.yApr 12, 2026
7 of 8 checks passed
Sign up for freeto 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.

6 participants

@jiezh-qualcomm@qcomlnxci@shashim-quic@quic-tingweiz@sgaud-quic@akhilpo-qcom