[PATCH v2 0/4] amlogic: t7: give the MMC bus pipeline clock real consumers

Lucas Tanure posted 4 patches 2 weeks, 6 days ago
.../bindings/mmc/amlogic,meson-gx-mmc.yaml    | 29 ++++++++++++++++++-
arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi   | 15 ++++++----
drivers/clk/meson/t7-peripherals.c            | 10 +++----
drivers/mmc/host/meson-gx-mmc.c               | 20 +++++++++++++
4 files changed, 62 insertions(+), 12 deletions(-)
[PATCH v2 0/4] amlogic: t7: give the MMC bus pipeline clock real consumers
Posted by Lucas Tanure 2 weeks, 6 days ago
The previous series for the intermittent boot hangs on the VIM4
marked sys_ampipe_nand as critical. But as Chuan Liu from Amlogic
explained, sys_ampipe_nand clocks a pipeline stage that the
hardware design inserts in the bus path between the SD/eMMC
controllers and the NIC_MATRIX fabric to help timing closure.

So the clock has real consumers: reference it from the three MMC
controller nodes and drop CLK_IS_CRITICAL instead.

The series crosses three trees; patch 4 (clk) must only land after
patches 1-3, otherwise the DMA hangs fixed by 43e1705ecab9 come back.

Changes since v1 [3]:
 - Dropped the Fixes: tag; this series is an improvement and should not
   be picked up by stable (Jerome Brunet)
 - Moved the patch 4 dependency note below the --- so it is not kept
   for posterity (Jerome Brunet)
 - Dropped the e-mail address from the Assisted-by trailer, see
   Documentation/process/coding-assistants.rst (Jerome Brunet)
 - Fixed the space-indented error path added to meson_mmc_probe() in
   patch 2, it did not pass checkpatch
 - Dropped the CLK_PIPELINE() macro from patch 2; has_pipeline_clk is a
   capability flag, not an SD_EMMC_CLOCK register field

Thanks,
Lucas

Lucas Tanure (4):
  dt-bindings: mmc: amlogic,meson-gx-mmc: document the T7 pipeline clock
  mmc: meson-gx: enable the bus pipeline clock on T7
  arm64: dts: amlogic: t7: add the pipeline clock to the MMC controllers
  clk: meson: t7: don't mark sys_ampipe_nand as critical

 .../bindings/mmc/amlogic,meson-gx-mmc.yaml    | 29 ++++++++++++++++++-
 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi   | 15 ++++++----
 drivers/clk/meson/t7-peripherals.c            | 10 +++----
 drivers/mmc/host/meson-gx-mmc.c               | 20 +++++++++++++
 4 files changed, 62 insertions(+), 12 deletions(-)

-- 
2.55.0
Re: [PATCH v2 0/4] amlogic: t7: give the MMC bus pipeline clock real consumers
Posted by Ulf Hansson 2 weeks ago
On Sat, Sep 5, 2026 at 5:32 PM Lucas Tanure <tanure@linux.com> wrote:
>
> The previous series for the intermittent boot hangs on the VIM4
> marked sys_ampipe_nand as critical. But as Chuan Liu from Amlogic
> explained, sys_ampipe_nand clocks a pipeline stage that the
> hardware design inserts in the bus path between the SD/eMMC
> controllers and the NIC_MATRIX fabric to help timing closure.
>
> So the clock has real consumers: reference it from the three MMC
> controller nodes and drop CLK_IS_CRITICAL instead.
>
> The series crosses three trees; patch 4 (clk) must only land after
> patches 1-3, otherwise the DMA hangs fixed by 43e1705ecab9 come back.
>
> Changes since v1 [3]:
>  - Dropped the Fixes: tag; this series is an improvement and should not
>    be picked up by stable (Jerome Brunet)
>  - Moved the patch 4 dependency note below the --- so it is not kept
>    for posterity (Jerome Brunet)
>  - Dropped the e-mail address from the Assisted-by trailer, see
>    Documentation/process/coding-assistants.rst (Jerome Brunet)
>  - Fixed the space-indented error path added to meson_mmc_probe() in
>    patch 2, it did not pass checkpatch
>  - Dropped the CLK_PIPELINE() macro from patch 2; has_pipeline_clk is a
>    capability flag, not an SD_EMMC_CLOCK register field
>
> Thanks,
> Lucas
>
> Lucas Tanure (4):
>   dt-bindings: mmc: amlogic,meson-gx-mmc: document the T7 pipeline clock
>   mmc: meson-gx: enable the bus pipeline clock on T7
>   arm64: dts: amlogic: t7: add the pipeline clock to the MMC controllers
>   clk: meson: t7: don't mark sys_ampipe_nand as critical
>
>  .../bindings/mmc/amlogic,meson-gx-mmc.yaml    | 29 ++++++++++++++++++-
>  arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi   | 15 ++++++----
>  drivers/clk/meson/t7-peripherals.c            | 10 +++----
>  drivers/mmc/host/meson-gx-mmc.c               | 20 +++++++++++++
>  4 files changed, 62 insertions(+), 12 deletions(-)
>
> --
> 2.55.0
>

