mbox series

[00/31] Preparatory patches for BCM2712 (Pi5) support

Message ID 20240620154632.4125308-1-dave.stevenson@raspberrypi.com (mailing list archive)
Headers show
Series Preparatory patches for BCM2712 (Pi5) support | expand

Message

Dave Stevenson June 20, 2024, 3:46 p.m. UTC
Hi

This set is a number of minor fixes that we've had downstream for a while,
and then lays down the some infrastructure changes to facilitate adding support
of BCM2712. I'm just finalising those patches so they should follow on fairly
soon.

Thanks
  Dave

Dave Stevenson (8):
  drm/vc4: Force trigger of dlist update on margins change
  drm/vc4: Set AXI panic modes for the HVS
  drm/vc4: Limit max_bpc to 8 on Pi0-3
  drm/vc4: Don't write gamma luts on 2711
  drm/vc4: UV planes vertical scaling must always be enabled
  drm/vc4: Fix dlist debug not resetting the next entry pointer
  drm/vc4: Remove incorrect limit from hvs_dlist debugfs function
  drm/vc4: Move the buffer offset out of the vc4_plane_state

Dom Cobley (7):
  drm/vc4: vc4_plane: Keep fractional source coords inside state
  drm/vc4: Handle fractional coordinates using the phase field
  drm/vc4: hdmi: Avoid log spam for audio start failure
  drm/vc4_plane: Add support for YUV444 formats
  drm/vc4: hdmi: Increase audio MAI fifo dreq threshold
  drm/vc4: hdmi: Avoid hang with debug registers when suspended
  drm/vc4: hvs: Remove ABORT_ON_EMPTY flag

Maxime Ripard (15):
  drm/vc4: hdmi: Warn if writing to an unknown HDMI register
  drm/vc4: hvs: More logging for dlist generation
  drm/vc4: hvs: Print error if we fail an allocation
  drm/vc4: plane: Add more debugging for LBM allocation
  drm/vc4: plane: Use return variable in atomic_check
  drm/vc4: crtc: Move assigned_channel to a variable
  drm/vc4: Introduce generation number enum
  drm/vc4: Make v3d paths unavailable on any generation newer than vc4
  drm/vc4: hvs: Use switch statement to simplify
    vc4_hvs_get_fifo_from_output
  drm/vc4: hvs: Create hw_init function
  drm/vc4: hvs: Create cob_init function
  drm/vc4: hvs: Rename hvs_regs list
  drm/vc4: plane: Change ptr0_offset to an array
  drm/vc4: hvs: Rework LBM alignment
  drm/vc4: hvs: Change prototype of __vc4_hvs_alloc to pass registers

Tim Gover (1):
  drm/vc4: Enable SCALER_CONTROL early in HVS init

 drivers/gpu/drm/vc4/tests/vc4_mock.c       |  14 +-
 drivers/gpu/drm/vc4/vc4_bo.c               |  28 +-
 drivers/gpu/drm/vc4/vc4_crtc.c             |  35 ++-
 drivers/gpu/drm/vc4/vc4_drv.c              |  22 +-
 drivers/gpu/drm/vc4/vc4_drv.h              |  29 +-
 drivers/gpu/drm/vc4/vc4_gem.c              |  24 +-
 drivers/gpu/drm/vc4/vc4_hdmi.c             |  30 +-
 drivers/gpu/drm/vc4/vc4_hdmi_regs.h        |   5 +-
 drivers/gpu/drm/vc4/vc4_hvs.c              | 343 +++++++++++++--------
 drivers/gpu/drm/vc4/vc4_irq.c              |  10 +-
 drivers/gpu/drm/vc4/vc4_kms.c              |  14 +-
 drivers/gpu/drm/vc4/vc4_perfmon.c          |  20 +-
 drivers/gpu/drm/vc4/vc4_plane.c            | 281 +++++++++++------
 drivers/gpu/drm/vc4/vc4_regs.h             |   1 +
 drivers/gpu/drm/vc4/vc4_render_cl.c        |   2 +-
 drivers/gpu/drm/vc4/vc4_v3d.c              |  10 +-
 drivers/gpu/drm/vc4/vc4_validate.c         |   8 +-
 drivers/gpu/drm/vc4/vc4_validate_shaders.c |   2 +-
 18 files changed, 540 insertions(+), 338 deletions(-)

