* [PATCH 00/36] Add support 10bit yuv format
@ 2019-09-23 12:38 Sandy Huang
2019-09-23 12:38 ` [PATCH 02/36] drm/rockchip: use bpp instead of cpp for drm_format_info Sandy Huang
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Sandy Huang @ 2019-09-23 12:38 UTC (permalink / raw)
To: dri-devel, Matthias Brugger; +Cc: linux-mediatek, hjc, linux-arm-kernel
This series of patches is to add 2 plane YCbCr 10bit format
support, but now the drm_format_info.cpp[3] unit is BytePerPlane,
when we add define 10bit YUV format, here have some problems.
So we change cpp to bpp, use unit BitPerPlane to describe the data
format.
Sandy Huang (36):
drm/fourcc: Add 2 plane YCbCr 10bit format support
drm/rockchip: use bpp instead of cpp for drm_format_info
drm/i915: use bpp instead of cpp for drm_format_info
drm: exynos: use bpp instead of cpp for drm_format_info
drm/sun4i: use bpp instead of cpp for drm_format_info
drm/amd: use bpp instead of cpp for drm_format_info
drm/gma500: use bpp instead of cpp for drm_format_info
drm/msm: use bpp instead of cpp for drm_format_info
dm/vmwgfx: use bpp instead of cpp for drm_format_info
drm/arm: use bpp instead of cpp for drm_format_info
drm/armada: use bpp instead of cpp for drm_format_info
drm/radeon: use bpp instead of cpp for drm_format_info
drm/nouveau: use bpp instead of cpp for drm_format_info
drm/tegra: use bpp instead of cpp for drm_format_info
drm/mediatek: use bpp instead of cpp for drm_format_info
drm/tilcdc: use bpp instead of cpp for drm_format_info
drm/zte: use bpp instead of cpp for drm_format_info
drm/xen: use bpp instead of cpp for drm_format_info
drm/vkms: use bpp instead of cpp for drm_format_info
drm/ast: use bpp instead of cpp for drm_format_info
drm/vc4: use bpp instead of cpp for drm_format_info
drm/atmel-hlcdc: use bpp instead of cpp for drm_format_info
drm/cirrus: use bpp instead of cpp for drm_format_info
drm/hisilicon: use bpp instead of cpp for drm_format_info
drm/imx: use bpp instead of cpp for drm_format_info
drm/vboxvideo: use bpp instead of cpp for drm_format_info
drm/pl111: use bpp instead of cpp for drm_format_info
drm/qxl: use bpp instead of cpp for drm_format_info
drm/ingenic: use bpp instead of cpp for drm_format_info
drm/sti: use bpp instead of cpp for drm_format_info
drm/stm: use bpp instead of cpp for drm_format_info
drm/mcde: use bpp instead of cpp for drm_format_info
drm/mgag200: use bpp instead of cpp for drm_format_info
drm/tve200: use bpp instead of cpp for drm_format_info
drm/udl: use bpp instead of cpp for drm_format_info
drm/omapdrm: use bpp instead of cpp for drm_format_info
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +-
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +-
.../drm/arm/display/komeda/komeda_framebuffer.c | 2 +-
drivers/gpu/drm/arm/malidp_hw.c | 2 +-
drivers/gpu/drm/arm/malidp_planes.c | 2 +-
drivers/gpu/drm/armada/armada_fbdev.c | 2 +-
drivers/gpu/drm/armada/armada_plane.c | 6 +-
drivers/gpu/drm/ast/ast_mode.c | 8 +-
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +-
drivers/gpu/drm/cirrus/cirrus.c | 10 +-
drivers/gpu/drm/drm_client.c | 4 +-
drivers/gpu/drm/drm_fb_helper.c | 8 +-
drivers/gpu/drm/drm_format_helper.c | 4 +-
drivers/gpu/drm/drm_fourcc.c | 172 +++++++++++----------
drivers/gpu/drm/drm_framebuffer.c | 2 +-
drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 +-
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 6 +-
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_fimc.c | 6 +-
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +-
drivers/gpu/drm/exynos/exynos_drm_gsc.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_ipp.c | 6 +-
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 4 +-
drivers/gpu/drm/exynos/exynos_mixer.c | 4 +-
drivers/gpu/drm/gma500/framebuffer.c | 4 +-
drivers/gpu/drm/gma500/gma_display.c | 4 +-
drivers/gpu/drm/gma500/mdfld_intel_display.c | 6 +-
drivers/gpu/drm/gma500/oaktrail_crtc.c | 4 +-
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c | 6 +-
drivers/gpu/drm/i915/display/intel_atomic_plane.c | 2 +-
drivers/gpu/drm/i915/display/intel_display.c | 28 ++--
drivers/gpu/drm/i915/display/intel_fbc.c | 8 +-
drivers/gpu/drm/i915/display/intel_fbdev.c | 6 +-
drivers/gpu/drm/i915/display/intel_sprite.c | 4 +-
drivers/gpu/drm/i915/i915_debugfs.c | 4 +-
drivers/gpu/drm/i915/intel_pm.c | 28 ++--
drivers/gpu/drm/imx/ipuv3-plane.c | 8 +-
drivers/gpu/drm/ingenic/ingenic-drm.c | 2 +-
drivers/gpu/drm/mcde/mcde_display.c | 4 +-
drivers/gpu/drm/mediatek/mtk_drm_fb.c | 2 +-
drivers/gpu/drm/mediatek/mtk_drm_plane.c | 2 +-
drivers/gpu/drm/mgag200/mgag200_mode.c | 16 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 4 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 2 +-
drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c | 2 +-
drivers/gpu/drm/msm/msm_fb.c | 2 +-
drivers/gpu/drm/nouveau/dispnv04/crtc.c | 7 +-
drivers/gpu/drm/nouveau/dispnv50/base507c.c | 4 +-
drivers/gpu/drm/nouveau/dispnv50/ovly507e.c | 2 +-
drivers/gpu/drm/omapdrm/omap_fb.c | 8 +-
drivers/gpu/drm/pl111/pl111_display.c | 2 +-
drivers/gpu/drm/qxl/qxl_draw.c | 2 +-
drivers/gpu/drm/radeon/atombios_crtc.c | 10 +-
drivers/gpu/drm/radeon/r100.c | 4 +-
drivers/gpu/drm/radeon/radeon_display.c | 6 +-
drivers/gpu/drm/radeon/radeon_fb.c | 2 +-
drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 14 +-
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 2 +-
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 +-
drivers/gpu/drm/sti/sti_gdp.c | 2 +-
drivers/gpu/drm/stm/ltdc.c | 2 +-
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +-
drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +-
drivers/gpu/drm/tegra/dc.c | 2 +-
drivers/gpu/drm/tegra/drm.c | 2 +-
drivers/gpu/drm/tegra/fb.c | 2 +-
drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 2 +-
drivers/gpu/drm/tilcdc/tilcdc_plane.c | 2 +-
drivers/gpu/drm/tve200/tve200_display.c | 2 +-
drivers/gpu/drm/udl/udl_fb.c | 4 +-
drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +-
drivers/gpu/drm/vc4/vc4_plane.c | 10 +-
drivers/gpu/drm/vkms/vkms_plane.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +-
drivers/gpu/drm/xen/xen_drm_front_kms.c | 2 +-
drivers/gpu/drm/zte/zx_plane.c | 4 +-
include/drm/drm_fourcc.h | 4 +-
include/uapi/drm/drm_fourcc.h | 15 ++
86 files changed, 299 insertions(+), 277 deletions(-)
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 02/36] drm/rockchip: use bpp instead of cpp for drm_format_info
2019-09-23 12:38 [PATCH 00/36] Add support 10bit yuv format Sandy Huang
@ 2019-09-23 12:38 ` Sandy Huang
2019-09-23 12:38 ` [PATCH 04/36] drm: exynos: " Sandy Huang
2019-09-23 13:03 ` [PATCH 00/36] Add support 10bit yuv format Daniel Vetter
2 siblings, 0 replies; 4+ messages in thread
From: Sandy Huang @ 2019-09-23 12:38 UTC (permalink / raw)
To: dri-devel, Sandy Huang, Heiko Stübner, David Airlie,
Daniel Vetter
Cc: linux-rockchip, linux-kernel, linux-arm-kernel
cpp[BytePerPlane] can't describe the 10bit data format correctly,
So we use bpp[BitPerPlane] to instead cpp.
Signed-off-by: Sandy Huang <hjc@rock-chips•com>
---
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 2 +-
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
index ca01234..ee1158e 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
@@ -81,7 +81,7 @@ rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
min_size = (height - 1) * mode_cmd->pitches[i] +
mode_cmd->offsets[i] +
- width * info->cpp[i];
+ width * info->bpp[i] / 8;
if (obj->size < min_size) {
drm_gem_object_put_unlocked(obj);
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index 2f821c5..d90d4b6 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -832,7 +832,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane,
dsp_sty = dest->y1 + crtc->mode.vtotal - crtc->mode.vsync_start;
dsp_st = dsp_sty << 16 | (dsp_stx & 0xffff);
- offset = (src->x1 >> 16) * fb->format->cpp[0];
+ offset = (src->x1 >> 16) * fb->format->bpp[0] / 8;
offset += (src->y1 >> 16) * fb->pitches[0];
dma_addr = rk_obj->dma_addr + offset + fb->offsets[0];
@@ -859,7 +859,7 @@ static void vop_plane_atomic_update(struct drm_plane *plane,
if (is_yuv) {
int hsub = fb->format->hsub;
int vsub = fb->format->vsub;
- int bpp = fb->format->cpp[1];
+ int bpp = fb->format->bpp[1] / 8;
uv_obj = fb->obj[1];
rk_uv_obj = to_rockchip_obj(uv_obj);
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 04/36] drm: exynos: use bpp instead of cpp for drm_format_info
2019-09-23 12:38 [PATCH 00/36] Add support 10bit yuv format Sandy Huang
2019-09-23 12:38 ` [PATCH 02/36] drm/rockchip: use bpp instead of cpp for drm_format_info Sandy Huang
@ 2019-09-23 12:38 ` Sandy Huang
2019-09-23 13:03 ` [PATCH 00/36] Add support 10bit yuv format Daniel Vetter
2 siblings, 0 replies; 4+ messages in thread
From: Sandy Huang @ 2019-09-23 12:38 UTC (permalink / raw)
To: dri-devel, Inki Dae, Joonyoung Shim, Seung-Woo Kim, Kyungmin Park,
David Airlie, Daniel Vetter, Kukjin Kim, Krzysztof Kozlowski
Cc: linux-samsung-soc, hjc, linux-arm-kernel, linux-kernel
cpp[BytePerPlane] can't describe the 10bit data format correctly,
So we use bpp[BitPerPlane] to instead cpp.
Signed-off-by: Sandy Huang <hjc@rock-chips•com>
---
drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 ++--
drivers/gpu/drm/exynos/exynos7_drm_decon.c | 6 +++---
drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 4 ++--
drivers/gpu/drm/exynos/exynos_drm_fimc.c | 6 +++---
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +-
drivers/gpu/drm/exynos/exynos_drm_gsc.c | 4 ++--
drivers/gpu/drm/exynos/exynos_drm_ipp.c | 6 +++---
drivers/gpu/drm/exynos/exynos_drm_rotator.c | 4 ++--
drivers/gpu/drm/exynos/exynos_drm_scaler.c | 4 ++--
drivers/gpu/drm/exynos/exynos_mixer.c | 4 ++--
10 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
index 2d5cbfd..9401591 100644
--- a/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos5433_drm_decon.c
@@ -356,7 +356,7 @@ static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
break;
}
- DRM_DEV_DEBUG_KMS(ctx->dev, "cpp = %u\n", fb->format->cpp[0]);
+ DRM_DEV_DEBUG_KMS(ctx->dev, "bpp = %u\n", fb->format->bpp[0]);
/*
* In case of exynos, setting dma-burst to 16Word causes permanent
@@ -403,7 +403,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc,
struct decon_context *ctx = crtc->ctx;
struct drm_framebuffer *fb = state->base.fb;
unsigned int win = plane->index;
- unsigned int cpp = fb->format->cpp[0];
+ unsigned int cpp = fb->format->bpp[0] / 8;
unsigned int pitch = fb->pitches[0];
dma_addr_t dma_addr = exynos_drm_fb_dma_addr(fb, 0);
u32 val;
diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index f064095..d6158b7 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -310,7 +310,7 @@ static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
break;
}
- DRM_DEV_DEBUG_KMS(ctx->dev, "cpp = %d\n", fb->format->cpp[0]);
+ DRM_DEV_DEBUG_KMS(ctx->dev, "bpp = %d\n", fb->format->bpp[0]);
/*
* In case of exynos, setting dma-burst to 16Word causes permanent
@@ -320,7 +320,7 @@ static void decon_win_set_pixfmt(struct decon_context *ctx, unsigned int win,
* movement causes unstable DMA which results into iommu crash/tear.
*/
- padding = (fb->pitches[0] / fb->format->cpp[0]) - fb->width;
+ padding = (fb->pitches[0] / fb->format->bpp[0] / 8) - fb->width;
if (fb->width + padding < MIN_FB_WIDTH_FOR_16WORD_BURST) {
val &= ~WINCONx_BURSTLEN_MASK;
val |= WINCONx_BURSTLEN_8WORD;
@@ -387,7 +387,7 @@ static void decon_update_plane(struct exynos_drm_crtc *crtc,
unsigned int last_x;
unsigned int last_y;
unsigned int win = plane->index;
- unsigned int cpp = fb->format->cpp[0];
+ unsigned int cpp = fb->format->bpp[0] / 8;
unsigned int pitch = fb->pitches[0];
if (ctx->suspended)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index b0877b9..f82ac12 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -75,7 +75,7 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
{
struct fb_info *fbi;
struct drm_framebuffer *fb = helper->fb;
- unsigned int size = fb->width * fb->height * fb->format->cpp[0];
+ unsigned int size = fb->width * fb->height * fb->format->bpp[0] / 8;
unsigned int nr_pages;
unsigned long offset;
@@ -100,7 +100,7 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
return -EIO;
}
- offset = fbi->var.xoffset * fb->format->cpp[0];
+ offset = fbi->var.xoffset * fb->format->bpp[0] / 8;
offset += fbi->var.yoffset * fb->pitches[0];
fbi->screen_base = exynos_gem->kvaddr + offset;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimc.c b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
index a594ab7..ceb889c 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
@@ -466,7 +466,7 @@ static void fimc_src_set_transf(struct fimc_context *ctx, unsigned int rotation)
static void fimc_set_window(struct fimc_context *ctx,
struct exynos_drm_ipp_buffer *buf)
{
- unsigned int real_width = buf->buf.pitch[0] / buf->format->cpp[0];
+ unsigned int real_width = buf->buf.pitch[0] / buf->format->bpp[0] / 8;
u32 cfg, h1, h2, v1, v2;
/* cropped image */
@@ -501,7 +501,7 @@ static void fimc_set_window(struct fimc_context *ctx,
static void fimc_src_set_size(struct fimc_context *ctx,
struct exynos_drm_ipp_buffer *buf)
{
- unsigned int real_width = buf->buf.pitch[0] / buf->format->cpp[0];
+ unsigned int real_width = buf->buf.pitch[0] / buf->format->bpp[0] / 8;
u32 cfg;
DRM_DEV_DEBUG_KMS(ctx->dev, "hsize[%d]vsize[%d]\n", real_width,
@@ -843,7 +843,7 @@ static void fimc_set_scaler(struct fimc_context *ctx, struct fimc_scaler *sc)
static void fimc_dst_set_size(struct fimc_context *ctx,
struct exynos_drm_ipp_buffer *buf)
{
- unsigned int real_width = buf->buf.pitch[0] / buf->format->cpp[0];
+ unsigned int real_width = buf->buf.pitch[0] / buf->format->bpp[0] / 8;
u32 cfg, cfg_ext;
DRM_DEV_DEBUG_KMS(ctx->dev, "hsize[%d]vsize[%d]\n", real_width,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 8d0a929..561597b 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -795,7 +795,7 @@ static void fimd_update_plane(struct exynos_drm_crtc *crtc,
unsigned long val, size, offset;
unsigned int last_x, last_y, buf_offsize, line_size;
unsigned int win = plane->index;
- unsigned int cpp = fb->format->cpp[0];
+ unsigned int cpp = fb->format->bpp[0] / 8;
unsigned int pitch = fb->pitches[0];
if (ctx->suspended)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
index 1e4b21c..a15e2d9 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -579,7 +579,7 @@ static void gsc_src_set_size(struct gsc_context *ctx,
cfg &= ~(GSC_SRCIMG_HEIGHT_MASK |
GSC_SRCIMG_WIDTH_MASK);
- cfg |= (GSC_SRCIMG_WIDTH(buf->buf.pitch[0] / buf->format->cpp[0]) |
+ cfg |= (GSC_SRCIMG_WIDTH(buf->buf.pitch[0] / buf->format->bpp[0] / 8) |
GSC_SRCIMG_HEIGHT(buf->buf.height));
gsc_write(cfg, GSC_SRCIMG_SIZE);
@@ -881,7 +881,7 @@ static void gsc_dst_set_size(struct gsc_context *ctx,
/* original size */
cfg = gsc_read(GSC_DSTIMG_SIZE);
cfg &= ~(GSC_DSTIMG_HEIGHT_MASK | GSC_DSTIMG_WIDTH_MASK);
- cfg |= GSC_DSTIMG_WIDTH(buf->buf.pitch[0] / buf->format->cpp[0]) |
+ cfg |= GSC_DSTIMG_WIDTH(buf->buf.pitch[0] / buf->format->bpp[0] / 8) |
GSC_DSTIMG_HEIGHT(buf->buf.height);
gsc_write(cfg, GSC_DSTIMG_SIZE);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
index d45bfab..14c728e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c
@@ -475,7 +475,7 @@ static int exynos_drm_ipp_check_size_limits(struct exynos_drm_ipp_buffer *buf,
enum drm_ipp_size_id id = rotate ? IPP_LIMIT_ROTATED : IPP_LIMIT_AREA;
struct drm_ipp_limit l;
struct drm_exynos_ipp_limit_val *lh = &l.h, *lv = &l.v;
- int real_width = buf->buf.pitch[0] / buf->format->cpp[0];
+ int real_width = buf->buf.pitch[0] / buf->format->bpp[0] / 8;
if (!limits)
return 0;
@@ -570,8 +570,8 @@ static int exynos_drm_ipp_check_format(struct exynos_drm_ipp_task *task,
DIV_ROUND_UP(buf->buf.width, buf->format->hsub);
if (buf->buf.pitch[i] == 0)
- buf->buf.pitch[i] = width * buf->format->cpp[i];
- if (buf->buf.pitch[i] < width * buf->format->cpp[i])
+ buf->buf.pitch[i] = width * buf->format->bpp[i] / 8;
+ if (buf->buf.pitch[i] < width * buf->format->bpp[i] / 8)
return -EINVAL;
if (!buf->buf.gem_id[i])
return -ENOENT;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_rotator.c b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
index 8ebad27..8d1da0f 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_rotator.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_rotator.c
@@ -139,7 +139,7 @@ static void rotator_src_set_buf(struct rot_context *rot,
/* Set buffer size configuration */
val = ROT_SET_BUF_SIZE_H(buf->buf.height) |
- ROT_SET_BUF_SIZE_W(buf->buf.pitch[0] / buf->format->cpp[0]);
+ ROT_SET_BUF_SIZE_W(buf->buf.pitch[0] / buf->format->bpp[0] / 8);
rot_write(val, ROT_SRC_BUF_SIZE);
/* Set crop image position configuration */
@@ -187,7 +187,7 @@ static void rotator_dst_set_buf(struct rot_context *rot,
/* Set buffer size configuration */
val = ROT_SET_BUF_SIZE_H(buf->buf.height) |
- ROT_SET_BUF_SIZE_W(buf->buf.pitch[0] / buf->format->cpp[0]);
+ ROT_SET_BUF_SIZE_W(buf->buf.pitch[0] / buf->format->bpp[0] / 8);
rot_write(val, ROT_DST_BUF_SIZE);
/* Set crop image position configuration */
diff --git a/drivers/gpu/drm/exynos/exynos_drm_scaler.c b/drivers/gpu/drm/exynos/exynos_drm_scaler.c
index 9af0964..c9ad312 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_scaler.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_scaler.c
@@ -166,7 +166,7 @@ static inline void scaler_set_src_span(struct scaler_context *scaler,
u32 val;
val = SCALER_SRC_SPAN_SET_Y_SPAN(src_buf->buf.pitch[0] /
- src_buf->format->cpp[0]);
+ src_buf->format->bpp[0] / 8);
if (src_buf->format->num_planes > 1)
val |= SCALER_SRC_SPAN_SET_C_SPAN(src_buf->buf.pitch[1]);
@@ -229,7 +229,7 @@ static inline void scaler_set_dst_span(struct scaler_context *scaler,
u32 val;
val = SCALER_DST_SPAN_SET_Y_SPAN(dst_buf->buf.pitch[0] /
- dst_buf->format->cpp[0]);
+ dst_buf->format->bpp[0] / 8);
if (dst_buf->format->num_planes > 1)
val |= SCALER_DST_SPAN_SET_C_SPAN(dst_buf->buf.pitch[1]);
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
index 7b24338f..015dbab 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -646,7 +646,7 @@ static void mixer_graph_buffer(struct mixer_context *ctx,
/* translate dma address base s.t. the source image offset is zero */
dma_addr = exynos_drm_fb_dma_addr(fb, 0)
- + (state->src.x * fb->format->cpp[0])
+ + (state->src.x * fb->format->bpp[0] / 8)
+ (state->src.y * fb->pitches[0]);
spin_lock_irqsave(&ctx->reg_slock, flags);
@@ -657,7 +657,7 @@ static void mixer_graph_buffer(struct mixer_context *ctx,
/* setup geometry */
mixer_reg_write(ctx, MXR_GRAPHIC_SPAN(win),
- fb->pitches[0] / fb->format->cpp[0]);
+ fb->pitches[0] / fb->format->bpp[0] / 8);
val = MXR_GRP_WH_WIDTH(state->src.w);
val |= MXR_GRP_WH_HEIGHT(state->src.h);
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 00/36] Add support 10bit yuv format
2019-09-23 12:38 [PATCH 00/36] Add support 10bit yuv format Sandy Huang
2019-09-23 12:38 ` [PATCH 02/36] drm/rockchip: use bpp instead of cpp for drm_format_info Sandy Huang
2019-09-23 12:38 ` [PATCH 04/36] drm: exynos: " Sandy Huang
@ 2019-09-23 13:03 ` Daniel Vetter
2 siblings, 0 replies; 4+ messages in thread
From: Daniel Vetter @ 2019-09-23 13:03 UTC (permalink / raw)
To: Sandy Huang
Cc: Matthias Brugger, moderated list:ARM/Mediatek SoC support,
Linux ARM, dri-devel
On Mon, Sep 23, 2019 at 2:51 PM Sandy Huang <hjc@rock-chips•com> wrote:
>
> This series of patches is to add 2 plane YCbCr 10bit format
> support, but now the drm_format_info.cpp[3] unit is BytePerPlane,
> when we add define 10bit YUV format, here have some problems.
> So we change cpp to bpp, use unit BitPerPlane to describe the data
> format.
Wrong direction, we don't want more users of the old legacy cpp values
in the format structure. Instead if we want new stuff, add/extend
functions which can extract all kinds of interesting computed value
from the drm_format_info structure. See all the functions in
drm_fourcc.h.
-Daniel
>
> Sandy Huang (36):
> drm/fourcc: Add 2 plane YCbCr 10bit format support
> drm/rockchip: use bpp instead of cpp for drm_format_info
> drm/i915: use bpp instead of cpp for drm_format_info
> drm: exynos: use bpp instead of cpp for drm_format_info
> drm/sun4i: use bpp instead of cpp for drm_format_info
> drm/amd: use bpp instead of cpp for drm_format_info
> drm/gma500: use bpp instead of cpp for drm_format_info
> drm/msm: use bpp instead of cpp for drm_format_info
> dm/vmwgfx: use bpp instead of cpp for drm_format_info
> drm/arm: use bpp instead of cpp for drm_format_info
> drm/armada: use bpp instead of cpp for drm_format_info
> drm/radeon: use bpp instead of cpp for drm_format_info
> drm/nouveau: use bpp instead of cpp for drm_format_info
> drm/tegra: use bpp instead of cpp for drm_format_info
> drm/mediatek: use bpp instead of cpp for drm_format_info
> drm/tilcdc: use bpp instead of cpp for drm_format_info
> drm/zte: use bpp instead of cpp for drm_format_info
> drm/xen: use bpp instead of cpp for drm_format_info
> drm/vkms: use bpp instead of cpp for drm_format_info
> drm/ast: use bpp instead of cpp for drm_format_info
> drm/vc4: use bpp instead of cpp for drm_format_info
> drm/atmel-hlcdc: use bpp instead of cpp for drm_format_info
> drm/cirrus: use bpp instead of cpp for drm_format_info
> drm/hisilicon: use bpp instead of cpp for drm_format_info
> drm/imx: use bpp instead of cpp for drm_format_info
> drm/vboxvideo: use bpp instead of cpp for drm_format_info
> drm/pl111: use bpp instead of cpp for drm_format_info
> drm/qxl: use bpp instead of cpp for drm_format_info
> drm/ingenic: use bpp instead of cpp for drm_format_info
> drm/sti: use bpp instead of cpp for drm_format_info
> drm/stm: use bpp instead of cpp for drm_format_info
> drm/mcde: use bpp instead of cpp for drm_format_info
> drm/mgag200: use bpp instead of cpp for drm_format_info
> drm/tve200: use bpp instead of cpp for drm_format_info
> drm/udl: use bpp instead of cpp for drm_format_info
> drm/omapdrm: use bpp instead of cpp for drm_format_info
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 2 +-
> drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 +-
> drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +-
> drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 2 +-
> drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +-
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 +-
> .../drm/arm/display/komeda/komeda_framebuffer.c | 2 +-
> drivers/gpu/drm/arm/malidp_hw.c | 2 +-
> drivers/gpu/drm/arm/malidp_planes.c | 2 +-
> drivers/gpu/drm/armada/armada_fbdev.c | 2 +-
> drivers/gpu/drm/armada/armada_plane.c | 6 +-
> drivers/gpu/drm/ast/ast_mode.c | 8 +-
> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 +-
> drivers/gpu/drm/cirrus/cirrus.c | 10 +-
> drivers/gpu/drm/drm_client.c | 4 +-
> drivers/gpu/drm/drm_fb_helper.c | 8 +-
> drivers/gpu/drm/drm_format_helper.c | 4 +-
> drivers/gpu/drm/drm_fourcc.c | 172 +++++++++++----------
> drivers/gpu/drm/drm_framebuffer.c | 2 +-
> drivers/gpu/drm/exynos/exynos5433_drm_decon.c | 4 +-
> drivers/gpu/drm/exynos/exynos7_drm_decon.c | 6 +-
> drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 4 +-
> drivers/gpu/drm/exynos/exynos_drm_fimc.c | 6 +-
> drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +-
> drivers/gpu/drm/exynos/exynos_drm_gsc.c | 4 +-
> drivers/gpu/drm/exynos/exynos_drm_ipp.c | 6 +-
> drivers/gpu/drm/exynos/exynos_drm_rotator.c | 4 +-
> drivers/gpu/drm/exynos/exynos_drm_scaler.c | 4 +-
> drivers/gpu/drm/exynos/exynos_mixer.c | 4 +-
> drivers/gpu/drm/gma500/framebuffer.c | 4 +-
> drivers/gpu/drm/gma500/gma_display.c | 4 +-
> drivers/gpu/drm/gma500/mdfld_intel_display.c | 6 +-
> drivers/gpu/drm/gma500/oaktrail_crtc.c | 4 +-
> drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c | 6 +-
> drivers/gpu/drm/i915/display/intel_atomic_plane.c | 2 +-
> drivers/gpu/drm/i915/display/intel_display.c | 28 ++--
> drivers/gpu/drm/i915/display/intel_fbc.c | 8 +-
> drivers/gpu/drm/i915/display/intel_fbdev.c | 6 +-
> drivers/gpu/drm/i915/display/intel_sprite.c | 4 +-
> drivers/gpu/drm/i915/i915_debugfs.c | 4 +-
> drivers/gpu/drm/i915/intel_pm.c | 28 ++--
> drivers/gpu/drm/imx/ipuv3-plane.c | 8 +-
> drivers/gpu/drm/ingenic/ingenic-drm.c | 2 +-
> drivers/gpu/drm/mcde/mcde_display.c | 4 +-
> drivers/gpu/drm/mediatek/mtk_drm_fb.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_drm_plane.c | 2 +-
> drivers/gpu/drm/mgag200/mgag200_mode.c | 16 +-
> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 4 +-
> drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c | 2 +-
> drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c | 2 +-
> drivers/gpu/drm/msm/msm_fb.c | 2 +-
> drivers/gpu/drm/nouveau/dispnv04/crtc.c | 7 +-
> drivers/gpu/drm/nouveau/dispnv50/base507c.c | 4 +-
> drivers/gpu/drm/nouveau/dispnv50/ovly507e.c | 2 +-
> drivers/gpu/drm/omapdrm/omap_fb.c | 8 +-
> drivers/gpu/drm/pl111/pl111_display.c | 2 +-
> drivers/gpu/drm/qxl/qxl_draw.c | 2 +-
> drivers/gpu/drm/radeon/atombios_crtc.c | 10 +-
> drivers/gpu/drm/radeon/r100.c | 4 +-
> drivers/gpu/drm/radeon/radeon_display.c | 6 +-
> drivers/gpu/drm/radeon/radeon_fb.c | 2 +-
> drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 14 +-
> drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 2 +-
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 +-
> drivers/gpu/drm/sti/sti_gdp.c | 2 +-
> drivers/gpu/drm/stm/ltdc.c | 2 +-
> drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 2 +-
> drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 2 +-
> drivers/gpu/drm/tegra/dc.c | 2 +-
> drivers/gpu/drm/tegra/drm.c | 2 +-
> drivers/gpu/drm/tegra/fb.c | 2 +-
> drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 2 +-
> drivers/gpu/drm/tilcdc/tilcdc_plane.c | 2 +-
> drivers/gpu/drm/tve200/tve200_display.c | 2 +-
> drivers/gpu/drm/udl/udl_fb.c | 4 +-
> drivers/gpu/drm/vboxvideo/vbox_mode.c | 2 +-
> drivers/gpu/drm/vc4/vc4_plane.c | 10 +-
> drivers/gpu/drm/vkms/vkms_plane.c | 2 +-
> drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 4 +-
> drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 4 +-
> drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 +-
> drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 2 +-
> drivers/gpu/drm/xen/xen_drm_front_kms.c | 2 +-
> drivers/gpu/drm/zte/zx_plane.c | 4 +-
> include/drm/drm_fourcc.h | 4 +-
> include/uapi/drm/drm_fourcc.h | 15 ++
> 86 files changed, 299 insertions(+), 277 deletions(-)
>
> --
> 2.7.4
>
>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists•freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-09-23 13:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-23 12:38 [PATCH 00/36] Add support 10bit yuv format Sandy Huang
2019-09-23 12:38 ` [PATCH 02/36] drm/rockchip: use bpp instead of cpp for drm_format_info Sandy Huang
2019-09-23 12:38 ` [PATCH 04/36] drm: exynos: " Sandy Huang
2019-09-23 13:03 ` [PATCH 00/36] Add support 10bit yuv format Daniel Vetter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox