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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 9, 2021 at 3:24 PM Michael Nazzareno Trimarchi
<michael@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hi
>
> On Thu, Dec 9, 2021 at 9:24 PM Lucas Stach <dev@xxxxxxxxxx> wrote:
> >
> > 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@xxxxxxxxxxxxx> wrote:
> > > >
> > > > On Thu, Dec 9, 2021 at 12:36 AM Michael Nazzareno Trimarchi
> > > > <michael@xxxxxxxxxxxxxxxxxxxx> wrote:
> > > > >
> > > > > Hi Tim
> > > > >
> > > > > On Tue, Oct 5, 2021 at 11:43 PM Tim Harvey <tharvey@xxxxxxxxxxxxx> wrote:
> > > > > >
> > > > > > On Sun, Jul 25, 2021 at 10:14 AM Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> wrote:
> > > > > > >
> > > > > > > Hi Sam,
> > > > > > >
> > > > > > > On Sun, Jul 25, 2021 at 10:35 PM Sam Ravnborg <sam@xxxxxxxxxxxx> 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!

Which Nano variant do you have?  Not all Nano's have a GPU.  I know
Tim Harvey was having a similar issue, but it turns out his variant of
the Nano did not include a 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.
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
> b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
> index f2fc645c7956..724f78fd37e5 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_hwdb.c
> @@ -68,6 +68,37 @@ static const struct etnaviv_chip_identity
> etnaviv_chip_identities[] = {
>                 .minor_features10 = 0x00004040,
>                 .minor_features11 = 0x00000024,
>         },
> +       {
> +               .model = 0x7000,
> +               .revision = 0x6203,
> +               .product_id = ~0U,
> +               .customer_id = ~0U,
> +               .eco_id = 0,
> +               .stream_count = 16,
> +               .register_max = 64,
> +               .thread_count = 512,
> +               .shader_core_count = 2,
> +               .vertex_cache_size = 16,
> +               .vertex_output_buffer_size = 1024,
> +               .pixel_pipes = 1,
> +               .instruction_count = 512,
> +               .num_constants = 320,
> +               .buffer_size = 0,
> +               .varyings_count = 16,
> +               .features = 0xe0287c8c,
> +               .minor_features0 = 0xc1589eff,
> +               .minor_features1 = 0xfefbfad9,
> +               .minor_features2 = 0xeb9d4fbf,
> +               .minor_features3 = 0xedfffced,
> +               .minor_features4 = 0xdb0dafc7,
> +               .minor_features5 = 0x3b5ac333,
> +               .minor_features6 = 0xfcce6000,
> +               .minor_features7 = 0xfffbfa6f,
> +               .minor_features8 = 0x00e10ef3,
> +               .minor_features9 = 0x00c8003c,
> +               .minor_features10 = 0x00004040,
> +               .minor_features11 = 0x00000024,
> +       },
>         {
>                 .model = 0x7000,
>                 .revision = 0x6204,
>
> Ok, should something like this. Only does not know about this
> gcFEATURE_BIT_DE_2D_FAST_CLEAR. I put in features but can even a
> minor. Do you know the right mapping?
>
> Michael
>
> Michael
>
> >
> > Regards,
> > Lucas
> >
>
>
> --
> Michael Nazzareno Trimarchi
> Co-Founder & Chief Executive Officer
> M. +39 347 913 2170
> michael@xxxxxxxxxxxxxxxxxxxx
> __________________________________
>
> Amarula Solutions BV
> Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
> T. +31 (0)85 111 9172
> info@xxxxxxxxxxxxxxxxxxxx
> www.amarulasolutions.com



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux