[RFC PATCH 00/17] drm: bridge: Samsung MIPI DSIM bridge

Lucas Stach dev at lynxeye.de
Thu Dec 9 12:24:07 PST 2021


Am Donnerstag, dem 09.12.2021 um 18:09 +0100 schrieb Michael Nazzareno
Trimarchi:
> Hi Tim
> 
> On Thu, Dec 9, 2021 at 5:40 PM Tim Harvey <tharvey at gateworks.com> wrote:
> > 
> > On Thu, Dec 9, 2021 at 12:36 AM Michael Nazzareno Trimarchi
> > <michael at amarulasolutions.com> wrote:
> > > 
> > > Hi Tim
> > > 
> > > On Tue, Oct 5, 2021 at 11:43 PM Tim Harvey <tharvey at gateworks.com> wrote:
> > > > 
> > > > On Sun, Jul 25, 2021 at 10:14 AM Jagan Teki <jagan at amarulasolutions.com> wrote:
> > > > > 
> > > > > Hi Sam,
> > > > > 
> > > > > On Sun, Jul 25, 2021 at 10:35 PM Sam Ravnborg <sam at ravnborg.org> wrote:
> > > > > > 
> > > > > > Hi Jagan,
> > > > > > 
> > > > > > On Sun, Jul 04, 2021 at 02:32:13PM +0530, Jagan Teki wrote:
> > > > > > > This series supports common bridge support for Samsung MIPI DSIM
> > > > > > > which is used in Exynos and i.MX8MM SoC's.
> > > > > > > 
> > > > > > > The final bridge supports both the Exynos and i.MX8MM DSI devices.
> > > > > > > 
> > > > > > > Right now bridge offers two sets of implementations.
> > > > > > > 
> > > > > > > A. With component_ops and exynos specific code exclusively for
> > > > > > >    exynos dsi drivers and it's legacy bindings.
> > > > > > > 
> > > > > > > B. Without componenet_ops for newly implemented bridges and its
> > > > > > >    users like i.MX8MM.
> > > > > > > 
> > > > > > > The future plan is to fix the implementation A) by dropping
> > > > > > > component_ops and fixing exynos specific code in order to make
> > > > > > > the bridge more mature to use and the same is mentioned in
> > > > > > > drivers TODO.
> > > > > > > 
> > > > > > > Patch 0001 - 0006: Bridge conversion
> > > > > > > Patch 0007 - 0017: Samsung MIPI DSIM bridge fixes, additions
> > > > > > > 
> > > > > > > Tested in Engicam i.Core MX8M Mini SoM.
> > > > > > > 
> > > > > > > Anyone interest, please have a look on this repo
> > > > > > > https://github.com/openedev/linux/tree/070421-imx8mm-dsim
> > > > > > > 
> > > > > > > Would appreciate anyone from the exynos team to test it on
> > > > > > > the exynos platform?
> > > > > > > 
> > > > > > > Any inputs?
> > > > > > 
> > > > > > I really like where you are headign with this!
> > > > > > No testing - sorry. But I will try to provide a bit of feedback on the
> > > > > > individual patches.
> > > > > > 
> > > > > > I hope you find a way to move forward with this.
> > > > > 
> > > > > Thanks for the response.
> > > > > 
> > > > > We have found some issues with Bridge conversion on existing exynos
> > > > > drivers. The component based DSI drivers(like exynos) are difficult to
> > > > > attach if it involves kms hotplug. kms hotplug would require drm
> > > > > pointer and that pointer would only available after the bind call
> > > > > finishes. But the bridge attach in bind call will defer till it find
> > > > > the attached bridge.
> > > > > 
> > > > > Right now I'm trying to find the proper way to attach the bridges for
> > > > > component based DSI drivers which involves kms hot-plug.
> > > > > 
> > > > > If you have any ideas on this, please let me know.
> > > > > 
> > > > 
> > > > Jagan,
> > > > 
> > > > How is your progress on this series? Looking at your repo it looks
> > > > like you've rebased on top of 5.13-rc3 in your 070121-imx8mm-dsim
> > > > branch but you've got a lot of things there that are likely not
> > > > related to this series?
> > > 
> > > I have a bit of work on those patches and tested on imx8mn. Basically:
> > > 
> > > - add the dsi timing calculation
> > > - change few difference with samsung bridge
> > > - fix crashes of my dsi panels
> > > - compare with NXP driver the final results
> > > 
> > > I found that I have one problem that gives me some instability. In the
> > > NXP original driver the panel needs to be
> > > enabled in bridge_enable before out the standby. If I understand
> > > correctly, our standby should be done after.
> > > I would like to have some feedback and help and testing on other
> > > boards/devices and some suggestions on how to handle
> > > some of the differences. Another big problem is etnavi that is not stable
> > > 
> > 
> > Michael,
> > 
> > Where can I find your patches?
> > 
> 
> I will push on some tree and share
> 
> > What do you mean by etnaviv not being stable?
> > 
> > I did some limited testing with etnaviv on imx8mm with 5.15 + dsi
> 
> 
> 
> > patches on an Ubuntu focal root filesystem by:
> > apt update
> > apt install gnome-session gnome-terminal
> > ^^^ 2D hardware acceleration appears to be working (dragging opaque
> > windows around)
> > apt install mesa-utils glmark2
> > glxgears
> > ^^^ ~160fps on IMX8MM
> > glmark2
> > ^^^ score of 39 on IMX8MM
> > 
> > I haven't seen any updates from Jagan since Nov 24
> > (https://www.spinics.net/lists/dri-devel/msg324059.html) and am not
> > sure if he's been able to work through drm/exynos issues that have
> > been blocking his progress.
> 
> I plan to push on github
> 
> [17:07:42.315] Sending ready to systemd
> [  214.052085] etnaviv-gpu 38000000.gpu: recover hung GPU!
> [  214.595998] etnaviv-gpu 38000000.gpu: recover hung GPU!
> 
> ** (maynard:386): WARNING **: 17:07:43.874: failed to setup mixer: Success
> [17:07:44.175] Added surface 0xaaab02630440, app_id (null) to pending list
> [17:07:44.176] Added surface 0xaaab026172b0, app_id (null) to pending list
> ** Message: 17:07:44.289: New advertisement app id maynard
> ** Message: 17:07:44.290: New advertisement app id maynard
> [17:07:45.171] (background) position view 0xaaab0261f860, x 0, y 0, on
> output DSI-1
> [17:07:45.171] (panel) geom.width 100, geom.height 480, geom.x 0, geom.y 0
> [17:07:45.171] (panel) edge 2 position view 0xaaab02634510, x 0, y 0
> [17:07:45.172] panel type 2 inited on output DSI-1
> [17:07:45.172] Usable area: 380x480+100,0
> [  216.932080] etnaviv-gpu 38000000.gpu: recover hung GPU!
> [  217.476015] etnaviv-gpu 38000000.gpu: recover hung GPU!
> [  218.020157] etnaviv-gpu 38000000.gpu: recover hung GPU!
> 
> This is my problem on imx8mn

Note that the GPU on the 8MN is from the GC7000 generation, which
genreally has bogus feature registers, as VeriSilicon stopped using
them in favor of a hardware database. To get the GPu working you need
to transcribe the entry for this specific GPU from the downstream GPU
driver into the etanviv HWDB format, to make the kernel and userspace
driver aware of how to drive this GPU.

Regards,
Lucas




More information about the linux-arm-kernel mailing list