dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: "Guido Günther" <agx@sigxcpu.org>
To: Schrempf Frieder <frieder.schrempf@kontron.de>
Cc: "dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"etnaviv@lists.freedesktop.org" <etnaviv@lists.freedesktop.org>,
	Chris Healy <cphealy@gmail.com>
Subject: Re: Etnaviv issues on i.MX8M-Mini
Date: Tue, 3 Mar 2020 16:59:14 +0100	[thread overview]
Message-ID: <20200303155914.GA175086@bogon.m.sigxcpu.org> (raw)
In-Reply-To: <365dc72c-2e61-720a-4580-4047fc7dc630@kontron.de>

Hi,
On Tue, Mar 03, 2020 at 11:43:14AM +0000, Schrempf Frieder wrote:
> On 02.03.20 09:44, Frieder Schrempf wrote:
> > On 26.02.20 17:05, Guido Günther wrote:
> >> On Wed, Feb 26, 2020 at 04:54:35PM +0100, Lucas Stach wrote:
> >>> On Mi, 2020-02-26 at 15:31 +0000, Schrempf Frieder wrote:
> >>>> On 25.02.20 09:13, Frieder Schrempf wrote:
> >>>>> Hi Lucas,
> >>>>>
> >>>>> On 24.02.20 12:08, Lucas Stach wrote:
> >>>>>> On Mo, 2020-02-24 at 10:53 +0000, Schrempf Frieder wrote:
> >>>>>>> Hi Lucas,
> >>>>>>>
> >>>>>>> On 24.02.20 11:37, Lucas Stach wrote:
> >>>>>>>> Hi Frieder,
> >>>>>>>>
> >>>>>>>> On Mo, 2020-02-24 at 10:28 +0000, Schrempf Frieder wrote:
> >>>>>>>>> On 20.02.20 19:58, Chris Healy wrote:
> >>>>>>>>>> For the jerkey transitions, can you determine if this is a 
> >>>>>>>>>> symptom of
> >>>>>>>>>> a low framerate or dropped frames or something else?
> >>>>>>>>>>
> >>>>>>>>>> Perhaps you can start your app with
> >>>>>>>>>> "GALLIUM_HUD=fps,cpu,draw-calls,frametime".  This may give some
> >>>>>>>>>> clues.
> >>>>>>>>>
> >>>>>>>>> The framerate seems ok. I get something between 50 and 70 FPS.
> >>>>>>>>>
> >>>>>>>>> I have a Qt demo app with a menu and an animated 'ball' that moves
> >>>>>>>>> across the screen. When the menu is visible, the ball movement is
> >>>>>>>>> really
> >>>>>>>>> jerky (ball seems to 'jump back and forth' instead of moving
> >>>>>>>>> linearly).
> >>>>>>>>>
> >>>>>>>>> As soon as I hide the menu and show the animation fullscreen, the
> >>>>>>>>> movements are perfectly smooth.
> >>>>>>>>>
> >>>>>>>>> Running the same app with software rendering, everything looks
> >>>>>>>>> good, too.
> >>>>>>>>>
> >>>>>>>>> No idea what that means, though. I probably need to look at the
> >>>>>>>>> code of
> >>>>>>>>> the app and do some more experiments to get a better idea of what
> >>>>>>>>> might
> >>>>>>>>> cause the distortion.
> >>>>>>>>>
> >>>>>>>>> Unless some of the graphics experts here already have an idea 
> >>>>>>>>> of what
> >>>>>>>>> can cause and/or how to debug such an issue!?
> >>>>>>>>
> >>>>>>>> Which driver is used for the display side? It seems like the 
> >>>>>>>> display
> >>>>>>>> side doesn't properly handle the dma fences used to synchronize 
> >>>>>>>> scanout
> >>>>>>>> and rendering.
> >>>>>>>
> >>>>>>> I ported/picked the drivers for the LCDIF and DSI controllers from
> >>>>>>> development branch of the 5.4-based vendor kernel [1] to our own
> >>>>>>> v5.4-based kernel [2]. So it is quite probable, that something 
> >>>>>>> could be
> >>>>>>> wrong here.
> >>>>>>
> >>>>>> Please just use DRM_MXSFB for the display side, instead of the
> >>>>>> downstream driver.
> >>>>>
> >>>>> Hm, good idea. I somehow forgot about the fact, that there is an
> >>>>> upstream driver for the LCDIF controller. On first try I couldn't 
> >>>>> get it
> >>>>> to run on the i.MX8MM, but I suspect that's due to some reset,
> >>>>> power-domain or clock setup, that is missing upstream. I will see if I
> >>>>> can get any further with this.
> >>>>
> >>>> So I had a closer look and while the DRM_MXSFB looks ok on its own, I
> >>>> have some problem with the rest of the i.MX8MM display subsystem.
> >>>>
> >>>> The vendor stack, that I'm currently using integrates into the imx-drm
> >>>> master/core driver [1] that binds all the components of the display
> >>>> subsystem, such as the LCDIF driver and the integrated SEC_DSIM DSI 
> >>>> bridge.
> >>>>
> >>>> And because of my lack of DRM skills, I have no idea how to get the
> >>>> DRM_MXSFB driver to bind to the imx-drm core, instead of running
> >>>> separately and connecting directly to some panel as it is done for
> >>>> i.MX23/28 and i.MX6SX/UL.
> >>>
> >>> It's a separate hardware and it's a pretty major design issue of the
> >>> downstream driver that it integrates into imx-drm. You don't want this
> >>> with the upstream driver.
> >>>
> >>> Maybe Guido (CCed) can give you some clues, as apparently he is using
> >>> the mainline eLCDIF driver + some patches to drive the DSI display path
> >>> on i.MX8MQ. A lot of this will probably be transferable to the i.MX8MM
> >>> display path.
> >>
> >> Newer mxsfb supports attaching a bridge so if you make your DSI host
> >> controller driver a DSI bridge mxsfb can drive it:
> >>
> >>       
> >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/mxsfb/mxsfb_drv.c#n268 
> >>
> >>
> >> this should be similar to what was done for the imx8mq here (imx8mm
> >> users a different ip core though):
> >>
> >>       
> >> https://source.puri.sm/guido.gunther/linux-imx8/commits/forward-upstream/next-20200217/mxsfb+nwl/v9-wip 
> >>
> >>
> >> There's also some additional mxsfb patches by Robert floating around
> >> which aren't mainline yet which the above branch also has.
> >>
> >> Which reminds me that i need to prepare and send out a v9.
> > 
> > Thanks Lucas and Guido for pointing out the details!
> > It's very unfortunate that i.MX8MQ and i.MX8MM don't share the same DSI 
> > ip core.
> > It seems like I need to try coming up with a bridge driver for the 
> > Samsung DSIM DSI controller for a proper upstream solution.
> 
> Sorry to bother you with one more question from a DRM newbie.
> 
> I'm currently looking at Guido's code for the NWL DSI bridge and trying 
> to convert the NXP SEC DSIM host driver to a bridge driver.
> 
> The NWL driver uses mipi_dsi_host_register(), which searches for a 
> output (panel) child node under the DSI bridge's node [1] as described 
> in the bindings example [2].
> 
> How is this supposed to work in a setup with another bridge after the 
> DSI bridge, where that bridge is not a child node of the DSI bridge, but 
> only connected via the DSI bridges output port? For example I have a 
> DSI->LVDS bridge, that is attached to an I2C port.

