All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Neha Malcom Francis <n-francis@ti.com>
Cc: Francesco Dolcini <francesco@dolcini.it>,
	 Tom Rini <trini@konsulko.com>,  Nishanth Menon <nm@ti.com>,
	 Simon Glass <sjg@chromium.org>,
	 Jaehoon Chung <jh80.chung@samsung.com>,
	 Lukasz Majewski <lukma@denx.de>,
	 Sean Anderson <seanga2@gmail.com>,
	 Anatolij Gustschin <agust@denx.de>,
	 Fabio Estevm <festevam@gmail.com>,  Peng Fan <peng.fan@nxp.com>,
	 Mario Six <mario.six@gdsys.cc>,
	 Svyatoslav Ryhel <clamor95@gmail.com>,
	 Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	<u-boot@lists.denx.de>,  Ian Ray <ian.ray@gehealthcare.com>,
	 Michael Nazzareno Trimarchi <michael@amarulasolutions.com>,
	 Dario Binacchi <dario.binacchi@amarulasolutions.com>,
	 Adam Ford <aford173@gmail.com>, Marek Vasut <marex@denx.de>,
	 Udit Kumar <u-kumar1@ti.com>
Subject: Re: [PATCH v6 05/12] power-domain: Add refcounting
Date: Tue, 15 Apr 2025 14:43:57 +0200	[thread overview]
Message-ID: <87jz7lwq5u.fsf@bootlin.com> (raw)
In-Reply-To: <2a006764-d335-490a-9bb4-1fdb5f851df4@ti.com> (Neha Malcom Francis's message of "Tue, 15 Apr 2025 15:29:09 +0530")

On 15/04/2025 at 15:29:09 +0530, Neha Malcom Francis <n-francis@ti.com> wrote:

> Hi Miquel
>
> On 15/04/25 15:20, Miquel Raynal wrote:
>>>> Francesco, are you also testing on K3 platforms?
>>>>
>>>
>>> Yes he would be, since the firmware print is K3 firmware.
>>>
>>>> Can one of you boot with the patch below applied? It should partially
>>>> revert the commit to the ancient behaviour, while adding more debug
>>>> traces (please enable the debug logs as well). This should clarify
>>>> which one of the 3 different path is likely failing. It should also help
>>>> identify who's the user that fails to enable/disable its own power
>>>> domain. I will need to know what board/SoC was used for the test, so I
>>>> can look the relevant driver up.
>>>
>>> Booted on j784s4_evm
>>>
>>> https://gist.github.com/nehamalcom/b09687a523bec89f9df3537fdd99b6f3
>
> ^

Ah, sorry! This is very interesting.

There are two things which I do not understand:
- if we look at the very first power domains, their id is 15 and 14
  respectively. I do not see these numbers in any device tree, am I
  looking incorrectly? Could you help me identify what are the devices
  requesting these IDs?
- all power domains appear to be already enabled the very first time we
  enable them. I believe this is the root cause of the problem, as they
  should have count_on to 0 when booting. I checked again,
  'per_device_auto' is a field that is zeroed when allocated (using
  calloc() in this case) so I am really puzzled about this. It looks
  like "something else" is using this data field, which would be
  wrong.

>>>
>>> Currently debugging on my build where I hang in console_init itself, I
>>> think the path for failure is different here, will confirm.
>> 
>> Thanks a lot for your feedback. Normally by applying the diff shared in
>> my previous e-mail, you should have the console back. If not, maybe
>> there is something else involved and the blamed commit is just the first
>> showing an underlying problem.
>
> I do have console back with that patch, see the gist link above. What I
> meant was the path of failure seems to be different, it's looking like
> with my version of firmware the serial driver probe
> (ns16550_serial_probe) tries to do a readb() and fails, this could
> possibly be because the device was not powered on to begin with. Whereas
> in another case (what Francesco is seeing), this issue is not run
> into.

Clear.

Could you make another round with this extra change?

Thanks!
Miquèl

--- a/drivers/power/domain/power-domain-uclass.c
+++ b/drivers/power/domain/power-domain-uclass.c
@@ -119,14 +119,18 @@ int power_domain_on_lowlevel(struct power_domain *power_domain)
 
        debug("%s(power_domain=%p, id %d)\n", __func__, power_domain, power_domain->id);
 
-       if (priv->on_count++ > 0) {
-               debug("Power domain %s already on.\n", power_domain->dev->name);
+       if (priv->on_count > 0) {
+               debug("Power domain %s already on (usage count: %d).\n", power_domain->dev->name, priv->on_count);
+               priv->on_count++;
                //return -EALREADY;
+       } else {
+               priv->on_count++;
        }
 
        ret = ops->on ? ops->on(power_domain) : 0;
        if (ret) {
                priv->on_count--;
+               debug("Power domain %s on failed (usage count: %d).\n", power_domain->dev->name, priv->on_count);
                return ret;
        }
 

  parent reply	other threads:[~2025-04-15 12:51 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-03  7:39 [PATCH v6 00/12] Add imx8mp video support Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 01/12] core: ofnode_graph: Fix a comment Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 02/12] dm: doc: Fix example Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 03/12] dm: core: Add a helper to retrieve devices through graph endpoints Miquel Raynal