Comments

Maxime Ripard June 21, 2024, 8:55 a.m. UTC | #1
Hi Dave,

Thanks for taking the time to send this.

I've gone through most of the patches and it looks pretty good already,
but I have a few general remarks:

  - We merged in drm-misc-next the new HDMI infrastructure recently and
    it will heavily conflict with some of these patches, so you need to
    rebase against either linux-next or drm-misc-next.

  - The author and SoB fields for my patches don't match anymore,
    possibly due to mailmap doing its magic.

    You can fix this by using, for the SoB:
    git filter-branch --msg-filter 'sed -i s/maxime@cerno.tech/mripard@kernel.org/' drm-misc-next..

    And for the authorship:
    git commit --amend --author="Maxime Ripard <mripard@kernel.org>"
    for each commit.

  - All of the fixes need Fixes that are currently missing on most tags

  - And the commit prefix isn't consistent, especially for vc4_plane.c,
    the upstream convention so far has been drm/vc4: plane, instead of
    drm/vc4_plane.

Maxime

On Thu, Jun 20, 2024 at 04:46:01PM GMT, Dave Stevenson wrote:
> Hi
> 
> This set is a number of minor fixes that we've had downstream for a while,
> and then lays down the some infrastructure changes to facilitate adding support
> of BCM2712. I'm just finalising those patches so they should follow on fairly
> soon.
> 
> Thanks
>   Dave
> 
> Dave Stevenson (8):
>   drm/vc4: Force trigger of dlist update on margins change
>   drm/vc4: Set AXI panic modes for the HVS
>   drm/vc4: Limit max_bpc to 8 on Pi0-3
>   drm/vc4: Don't write gamma luts on 2711
>   drm/vc4: UV planes vertical scaling must always be enabled
>   drm/vc4: Fix dlist debug not resetting the next entry pointer
>   drm/vc4: Remove incorrect limit from hvs_dlist debugfs function
>   drm/vc4: Move the buffer offset out of the vc4_plane_state
> 
> Dom Cobley (7):
>   drm/vc4: vc4_plane: Keep fractional source coords inside state
>   drm/vc4: Handle fractional coordinates using the phase field
>   drm/vc4: hdmi: Avoid log spam for audio start failure
>   drm/vc4_plane: Add support for YUV444 formats
>   drm/vc4: hdmi: Increase audio MAI fifo dreq threshold
>   drm/vc4: hdmi: Avoid hang with debug registers when suspended
>   drm/vc4: hvs: Remove ABORT_ON_EMPTY flag
> 
> Maxime Ripard (15):
>   drm/vc4: hdmi: Warn if writing to an unknown HDMI register
>   drm/vc4: hvs: More logging for dlist generation
>   drm/vc4: hvs: Print error if we fail an allocation
>   drm/vc4: plane: Add more debugging for LBM allocation
>   drm/vc4: plane: Use return variable in atomic_check
>   drm/vc4: crtc: Move assigned_channel to a variable
>   drm/vc4: Introduce generation number enum
>   drm/vc4: Make v3d paths unavailable on any generation newer than vc4
>   drm/vc4: hvs: Use switch statement to simplify
>     vc4_hvs_get_fifo_from_output
>   drm/vc4: hvs: Create hw_init function
>   drm/vc4: hvs: Create cob_init function
>   drm/vc4: hvs: Rename hvs_regs list
>   drm/vc4: plane: Change ptr0_offset to an array
>   drm/vc4: hvs: Rework LBM alignment
>   drm/vc4: hvs: Change prototype of __vc4_hvs_alloc to pass registers
> 
> Tim Gover (1):
>   drm/vc4: Enable SCALER_CONTROL early in HVS init
> 
>  drivers/gpu/drm/vc4/tests/vc4_mock.c       |  14 +-
>  drivers/gpu/drm/vc4/vc4_bo.c               |  28 +-
>  drivers/gpu/drm/vc4/vc4_crtc.c             |  35 ++-
>  drivers/gpu/drm/vc4/vc4_drv.c              |  22 +-
>  drivers/gpu/drm/vc4/vc4_drv.h              |  29 +-
>  drivers/gpu/drm/vc4/vc4_gem.c              |  24 +-
>  drivers/gpu/drm/vc4/vc4_hdmi.c             |  30 +-
>  drivers/gpu/drm/vc4/vc4_hdmi_regs.h        |   5 +-
>  drivers/gpu/drm/vc4/vc4_hvs.c              | 343 +++++++++++++--------
>  drivers/gpu/drm/vc4/vc4_irq.c              |  10 +-
>  drivers/gpu/drm/vc4/vc4_kms.c              |  14 +-
>  drivers/gpu/drm/vc4/vc4_perfmon.c          |  20 +-
>  drivers/gpu/drm/vc4/vc4_plane.c            | 281 +++++++++++------
>  drivers/gpu/drm/vc4/vc4_regs.h             |   1 +
>  drivers/gpu/drm/vc4/vc4_render_cl.c        |   2 +-
>  drivers/gpu/drm/vc4/vc4_v3d.c              |  10 +-
>  drivers/gpu/drm/vc4/vc4_validate.c         |   8 +-
>  drivers/gpu/drm/vc4/vc4_validate_shaders.c |   2 +-
>  18 files changed, 540 insertions(+), 338 deletions(-)
> 
> -- 
> 2.34.1
>
Dave Stevenson June 21, 2024, 10:16 a.m. UTC | #2
Morning Maxime