You can also attach another bridge instead of a panel. NXPs BSP uses a
driver very similar to the nwl one above and this is how they attach a
DSI->HDMI bridge:

    https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mq-evk-lcdif-adv7535.dts?h=imx_5.4.0_8dxlphantom_er#n56

Cheers,
 -- Guido

> 
> [1] 
> https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/drm_mipi_dsi.c#L284
> 
> [2] 
> https://source.puri.sm/guido.gunther/linux-imx8/blob/forward-upstream/next-20200226/mxsfb+nwl/v9-wip/Documentation/devicetree/bindings/display/bridge/nwl-dsi.yaml#L173
> 
> Thanks,
> Frieder
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-03-03 15:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2704d3bd-5563-8951-58f7-75a906782754@kontron.de>
     [not found] ` <CAFXsbZp9kW555gm+8Cz+oQVRNSzVzzQO2rM5YqzitCd6T7KN6Q@mail.gmail.com>
     [not found]   ` <bcc3af77-07c5-fbc7-ad20-d070c5ab1ce8@kontron.de>
     [not found]     ` <CAFXsbZqNQMi+-tPE22oMTHqb+8vEOy+v8cLfUMmhqs7S5RLoqg@mail.gmail.com>
     [not found]       ` <d1c98cb7-c75f-d8ca-9541-3c118d371a57@kontron.de>
     [not found]         ` <38c7cdc27213697b50517ce103a9d38120f84bd3.camel@pengutronix.de>
     [not found]           ` <f3a0bd17-83f5-4afa-e9a6-3eac411d34ff@kontron.de>
     [not found]             ` <ca594143751e94a2cf519e03915faa23a91c2836.camel@pengutronix.de>
     [not found]               ` <41b4070d-8db8-112c-6c57-f50af00b1604@kontron.de>
2020-02-26 15:31                 ` Etnaviv issues on i.MX8M-Mini Schrempf Frieder
2020-02-26 15:54                   ` Lucas Stach
2020-02-26 16:05                     ` Guido Günther
2020-03-02  8:45                       ` Schrempf Frieder
2020-03-03 11:43                         ` Schrempf Frieder
2020-03-03 15:59                           ` Guido Günther [this message]
2020-03-03 16:27                             ` Schrempf Frieder

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=20200303155914.GA175086@bogon.m.sigxcpu.org \
    --to=agx@sigxcpu.org \
    --cc=cphealy@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=etnaviv@lists.freedesktop.org \
    --cc=frieder.schrempf@kontron.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;
as well as URLs for NNTP newsgroup(s).