Re: [PATCHv6 3/3] iommu: arm-smmu-impl: Add sdm845 implementation hook

From: Sai Prakash Ranjan
Date: Thu Sep 19 2019 - 14:54:35 EST


On 2019-09-19 08:48, Sai Prakash Ranjan wrote:
On 2019-09-19 05:55, Bjorn Andersson wrote:
In the transition to this new design we lost the ability to
enable/disable the safe toggle per board, which according to Vivek
would result in some issue with Cheza.

Can you confirm that this is okay? (Or introduce the DT property for
enabling the safe_toggle logic?)


Hmm, I don't remember Vivek telling about any issue on Cheza because
of this logic.
But I will test this on Cheza and let you know.


I tested this on Cheza and no perf degradation nor any other issue is seen
atleast openly, although I see this below stack dump always with cant_sleep change added.

[ 5.048860] BUG: assuming atomic context at /mnt/host/source/src/third_party/kernel/v5.3/drivers/firmware/qcom_scm-64.c:206
[ 5.060303] in_atomic(): 0, irqs_disabled(): 0, pid: 1, name: swapper/0
[ 5.067118] CPU: 4 PID: 1 Comm: swapper/0 Not tainted 5.3.0 #102
[ 5.073299] Hardware name: Google Cheza (rev3+) (DT)
[ 5.078416] Call trace:
[ 5.080953] dump_backtrace+0x0/0x16c
[ 5.084727] show_stack+0x20/0x2c
[ 5.088156] dump_stack+0x90/0xcc
[ 5.091585] __cant_sleep+0xb4/0xc4
[ 5.095192] __qcom_scm_qsmmu500_wait_safe_toggle+0x5c/0xa0
[ 5.100929] qcom_scm_qsmmu500_wait_safe_toggle+0x28/0x34
[ 5.106491] qcom_sdm845_smmu500_reset+0x24/0x50
[ 5.111249] arm_smmu_device_reset+0x1a4/0x25c
[ 5.115827] arm_smmu_device_probe+0x418/0x50c
[ 5.120406] platform_drv_probe+0x90/0xb0
[ 5.124542] really_probe+0x14c/0x3b8
[ 5.128327] driver_probe_device+0x70/0x140
[ 5.132643] device_driver_attach+0x4c/0x6c
[ 5.136960] __driver_attach+0xc8/0x150
[ 5.140917] bus_for_each_dev+0x84/0xcc
[ 5.144873] driver_attach+0x2c/0x38
[ 5.148555] bus_add_driver+0x108/0x1fc
[ 5.152512] driver_register+0x64/0xf8
[ 5.156375] __platform_driver_register+0x4c/0x58
[ 5.161226] arm_smmu_driver_init+0x1c/0x24
[ 5.165545] do_one_initcall+0x11c/0x2dc
[ 5.169595] do_initcall_level+0x14c/0x174
[ 5.173822] do_basic_setup+0x30/0x48
[ 5.177595] kernel_init_freeable+0xc4/0x144
[ 5.181990] kernel_init+0x14/0x100
[ 5.185584] ret_from_fork+0x10/0x18