* [PATCH 1/5] drm/msm/dpu: Remove unused format tables.
@ 2018-12-11 18:42 Fritz Koenig
2018-12-11 18:42 ` [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init Fritz Koenig
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Fritz Koenig @ 2018-12-11 18:42 UTC (permalink / raw)
To: dri-devel; +Cc: Fritz Koenig, sean
Signed-off-by: Fritz Koenig <frkoenig@google.com>
---
.../drm/msm/disp/dpu1/dpu_hw_catalog_format.h | 73 -------------------
1 file changed, 73 deletions(-)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h
index 3c9f028628ef..c37ba38ac83d 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h
@@ -93,76 +93,3 @@ static const struct dpu_format_extended plane_formats_yuv[] = {
{DRM_FORMAT_YVU420, 0},
{0, 0},
};
-
-static const struct dpu_format_extended cursor_formats[] = {
- {DRM_FORMAT_ARGB8888, 0},
- {DRM_FORMAT_ABGR8888, 0},
- {DRM_FORMAT_RGBA8888, 0},
- {DRM_FORMAT_BGRA8888, 0},
- {DRM_FORMAT_XRGB8888, 0},
- {DRM_FORMAT_ARGB1555, 0},
- {DRM_FORMAT_ABGR1555, 0},
- {DRM_FORMAT_RGBA5551, 0},
- {DRM_FORMAT_BGRA5551, 0},
- {DRM_FORMAT_ARGB4444, 0},
- {DRM_FORMAT_ABGR4444, 0},
- {DRM_FORMAT_RGBA4444, 0},
- {DRM_FORMAT_BGRA4444, 0},
- {0, 0},
-};
-
-static const struct dpu_format_extended wb2_formats[] = {
- {DRM_FORMAT_RGB565, 0},
- {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED},
- {DRM_FORMAT_RGB888, 0},
- {DRM_FORMAT_ARGB8888, 0},
- {DRM_FORMAT_RGBA8888, 0},
- {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
- {DRM_FORMAT_XRGB8888, 0},
- {DRM_FORMAT_RGBX8888, 0},
- {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED},
- {DRM_FORMAT_ARGB1555, 0},
- {DRM_FORMAT_RGBA5551, 0},
- {DRM_FORMAT_XRGB1555, 0},
- {DRM_FORMAT_RGBX5551, 0},
- {DRM_FORMAT_ARGB4444, 0},
- {DRM_FORMAT_RGBA4444, 0},
- {DRM_FORMAT_RGBX4444, 0},
- {DRM_FORMAT_XRGB4444, 0},
-
- {DRM_FORMAT_BGR565, 0},
- {DRM_FORMAT_BGR888, 0},
- {DRM_FORMAT_ABGR8888, 0},
- {DRM_FORMAT_BGRA8888, 0},
- {DRM_FORMAT_BGRX8888, 0},
- {DRM_FORMAT_XBGR8888, 0},
- {DRM_FORMAT_ABGR1555, 0},
- {DRM_FORMAT_BGRA5551, 0},
- {DRM_FORMAT_XBGR1555, 0},
- {DRM_FORMAT_BGRX5551, 0},
- {DRM_FORMAT_ABGR4444, 0},
- {DRM_FORMAT_BGRA4444, 0},
- {DRM_FORMAT_BGRX4444, 0},
- {DRM_FORMAT_XBGR4444, 0},
-
- {DRM_FORMAT_YUV420, 0},
- {DRM_FORMAT_NV12, 0},
- {DRM_FORMAT_NV12, DRM_FORMAT_MOD_QCOM_COMPRESSED},
- {DRM_FORMAT_NV16, 0},
- {DRM_FORMAT_YUYV, 0},
-
- {0, 0},
-};
-
-static const struct dpu_format_extended rgb_10bit_formats[] = {
- {DRM_FORMAT_BGRA1010102, 0},
- {DRM_FORMAT_BGRX1010102, 0},
- {DRM_FORMAT_RGBA1010102, 0},
- {DRM_FORMAT_RGBX1010102, 0},
- {DRM_FORMAT_ABGR2101010, 0},
- {DRM_FORMAT_ABGR2101010, DRM_FORMAT_MOD_QCOM_COMPRESSED},
- {DRM_FORMAT_XBGR2101010, 0},
- {DRM_FORMAT_XBGR2101010, DRM_FORMAT_MOD_QCOM_COMPRESSED},
- {DRM_FORMAT_ARGB2101010, 0},
- {DRM_FORMAT_XRGB2101010, 0},
-};
--
2.20.0.rc2.403.gdbc3b29805-goog
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init 2018-12-11 18:42 [PATCH 1/5] drm/msm/dpu: Remove unused format tables Fritz Koenig @ 2018-12-11 18:42 ` Fritz Koenig 2018-12-12 16:08 ` Sean Paul 2018-12-11 18:42 ` [PATCH 3/5] drm/msm/dpu: Plane helper for modifiers Fritz Koenig ` (3 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Fritz Koenig @ 2018-12-11 18:42 UTC (permalink / raw) To: dri-devel; +Cc: Fritz Koenig, sean Simplify the initilization of a list of formats by passing the list in directly instead of copying it from one structure to another. Signed-off-by: Fritz Koenig <frkoenig@google.com> --- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 33 ---- drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h | 14 -- .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 4 + .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 19 +-- .../drm/msm/disp/dpu1/dpu_hw_catalog_format.h | 151 +++++++++--------- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 1 - drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 25 ++- 7 files changed, 93 insertions(+), 154 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c index 0874f0a53bf9..d53abc8ce670 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c @@ -1137,36 +1137,3 @@ const struct msm_format *dpu_get_msm_format( return &fmt->base; return NULL; } - -uint32_t dpu_populate_formats( - const struct dpu_format_extended *format_list, - uint32_t *pixel_formats, - uint64_t *pixel_modifiers, - uint32_t pixel_formats_max) -{ - uint32_t i, fourcc_format; - - if (!format_list || !pixel_formats) - return 0; - - for (i = 0, fourcc_format = 0; - format_list->fourcc_format && i < pixel_formats_max; - ++format_list) { - /* verify if listed format is in dpu_format_map? */ - - /* optionally return modified formats */ - if (pixel_modifiers) { - /* assume same modifier for all fb planes */ - pixel_formats[i] = format_list->fourcc_format; - pixel_modifiers[i++] = format_list->modifier; - } else { - /* assume base formats grouped together */ - if (fourcc_format != format_list->fourcc_format) { - fourcc_format = format_list->fourcc_format; - pixel_formats[i++] = fourcc_format; - } - } - } - - return i; -} diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h index a54451d8d011..c02c81e7a667 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h @@ -40,20 +40,6 @@ const struct msm_format *dpu_get_msm_format( const uint32_t format, const uint64_t modifiers); -/** - * dpu_populate_formats - populate the given array with fourcc codes supported - * @format_list: pointer to list of possible formats - * @pixel_formats: array to populate with fourcc codes - * @pixel_modifiers: array to populate with drm modifiers, can be NULL - * @pixel_formats_max: length of pixel formats array - * Return: number of elements populated - */ -uint32_t dpu_populate_formats( - const struct dpu_format_extended *format_list, - uint32_t *pixel_formats, - uint64_t *pixel_modifiers, - uint32_t pixel_formats_max); - /** * dpu_format_check_modified_format - validate format and buffers for * dpu non-standard, i.e. modified format diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c index 512ac0834d2b..df6852cc98b9 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c @@ -151,7 +151,9 @@ static const struct dpu_sspp_blks_common sdm845_sspp_common = { .id = DPU_SSPP_CSC_10BIT, \ .base = 0x1a00, .len = 0x100,}, \ .format_list = plane_formats_yuv, \ + .num_formats = ARRAY_SIZE(plane_formats_yuv), \ .virt_format_list = plane_formats, \ + .virt_num_formats = ARRAY_SIZE(plane_formats), \ } #define _DMA_SBLK(num, sdma_pri) \ @@ -163,7 +165,9 @@ static const struct dpu_sspp_blks_common sdm845_sspp_common = { .src_blk = {.name = STRCAT("sspp_src_", num), \ .id = DPU_SSPP_SRC, .base = 0x00, .len = 0x150,}, \ .format_list = plane_formats, \ + .num_formats = ARRAY_SIZE(plane_formats), \ .virt_format_list = plane_formats, \ + .virt_num_formats = ARRAY_SIZE(plane_formats), \ } static const struct dpu_sspp_sub_blks sdm845_vig_sblk_0 = _VIG_SBLK("0", 5); diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h index 144358a3d0fb..a55653b2e466 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h @@ -251,17 +251,6 @@ struct dpu_pp_blk { u32 version; }; -/** - * struct dpu_format_extended - define dpu specific pixel format+modifier - * @fourcc_format: Base FOURCC pixel format code - * @modifier: 64-bit drm format modifier, same modifier must be applied to all - * framebuffer planes - */ -struct dpu_format_extended { - uint32_t fourcc_format; - uint64_t modifier; -}; - /** * enum dpu_qos_lut_usage - define QoS LUT use cases */ @@ -348,7 +337,9 @@ struct dpu_sspp_blks_common { * @pcc_blk: * @igc_blk: * @format_list: Pointer to list of supported formats + * @num_formats: Number of supported formats * @virt_format_list: Pointer to list of supported formats for virtual planes + * @virt_num_formats: Number of supported formats for virtual planes */ struct dpu_sspp_sub_blks { const struct dpu_sspp_blks_common *common; @@ -366,8 +357,10 @@ struct dpu_sspp_sub_blks { struct dpu_pp_blk pcc_blk; struct dpu_pp_blk igc_blk; - const struct dpu_format_extended *format_list; - const struct dpu_format_extended *virt_format_list; + const u32 *format_list; + u32 num_formats; + const u32 *virt_format_list; + u32 virt_num_formats; }; /** diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h index c37ba38ac83d..d09730985951 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h @@ -12,84 +12,81 @@ #include "dpu_hw_mdss.h" -static const struct dpu_format_extended plane_formats[] = { - {DRM_FORMAT_ARGB8888, 0}, - {DRM_FORMAT_ABGR8888, 0}, - {DRM_FORMAT_RGBA8888, 0}, - {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, - {DRM_FORMAT_BGRA8888, 0}, - {DRM_FORMAT_XRGB8888, 0}, - {DRM_FORMAT_RGBX8888, 0}, - {DRM_FORMAT_BGRX8888, 0}, - {DRM_FORMAT_XBGR8888, 0}, - {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, - {DRM_FORMAT_RGB888, 0}, - {DRM_FORMAT_BGR888, 0}, - {DRM_FORMAT_RGB565, 0}, - {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED}, - {DRM_FORMAT_BGR565, 0}, - {DRM_FORMAT_ARGB1555, 0}, - {DRM_FORMAT_ABGR1555, 0}, - {DRM_FORMAT_RGBA5551, 0}, - {DRM_FORMAT_BGRA5551, 0}, - {DRM_FORMAT_XRGB1555, 0}, - {DRM_FORMAT_XBGR1555, 0}, - {DRM_FORMAT_RGBX5551, 0}, - {DRM_FORMAT_BGRX5551, 0}, - {DRM_FORMAT_ARGB4444, 0}, - {DRM_FORMAT_ABGR4444, 0}, - {DRM_FORMAT_RGBA4444, 0}, - {DRM_FORMAT_BGRA4444, 0}, - {DRM_FORMAT_XRGB4444, 0}, - {DRM_FORMAT_XBGR4444, 0}, - {DRM_FORMAT_RGBX4444, 0}, - {DRM_FORMAT_BGRX4444, 0}, - {0, 0}, +static const uint32_t qcom_compressed_supported_formats[] = { + DRM_FORMAT_ABGR8888, + DRM_FORMAT_XBGR8888, + DRM_FORMAT_BGR565, }; -static const struct dpu_format_extended plane_formats_yuv[] = { - {DRM_FORMAT_ARGB8888, 0}, - {DRM_FORMAT_ABGR8888, 0}, - {DRM_FORMAT_RGBA8888, 0}, - {DRM_FORMAT_BGRX8888, 0}, - {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, - {DRM_FORMAT_BGRA8888, 0}, - {DRM_FORMAT_XRGB8888, 0}, - {DRM_FORMAT_XBGR8888, 0}, - {DRM_FORMAT_RGBX8888, 0}, - {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, - {DRM_FORMAT_RGB888, 0}, - {DRM_FORMAT_BGR888, 0}, - {DRM_FORMAT_RGB565, 0}, - {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED}, - {DRM_FORMAT_BGR565, 0}, - {DRM_FORMAT_ARGB1555, 0}, - {DRM_FORMAT_ABGR1555, 0}, - {DRM_FORMAT_RGBA5551, 0}, - {DRM_FORMAT_BGRA5551, 0}, - {DRM_FORMAT_XRGB1555, 0}, - {DRM_FORMAT_XBGR1555, 0}, - {DRM_FORMAT_RGBX5551, 0}, - {DRM_FORMAT_BGRX5551, 0}, - {DRM_FORMAT_ARGB4444, 0}, - {DRM_FORMAT_ABGR4444, 0}, - {DRM_FORMAT_RGBA4444, 0}, - {DRM_FORMAT_BGRA4444, 0}, - {DRM_FORMAT_XRGB4444, 0}, - {DRM_FORMAT_XBGR4444, 0}, - {DRM_FORMAT_RGBX4444, 0}, - {DRM_FORMAT_BGRX4444, 0}, +static const uint32_t plane_formats[] = { + DRM_FORMAT_ARGB8888, + DRM_FORMAT_ABGR8888, + DRM_FORMAT_RGBA8888, + DRM_FORMAT_BGRA8888, + DRM_FORMAT_XRGB8888, + DRM_FORMAT_RGBX8888, + DRM_FORMAT_BGRX8888, + DRM_FORMAT_XBGR8888, + DRM_FORMAT_RGB888, + DRM_FORMAT_BGR888, + DRM_FORMAT_RGB565, + DRM_FORMAT_BGR565, + DRM_FORMAT_ARGB1555, + DRM_FORMAT_ABGR1555, + DRM_FORMAT_RGBA5551, + DRM_FORMAT_BGRA5551, + DRM_FORMAT_XRGB1555, + DRM_FORMAT_XBGR1555, + DRM_FORMAT_RGBX5551, + DRM_FORMAT_BGRX5551, + DRM_FORMAT_ARGB4444, + DRM_FORMAT_ABGR4444, + DRM_FORMAT_RGBA4444, + DRM_FORMAT_BGRA4444, + DRM_FORMAT_XRGB4444, + DRM_FORMAT_XBGR4444, + DRM_FORMAT_RGBX4444, + DRM_FORMAT_BGRX4444, +}; + +static const uint32_t plane_formats_yuv[] = { + DRM_FORMAT_ARGB8888, + DRM_FORMAT_ABGR8888, + DRM_FORMAT_RGBA8888, + DRM_FORMAT_BGRX8888, + DRM_FORMAT_BGRA8888, + DRM_FORMAT_XRGB8888, + DRM_FORMAT_XBGR8888, + DRM_FORMAT_RGBX8888, + DRM_FORMAT_RGB888, + DRM_FORMAT_BGR888, + DRM_FORMAT_RGB565, + DRM_FORMAT_BGR565, + DRM_FORMAT_ARGB1555, + DRM_FORMAT_ABGR1555, + DRM_FORMAT_RGBA5551, + DRM_FORMAT_BGRA5551, + DRM_FORMAT_XRGB1555, + DRM_FORMAT_XBGR1555, + DRM_FORMAT_RGBX5551, + DRM_FORMAT_BGRX5551, + DRM_FORMAT_ARGB4444, + DRM_FORMAT_ABGR4444, + DRM_FORMAT_RGBA4444, + DRM_FORMAT_BGRA4444, + DRM_FORMAT_XRGB4444, + DRM_FORMAT_XBGR4444, + DRM_FORMAT_RGBX4444, + DRM_FORMAT_BGRX4444, - {DRM_FORMAT_NV12, 0}, - {DRM_FORMAT_NV12, DRM_FORMAT_MOD_QCOM_COMPRESSED}, - {DRM_FORMAT_NV21, 0}, - {DRM_FORMAT_NV16, 0}, - {DRM_FORMAT_NV61, 0}, - {DRM_FORMAT_VYUY, 0}, - {DRM_FORMAT_UYVY, 0}, - {DRM_FORMAT_YUYV, 0}, - {DRM_FORMAT_YVYU, 0}, - {DRM_FORMAT_YUV420, 0}, - {DRM_FORMAT_YVU420, 0}, - {0, 0}, + DRM_FORMAT_NV12, + DRM_FORMAT_NV21, + DRM_FORMAT_NV16, + DRM_FORMAT_NV61, + DRM_FORMAT_VYUY, + DRM_FORMAT_UYVY, + DRM_FORMAT_YUYV, + DRM_FORMAT_YVYU, + DRM_FORMAT_YUV420, + DRM_FORMAT_YVU420, }; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h index 321fc64ddd0e..efe70c508ee0 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h @@ -18,7 +18,6 @@ #include "dpu_hw_mdss.h" #define REG_MASK(n) ((BIT(n)) - 1) -struct dpu_format_extended; /* * This is the common struct maintained by each sub block diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c index 688233dbd597..6a49c253bbdc 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c @@ -95,8 +95,6 @@ struct dpu_plane { enum dpu_sspp pipe; uint32_t features; /* capabilities from catalog */ - uint32_t nformats; - uint32_t formats[64]; struct dpu_hw_pipe *pipe_hw; struct dpu_hw_pipe_cfg pipe_cfg; @@ -1446,11 +1444,12 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, unsigned long possible_crtcs, u32 master_plane_id) { struct drm_plane *plane = NULL, *master_plane = NULL; - const struct dpu_format_extended *format_list; + const uint32_t *format_list; struct dpu_plane *pdpu; struct msm_drm_private *priv = dev->dev_private; struct dpu_kms *kms = to_dpu_kms(priv->kms); int zpos_max = DPU_ZPOS_MAX; + uint32_t num_formats; int ret = -EINVAL; /* create and zero local structure */ @@ -1493,23 +1492,17 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, goto clean_sspp; } - if (!master_plane_id) - format_list = pdpu->pipe_sblk->format_list; - else + if (pdpu->is_virtual) { format_list = pdpu->pipe_sblk->virt_format_list; - - pdpu->nformats = dpu_populate_formats(format_list, - pdpu->formats, - 0, - ARRAY_SIZE(pdpu->formats)); - - if (!pdpu->nformats) { - DPU_ERROR("[%u]no valid formats for plane\n", pipe); - goto clean_sspp; + num_formats = pdpu->pipe_sblk->virt_num_formats; + } + else { + format_list = pdpu->pipe_sblk->format_list; + num_formats = pdpu->pipe_sblk->num_formats; } ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs, - pdpu->formats, pdpu->nformats, + format_list, num_formats, NULL, type, NULL); if (ret) goto clean_sspp; -- 2.20.0.rc2.403.gdbc3b29805-goog _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init 2018-12-11 18:42 ` [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init Fritz Koenig @ 2018-12-12 16:08 ` Sean Paul 0 siblings, 0 replies; 12+ messages in thread From: Sean Paul @ 2018-12-12 16:08 UTC (permalink / raw) To: Fritz Koenig; +Cc: sean, dri-devel On Tue, Dec 11, 2018 at 10:42:21AM -0800, Fritz Koenig wrote: > Simplify the initilization of a list of formats > by passing the list in directly instead of copying > it from one structure to another. I have notes on at least a few other instances of passing a struct of parameters instead of just passing stuff directly. Definitely a nice change that simplifies things for casual readers like us. Thanks! Reviewed-by: Sean Paul <sean@poorly.run> > > Signed-off-by: Fritz Koenig <frkoenig@google.com> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 33 ---- > drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h | 14 -- > .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 4 + > .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 19 +-- > .../drm/msm/disp/dpu1/dpu_hw_catalog_format.h | 151 +++++++++--------- > drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 1 - > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 25 ++- > 7 files changed, 93 insertions(+), 154 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c > index 0874f0a53bf9..d53abc8ce670 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c > @@ -1137,36 +1137,3 @@ const struct msm_format *dpu_get_msm_format( > return &fmt->base; > return NULL; > } > - > -uint32_t dpu_populate_formats( > - const struct dpu_format_extended *format_list, > - uint32_t *pixel_formats, > - uint64_t *pixel_modifiers, > - uint32_t pixel_formats_max) > -{ > - uint32_t i, fourcc_format; > - > - if (!format_list || !pixel_formats) > - return 0; > - > - for (i = 0, fourcc_format = 0; > - format_list->fourcc_format && i < pixel_formats_max; > - ++format_list) { > - /* verify if listed format is in dpu_format_map? */ > - > - /* optionally return modified formats */ > - if (pixel_modifiers) { > - /* assume same modifier for all fb planes */ > - pixel_formats[i] = format_list->fourcc_format; > - pixel_modifiers[i++] = format_list->modifier; > - } else { > - /* assume base formats grouped together */ > - if (fourcc_format != format_list->fourcc_format) { > - fourcc_format = format_list->fourcc_format; > - pixel_formats[i++] = fourcc_format; > - } > - } > - } > - > - return i; > -} > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h > index a54451d8d011..c02c81e7a667 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h > @@ -40,20 +40,6 @@ const struct msm_format *dpu_get_msm_format( > const uint32_t format, > const uint64_t modifiers); > > -/** > - * dpu_populate_formats - populate the given array with fourcc codes supported > - * @format_list: pointer to list of possible formats > - * @pixel_formats: array to populate with fourcc codes > - * @pixel_modifiers: array to populate with drm modifiers, can be NULL > - * @pixel_formats_max: length of pixel formats array > - * Return: number of elements populated > - */ > -uint32_t dpu_populate_formats( > - const struct dpu_format_extended *format_list, > - uint32_t *pixel_formats, > - uint64_t *pixel_modifiers, > - uint32_t pixel_formats_max); > - > /** > * dpu_format_check_modified_format - validate format and buffers for > * dpu non-standard, i.e. modified format > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c > index 512ac0834d2b..df6852cc98b9 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c > @@ -151,7 +151,9 @@ static const struct dpu_sspp_blks_common sdm845_sspp_common = { > .id = DPU_SSPP_CSC_10BIT, \ > .base = 0x1a00, .len = 0x100,}, \ > .format_list = plane_formats_yuv, \ > + .num_formats = ARRAY_SIZE(plane_formats_yuv), \ > .virt_format_list = plane_formats, \ > + .virt_num_formats = ARRAY_SIZE(plane_formats), \ > } > > #define _DMA_SBLK(num, sdma_pri) \ > @@ -163,7 +165,9 @@ static const struct dpu_sspp_blks_common sdm845_sspp_common = { > .src_blk = {.name = STRCAT("sspp_src_", num), \ > .id = DPU_SSPP_SRC, .base = 0x00, .len = 0x150,}, \ > .format_list = plane_formats, \ > + .num_formats = ARRAY_SIZE(plane_formats), \ > .virt_format_list = plane_formats, \ > + .virt_num_formats = ARRAY_SIZE(plane_formats), \ > } > > static const struct dpu_sspp_sub_blks sdm845_vig_sblk_0 = _VIG_SBLK("0", 5); > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h > index 144358a3d0fb..a55653b2e466 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h > @@ -251,17 +251,6 @@ struct dpu_pp_blk { > u32 version; > }; > > -/** > - * struct dpu_format_extended - define dpu specific pixel format+modifier > - * @fourcc_format: Base FOURCC pixel format code > - * @modifier: 64-bit drm format modifier, same modifier must be applied to all > - * framebuffer planes > - */ > -struct dpu_format_extended { > - uint32_t fourcc_format; > - uint64_t modifier; > -}; > - > /** > * enum dpu_qos_lut_usage - define QoS LUT use cases > */ > @@ -348,7 +337,9 @@ struct dpu_sspp_blks_common { > * @pcc_blk: > * @igc_blk: > * @format_list: Pointer to list of supported formats > + * @num_formats: Number of supported formats > * @virt_format_list: Pointer to list of supported formats for virtual planes > + * @virt_num_formats: Number of supported formats for virtual planes > */ > struct dpu_sspp_sub_blks { > const struct dpu_sspp_blks_common *common; > @@ -366,8 +357,10 @@ struct dpu_sspp_sub_blks { > struct dpu_pp_blk pcc_blk; > struct dpu_pp_blk igc_blk; > > - const struct dpu_format_extended *format_list; > - const struct dpu_format_extended *virt_format_list; > + const u32 *format_list; > + u32 num_formats; > + const u32 *virt_format_list; > + u32 virt_num_formats; > }; > > /** > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h > index c37ba38ac83d..d09730985951 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h > @@ -12,84 +12,81 @@ > > #include "dpu_hw_mdss.h" > > -static const struct dpu_format_extended plane_formats[] = { > - {DRM_FORMAT_ARGB8888, 0}, > - {DRM_FORMAT_ABGR8888, 0}, > - {DRM_FORMAT_RGBA8888, 0}, > - {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_BGRA8888, 0}, > - {DRM_FORMAT_XRGB8888, 0}, > - {DRM_FORMAT_RGBX8888, 0}, > - {DRM_FORMAT_BGRX8888, 0}, > - {DRM_FORMAT_XBGR8888, 0}, > - {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_RGB888, 0}, > - {DRM_FORMAT_BGR888, 0}, > - {DRM_FORMAT_RGB565, 0}, > - {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_BGR565, 0}, > - {DRM_FORMAT_ARGB1555, 0}, > - {DRM_FORMAT_ABGR1555, 0}, > - {DRM_FORMAT_RGBA5551, 0}, > - {DRM_FORMAT_BGRA5551, 0}, > - {DRM_FORMAT_XRGB1555, 0}, > - {DRM_FORMAT_XBGR1555, 0}, > - {DRM_FORMAT_RGBX5551, 0}, > - {DRM_FORMAT_BGRX5551, 0}, > - {DRM_FORMAT_ARGB4444, 0}, > - {DRM_FORMAT_ABGR4444, 0}, > - {DRM_FORMAT_RGBA4444, 0}, > - {DRM_FORMAT_BGRA4444, 0}, > - {DRM_FORMAT_XRGB4444, 0}, > - {DRM_FORMAT_XBGR4444, 0}, > - {DRM_FORMAT_RGBX4444, 0}, > - {DRM_FORMAT_BGRX4444, 0}, > - {0, 0}, > +static const uint32_t qcom_compressed_supported_formats[] = { > + DRM_FORMAT_ABGR8888, > + DRM_FORMAT_XBGR8888, > + DRM_FORMAT_BGR565, > }; > > -static const struct dpu_format_extended plane_formats_yuv[] = { > - {DRM_FORMAT_ARGB8888, 0}, > - {DRM_FORMAT_ABGR8888, 0}, > - {DRM_FORMAT_RGBA8888, 0}, > - {DRM_FORMAT_BGRX8888, 0}, > - {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_BGRA8888, 0}, > - {DRM_FORMAT_XRGB8888, 0}, > - {DRM_FORMAT_XBGR8888, 0}, > - {DRM_FORMAT_RGBX8888, 0}, > - {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_RGB888, 0}, > - {DRM_FORMAT_BGR888, 0}, > - {DRM_FORMAT_RGB565, 0}, > - {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_BGR565, 0}, > - {DRM_FORMAT_ARGB1555, 0}, > - {DRM_FORMAT_ABGR1555, 0}, > - {DRM_FORMAT_RGBA5551, 0}, > - {DRM_FORMAT_BGRA5551, 0}, > - {DRM_FORMAT_XRGB1555, 0}, > - {DRM_FORMAT_XBGR1555, 0}, > - {DRM_FORMAT_RGBX5551, 0}, > - {DRM_FORMAT_BGRX5551, 0}, > - {DRM_FORMAT_ARGB4444, 0}, > - {DRM_FORMAT_ABGR4444, 0}, > - {DRM_FORMAT_RGBA4444, 0}, > - {DRM_FORMAT_BGRA4444, 0}, > - {DRM_FORMAT_XRGB4444, 0}, > - {DRM_FORMAT_XBGR4444, 0}, > - {DRM_FORMAT_RGBX4444, 0}, > - {DRM_FORMAT_BGRX4444, 0}, > +static const uint32_t plane_formats[] = { > + DRM_FORMAT_ARGB8888, > + DRM_FORMAT_ABGR8888, > + DRM_FORMAT_RGBA8888, > + DRM_FORMAT_BGRA8888, > + DRM_FORMAT_XRGB8888, > + DRM_FORMAT_RGBX8888, > + DRM_FORMAT_BGRX8888, > + DRM_FORMAT_XBGR8888, > + DRM_FORMAT_RGB888, > + DRM_FORMAT_BGR888, > + DRM_FORMAT_RGB565, > + DRM_FORMAT_BGR565, > + DRM_FORMAT_ARGB1555, > + DRM_FORMAT_ABGR1555, > + DRM_FORMAT_RGBA5551, > + DRM_FORMAT_BGRA5551, > + DRM_FORMAT_XRGB1555, > + DRM_FORMAT_XBGR1555, > + DRM_FORMAT_RGBX5551, > + DRM_FORMAT_BGRX5551, > + DRM_FORMAT_ARGB4444, > + DRM_FORMAT_ABGR4444, > + DRM_FORMAT_RGBA4444, > + DRM_FORMAT_BGRA4444, > + DRM_FORMAT_XRGB4444, > + DRM_FORMAT_XBGR4444, > + DRM_FORMAT_RGBX4444, > + DRM_FORMAT_BGRX4444, > +}; > + > +static const uint32_t plane_formats_yuv[] = { > + DRM_FORMAT_ARGB8888, > + DRM_FORMAT_ABGR8888, > + DRM_FORMAT_RGBA8888, > + DRM_FORMAT_BGRX8888, > + DRM_FORMAT_BGRA8888, > + DRM_FORMAT_XRGB8888, > + DRM_FORMAT_XBGR8888, > + DRM_FORMAT_RGBX8888, > + DRM_FORMAT_RGB888, > + DRM_FORMAT_BGR888, > + DRM_FORMAT_RGB565, > + DRM_FORMAT_BGR565, > + DRM_FORMAT_ARGB1555, > + DRM_FORMAT_ABGR1555, > + DRM_FORMAT_RGBA5551, > + DRM_FORMAT_BGRA5551, > + DRM_FORMAT_XRGB1555, > + DRM_FORMAT_XBGR1555, > + DRM_FORMAT_RGBX5551, > + DRM_FORMAT_BGRX5551, > + DRM_FORMAT_ARGB4444, > + DRM_FORMAT_ABGR4444, > + DRM_FORMAT_RGBA4444, > + DRM_FORMAT_BGRA4444, > + DRM_FORMAT_XRGB4444, > + DRM_FORMAT_XBGR4444, > + DRM_FORMAT_RGBX4444, > + DRM_FORMAT_BGRX4444, > > - {DRM_FORMAT_NV12, 0}, > - {DRM_FORMAT_NV12, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_NV21, 0}, > - {DRM_FORMAT_NV16, 0}, > - {DRM_FORMAT_NV61, 0}, > - {DRM_FORMAT_VYUY, 0}, > - {DRM_FORMAT_UYVY, 0}, > - {DRM_FORMAT_YUYV, 0}, > - {DRM_FORMAT_YVYU, 0}, > - {DRM_FORMAT_YUV420, 0}, > - {DRM_FORMAT_YVU420, 0}, > - {0, 0}, > + DRM_FORMAT_NV12, > + DRM_FORMAT_NV21, > + DRM_FORMAT_NV16, > + DRM_FORMAT_NV61, > + DRM_FORMAT_VYUY, > + DRM_FORMAT_UYVY, > + DRM_FORMAT_YUYV, > + DRM_FORMAT_YVYU, > + DRM_FORMAT_YUV420, > + DRM_FORMAT_YVU420, > }; > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h > index 321fc64ddd0e..efe70c508ee0 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h > @@ -18,7 +18,6 @@ > #include "dpu_hw_mdss.h" > > #define REG_MASK(n) ((BIT(n)) - 1) > -struct dpu_format_extended; > > /* > * This is the common struct maintained by each sub block > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > index 688233dbd597..6a49c253bbdc 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > @@ -95,8 +95,6 @@ struct dpu_plane { > > enum dpu_sspp pipe; > uint32_t features; /* capabilities from catalog */ > - uint32_t nformats; > - uint32_t formats[64]; > > struct dpu_hw_pipe *pipe_hw; > struct dpu_hw_pipe_cfg pipe_cfg; > @@ -1446,11 +1444,12 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, > unsigned long possible_crtcs, u32 master_plane_id) > { > struct drm_plane *plane = NULL, *master_plane = NULL; > - const struct dpu_format_extended *format_list; > + const uint32_t *format_list; > struct dpu_plane *pdpu; > struct msm_drm_private *priv = dev->dev_private; > struct dpu_kms *kms = to_dpu_kms(priv->kms); > int zpos_max = DPU_ZPOS_MAX; > + uint32_t num_formats; > int ret = -EINVAL; > > /* create and zero local structure */ > @@ -1493,23 +1492,17 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, > goto clean_sspp; > } > > - if (!master_plane_id) > - format_list = pdpu->pipe_sblk->format_list; > - else > + if (pdpu->is_virtual) { > format_list = pdpu->pipe_sblk->virt_format_list; > - > - pdpu->nformats = dpu_populate_formats(format_list, > - pdpu->formats, > - 0, > - ARRAY_SIZE(pdpu->formats)); > - > - if (!pdpu->nformats) { > - DPU_ERROR("[%u]no valid formats for plane\n", pipe); > - goto clean_sspp; > + num_formats = pdpu->pipe_sblk->virt_num_formats; > + } > + else { > + format_list = pdpu->pipe_sblk->format_list; > + num_formats = pdpu->pipe_sblk->num_formats; > } > > ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs, > - pdpu->formats, pdpu->nformats, > + format_list, num_formats, > NULL, type, NULL); > if (ret) > goto clean_sspp; > -- > 2.20.0.rc2.403.gdbc3b29805-goog > -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/5] drm/msm/dpu: Plane helper for modifiers 2018-12-11 18:42 [PATCH 1/5] drm/msm/dpu: Remove unused format tables Fritz Koenig 2018-12-11 18:42 ` [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init Fritz Koenig @ 2018-12-11 18:42 ` Fritz Koenig 2018-12-12 16:11 ` Sean Paul 2018-12-11 18:42 ` [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers Fritz Koenig ` (2 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Fritz Koenig @ 2018-12-11 18:42 UTC (permalink / raw) To: dri-devel; +Cc: Fritz Koenig, sean Filter planes based on the supported modifiers Signed-off-by: Fritz Koenig <frkoenig@google.com> --- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c index 6a49c253bbdc..9381c8af76d7 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c @@ -1410,6 +1410,23 @@ static void dpu_plane_early_unregister(struct drm_plane *plane) debugfs_remove_recursive(pdpu->debugfs_root); } +static bool dpu_plane_format_mod_supported(struct drm_plane *plane, + uint32_t format, uint64_t modifier) +{ + if (modifier == DRM_FORMAT_MOD_LINEAR) + return true; + + if (modifier == DRM_FORMAT_MOD_QCOM_COMPRESSED) { + int i; + for (i = 0; i < ARRAY_SIZE(qcom_compressed_supported_formats); i++) { + if (format == qcom_compressed_supported_formats[i]) + return true; + } + } + + return false; +} + static const struct drm_plane_funcs dpu_plane_funcs = { .update_plane = drm_atomic_helper_update_plane, .disable_plane = drm_atomic_helper_disable_plane, @@ -1419,6 +1436,7 @@ static const struct drm_plane_funcs dpu_plane_funcs = { .atomic_destroy_state = dpu_plane_destroy_state, .late_register = dpu_plane_late_register, .early_unregister = dpu_plane_early_unregister, + .format_mod_supported = dpu_plane_format_mod_supported, }; static const struct drm_plane_helper_funcs dpu_plane_helper_funcs = { -- 2.20.0.rc2.403.gdbc3b29805-goog _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/5] drm/msm/dpu: Plane helper for modifiers 2018-12-11 18:42 ` [PATCH 3/5] drm/msm/dpu: Plane helper for modifiers Fritz Koenig @ 2018-12-12 16:11 ` Sean Paul 0 siblings, 0 replies; 12+ messages in thread From: Sean Paul @ 2018-12-12 16:11 UTC (permalink / raw) To: Fritz Koenig; +Cc: sean, dri-devel On Tue, Dec 11, 2018 at 10:42:22AM -0800, Fritz Koenig wrote: > Filter planes based on the supported modifiers > > Signed-off-by: Fritz Koenig <frkoenig@google.com> Reviewed-by: Sean Paul <sean@poorly.run> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > index 6a49c253bbdc..9381c8af76d7 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > @@ -1410,6 +1410,23 @@ static void dpu_plane_early_unregister(struct drm_plane *plane) > debugfs_remove_recursive(pdpu->debugfs_root); > } > > +static bool dpu_plane_format_mod_supported(struct drm_plane *plane, > + uint32_t format, uint64_t modifier) > +{ > + if (modifier == DRM_FORMAT_MOD_LINEAR) > + return true; > + > + if (modifier == DRM_FORMAT_MOD_QCOM_COMPRESSED) { > + int i; > + for (i = 0; i < ARRAY_SIZE(qcom_compressed_supported_formats); i++) { > + if (format == qcom_compressed_supported_formats[i]) > + return true; > + } > + } > + > + return false; nit: You could have removed the top conditional and just do return modifier == DRM_FORMAT_MOD_LINEAR; here, but this is cool too. > +} > + > static const struct drm_plane_funcs dpu_plane_funcs = { > .update_plane = drm_atomic_helper_update_plane, > .disable_plane = drm_atomic_helper_disable_plane, > @@ -1419,6 +1436,7 @@ static const struct drm_plane_funcs dpu_plane_funcs = { > .atomic_destroy_state = dpu_plane_destroy_state, > .late_register = dpu_plane_late_register, > .early_unregister = dpu_plane_early_unregister, > + .format_mod_supported = dpu_plane_format_mod_supported, > }; > > static const struct drm_plane_helper_funcs dpu_plane_helper_funcs = { > -- > 2.20.0.rc2.403.gdbc3b29805-goog > -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers 2018-12-11 18:42 [PATCH 1/5] drm/msm/dpu: Remove unused format tables Fritz Koenig 2018-12-11 18:42 ` [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init Fritz Koenig 2018-12-11 18:42 ` [PATCH 3/5] drm/msm/dpu: Plane helper for modifiers Fritz Koenig @ 2018-12-11 18:42 ` Fritz Koenig 2018-12-12 16:12 ` Sean Paul 2018-12-11 18:42 ` [PATCH 5/5] drm/msm/dpu: Correct initialization of modifiers Fritz Koenig 2018-12-12 16:05 ` [PATCH 1/5] drm/msm/dpu: Remove unused format tables Sean Paul 4 siblings, 1 reply; 12+ messages in thread From: Fritz Koenig @ 2018-12-11 18:42 UTC (permalink / raw) To: dri-devel; +Cc: Fritz Koenig, sean Pass list of supported modifiers to plane init. Signed-off-by: Fritz Koenig <frkoenig@google.com> --- drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c index 9381c8af76d7..d2d4720f6f8c 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c @@ -119,6 +119,12 @@ struct dpu_plane { bool debugfs_default_scale; }; +static const uint64_t supported_format_modifiers[] = { + DRM_FORMAT_MOD_QCOM_COMPRESSED, + DRM_FORMAT_MOD_LINEAR, + DRM_FORMAT_MOD_INVALID +}; + #define to_dpu_plane(x) container_of(x, struct dpu_plane, base) static struct dpu_kms *_dpu_plane_get_kms(struct drm_plane *plane) @@ -1521,7 +1527,7 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs, format_list, num_formats, - NULL, type, NULL); + supported_format_modifiers, type, NULL); if (ret) goto clean_sspp; -- 2.20.0.rc2.403.gdbc3b29805-goog _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers 2018-12-11 18:42 ` [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers Fritz Koenig @ 2018-12-12 16:12 ` Sean Paul 2018-12-12 18:02 ` Fritz Koenig 0 siblings, 1 reply; 12+ messages in thread From: Sean Paul @ 2018-12-12 16:12 UTC (permalink / raw) To: Fritz Koenig; +Cc: sean, dri-devel On Tue, Dec 11, 2018 at 10:42:23AM -0800, Fritz Koenig wrote: > Pass list of supported modifiers to plane init. > > Signed-off-by: Fritz Koenig <frkoenig@google.com> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > index 9381c8af76d7..d2d4720f6f8c 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > @@ -119,6 +119,12 @@ struct dpu_plane { > bool debugfs_default_scale; > }; > > +static const uint64_t supported_format_modifiers[] = { > + DRM_FORMAT_MOD_QCOM_COMPRESSED, Did you confirm that all the planes support this? Change is Reviewed-by: Sean Paul <sean@poorly.run> > + DRM_FORMAT_MOD_LINEAR, > + DRM_FORMAT_MOD_INVALID > +}; > + > #define to_dpu_plane(x) container_of(x, struct dpu_plane, base) > > static struct dpu_kms *_dpu_plane_get_kms(struct drm_plane *plane) > @@ -1521,7 +1527,7 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, > > ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs, > format_list, num_formats, > - NULL, type, NULL); > + supported_format_modifiers, type, NULL); > if (ret) > goto clean_sspp; > > -- > 2.20.0.rc2.403.gdbc3b29805-goog > -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers 2018-12-12 16:12 ` Sean Paul @ 2018-12-12 18:02 ` Fritz Koenig 2018-12-12 20:35 ` Sean Paul 0 siblings, 1 reply; 12+ messages in thread From: Fritz Koenig @ 2018-12-12 18:02 UTC (permalink / raw) To: sean; +Cc: dri-devel On Wed, Dec 12, 2018 at 8:12 AM Sean Paul <sean@poorly.run> wrote: > > On Tue, Dec 11, 2018 at 10:42:23AM -0800, Fritz Koenig wrote: > > Pass list of supported modifiers to plane init. > > > > Signed-off-by: Fritz Koenig <frkoenig@google.com> > > --- > > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > index 9381c8af76d7..d2d4720f6f8c 100644 > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > @@ -119,6 +119,12 @@ struct dpu_plane { > > bool debugfs_default_scale; > > }; > > > > +static const uint64_t supported_format_modifiers[] = { > > + DRM_FORMAT_MOD_QCOM_COMPRESSED, > > Did you confirm that all the planes support this? > I have not confirmed that all planes support this. My testing has been mostly with null_platform_test. There are a few comments on in the code that seem to indicate to me that the same modifier must be used on all planes. from dpu_formats.c /* * Currently only support exactly zero or one modifier. * All planes use the same modifier. */ from dpu_hw_catalog.h /** * struct dpu_format_extended - define dpu specific pixel format+modifier * @fourcc_format: Base FOURCC pixel format code * @modifier: 64-bit drm format modifier, same modifier must be applied to all * framebuffer planes */ > Change is > > Reviewed-by: Sean Paul <sean@poorly.run> > > > > + DRM_FORMAT_MOD_LINEAR, > > + DRM_FORMAT_MOD_INVALID > > +}; > > + > > #define to_dpu_plane(x) container_of(x, struct dpu_plane, base) > > > > static struct dpu_kms *_dpu_plane_get_kms(struct drm_plane *plane) > > @@ -1521,7 +1527,7 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, > > > > ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs, > > format_list, num_formats, > > - NULL, type, NULL); > > + supported_format_modifiers, type, NULL); > > if (ret) > > goto clean_sspp; > > > > -- > > 2.20.0.rc2.403.gdbc3b29805-goog > > > > -- > Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers 2018-12-12 18:02 ` Fritz Koenig @ 2018-12-12 20:35 ` Sean Paul 0 siblings, 0 replies; 12+ messages in thread From: Sean Paul @ 2018-12-12 20:35 UTC (permalink / raw) To: Fritz Koenig; +Cc: sean, dri-devel On Wed, Dec 12, 2018 at 10:02:26AM -0800, Fritz Koenig wrote: > On Wed, Dec 12, 2018 at 8:12 AM Sean Paul <sean@poorly.run> wrote: > > > > On Tue, Dec 11, 2018 at 10:42:23AM -0800, Fritz Koenig wrote: > > > Pass list of supported modifiers to plane init. > > > > > > Signed-off-by: Fritz Koenig <frkoenig@google.com> > > > --- > > > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 8 +++++++- > > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > > index 9381c8af76d7..d2d4720f6f8c 100644 > > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > > @@ -119,6 +119,12 @@ struct dpu_plane { > > > bool debugfs_default_scale; > > > }; > > > > > > +static const uint64_t supported_format_modifiers[] = { > > > + DRM_FORMAT_MOD_QCOM_COMPRESSED, > > > > Did you confirm that all the planes support this? > > > > I have not confirmed that all planes support this. My testing has > been mostly with null_platform_test. There are a few comments on in > the code that seem to indicate to me that the same modifier must be > used on all planes. > > from dpu_formats.c > /* > * Currently only support exactly zero or one modifier. > * All planes use the same modifier. > */ > > from dpu_hw_catalog.h > /** > * struct dpu_format_extended - define dpu specific pixel format+modifier > * @fourcc_format: Base FOURCC pixel format code > * @modifier: 64-bit drm format modifier, same modifier must be applied to all > * framebuffer planes > */ Ah cool, that's good enough for me. I'll pick these into dpu-staging. Sean > > > Change is > > > > Reviewed-by: Sean Paul <sean@poorly.run> > > > > > > > + DRM_FORMAT_MOD_LINEAR, > > > + DRM_FORMAT_MOD_INVALID > > > +}; > > > + > > > #define to_dpu_plane(x) container_of(x, struct dpu_plane, base) > > > > > > static struct dpu_kms *_dpu_plane_get_kms(struct drm_plane *plane) > > > @@ -1521,7 +1527,7 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, > > > > > > ret = drm_universal_plane_init(dev, plane, 0xff, &dpu_plane_funcs, > > > format_list, num_formats, > > > - NULL, type, NULL); > > > + supported_format_modifiers, type, NULL); > > > if (ret) > > > goto clean_sspp; > > > > > > -- > > > 2.20.0.rc2.403.gdbc3b29805-goog > > > > > > > -- > > Sean Paul, Software Engineer, Google / Chromium OS -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/5] drm/msm/dpu: Correct initialization of modifiers 2018-12-11 18:42 [PATCH 1/5] drm/msm/dpu: Remove unused format tables Fritz Koenig ` (2 preceding siblings ...) 2018-12-11 18:42 ` [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers Fritz Koenig @ 2018-12-11 18:42 ` Fritz Koenig 2018-12-12 16:13 ` Sean Paul 2018-12-12 16:05 ` [PATCH 1/5] drm/msm/dpu: Remove unused format tables Sean Paul 4 siblings, 1 reply; 12+ messages in thread From: Fritz Koenig @ 2018-12-11 18:42 UTC (permalink / raw) To: dri-devel; +Cc: Fritz Koenig, sean allow_fb_modifiers needs to be set before drm_universal_plane_init is called. Signed-off-by: Fritz Koenig <frkoenig@google.com> --- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index 4d67b3c96702..56555c3a750a 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -926,16 +926,6 @@ static int dpu_kms_hw_init(struct msm_kms *kms) goto hw_intr_init_err; } - /* - * _dpu_kms_drm_obj_init should create the DRM related objects - * i.e. CRTCs, planes, encoders, connectors and so forth - */ - rc = _dpu_kms_drm_obj_init(dpu_kms); - if (rc) { - DPU_ERROR("modeset init failed: %d\n", rc); - goto drm_obj_init_err; - } - dev->mode_config.min_width = 0; dev->mode_config.min_height = 0; @@ -952,6 +942,16 @@ static int dpu_kms_hw_init(struct msm_kms *kms) */ dev->mode_config.allow_fb_modifiers = true; + /* + * _dpu_kms_drm_obj_init should create the DRM related objects + * i.e. CRTCs, planes, encoders, connectors and so forth + */ + rc = _dpu_kms_drm_obj_init(dpu_kms); + if (rc) { + DPU_ERROR("modeset init failed: %d\n", rc); + goto drm_obj_init_err; + } + dpu_vbif_init_memtypes(dpu_kms); pm_runtime_put_sync(&dpu_kms->pdev->dev); -- 2.20.0.rc2.403.gdbc3b29805-goog _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 5/5] drm/msm/dpu: Correct initialization of modifiers 2018-12-11 18:42 ` [PATCH 5/5] drm/msm/dpu: Correct initialization of modifiers Fritz Koenig @ 2018-12-12 16:13 ` Sean Paul 0 siblings, 0 replies; 12+ messages in thread From: Sean Paul @ 2018-12-12 16:13 UTC (permalink / raw) To: Fritz Koenig; +Cc: sean, dri-devel On Tue, Dec 11, 2018 at 10:42:24AM -0800, Fritz Koenig wrote: > allow_fb_modifiers needs to be set before drm_universal_plane_init > is called. > > Signed-off-by: Fritz Koenig <frkoenig@google.com> Reviewed-by: Sean Paul <sean@poorly.run> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > index 4d67b3c96702..56555c3a750a 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > @@ -926,16 +926,6 @@ static int dpu_kms_hw_init(struct msm_kms *kms) > goto hw_intr_init_err; > } > > - /* > - * _dpu_kms_drm_obj_init should create the DRM related objects > - * i.e. CRTCs, planes, encoders, connectors and so forth > - */ > - rc = _dpu_kms_drm_obj_init(dpu_kms); > - if (rc) { > - DPU_ERROR("modeset init failed: %d\n", rc); > - goto drm_obj_init_err; > - } > - > dev->mode_config.min_width = 0; > dev->mode_config.min_height = 0; > > @@ -952,6 +942,16 @@ static int dpu_kms_hw_init(struct msm_kms *kms) > */ > dev->mode_config.allow_fb_modifiers = true; > > + /* > + * _dpu_kms_drm_obj_init should create the DRM related objects > + * i.e. CRTCs, planes, encoders, connectors and so forth > + */ > + rc = _dpu_kms_drm_obj_init(dpu_kms); > + if (rc) { > + DPU_ERROR("modeset init failed: %d\n", rc); > + goto drm_obj_init_err; > + } > + > dpu_vbif_init_memtypes(dpu_kms); > > pm_runtime_put_sync(&dpu_kms->pdev->dev); > -- > 2.20.0.rc2.403.gdbc3b29805-goog > -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] drm/msm/dpu: Remove unused format tables. 2018-12-11 18:42 [PATCH 1/5] drm/msm/dpu: Remove unused format tables Fritz Koenig ` (3 preceding siblings ...) 2018-12-11 18:42 ` [PATCH 5/5] drm/msm/dpu: Correct initialization of modifiers Fritz Koenig @ 2018-12-12 16:05 ` Sean Paul 4 siblings, 0 replies; 12+ messages in thread From: Sean Paul @ 2018-12-12 16:05 UTC (permalink / raw) To: Fritz Koenig; +Cc: sean, dri-devel On Tue, Dec 11, 2018 at 10:42:20AM -0800, Fritz Koenig wrote: > Signed-off-by: Fritz Koenig <frkoenig@google.com> In future, can you please cc freedreno@lists.freedesktop.org and linux-arm-msm@vger.kernel.org on msm patches? Reviewed-by: Sean Paul <sean@poorly.run> > --- > .../drm/msm/disp/dpu1/dpu_hw_catalog_format.h | 73 ------------------- > 1 file changed, 73 deletions(-) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h > index 3c9f028628ef..c37ba38ac83d 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h > @@ -93,76 +93,3 @@ static const struct dpu_format_extended plane_formats_yuv[] = { > {DRM_FORMAT_YVU420, 0}, > {0, 0}, > }; > - > -static const struct dpu_format_extended cursor_formats[] = { > - {DRM_FORMAT_ARGB8888, 0}, > - {DRM_FORMAT_ABGR8888, 0}, > - {DRM_FORMAT_RGBA8888, 0}, > - {DRM_FORMAT_BGRA8888, 0}, > - {DRM_FORMAT_XRGB8888, 0}, > - {DRM_FORMAT_ARGB1555, 0}, > - {DRM_FORMAT_ABGR1555, 0}, > - {DRM_FORMAT_RGBA5551, 0}, > - {DRM_FORMAT_BGRA5551, 0}, > - {DRM_FORMAT_ARGB4444, 0}, > - {DRM_FORMAT_ABGR4444, 0}, > - {DRM_FORMAT_RGBA4444, 0}, > - {DRM_FORMAT_BGRA4444, 0}, > - {0, 0}, > -}; > - > -static const struct dpu_format_extended wb2_formats[] = { > - {DRM_FORMAT_RGB565, 0}, > - {DRM_FORMAT_BGR565, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_RGB888, 0}, > - {DRM_FORMAT_ARGB8888, 0}, > - {DRM_FORMAT_RGBA8888, 0}, > - {DRM_FORMAT_ABGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_XRGB8888, 0}, > - {DRM_FORMAT_RGBX8888, 0}, > - {DRM_FORMAT_XBGR8888, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_ARGB1555, 0}, > - {DRM_FORMAT_RGBA5551, 0}, > - {DRM_FORMAT_XRGB1555, 0}, > - {DRM_FORMAT_RGBX5551, 0}, > - {DRM_FORMAT_ARGB4444, 0}, > - {DRM_FORMAT_RGBA4444, 0}, > - {DRM_FORMAT_RGBX4444, 0}, > - {DRM_FORMAT_XRGB4444, 0}, > - > - {DRM_FORMAT_BGR565, 0}, > - {DRM_FORMAT_BGR888, 0}, > - {DRM_FORMAT_ABGR8888, 0}, > - {DRM_FORMAT_BGRA8888, 0}, > - {DRM_FORMAT_BGRX8888, 0}, > - {DRM_FORMAT_XBGR8888, 0}, > - {DRM_FORMAT_ABGR1555, 0}, > - {DRM_FORMAT_BGRA5551, 0}, > - {DRM_FORMAT_XBGR1555, 0}, > - {DRM_FORMAT_BGRX5551, 0}, > - {DRM_FORMAT_ABGR4444, 0}, > - {DRM_FORMAT_BGRA4444, 0}, > - {DRM_FORMAT_BGRX4444, 0}, > - {DRM_FORMAT_XBGR4444, 0}, > - > - {DRM_FORMAT_YUV420, 0}, > - {DRM_FORMAT_NV12, 0}, > - {DRM_FORMAT_NV12, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_NV16, 0}, > - {DRM_FORMAT_YUYV, 0}, > - > - {0, 0}, > -}; > - > -static const struct dpu_format_extended rgb_10bit_formats[] = { > - {DRM_FORMAT_BGRA1010102, 0}, > - {DRM_FORMAT_BGRX1010102, 0}, > - {DRM_FORMAT_RGBA1010102, 0}, > - {DRM_FORMAT_RGBX1010102, 0}, > - {DRM_FORMAT_ABGR2101010, 0}, > - {DRM_FORMAT_ABGR2101010, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_XBGR2101010, 0}, > - {DRM_FORMAT_XBGR2101010, DRM_FORMAT_MOD_QCOM_COMPRESSED}, > - {DRM_FORMAT_ARGB2101010, 0}, > - {DRM_FORMAT_XRGB2101010, 0}, > -}; > -- > 2.20.0.rc2.403.gdbc3b29805-goog > -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-12-12 20:35 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-12-11 18:42 [PATCH 1/5] drm/msm/dpu: Remove unused format tables Fritz Koenig 2018-12-11 18:42 ` [PATCH 2/5] drm/msm/dpu: Use simple list for plane format init Fritz Koenig 2018-12-12 16:08 ` Sean Paul 2018-12-11 18:42 ` [PATCH 3/5] drm/msm/dpu: Plane helper for modifiers Fritz Koenig 2018-12-12 16:11 ` Sean Paul 2018-12-11 18:42 ` [PATCH 4/5] drm/msm/dpu: Initialize supported modifiers Fritz Koenig 2018-12-12 16:12 ` Sean Paul 2018-12-12 18:02 ` Fritz Koenig 2018-12-12 20:35 ` Sean Paul 2018-12-11 18:42 ` [PATCH 5/5] drm/msm/dpu: Correct initialization of modifiers Fritz Koenig 2018-12-12 16:13 ` Sean Paul 2018-12-12 16:05 ` [PATCH 1/5] drm/msm/dpu: Remove unused format tables Sean Paul
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox