linux-tegra.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Marc Zyngier <maz@kernel.org>
Cc: dri-devel@lists.freedesktop.org, linux-tegra@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Jonathan Hunter <jonathanh@nvidia.com>
Subject: Re: [PATCH] drm/tegra: sor: Ensure regulators are disabled on teardown
Date: Tue, 10 Nov 2020 18:37:42 +0100	[thread overview]
Message-ID: <20201110173742.GB2297135@ulmo> (raw)
In-Reply-To: <20201013095158.311137-1-maz@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 3988 bytes --]

On Tue, Oct 13, 2020 at 10:51:58AM +0100, Marc Zyngier wrote:
> The Tegra SOR driver uses the devm infrastructure to request regulators,
> but enables them without registering them with the infrastructure.
> 
> This results in the following splat if probing fails for any odd resaon
> (such as dependencies not being available):
> 
> [    8.974187] tegra-sor 15580000.sor: cannot get HDMI supply: -517
> [    9.414403] tegra-sor 15580000.sor: failed to probe HDMI: -517
> [    9.421240] ------------[ cut here ]------------
> [    9.425879] WARNING: CPU: 1 PID: 164 at drivers/regulator/core.c:2089 _regulator_put.part.0+0x16c/0x174
> [    9.435259] Modules linked in: tegra_drm(E+) cec(E) ahci_tegra(E) drm_kms_helper(E) drm(E) libahci_platform(E) libahci(E) max77620_regulator(E) xhci_tegra(E+) sdhci_tegra(E) xhci_hcd(E) libata(E) sdhci_pltfm(E) cqhci(E) fixed(E) usbcore(E) scsi_mod(E) sdhci(E) host1x(E)
> [    9.459211] CPU: 1 PID: 164 Comm: systemd-udevd Tainted: G S    D W   E     5.9.0-rc7-00298-gf6337624c4fe #1980
> [    9.469285] Hardware name: NVIDIA Jetson TX2 Developer Kit (DT)
> [    9.475202] pstate: 80000005 (Nzcv daif -PAN -UAO BTYPE=--)
> [    9.480784] pc : _regulator_put.part.0+0x16c/0x174
> [    9.485581] lr : regulator_put+0x44/0x60
> [    9.489501] sp : ffffffc011d837b0
> [    9.492814] x29: ffffffc011d837b0 x28: ffffff81dd085900
> [    9.498141] x27: ffffff81de1c8ec0 x26: ffffff81de1c8c10
> [    9.503464] x25: ffffff81dd085800 x24: ffffffc008f2c6b0
> [    9.508790] x23: ffffffc0117373f0 x22: 0000000000000005
> [    9.514101] x21: ffffff81dd085900 x20: ffffffc01172b098
> [    9.515822] ata1: SATA link down (SStatus 0 SControl 300)
> [    9.519426] x19: ffffff81dd085100 x18: 0000000000000030
> [    9.530122] x17: 0000000000000000 x16: 0000000000000000
> [    9.535453] x15: 0000000000000000 x14: 000000000000038f
> [    9.540777] x13: 0000000000000003 x12: 0000000000000040
> [    9.546105] x11: ffffff81eb800000 x10: 0000000000000ae0
> [    9.551417] x9 : ffffffc0106fea24 x8 : ffffff81de83e6c0
> [    9.556728] x7 : 0000000000000018 x6 : 00000000000003c3
> [    9.562064] x5 : 0000000000005660 x4 : 0000000000000000
> [    9.567392] x3 : ffffffc01172b388 x2 : ffffff81de83db80
> [    9.572702] x1 : 0000000000000000 x0 : 0000000000000001
> [    9.578034] Call trace:
> [    9.580494]  _regulator_put.part.0+0x16c/0x174
> [    9.584940]  regulator_put+0x44/0x60
> [    9.588522]  devm_regulator_release+0x20/0x2c
> [    9.592885]  release_nodes+0x1c8/0x2c0
> [    9.596636]  devres_release_all+0x44/0x6c
> [    9.600649]  really_probe+0x1ec/0x504
> [    9.604316]  driver_probe_device+0x100/0x170
> [    9.608589]  device_driver_attach+0xcc/0xd4
> [    9.612774]  __driver_attach+0xb0/0x17c
> [    9.616614]  bus_for_each_dev+0x7c/0xd4
> [    9.620450]  driver_attach+0x30/0x3c
> [    9.624027]  bus_add_driver+0x154/0x250
> [    9.627867]  driver_register+0x84/0x140
> [    9.631719]  __platform_register_drivers+0xa0/0x180
> [    9.636660]  host1x_drm_init+0x60/0x1000 [tegra_drm]
> [    9.641629]  do_one_initcall+0x54/0x2d0
> [    9.645490]  do_init_module+0x68/0x29c
> [    9.649244]  load_module+0x2178/0x26c0
> [    9.652997]  __do_sys_finit_module+0xb0/0x120
> [    9.657356]  __arm64_sys_finit_module+0x2c/0x40
> [    9.661902]  el0_svc_common.constprop.0+0x80/0x240
> [    9.666701]  do_el0_svc+0x30/0xa0
> [    9.670022]  el0_svc+0x18/0x50
> [    9.673081]  el0_sync_handler+0x90/0x318
> [    9.677006]  el0_sync+0x158/0x180
> [    9.680324] ---[ end trace 90f6c89d62d85ff6 ]---
> 
> Instead, let's register a callback that will disable the regulators
> on teardown. This allows for the removal of the .remove callbacks,
> which are not needed anymore.
> 
> Signed-off-by: Marc Zyngier <maz@kernel.org>
> ---
>  drivers/gpu/drm/tegra/sor.c | 59 +++++++++++++++----------------------
>  1 file changed, 24 insertions(+), 35 deletions(-)

Applied, thanks.

Thierry

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

      reply	other threads:[~2020-11-10 17:37 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-13  9:51 [PATCH] drm/tegra: sor: Ensure regulators are disabled on teardown Marc Zyngier
2020-11-10 17:37 ` Thierry Reding [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201110173742.GB2297135@ulmo \
    --to=thierry.reding@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jonathanh@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=maz@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).