On Fri, 21 Jun 2024 at 09:55, Maxime Ripard <mripard@kernel.org> wrote:
>
> Hi Dave,
>
> Thanks for taking the time to send this.
>
> I've gone through most of the patches and it looks pretty good already,
> but I have a few general remarks:
>
>   - We merged in drm-misc-next the new HDMI infrastructure recently and
>     it will heavily conflict with some of these patches, so you need to
>     rebase against either linux-next or drm-misc-next.

Unless I've really messed up, this is already against drm-misc-next -
sorry for not stating that.
I've just pulled and rebased again, but I believe the top commit from
the tree I created the patches against was
c1391205754f drm/tests: add drm_hdmi_state_helper_test MODULE_DESCRIPTION()
merged yesterday. I certainly had my VEC patches in the tree.

>   - The author and SoB fields for my patches don't match anymore,
>     possibly due to mailmap doing its magic.

Too much magic in git :-(
I went through and updated all your SoB fields, but mailmap appears to
mean that the author shown by git log is not the same as the patches
created by git format-patch. Never believe what you see. (That feels
like a bug in git format-patch).

>     You can fix this by using, for the SoB:
>     git filter-branch --msg-filter 'sed -i s/maxime@cerno.tech/mripard@kernel.org/' drm-misc-next..
>
>     And for the authorship:
>     git commit --amend --author="Maxime Ripard <mripard@kernel.org>"
>     for each commit.
>
>   - All of the fixes need Fixes that are currently missing on most tags

Just as long as no one tries pulling them all back to stable. The
number of dependencies would be huge in many cases.

>   - And the commit prefix isn't consistent, especially for vc4_plane.c,
>     the upstream convention so far has been drm/vc4: plane, instead of
>     drm/vc4_plane.

Done.

  Dave

> Maxime
>
> On Thu, Jun 20, 2024 at 04:46:01PM GMT, Dave Stevenson wrote:
> > Hi
> >
> > This set is a number of minor fixes that we've had downstream for a while,
> > and then lays down the some infrastructure changes to facilitate adding support
> > of BCM2712. I'm just finalising those patches so they should follow on fairly
> > soon.
> >
> > Thanks
> >   Dave
> >
> > Dave Stevenson (8):
> >   drm/vc4: Force trigger of dlist update on margins change
> >   drm/vc4: Set AXI panic modes for the HVS
> >   drm/vc4: Limit max_bpc to 8 on Pi0-3
> >   drm/vc4: Don't write gamma luts on 2711
> >   drm/vc4: UV planes vertical scaling must always be enabled
> >   drm/vc4: Fix dlist debug not resetting the next entry pointer
> >   drm/vc4: Remove incorrect limit from hvs_dlist debugfs function
> >   drm/vc4: Move the buffer offset out of the vc4_plane_state
> >
> > Dom Cobley (7):
> >   drm/vc4: vc4_plane: Keep fractional source coords inside state
> >   drm/vc4: Handle fractional coordinates using the phase field
> >   drm/vc4: hdmi: Avoid log spam for audio start failure
> >   drm/vc4_plane: Add support for YUV444 formats
> >   drm/vc4: hdmi: Increase audio MAI fifo dreq threshold
> >   drm/vc4: hdmi: Avoid hang with debug registers when suspended
> >   drm/vc4: hvs: Remove ABORT_ON_EMPTY flag
> >
> > Maxime Ripard (15):
> >   drm/vc4: hdmi: Warn if writing to an unknown HDMI register
> >   drm/vc4: hvs: More logging for dlist generation
> >   drm/vc4: hvs: Print error if we fail an allocation
> >   drm/vc4: plane: Add more debugging for LBM allocation
> >   drm/vc4: plane: Use return variable in atomic_check
> >   drm/vc4: crtc: Move assigned_channel to a variable
> >   drm/vc4: Introduce generation number enum
> >   drm/vc4: Make v3d paths unavailable on any generation newer than vc4
> >   drm/vc4: hvs: Use switch statement to simplify
> >     vc4_hvs_get_fifo_from_output
> >   drm/vc4: hvs: Create hw_init function
> >   drm/vc4: hvs: Create cob_init function
> >   drm/vc4: hvs: Rename hvs_regs list
> >   drm/vc4: plane: Change ptr0_offset to an array
> >   drm/vc4: hvs: Rework LBM alignment
> >   drm/vc4: hvs: Change prototype of __vc4_hvs_alloc to pass registers
> >
> > Tim Gover (1):
> >   drm/vc4: Enable SCALER_CONTROL early in HVS init
> >
> >  drivers/gpu/drm/vc4/tests/vc4_mock.c       |  14 +-
> >  drivers/gpu/drm/vc4/vc4_bo.c               |  28 +-
> >  drivers/gpu/drm/vc4/vc4_crtc.c             |  35 ++-
> >  drivers/gpu/drm/vc4/vc4_drv.c              |  22 +-
> >  drivers/gpu/drm/vc4/vc4_drv.h              |  29 +-
> >  drivers/gpu/drm/vc4/vc4_gem.c              |  24 +-
> >  drivers/gpu/drm/vc4/vc4_hdmi.c             |  30 +-
> >  drivers/gpu/drm/vc4/vc4_hdmi_regs.h        |   5 +-
> >  drivers/gpu/drm/vc4/vc4_hvs.c              | 343 +++++++++++++--------
> >  drivers/gpu/drm/vc4/vc4_irq.c              |  10 +-
> >  drivers/gpu/drm/vc4/vc4_kms.c              |  14 +-
> >  drivers/gpu/drm/vc4/vc4_perfmon.c          |  20 +-
> >  drivers/gpu/drm/vc4/vc4_plane.c            | 281 +++++++++++------
> >  drivers/gpu/drm/vc4/vc4_regs.h             |   1 +
> >  drivers/gpu/drm/vc4/vc4_render_cl.c        |   2 +-
> >  drivers/gpu/drm/vc4/vc4_v3d.c              |  10 +-
> >  drivers/gpu/drm/vc4/vc4_validate.c         |   8 +-
> >  drivers/gpu/drm/vc4/vc4_validate_shaders.c |   2 +-
> >  18 files changed, 540 insertions(+), 338 deletions(-)
> >
> > --
> > 2.34.1
> >
Maxime Ripard June 24, 2024, 2:19 p.m. UTC | #3
Hi,

On Fri, Jun 21, 2024 at 11:16:20AM GMT, Dave Stevenson wrote:
> Morning Maxime
> 
> On Fri, 21 Jun 2024 at 09:55, Maxime Ripard <mripard@kernel.org> wrote:
> >
> > Hi Dave,
> >
> > Thanks for taking the time to send this.
> >
> > I've gone through most of the patches and it looks pretty good already,
> > but I have a few general remarks:
> >
> >   - We merged in drm-misc-next the new HDMI infrastructure recently and
> >     it will heavily conflict with some of these patches, so you need to
> >     rebase against either linux-next or drm-misc-next.
> 
> Unless I've really messed up, this is already against drm-misc-next -
> sorry for not stating that.
> I've just pulled and rebased again, but I believe the top commit from
> the tree I created the patches against was
> c1391205754f drm/tests: add drm_hdmi_state_helper_test MODULE_DESCRIPTION()
> merged yesterday. I certainly had my VEC patches in the tree.

Sorry, that must be my fault then :)

