[PATCH v6 0/9] Add method to describe tile/bit_level_packed formats
Alexandru-Cosmin Gheorghe
Alexandru-Cosmin.Gheorghe at arm.com
Mon Oct 29 17:14:32 UTC 2018
Changes since v5:
- Added selftests for drm_internal_framebuffer_create
- Added a macro to export internal function only when
DRM_DEBUG_SELFTEST is enabled, suggested by Daniel Vetter, here
[5].
- Cosmetic fixes suggested by Brian Starkey.
- Rebased against drm-misc-next
Changes since v4:
- Rebased selftests on latest drm-misc-next
Changes since v3:
- added an utility function that computes the minimum pitch.
- switched drm_format_info to in-line member documentation.
- Cleanup/Improved the kernel doc.
- Added selftests for: drm_format_info* helpers.
There has been some discussion about extending drm core to handle
linear tile formats, in the series sent by me here [1] and how to
handle formats that are intended to be used just with
modifiers(particularly AFBC modifiers) on Brian series [2] and on IRC
here [3] and [4].
Hence, this big-merged series:
Patch 1: Just a preparation patch that converts the drm_format_info
kerneldoc to in-line documentation.
Patches 2-4: handle tiled formats both in core and in malidp driver,
this is done by extending drm_format_info with three new fields
char_per_block, block_w, block_h and consistently handle in the generic
code paths, both linear tiled formats and normal formats.
What's different from [1] is the interpretation of pitch for tile
formats which has been kept to be the same as for the other formats:
pitch = average_chars_per_pixel * width.
Patches 5-7: Introduce the YUV AFBC formats, the only thing noteworthy
here is that cpp/char_per_block are set to 0 for formats where it's
mandatory to be used together with a non-linear modifier and then that
is used to bypass pitch check in framebuffer_check for formats that
have cpp/char_per_block set to 0.
Patches 8-9: A small fix for test-drm-helper module and adds self
tests for drm_format_info* helpers. For the other touched functions we
need a bit more infrastructure to be able to unittest/selftest them,
since they need a stub drm_device and drm_file.
As a side note, igt master branch doesn't seem to be using
test-drm-helper.ko, so I just tested by loading/unloading the module
manually.
[1] https://lists.freedesktop.org/archives/dri-devel/2018-September/188245.html
[2] https://lists.freedesktop.org/archives/dri-devel/2018-September/189620.html
[3] https://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&highlight_names=&date=2018-09-13&show_html=true
[4] https://people.freedesktop.org/~cbrill/dri-log/?channel=dri-devel&highlight_names=&date=2018-09-14&show_html=true
[5] https://www.spinics.net/lists/dri-devel/msg193422.html
v5: https://www.spinics.net/lists/dri-devel/msg193384.html
Alexandru Gheorghe (7):
drm/fourcc: Add char_per_block, block_w and block_h in drm_format_info
drm/fourcc: Add fourcc for Mali linear tiled formats
drm: mali-dp: Enable Mali-DP tiled buffer formats
drm: Extend framebuffer_check to handle formats with
cpp/char_per_block 0
drm/selftests: Add tests for drm_format_info* helpers
drm: Add macro to export functions only when CONFIG_DRM_DEBUG_SELFTEST
is enabled
drm/selftests: Add tests for drm_internal_framebuffer_create
Brian Starkey (2):
drm/fourcc: Add AFBC yuv fourccs for Mali
drm/afbc: Add AFBC modifier usage documentation
Documentation/gpu/afbc.rst | 233 ++++++++++++
Documentation/gpu/drivers.rst | 1 +
MAINTAINERS | 1 +
drivers/gpu/drm/arm/malidp_hw.c | 14 +-
drivers/gpu/drm/arm/malidp_planes.c | 28 +-
drivers/gpu/drm/drm_fb_cma_helper.c | 20 +-
drivers/gpu/drm/drm_fb_helper.c | 6 +
drivers/gpu/drm/drm_fourcc.c | 87 +++++
drivers/gpu/drm/drm_framebuffer.c | 13 +-
drivers/gpu/drm/drm_gem_framebuffer_helper.c | 2 +-
drivers/gpu/drm/selftests/Makefile | 3 +-
.../gpu/drm/selftests/drm_modeset_selftests.h | 4 +
drivers/gpu/drm/selftests/test-drm_format.c | 290 +++++++++++++++
.../gpu/drm/selftests/test-drm_framebuffer.c | 344 ++++++++++++++++++
.../drm/selftests/test-drm_modeset_common.h | 4 +
include/drm/drmP.h | 6 +
include/drm/drm_fourcc.h | 61 +++-
include/uapi/drm/drm_fourcc.h | 31 ++
18 files changed, 1132 insertions(+), 16 deletions(-)
create mode 100644 Documentation/gpu/afbc.rst
create mode 100644 drivers/gpu/drm/selftests/test-drm_format.c
create mode 100644 drivers/gpu/drm/selftests/test-drm_framebuffer.c
--
2.19.1
More information about the dri-devel
mailing list