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

Sai Prakash Ranjan
2019-09-19T18:54:31Z

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