[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <8d488066-6f29-4ef8-8f09-26328b5213f1@oss.qualcomm.com>
Date: Tue, 22 Jul 2025 16:41:31 +0530
From: Mohammad Rafi Shaik <mohammad.rafi.shaik@....qualcomm.com>
To: Krzysztof Kozlowski <krzk@...nel.org>
Cc: Srinivas Kandagatla <srini@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>, Philipp Zabel <p.zabel@...gutronix.de>,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski
<brgl@...ev.pl>, linux-arm-msm@...r.kernel.org,
linux-sound@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-gpio@...r.kernel.org,
quic_pkumpatl@...cinc.com, kernel@....qualcomm.com
Subject: Re: [PATCH v2 2/2] ASoC: codecs: wsa883x: Handle shared reset GPIO
for WSA883x speakers
On 7/22/2025 4:36 PM, Krzysztof Kozlowski wrote:
> On 22/07/2025 12:56, Mohammad Rafi Shaik wrote:
>>
>>
>> On 7/21/2025 1:53 PM, Krzysztof Kozlowski wrote:
>>> On Fri, Jul 18, 2025 at 04:16:28PM +0530, Mohammad Rafi Shaik wrote:
>>>> On some Qualcomm platforms such as QCS6490-RB3Gen2, the multiple
>>>> WSA8830/WSA8835 speakers share a common reset (shutdown) GPIO.
>>>> To handle such cases, use the reset controller framework along
>>>> with the "reset-gpio" driver.
>>>>
>>>> Register devm action to safely disable the regulator on device removal
>>>> to prevents a potential release warning from _regulator_put().
>>>
>>> It is not possible to remove the device - suppress bind attrs. How did
>>> you trigger that?
>>>
>> Ack,
>>
>> I encountered the warning as regulator was being released unexpectedly,
>> triggering _regulator_put() warnings. While the device itself isn't
>> removed, Registering the devm action ensures safe cleanup without
>> triggering warnings.
>
> Logs are cut - you do not see the most important part, who puts the
> regulator?
>
> How unregistering regulator solves the incomplete get/put paths? It
> feels like you are hiding real problem instead of fixing it.
>
>>
>> Please check the below logs.
>>
>> I could use some suggestions for this issue. please help with some
>> suggestions how i can approve this design.
>>
>> Thanks,
>> Rafi.
>
>
> ...
>
>> [ 10.679294][ T90] ------------[ cut here ]------------
>> [ 10.684772][ T90] WARNING: CPU: 1 PID: 90 at
>> /drivers/regulator/core.c:2450 _regulator_put+0x50/0x60
>> [ 10.694344][ T90] Modules linked in: snd_soc_hdmi_codec
>> phy_qcom_edp venus_dec venus_enc videobuf2_dma_contig rpmsg_ctrl
>> qrtr_smd fastrpc rpmsg_char videobuf2_memops qcom_pd_mapper nb7vpq904m
>> msm lontium_lt9611uxc ucsi_glink typec_ucsi pmic_glink_altmode
>> qcom_battmgr aux_hpd_bridge ath11k_ahb ath11k hci_uart rtc_pm8xxx btqca
>> coresight_stm bluetooth qcom_pon stm_core venus_core pwrseq_qcom_wcn
>> drm_exec mac80211 ocmem v4l2_mem2mem gpu_sched videobuf2_v4l2 videodev
>> nvmem_qcom_spmi_sdam qcom_spmi_adc_tm5 snd_soc_sc8280xp
>> drm_display_helper qcom_vadc_common snd_soc_qcom_sdw coresight_tmc
>> snd_soc_qcom_common videobuf2_common qcom_stats coresight_etm4x
>> qcom_q6v5_pas phy_qcom_qmp_combo usb_f_qdss mc drm_dp_aux_bus
>> ecdh_generic qcom_pil_info qcom_q6v5 ecc coresight_replicator aux_bridge
>> coresight_csr qcom_sysmon coresight_funnel pwrseq_core gpi typec
>> i2c_qcom_geni qcom_common coresight icc_bwmon llcc_qcom qcom_glink_smem
>> qcrypto pinctrl_sc7280_lpass_lpi mdt_loader snd_soc_lpass_wsa_macro
>> sha256_generic pinctrl_lpass_lpi
>> [ 10.694524][ T90] snd_soc_lpass_va_macro display_connector
>> snd_soc_lpass_macro_common authenc drm_kms_helper libdes qrtr libarc4
>> icc_osm_l3 qcom_rng pmic_glink cfg80211 rfkill drm fuse ipv6
>> [ 10.804083][ T90] CPU: 1 UID: 0 PID: 90 Comm: kworker/u32:4 Not
>> tainted 6.14.0 #1
>> [ 10.811959][ T90] Hardware name: Qualcomm Technologies, Inc.
>> Robotics RB3gen2 (DT)
>> [ 10.819920][ T90] Workqueue: events_unbound deferred_probe_work_func
>> [ 10.826643][ T90] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT
>> -SSBS BTYPE=--)
>> [ 10.834510][ T90] pc : _regulator_put+0x50/0x60
>> [ 10.839362][ T90] lr : regulator_put+0x30/0x48
>> [ 10.844118][ T90] sp : ffff8000809e3670
>> [ 10.848244][ T90] x29: ffff8000809e3670 x28: 0000000000000000 x27:
>> ffff70941a04a080
>> [ 10.856300][ T90] x26: 0000000000000000 x25: ffffbfa860a9bee8 x24:
>> ffffbfa860e79cb0
>> [ 10.864354][ T90] x23: ffff709406e62640 x22: ffff709418668808 x21:
>> ffff8000809e3710
>> [ 10.872409][ T90] x20: ffff709415e81840 x19: ffffbfa86119b680 x18:
>> 00000000ffffffff
>> [ 10.880462][ T90] x17: ffffbfa86013d058 x16: ffffbfa8601cbac4 x15:
>> ffff709419a70b48
>> [ 10.888517][ T90] x14: 0000000000000000 x13: ffff709400032b10 x12:
>> 0000000000000000
>> [ 10.896573][ T90] x11: 0000000000000000 x10: ffffbfa85fdbcc60 x9 :
>> ffffbfa85fdbc7e0
>> [ 10.904627][ T90] x8 : ffff709418668ab0 x7 : ffff709418668ab0 x6 :
>> ffff709418668ab0
>> [ 10.912676][ T90] x5 : ffff709418668ab0 x4 : ffff709418668ab0 x3 :
>> ffff709415e807c0
>> [ 10.920727][ T90] x2 : ffff709406e62640 x1 : 0000000000000001 x0 :
>
> Everything above is irrelevant.
>
>> ffff709415e81840
>> [ 10.928781][ T90] Call trace:
>> [ 10.932024][ T90] _regulator_put+0x50/0x60 (P)
>> [ 10.936877][ T90] regulator_put+0x30/0x48
>> -----------
>
> And this is only relevant information which tells nothing. Are you sure
> you pasted FULL log?
>
sharing the full crash logs
---------------------------
[ 10.679294][ T90] ------------[ cut here ]------------
[ 10.684772][ T90] WARNING: CPU: 1 PID: 90 at
/drivers/regulator/core.c:2450 _regulator_put+0x50/0x60
[ 10.694344][ T90] Modules linked in: snd_soc_hdmi_codec
phy_qcom_edp venus_dec venus_enc videobuf2_dma_contig rpmsg_ctrl
qrtr_smd fastrpc rpmsg_char videobuf2_memops qcom_pd_mapper nb7vpq904m
msm lontium_lt9611uxc ucsi_glink typec_ucsi pmic_glink_altmode
qcom_battmgr aux_hpd_bridge ath11k_ahb ath11k hci_uart rtc_pm8xxx btqca
coresight_stm bluetooth qcom_pon stm_core venus_core pwrseq_qcom_wcn
drm_exec mac80211 ocmem v4l2_mem2mem gpu_sched videobuf2_v4l2 videodev
nvmem_qcom_spmi_sdam qcom_spmi_adc_tm5 snd_soc_sc8280xp
drm_display_helper qcom_vadc_common snd_soc_qcom_sdw coresight_tmc
snd_soc_qcom_common videobuf2_common qcom_stats coresight_etm4x
qcom_q6v5_pas phy_qcom_qmp_combo usb_f_qdss mc drm_dp_aux_bus
ecdh_generic qcom_pil_info qcom_q6v5 ecc coresight_replicator aux_bridge
coresight_csr qcom_sysmon coresight_funnel pwrseq_core gpi typec
i2c_qcom_geni qcom_common coresight icc_bwmon llcc_qcom qcom_glink_smem
qcrypto pinctrl_sc7280_lpass_lpi mdt_loader snd_soc_lpass_wsa_macro
sha256_generic pinctrl_lpass_lpi
[ 10.694524][ T90] snd_soc_lpass_va_macro display_connector
snd_soc_lpass_macro_common authenc drm_kms_helper libdes qrtr libarc4
icc_osm_l3 qcom_rng pmic_glink cfg80211 rfkill drm fuse ipv6
[ 10.804083][ T90] CPU: 1 UID: 0 PID: 90 Comm: kworker/u32:4 Not
tainted 6.14.0 #1
[ 10.811959][ T90] Hardware name: Qualcomm Technologies, Inc.
Robotics RB3gen2 (DT)
[ 10.819920][ T90] Workqueue: events_unbound deferred_probe_work_func
[ 10.826643][ T90] pstate: 80400005 (Nzcv daif +PAN -UAO -TCO -DIT
-SSBS BTYPE=--)
[ 10.834510][ T90] pc : _regulator_put+0x50/0x60
[ 10.839362][ T90] lr : regulator_put+0x30/0x48
[ 10.844118][ T90] sp : ffff8000809e3670
[ 10.848244][ T90] x29: ffff8000809e3670 x28: 0000000000000000 x27:
ffff70941a04a080
[ 10.856300][ T90] x26: 0000000000000000 x25: ffffbfa860a9bee8 x24:
ffffbfa860e79cb0
[ 10.864354][ T90] x23: ffff709406e62640 x22: ffff709418668808 x21:
ffff8000809e3710
[ 10.872409][ T90] x20: ffff709415e81840 x19: ffffbfa86119b680 x18:
00000000ffffffff
[ 10.880462][ T90] x17: ffffbfa86013d058 x16: ffffbfa8601cbac4 x15:
ffff709419a70b48
[ 10.888517][ T90] x14: 0000000000000000 x13: ffff709400032b10 x12:
0000000000000000
[ 10.896573][ T90] x11: 0000000000000000 x10: ffffbfa85fdbcc60 x9 :
ffffbfa85fdbc7e0
[ 10.904627][ T90] x8 : ffff709418668ab0 x7 : ffff709418668ab0 x6 :
ffff709418668ab0
[ 10.912676][ T90] x5 : ffff709418668ab0 x4 : ffff709418668ab0 x3 :
ffff709415e807c0
[ 10.920727][ T90] x2 : ffff709406e62640 x1 : 0000000000000001 x0 :
ffff709415e81840
[ 10.928781][ T90] Call trace:
[ 10.932024][ T90] _regulator_put+0x50/0x60 (P)
[ 10.936877][ T90] regulator_put+0x30/0x48
[ 10.941276][ T90] devm_regulator_release+0x14/0x20
[ 10.946486][ T90] release_nodes+0x60/0xfc
[ 10.950886][ T90] devres_release_all+0x90/0xe0
[ 10.955737][ T90] device_unbind_cleanup+0x18/0x60
[ 10.960846][ T90] really_probe+0x210/0x2c0
[ 10.965341][ T90] __driver_probe_device+0x78/0x120
[ 10.970539][ T90] driver_probe_device+0x3c/0x154
[ 10.975561][ T90] __device_attach_driver+0xb8/0x140
[ 10.980854][ T90] bus_for_each_drv+0x88/0xe8
[ 10.985520][ T90] __device_attach+0xa0/0x190
[ 10.990185][ T90] device_initial_probe+0x14/0x20
[ 10.995209][ T90] bus_probe_device+0xb4/0xc0
[ 10.999876][ T90] device_add+0x5a4/0x780
[ 11.004187][ T90] device_register+0x20/0x30
[ 11.008767][ T90] sdw_slave_add+0x1a4/0x244
[ 11.013352][ T90] sdw_of_find_slaves+0x100/0x198
[ 11.018377][ T90] sdw_bus_master_add+0x1c0/0x310
[ 11.023401][ T90] qcom_swrm_probe+0x2a0/0x5a4
[ 11.028158][ T90] platform_probe+0x68/0xdc
[ 11.032654][ T90] really_probe+0xbc/0x2c0
[ 11.037052][ T90] __driver_probe_device+0x78/0x120
[ 11.042249][ T90] driver_probe_device+0x3c/0x154
[ 11.047273][ T90] __device_attach_driver+0xb8/0x140
[ 11.052568][ T90] bus_for_each_drv+0x88/0xe8
[ 11.057235][ T90] __device_attach+0xa0/0x190
[ 11.061903][ T90] device_initial_probe+0x14/0x20
[ 11.066926][ T90] bus_probe_device+0xb4/0xc0
[ 11.071595][ T90] deferred_probe_work_func+0x90/0xc8
[ 11.076974][ T90] process_one_work+0x16c/0x3f4
[ 11.081828][ T90] worker_thread+0x2c8/0x3e4
[ 11.086410][ T90] kthread+0x12c/0x210
[ 11.090455][ T90] ret_from_fork+0x10/0x20
[ 11.094857][ T90] ---[ end trace 0000000000000000 ]---
--------------------------
>>
>> Thanks & Regards,
>> Rafi.
>>
>>> Best regards,
>>> Krzysztof
>>>
>>
>
>
> Best regards,
> Krzysztof
Powered by blists - more mailing lists