[PATCH] mmc: meson-gx: increase power-up delay

Ulf Hansson ulf.hansson at linaro.org
Thu Mar 16 04:59:51 PDT 2023


On Wed, 15 Mar 2023 at 16:31, Jerome Brunet <jbrunet at baylibre.com> wrote:
>
>
> On Wed 15 Mar 2023 at 11:20, Marc Gonzalez <marc.w.gonzalez at free.fr> wrote:
>
> > On 14/03/2023 20:45, Heiner Kallweit wrote:
> >
> >> On 14.03.2023 18:24, Marc Gonzalez wrote:
> >>
> >>> With the default power-up delay, on small kernels, the host probes
> >>> too soon, and mmc_send_io_op_cond() times out.
> >>
> >> Looking at mmc_power_up() and how power_delay_ms is used
> >> I wonder what you mean with "host probes too soon".
> >
> > Hello Heiner,
> >
> > Thanks for your interest in my patch! :)
> >
> > I should have added a link to the thread that led to the patch.
> > https://patchwork.kernel.org/project/linux-wireless/patch/c1a215cf-94be-871b-2a8a-3cc381588f83@free.fr/
> > Start at "I have run into another issue."
> >
> > Basically, I have an S905X2-based board.
> > I built a small kernel for it (with only a few drivers), that boots really fast.
> >
> > mmc2 (SDIO controller hooked to WiFi chip) would not probe at all,
> > unless I added lots of printks.
> > Basically, calling mmc_send_io_op_cond() too soon after the controller
> > has been reset leads to the CMD5 request timing out.
> >
> >
>
> I tend to agree with Heiner here.
> This patch is backing a contraint only reported on your design in the
> driver of every AML SoC supported, for every MMC controller.
>
> I think you should look first in your vmmc and vqmmc regulators and
> their setup times.
>
> "fixed-regulator" have properties which might be interesting to you,
> like
>  * startup-delay-us
>  * off-on-delay-us

If the problem is regulator specific, this would be the correct thing to do.

Although, if the problem is pwrseq specific, like that we need a delay
after enabling the clock and asserting the GPIO enable pin for the
WiFi chip, then we have the "post-power-on-delay-ms" of the pwrseq
node to play with instead.

>
> >> Are you sure that the additional delay is needed for the Amlogic MMC
> >> block IP in general? Or could it be that your issue is caused by
> >> a specific regulator and you need to add a delay there?
> >
> > The eternal question...
> >
> > I have only one type of board. (Actually, I have a reference design
> > that is slightly different, so I should test on that one as well.)
> >
> > In vendor kernels, they add delays to the WiFi drivers.
> > Maybe they have run into the issue, and they're just fixing the symptom?
> >
> > Default value for ios.power_delay_ms is 10 ms.
> > msleep(ios.power_delay_ms) is called twice in mmc_power_up().
> > So raising the delay from 10 to 20 adds 20 ms
> > to the latency of initializing SDIO/SD/MMC controllers.
> >
> > Would you be willing to test if the problem manifests on your board?
> >
> > Regards
>

Kind regards
Uffe



More information about the linux-amlogic mailing list