[PATCH 3/3] drm/rockchip: fix the plane format defination of rk3568/6
Andy Yan
andy.yan at rock-chips.com
Thu Oct 12 23:43:31 PDT 2023
Hi Sacha:
On 10/13/23 14:11, Sascha Hauer wrote:
> On Thu, Oct 12, 2023 at 10:37:05AM +0800, Andy Yan wrote:
>> From: Andy Yan <andy.yan at rock-chips.com>
>>
>> The cluster windows on rk3568/6 only support afbc format,
>> linear format(RGB/YUV) are not supported.
>> The cluster windows on rk3588 support both linear and afbc rgb
>> format, but for yuv format it only support afbc.
>>
>> The esmart windows on rk3588 support uv swap for yuyv, but
>> rk356x does not support it.
> It's a bit hard to track which sentence in the description refers to
> which change in the patch. Could you split this up into multiple patches
> to make this easier reviewable?
>
> Renaming of the formats could also be a separate patch. Patches marked
> with "no functional change" are nice and easy to review.
How do you like if I split the patch like bellow:
PATCH 1 : fix the format
PATCH 2: rename: s/formats_win_full_10bit/formats_cluster/
s/formats_win_full_10bit_yuyv/formats_rk356x_esmart/
s/formats_win_little/formats_win_smart/
>> Signed-off-by: Andy Yan <andy.yan at rock-chips.com>
>> ---
>>
>> drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 53 +++++++++++---------
>> 1 file changed, 30 insertions(+), 23 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
>> index 62b573f282a7..cde85a17f138 100644
>> --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
>> +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
>> @@ -15,7 +15,11 @@
>>
>> #include "rockchip_drm_vop2.h"
>>
>> -static const uint32_t formats_win_full_10bit[] = {
>> +static const uint32_t formats_for_cluster[] = {
> You can drop the "for_"
>
> Sascha
>
>> + DRM_FORMAT_XRGB2101010,
>> + DRM_FORMAT_ARGB2101010,
>> + DRM_FORMAT_XBGR2101010,
>> + DRM_FORMAT_ABGR2101010,
>> DRM_FORMAT_XRGB8888,
>> DRM_FORMAT_ARGB8888,
>> DRM_FORMAT_XBGR8888,
>> @@ -24,12 +28,14 @@ static const uint32_t formats_win_full_10bit[] = {
>> DRM_FORMAT_BGR888,
>> DRM_FORMAT_RGB565,
>> DRM_FORMAT_BGR565,
>> - DRM_FORMAT_NV12,
>> - DRM_FORMAT_NV16,
>> - DRM_FORMAT_NV24,
>> + DRM_FORMAT_YUV420_8BIT, /* yuv420_8bit non-Linear mode only */
>> + DRM_FORMAT_YUV420_10BIT, /* yuv420_10bit non-Linear mode only */
>> + DRM_FORMAT_YUYV, /* yuv422_8bit non-Linear mode only*/
>> + DRM_FORMAT_Y210, /* yuv422_10bit non-Linear mode only */
>> };
>>
>> -static const uint32_t formats_win_full_10bit_yuyv[] = {
>> +/* RK356x can't support uv swap for YUYV and UYVY */
>> +static const uint32_t formats_for_rk356x_esmart[] = {
>> DRM_FORMAT_XRGB8888,
>> DRM_FORMAT_ARGB8888,
>> DRM_FORMAT_XBGR8888,
>> @@ -38,14 +44,15 @@ static const uint32_t formats_win_full_10bit_yuyv[] = {
>> DRM_FORMAT_BGR888,
>> DRM_FORMAT_RGB565,
>> DRM_FORMAT_BGR565,
>> - DRM_FORMAT_NV12,
>> - DRM_FORMAT_NV16,
>> - DRM_FORMAT_NV24,
>> - DRM_FORMAT_YVYU,
>> - DRM_FORMAT_VYUY,
>> + DRM_FORMAT_NV12, /* yuv420_8bit linear mode, 2 plane */
>> + DRM_FORMAT_NV16, /* yuv422_8bit linear mode, 2 plane */
>> + DRM_FORMAT_NV24, /* yuv444_8bit linear mode, 2 plane */
>> + DRM_FORMAT_NV15, /* yuv420_10bit linear mode, 2 plane, no padding */
>> + DRM_FORMAT_YUYV, /* yuv422_8bit[YUYV] linear mode */
>> + DRM_FORMAT_UYVY, /* yuv422_8bit[UYVY] linear mode */
>> };
>>
>> -static const uint32_t formats_win_lite[] = {
>> +static const uint32_t formats_for_smart[] = {
>> DRM_FORMAT_XRGB8888,
>> DRM_FORMAT_ARGB8888,
>> DRM_FORMAT_XBGR8888,
>> @@ -144,8 +151,8 @@ static const struct vop2_win_data rk3568_vop_win_data[] = {
>> .name = "Smart0-win0",
>> .phys_id = ROCKCHIP_VOP2_SMART0,
>> .base = 0x1c00,
>> - .formats = formats_win_lite,
>> - .nformats = ARRAY_SIZE(formats_win_lite),
>> + .formats = formats_for_smart,
>> + .nformats = ARRAY_SIZE(formats_for_smart),
>> .format_modifiers = format_modifiers,
>> .layer_sel_id = 3,
>> .supported_rotations = DRM_MODE_REFLECT_Y,
>> @@ -156,8 +163,8 @@ static const struct vop2_win_data rk3568_vop_win_data[] = {
>> }, {
>> .name = "Smart1-win0",
>> .phys_id = ROCKCHIP_VOP2_SMART1,
>> - .formats = formats_win_lite,
>> - .nformats = ARRAY_SIZE(formats_win_lite),
>> + .formats = formats_for_smart,
>> + .nformats = ARRAY_SIZE(formats_for_smart),
>> .format_modifiers = format_modifiers,
>> .base = 0x1e00,
>> .layer_sel_id = 7,
>> @@ -169,8 +176,8 @@ static const struct vop2_win_data rk3568_vop_win_data[] = {
>> }, {
>> .name = "Esmart1-win0",
>> .phys_id = ROCKCHIP_VOP2_ESMART1,
>> - .formats = formats_win_full_10bit_yuyv,
>> - .nformats = ARRAY_SIZE(formats_win_full_10bit_yuyv),
>> + .formats = formats_for_rk356x_esmart,
>> + .nformats = ARRAY_SIZE(formats_for_rk356x_esmart),
>> .format_modifiers = format_modifiers,
>> .base = 0x1a00,
>> .layer_sel_id = 6,
>> @@ -182,8 +189,8 @@ static const struct vop2_win_data rk3568_vop_win_data[] = {
>> }, {
>> .name = "Esmart0-win0",
>> .phys_id = ROCKCHIP_VOP2_ESMART0,
>> - .formats = formats_win_full_10bit_yuyv,
>> - .nformats = ARRAY_SIZE(formats_win_full_10bit_yuyv),
>> + .formats = formats_for_rk356x_esmart,
>> + .nformats = ARRAY_SIZE(formats_for_rk356x_esmart),
>> .format_modifiers = format_modifiers,
>> .base = 0x1800,
>> .layer_sel_id = 2,
>> @@ -196,8 +203,8 @@ static const struct vop2_win_data rk3568_vop_win_data[] = {
>> .name = "Cluster0-win0",
>> .phys_id = ROCKCHIP_VOP2_CLUSTER0,
>> .base = 0x1000,
>> - .formats = formats_win_full_10bit,
>> - .nformats = ARRAY_SIZE(formats_win_full_10bit),
>> + .formats = formats_for_cluster,
>> + .nformats = ARRAY_SIZE(formats_for_cluster),
>> .format_modifiers = format_modifiers_afbc,
>> .layer_sel_id = 0,
>> .supported_rotations = DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270 |
>> @@ -211,8 +218,8 @@ static const struct vop2_win_data rk3568_vop_win_data[] = {
>> .name = "Cluster1-win0",
>> .phys_id = ROCKCHIP_VOP2_CLUSTER1,
>> .base = 0x1200,
>> - .formats = formats_win_full_10bit,
>> - .nformats = ARRAY_SIZE(formats_win_full_10bit),
>> + .formats = formats_for_cluster,
>> + .nformats = ARRAY_SIZE(formats_for_cluster),
>> .format_modifiers = format_modifiers_afbc,
>> .layer_sel_id = 1,
>> .supported_rotations = DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270 |
>> --
>> 2.34.1
>>
>>
More information about the Linux-rockchip
mailing list