U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Michael Nazzareno Trimarchi <michael@amarulasolutions.com>
Cc: Tom Rini <trini@konsulko.com>, Lukasz Majewski <lukma@denx.de>,
	Sean Anderson <seanga2@gmail.com>, Simon Glass <sjg@chromium.org>,
	Jaehoon Chung <jh80.chung@samsung.com>,
	Anatolij Gustschin <agust@denx.de>,
	u-boot@lists.denx.de,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Ian Ray <ian.ray@gehealthcare.com>,
	Marek Vasut <marek.vasut@gmail.com>
Subject: Re: [PATCH 0/8] Add imx8mp video support
Date: Tue, 10 Sep 2024 14:56:34 +0200	[thread overview]
Message-ID: <20240910145634.2ada70ad@xps-13> (raw)
In-Reply-To: <CAOf5uwmzm=9=Vsu5cTbziyPG=KAqDGTcmrW0A36a2ix_+2WjNA@mail.gmail.com>

Hi Michael,

michael@amarulasolutions.com wrote on Tue, 10 Sep 2024 12:30:42 +0200:

> Hi Miquel
> 
> On Tue, Sep 10, 2024 at 12:13 PM Miquel Raynal
> <miquel.raynal@bootlin.com> wrote:
> >
> > In order to display a boot picture or an error message, the i.MX8MP
> > display pipeline must be enabled. The SoC has support for various
> > interfaces (LVDS, HDMI, DSI). The one supported in this series is the
> > standard 4-lane LVDS output. The minimal setup is thus composed of:
> > * An LCD InterFace (LCDIF) with an AXI/APB interface, generating a pixel
> >   stream
> > * One LVDS Display Bridge (LDB), also named pixel mapper, which receives
> >   the pixel stream and route it to one or two (possibly combined) LVDS
> >   displays.
> > * All necessary clocks and power controls coming from the MEDIAMIX
> >   control block.
> >
> > Patch 1 adds a very useful helper to the core in order to grab devices
> > through endpoints instead of being limited to phandles. Video pipelines
> > being often described using graphs endpoints, the introduced helper is
> > used several times in the serires (there are 3 LCDIF, one of them being
> > connected to the LDB, itself having 2 ports).
> >
> > Patch 2 is a fix which is necessary for this series to work properly,
> > but is way broader than just this use case. In practice, when assigned
> > clocks are defined in the device tree, the clock uclass tries to assign
> > the parents first and then sets them to the correct frequency. This only
> > works if the parents have been enabled themselves. Otherwise we end-up
> > with a non-clocked parent. I believe this is not the intended behavior
> > in general, but more importantly on the i.MX8MP, there are "clock
> > slices" which have pre-requisites in order to be modified and selecting
> > an ungated parent is one of them.
> >
> > All the other patches progressively build support for the whole video
> > pipeline. Regarding the LCDIF driver, there is already a similar driver
> > for older i.MX SoCs but I didn't manage to get it to work. It was
> > written more than a decade ago while device-model, clocks and others
> > were not yet generically supported. Thus, numerous ad-hoc solutions
> > were implemented, which no longer fit today's requirements. I preferred
> > to add a new "clean" driver instead of modifying the existing one
> > because of the too high risk of breaking these platforms. Once proper
> > clocks/power-domain descriptions will be added to them they might be
> > converted (and tested) to work with the "new" implementation, but going
> > the opposite way felt drawback.
> >  
> 
> Thank you for adding those patches. We are working on mipi support
> here and some of the clock patches
> are there too. I will try to look and rebase our patchset
> 
> https://patchwork.amarulasolutions.com/patch/3401/

Thanks for letting me know. Indeed there are a couple of conflicts.
- My patch 2 can easily be replaced by your approach. 
- Regarding the power domain we had two different approaches, I
  didn't look in details, but again one or the other seems fine, I
  guess.
- The LDB driver in my series is new.
- Finally regarding the LCDIF changes, the approach taken on your
  side follows the somewhat too ad-hoc logic and would probably benefit
  from being migrated to the driver I propose, which does make use of
  the (DM) clock, power domain and DT API. I am really happy with the
  core helper I've added retrieving a device in front of a graph
  endpoint, which makes the whole "get panel/bridge" approach much more
  flexible and adapted to today's needs.

What is the status of your patchset? How shall we handle the conflicts?

Thanks,
Miquèl

  reply	other threads:[~2024-09-10 12:58 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-10 10:13 [PATCH 0/8] Add imx8mp video support Miquel Raynal
2024-09-10 10:13 ` [PATCH 1/8] dm: core: Add a helper to retrieve devices through graph endpoints Miquel Raynal
2024-09-12  1:01   ` Simon Glass
2024-09-10 10:13 ` [PATCH 2/8] clk: Ensure the parent clocks are enabled while reparenting Miquel Raynal
2024-09-10 10:13 ` [PATCH 3/8] clk: imx8mp: Add media related clocks Miquel Raynal
2024-09-11 19:48   ` Fabio Estevam
2024-09-12 12:30     ` Fabio Estevam
2024-09-12 16:00       ` Michael Nazzareno Trimarchi
2024-09-14 17:33   ` Adam Ford
2024-09-10 10:13 ` [PATCH 4/8] imx: power-domain: Describe the i.MX8 MEDIAMIX domain Miquel Raynal
2024-09-12 12:34   ` Fabio Estevam
2024-09-10 10:13 ` [PATCH 5/8] imx: power-domain: Add support for the MEDIAMIX control block Miquel Raynal
2024-09-12 12:40   ` Fabio Estevam
2024-11-22 16:35     ` Miquel Raynal
2024-09-10 10:13 ` [PATCH 6/8] video: imx: Fix Makefile in order to be able to add other imx drivers Miquel Raynal
2024-09-10 10:13 ` [PATCH 7/8] video: imx: Add LDB driver Miquel Raynal
2024-09-11 19:55   ` Fabio Estevam
2024-09-10 10:13 ` [PATCH 8/8] video: imx: Add LCDIF driver Miquel Raynal
2024-09-11 19:58   ` Fabio Estevam
2024-09-10 10:30 ` [PATCH 0/8] Add imx8mp video support Michael Nazzareno Trimarchi
2024-09-10 12:56   ` Miquel Raynal [this message]
2024-09-11 16:45     ` Michael Nazzareno Trimarchi
2024-09-13  7:55       ` Miquel Raynal
2024-09-11 19:50 ` 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=20240910145634.2ada70ad@xps-13 \
    --to=miquel.raynal@bootlin.com \
    --cc=agust@denx.de \
    --cc=ian.ray@gehealthcare.com \
    --cc=jh80.chung@samsung.com \
    --cc=lukma@denx.de \
    --cc=marek.vasut@gmail.com \
    --cc=michael@amarulasolutions.com \
    --cc=seanga2@gmail.com \
    --cc=sjg@chromium.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /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