2025-04-03  8:08   ` Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 04/12] test: dm: test-fdt: Add checks for uclass_get_device_by_endpoint() Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 05/12] power-domain: Add refcounting Miquel Raynal
2025-04-14 17:36   ` Francis, Neha
2025-04-14 18:07     ` Nishanth Menon
2025-04-14 20:06       ` Tom Rini
2025-04-14 21:00         ` Francesco Dolcini
2025-04-15  5:20           ` Neha Malcom Francis
2025-04-15  6:51             ` Francesco Dolcini
2025-04-15  8:15               ` Miquel Raynal
2025-04-15  8:59                 ` Neha Malcom Francis
2025-04-15  9:50                   ` Miquel Raynal
2025-04-15  9:59                     ` Neha Malcom Francis
2025-04-15 10:47                       ` Francesco Dolcini
2025-04-15 12:43                       ` Miquel Raynal [this message]
2025-04-16  7:46                         ` Neha Malcom Francis
2025-04-16  1:14   ` Samuel Holland
2025-04-16  8:36     ` Neha Malcom Francis
2025-04-16  9:06       ` Miquel Raynal
2025-04-16  9:50         ` Neha Malcom Francis
2025-04-16 13:20           ` Wadim Egorov
2025-04-16 15:49             ` Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 06/12] clk: Ensure the parent clocks are enabled while reparenting Miquel Raynal
2025-04-03 13:03   ` Adam Ford
2025-04-03  7:39 ` [PATCH v6 07/12] clk: imx8mp: Add media related clocks Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 08/12] imx: power-domain: Describe the i.MX8 MEDIAMIX domain Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 09/12] imx: power-domain: Add support for the MEDIAMIX control block Miquel Raynal
2025-04-03 12:57   ` Adam Ford
2025-04-04  6:30     ` Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 10/12] video: imx: Fix Makefile in order to be able to add other imx drivers Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 11/12] video: imx: Add LDB driver Miquel Raynal
2025-04-03  7:39 ` [PATCH v6 12/12] video: imx: Add LCDIF driver Miquel Raynal
2025-04-03 13:01   ` Adam Ford
2025-04-04  6:22     ` Miquel Raynal
2025-04-11 14:15 ` [PATCH v6 00/12] Add imx8mp video support Fabio Estevam

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=87jz7lwq5u.fsf@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=aford173@gmail.com \
    --cc=agust@denx.de \
    --cc=clamor95@gmail.com \
    --cc=dario.binacchi@amarulasolutions.com \
    --cc=festevam@gmail.com \
    --cc=francesco@dolcini.it \
    --cc=ian.ray@gehealthcare.com \
    --cc=jh80.chung@samsung.com \
    --cc=lukma@denx.de \
    --cc=marex@denx.de \
    --cc=mario.six@gdsys.cc \
    --cc=michael@amarulasolutions.com \
    --cc=n-francis@ti.com \
    --cc=nm@ti.com \
    --cc=peng.fan@nxp.com \
    --cc=seanga2@gmail.com \
    --cc=sjg@chromium.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=u-kumar1@ti.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.