I saw some patches had what I thought was vc4 prior refactoring, but if
you're on top of current drm-misc-next, it's all good.

> >   - The author and SoB fields for my patches don't match anymore,
> >     possibly due to mailmap doing its magic.
> 
> Too much magic in git :-(
> I went through and updated all your SoB fields, but mailmap appears to
> mean that the author shown by git log is not the same as the patches
> created by git format-patch. Never believe what you see. (That feels
> like a bug in git format-patch).

The duality of a bug/feature :)

> >     You can fix this by using, for the SoB:
> >     git filter-branch --msg-filter 'sed -i s/maxime@cerno.tech/mripard@kernel.org/' drm-misc-next..
> >
> >     And for the authorship:
> >     git commit --amend --author="Maxime Ripard <mripard@kernel.org>"
> >     for each commit.
> >
> >   - All of the fixes need Fixes that are currently missing on most tags
> 
> Just as long as no one tries pulling them all back to stable. The
> number of dependencies would be huge in many cases.

This will probably happen still due to AUTOSEL. Is there any fix that
shouldn't be backported?

Maxime
Dave Stevenson June 24, 2024, 2:45 p.m. UTC | #4
On Mon, 24 Jun 2024 at 15:19, Maxime Ripard <mripard@kernel.org> wrote:
>
> Hi,
>
> On Fri, Jun 21, 2024 at 11:16:20AM GMT, Dave Stevenson wrote:
> > Morning Maxime
> >
> > On Fri, 21 Jun 2024 at 09:55, Maxime Ripard <mripard@kernel.org> wrote:
> > >
> > > Hi Dave,
> > >
> > > Thanks for taking the time to send this.
> > >
> > > I've gone through most of the patches and it looks pretty good already,
> > > but I have a few general remarks:
> > >
> > >   - We merged in drm-misc-next the new HDMI infrastructure recently and
> > >     it will heavily conflict with some of these patches, so you need to
> > >     rebase against either linux-next or drm-misc-next.
> >
> > Unless I've really messed up, this is already against drm-misc-next -
> > sorry for not stating that.
> > I've just pulled and rebased again, but I believe the top commit from
> > the tree I created the patches against was
> > c1391205754f drm/tests: add drm_hdmi_state_helper_test MODULE_DESCRIPTION()
> > merged yesterday. I certainly had my VEC patches in the tree.
>
> Sorry, that must be my fault then :)
>
> I saw some patches had what I thought was vc4 prior refactoring, but if
> you're on top of current drm-misc-next, it's all good.