Patch 1 and patch2 applied for next, thanks!

Kind regards
Uffe
Re: [PATCH v2 0/4] amlogic: t7: give the MMC bus pipeline clock real consumers
Posted by Lucas Tanure 1 week, 3 days ago
On 11/09/2026 16:40, Ulf Hansson wrote:
> On Sat, Sep 5, 2026 at 5:32 PM Lucas Tanure <tanure@linux.com> wrote:
>>
>> The previous series for the intermittent boot hangs on the VIM4
>> marked sys_ampipe_nand as critical. But as Chuan Liu from Amlogic
>> explained, sys_ampipe_nand clocks a pipeline stage that the
>> hardware design inserts in the bus path between the SD/eMMC
>> controllers and the NIC_MATRIX fabric to help timing closure.
>>
>> So the clock has real consumers: reference it from the three MMC
>> controller nodes and drop CLK_IS_CRITICAL instead.
>>
>> The series crosses three trees; patch 4 (clk) must only land after
>> patches 1-3, otherwise the DMA hangs fixed by 43e1705ecab9 come back.
>>
>> Changes since v1 [3]:
>>   - Dropped the Fixes: tag; this series is an improvement and should not
>>     be picked up by stable (Jerome Brunet)
>>   - Moved the patch 4 dependency note below the --- so it is not kept
>>     for posterity (Jerome Brunet)
>>   - Dropped the e-mail address from the Assisted-by trailer, see
>>     Documentation/process/coding-assistants.rst (Jerome Brunet)
>>   - Fixed the space-indented error path added to meson_mmc_probe() in
>>     patch 2, it did not pass checkpatch
>>   - Dropped the CLK_PIPELINE() macro from patch 2; has_pipeline_clk is a
>>     capability flag, not an SD_EMMC_CLOCK register field
>>
>> Thanks,
>> Lucas
>>
>> Lucas Tanure (4):
>>    dt-bindings: mmc: amlogic,meson-gx-mmc: document the T7 pipeline clock
>>    mmc: meson-gx: enable the bus pipeline clock on T7
>>    arm64: dts: amlogic: t7: add the pipeline clock to the MMC controllers
>>    clk: meson: t7: don't mark sys_ampipe_nand as critical
>>
>>   .../bindings/mmc/amlogic,meson-gx-mmc.yaml    | 29 ++++++++++++++++++-
>>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi   | 15 ++++++----
>>   drivers/clk/meson/t7-peripherals.c            | 10 +++----
>>   drivers/mmc/host/meson-gx-mmc.c               | 20 +++++++++++++
>>   4 files changed, 62 insertions(+), 12 deletions(-)
>>
>> --
>> 2.55.0
>>
> 
> Patch 1 and patch2 applied for next, thanks!
> 
> Kind regards
> Uffe
Hi Neil,

Any chance you could queue patch 3 for this cycle? Patch 2 is already in
next, and until the DTS lands the MMC probe fails on T7 with "missing
pipeline clock".

