On 5/21/26 12:29 PM, Taniya Das wrote:
>
>
> On 5/20/2026 2:02 PM, Bryan O'Donoghue wrote:
>> On 19/05/2026 16:10, Erikas Bitovtas wrote:
>>> Allow Venus core GDSCs to have their control passed to hardware, so they
>>> can be powered on by Venus firmware.
>>>
>>> Signed-off-by: Erikas Bitovtas <[email protected]>
>>> ---
>>> drivers/clk/qcom/gcc-msm8939.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/clk/qcom/gcc-msm8939.c b/drivers/clk/qcom/gcc-
>>> msm8939.c
>>> index 45193b3d714b..243d31a32e92 100644
>>> --- a/drivers/clk/qcom/gcc-msm8939.c
>>> +++ b/drivers/clk/qcom/gcc-msm8939.c
>>> @@ -3664,6 +3664,7 @@ static struct clk_branch gcc_venus0_vcodec0_clk = {
>>>
>>> static struct clk_branch gcc_venus0_core0_vcodec0_clk = {
>>> .halt_reg = 0x4c02c,
>>> + .halt_check = BRANCH_HALT_SKIP,
>
> please use .halt_check = BRANCH_HALT
>
If I do that, the clock fails to power on on boot.
[ 20.324488] ------------[ cut here ]------------
[ 20.324520] gcc_venus0_core0_vcodec0_clk status stuck at 'off'
[ 20.324663] WARNING: drivers/clk/qcom/clk-branch.c:88 at
clk_branch_toggle+0x124/0x170, CPU#7: (udev-worker)/1010
[ 20.324723] Modules linked in: snd_soc_apq8016_sbc(+)
snd_soc_qcom_common venus_core(+) qcom_q6v5_mss(+) v4l2_mem2mem
qcom_pil_info videobuf2_v4l2 qcom_common qcom_q6v5 videobuf2_common
videodev mc qcom_memshare tun binfmt_misc nft_reject_inet nft_reject
nf_reject_ipv6 nf_reject_ipv4 nft_ct nf_conntrack zram nf_defrag_ipv6
nf_defrag_ipv4 zsmalloc lz4_compress zstd_compress nf_tables uhid uinput
fuse nfnetlink ipv6 xfs usb_f_ncm u_ether panel_asus_z00t_tm5p5_nt35596
edt_ft5x06 pm8916_bms_vm msm ubwc_config mdt_loader gpu_sched drm_gpuvm
drm_exec drm_display_helper cec libcomposite
[ 20.325245] CPU: 7 UID: 0 PID: 1010 Comm: (udev-worker) Not tainted
7.0.0-msm8916 #41 PREEMPT
[ 20.325273] Hardware name: Asus ZenFone 2 Laser/Selfie (1080p) (DT)
[ 20.325290] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS
BTYPE=--)
[ 20.325314] pc : clk_branch_toggle+0x124/0x170
[ 20.325348] lr : clk_branch_toggle+0x120/0x170
[ 20.325377] sp : ffff800082ab3430
[ 20.325390] x29: ffff800082ab3440 x28: 0000000000000001 x27:
ffff0000236724c0
[ 20.325435] x26: 0000000000000002 x25: ffff0000236724c0 x24:
0000000000000000
[ 20.325477] x23: 0000000000000000 x22: ffff800081017b3e x21:
ffff8000813e9f38
[ 20.325519] x20: ffff8000806f7f50 x19: 0000000000000001 x18:
0000000000000000
[ 20.325560] x17: 0000000000000001 x16: 0000000000000800 x15:
0000000000000003
[ 20.325601] x14: ffff800081315120 x13: 0000000000000003 x12:
0000000000000003
[ 20.325643] x11: 0000000000000000 x10: 0000000000000027 x9 :
ebcfd48ff0c24800
[ 20.325684] x8 : ebcfd48ff0c24800 x7 : 7461206b63757473 x6 :
0000000000000027
[ 20.325725] x5 : ffff80008151038a x4 : ffff800080fc8d13 x3 :
0000000000000000
[ 20.325766] x2 : 0000000000000000 x1 : ffff800082ab3200 x0 :
00000000fffffff0
[ 20.325808] Call trace:
[ 20.325821] clk_branch_toggle+0x124/0x170 (P)
[ 20.325859] clk_branch2_enable+0x20/0x30
[ 20.325894] clk_core_enable+0x6c/0x2c8
[ 20.325923] clk_core_enable_lock+0x8c/0x120
[ 20.325960] clk_enable+0x1c/0x30
[ 20.325994] vcodec_clks_enable+0x4c/0xc8 [venus_core]
[ 20.326190] core_power_v1+0x270/0x2c0 [venus_core]
[ 20.326370] venus_runtime_resume+0x58/0x80 [venus_core]
[ 20.326548] pm_generic_runtime_resume+0x2c/0x48
[ 20.326579] __rpm_callback+0x80/0x470
[ 20.326609] rpm_resume+0x3cc/0x5f8
[ 20.326637] __pm_runtime_resume+0x4c/0x98
[ 20.326665] venus_probe+0x1fc/0x3b8 [venus_core]
[ 20.326844] platform_probe+0x60/0xa8
[ 20.326881] really_probe+0x154/0x448
[ 20.326911] __driver_probe_device+0xa4/0x120
[ 20.326943] driver_probe_device+0x44/0x230
[ 20.326973] __driver_attach+0xf0/0x280
[ 20.327003] bus_for_each_dev+0xf0/0x150
[ 20.327031] driver_attach+0x28/0x38
[ 20.327061] bus_add_driver+0x14c/0x2a8
[ 20.327088] driver_register+0x6c/0x108
[ 20.327119] __platform_driver_register+0x24/0x38
[ 20.327154] init_module+0x24/0xfb8 [venus_core]
[ 20.327332] do_one_initcall+0xe4/0x3e0
[ 20.327363] do_init_module+0x5c/0x248
[ 20.327393] load_module+0x16ac/0x18c0
[ 20.327421] __arm64_sys_finit_module+0x238/0x360
[ 20.327449] invoke_syscall+0x44/0xd8
[ 20.327483] el0_svc_common+0x84/0xe0
[ 20.327515] do_el0_svc+0x20/0x30
[ 20.327547] el0_svc+0x24/0x70
[ 20.327582] el0t_64_sync_handler+0x7c/0x120
[ 20.327616] el0t_64_sync+0x154/0x158
[ 20.327643] ---[ end trace 0000000000000000 ]---