All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v18 0/2] Add memory bandwidth management to NVIDIA Tegra DRM driver
@ 2021-06-01  4:21 ` Dmitry Osipenko
  0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Osipenko @ 2021-06-01  4:21 UTC (permalink / raw)
  To: Thierry Reding, Jonathan Hunter, Matt Merhar, Peter Geis,
	Nicolas Chauvet, Michał Mirosław
  Cc: linux-tegra, linux-pm, linux-kernel, dri-devel

This series adds memory bandwidth management to the NVIDIA Tegra DRM driver,
which is done using interconnect framework. It fixes display corruption that
happens due to insufficient memory bandwidth.

Changelog:

v18: - Moved total peak bandwidth from CRTC state to plane state and removed
       dummy plane bandwidth state initialization from T186+ plane hub. This
       was suggested by Thierry Reding to v17.

     - I haven't done anything about the cursor's plane bandwidth which
       doesn't contribute to overlapping bandwidths for a small sized
       window because it works okay as-is.

v17: - No changes, re-sending for v5.14.

v16: - Implemented suggestions that were given by Michał Mirosław to v15.

     - Added r-b from Michał Mirosław to the debug-stats patch.

     - Rebased on top of a recent linux-next.

     - Removed bandwidth scaling based on width difference of src/dst
       windows since it's not actual anymore. Apparently the recent memory
       driver changes fixed problems that I witnessed before.

     - Average bandwidth calculation now won't overflow for 4k resolutions.

     - Average bandwidth calculation now uses the size of the visible
       area instead of the src area since debug stats of the memory
       controller clearly show that downscaled window takes less bandwidth,
       proportionally to the scaled size.

     - Bandwidth calculation now uses "adjusted mode" of the CRTC, which
       is what used for h/w programming, instead of the mode that was
       requested by userspace, although the two usually match in practice.

v15: - Corrected tegra_plane_icc_names[] NULL-check that was partially lost
       by accident in v14 after unsuccessful rebase.

v14: - Made improvements that were suggested by Michał Mirosław to v13:

       - Changed 'unsigned int' to 'bool'.
       - Renamed functions which calculate bandwidth state.
       - Reworked comment in the code that explains why downscaled plane
         require higher bandwidth.
       - Added round-up to bandwidth calculation.
       - Added sanity checks of the plane index and fixed out-of-bounds
         access which happened on T124 due to the cursor plane index.

v13: - No code changes. Patches missed v5.12, re-sending them for v5.13.

Dmitry Osipenko (2):
  drm/tegra: dc: Support memory bandwidth management
  drm/tegra: dc: Extend debug stats with total number of events

 drivers/gpu/drm/tegra/Kconfig |   1 +
 drivers/gpu/drm/tegra/dc.c    | 358 +++++++++++++++++++++++++++++++++-
 drivers/gpu/drm/tegra/dc.h    |  17 ++
 drivers/gpu/drm/tegra/drm.c   |  14 ++
 drivers/gpu/drm/tegra/plane.c | 117 +++++++++++
 drivers/gpu/drm/tegra/plane.h |  16 ++
 6 files changed, 521 insertions(+), 2 deletions(-)

-- 
2.30.2


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2021-08-13 13:28 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-01  4:21 [PATCH v18 0/2] Add memory bandwidth management to NVIDIA Tegra DRM driver Dmitry Osipenko
2021-06-01  4:21 ` Dmitry Osipenko
2021-06-01  4:21 ` [PATCH v18 1/2] drm/tegra: dc: Support memory bandwidth management Dmitry Osipenko
2021-06-01  4:21   ` Dmitry Osipenko
2021-06-01  4:21 ` [PATCH v18 2/2] drm/tegra: dc: Extend debug stats with total number of events Dmitry Osipenko
2021-06-01  4:21   ` Dmitry Osipenko
2021-06-06 22:40 ` [PATCH v18 0/2] Add memory bandwidth management to NVIDIA Tegra DRM driver Dmitry Osipenko
2021-06-06 22:40   ` Dmitry Osipenko
2021-06-21  4:19   ` Dmitry Osipenko
2021-06-21  4:19     ` Dmitry Osipenko
2021-06-21 11:01     ` Thierry Reding
2021-06-21 11:01       ` Thierry Reding
2021-06-21 11:43       ` Dmitry Osipenko
2021-06-21 11:43         ` Dmitry Osipenko
2021-07-18 20:59         ` Dmitry Osipenko
2021-07-18 20:59           ` Dmitry Osipenko
2021-08-13 10:33   ` Thierry Reding
2021-08-13 13:27     ` Dmitry Osipenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.