The tree is definitely based on drm-misc-next, and all the tests I've
done are fine. It's still possible that there is an error due to the
refactor, but I hope not.

> > >   - The author and SoB fields for my patches don't match anymore,
> > >     possibly due to mailmap doing its magic.
> >
> > Too much magic in git :-(
> > I went through and updated all your SoB fields, but mailmap appears to
> > mean that the author shown by git log is not the same as the patches
> > created by git format-patch. Never believe what you see. (That feels
> > like a bug in git format-patch).
>
> The duality of a bug/feature :)
>
> > >     You can fix this by using, for the SoB:
> > >     git filter-branch --msg-filter 'sed -i s/maxime@cerno.tech/mripard@kernel.org/' drm-misc-next..
> > >
> > >     And for the authorship:
> > >     git commit --amend --author="Maxime Ripard <mripard@kernel.org>"
> > >     for each commit.
> > >
> > >   - All of the fixes need Fixes that are currently missing on most tags
> >
> > Just as long as no one tries pulling them all back to stable. The
> > number of dependencies would be huge in many cases.
>
> This will probably happen still due to AUTOSEL. Is there any fix that
> shouldn't be backported?

If they backport cleanly then they should all be fine, but I fear that
things like the HDMI infrastructure changes will mean that they won't
(I certainly had a few conflicts in rebasing onto the latest
drm-misc-next).
I guess it's a case of seeing what happens.

  Dave