Thanks
Lucas
Re: [PATCH v2 0/4] amlogic: t7: give the MMC bus pipeline clock real consumers
Posted by Neil Armstrong 1 week, 2 days ago
On 9/15/26 17:55, Lucas Tanure wrote:
> On 11/09/2026 16:40, Ulf Hansson wrote:
>> On Sat, Sep 5, 2026 at 5:32 PM Lucas Tanure <tanure@linux.com> wrote:
>>>
>>> The previous series for the intermittent boot hangs on the VIM4
>>> marked sys_ampipe_nand as critical. But as Chuan Liu from Amlogic
>>> explained, sys_ampipe_nand clocks a pipeline stage that the
>>> hardware design inserts in the bus path between the SD/eMMC
>>> controllers and the NIC_MATRIX fabric to help timing closure.
>>>
>>> So the clock has real consumers: reference it from the three MMC
>>> controller nodes and drop CLK_IS_CRITICAL instead.
>>>
>>> The series crosses three trees; patch 4 (clk) must only land after
>>> patches 1-3, otherwise the DMA hangs fixed by 43e1705ecab9 come back.
>>>
>>> Changes since v1 [3]:
>>>   - Dropped the Fixes: tag; this series is an improvement and should not
>>>     be picked up by stable (Jerome Brunet)
>>>   - Moved the patch 4 dependency note below the --- so it is not kept
>>>     for posterity (Jerome Brunet)
>>>   - Dropped the e-mail address from the Assisted-by trailer, see
>>>     Documentation/process/coding-assistants.rst (Jerome Brunet)
>>>   - Fixed the space-indented error path added to meson_mmc_probe() in
>>>     patch 2, it did not pass checkpatch
>>>   - Dropped the CLK_PIPELINE() macro from patch 2; has_pipeline_clk is a
>>>     capability flag, not an SD_EMMC_CLOCK register field
>>>
>>> Thanks,
>>> Lucas
>>>
>>> Lucas Tanure (4):
>>>    dt-bindings: mmc: amlogic,meson-gx-mmc: document the T7 pipeline clock
>>>    mmc: meson-gx: enable the bus pipeline clock on T7
>>>    arm64: dts: amlogic: t7: add the pipeline clock to the MMC controllers
>>>    clk: meson: t7: don't mark sys_ampipe_nand as critical
>>>
>>>   .../bindings/mmc/amlogic,meson-gx-mmc.yaml    | 29 ++++++++++++++++++-
>>>   arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi   | 15 ++++++----
>>>   drivers/clk/meson/t7-peripherals.c            | 10 +++----
>>>   drivers/mmc/host/meson-gx-mmc.c               | 20 +++++++++++++
>>>   4 files changed, 62 insertions(+), 12 deletions(-)
>>>
>>> -- 
>>> 2.55.0
>>>
>>
>> Patch 1 and patch2 applied for next, thanks!
>>
>> Kind regards
>> Uffe
> Hi Neil,
> 
> Any chance you could queue patch 3 for this cycle? Patch 2 is already in
> next, and until the DTS lands the MMC probe fails on T7 with "missing
> pipeline clock".

Done !

Thanks,
Neil

> 
> Thanks
> Lucas

Re: (subset) [PATCH v2 0/4] amlogic: t7: give the MMC bus pipeline clock real consumers
Posted by Neil Armstrong 1 week, 2 days ago
Hi,

On Sat, 05 Sep 2026 16:32:30 +0100, Lucas Tanure wrote:
> The previous series for the intermittent boot hangs on the VIM4
> marked sys_ampipe_nand as critical. But as Chuan Liu from Amlogic
> explained, sys_ampipe_nand clocks a pipeline stage that the
> hardware design inserts in the bus path between the SD/eMMC
> controllers and the NIC_MATRIX fabric to help timing closure.
> 
> So the clock has real consumers: reference it from the three MMC
> controller nodes and drop CLK_IS_CRITICAL instead.
> 
> [...]

Thanks, Applied to https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v7.4/arm64-dt)

[3/4] arm64: dts: amlogic: t7: add the pipeline clock to the MMC controllers
      https://git.kernel.org/amlogic/c/065957517880dc7053e0723cc9532b6e78c8855c

These changes has been applied on the intermediate git tree [1].

The v7.4/arm64-dt branch will then be sent via a formal Pull Request to the Linux SoC maintainers
for inclusion in their intermediate git branches in order to be sent to Linus during
the next merge window, or sooner if it's a set of fixes.

In the cases of fixes, those will be merged in the current release candidate
kernel and as soon they appear on the Linux master branch they will be
backported to the previous Stable and Long-Stable kernels [2].

The intermediate git branches are merged daily in the linux-next tree [3],
people are encouraged testing these pre-release kernels and report issues on the
relevant mailing-lists.

If problems are discovered on those changes, please submit a signed-off-by revert
patch followed by a corrective changeset.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
[3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

-- 
Neil