From ee930fffee469d076998274a2ca55e13dc1efb67 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 10 May 2024 08:50:54 +0000 Subject: [PATCH] enable tun/tap/iptables --- u-boot/drivers/video/drm/rockchip_dw_hdmi_qp.c | 25 ++++++++++++++++--------- 1 files changed, 16 insertions(+), 9 deletions(-) diff --git a/u-boot/drivers/video/drm/rockchip_dw_hdmi_qp.c b/u-boot/drivers/video/drm/rockchip_dw_hdmi_qp.c index 13c8f47..32dc484 100644 --- a/u-boot/drivers/video/drm/rockchip_dw_hdmi_qp.c +++ b/u-boot/drivers/video/drm/rockchip_dw_hdmi_qp.c @@ -50,6 +50,7 @@ #define RK3588_GRF_VO1_CON3 0x000c #define RK3588_COLOR_FORMAT_MASK 0xf +#define RK3588_YUV422 0x1 #define RK3588_YUV444 0x2 #define RK3588_YUV420 0x3 #define RK3588_COMPRESSED_DATA 0xb @@ -348,6 +349,9 @@ case MEDIA_BUS_FMT_UYVY8_1X16: case MEDIA_BUS_FMT_UYVY10_1X20: case MEDIA_BUS_FMT_UYVY12_1X24: + case MEDIA_BUS_FMT_YUYV8_1X16: + case MEDIA_BUS_FMT_YUYV10_1X20: + case MEDIA_BUS_FMT_YUYV12_1X24: return true; default: @@ -375,18 +379,21 @@ case MEDIA_BUS_FMT_RGB888_1X24: case MEDIA_BUS_FMT_YUV8_1X24: case MEDIA_BUS_FMT_UYVY8_1X16: + case MEDIA_BUS_FMT_YUYV8_1X16: case MEDIA_BUS_FMT_UYYVYY8_0_5X24: return 8; case MEDIA_BUS_FMT_RGB101010_1X30: case MEDIA_BUS_FMT_YUV10_1X30: case MEDIA_BUS_FMT_UYVY10_1X20: + case MEDIA_BUS_FMT_YUYV10_1X20: case MEDIA_BUS_FMT_UYYVYY10_0_5X30: return 10; case MEDIA_BUS_FMT_RGB121212_1X36: case MEDIA_BUS_FMT_YUV12_1X36: case MEDIA_BUS_FMT_UYVY12_1X24: + case MEDIA_BUS_FMT_YUYV12_1X24: case MEDIA_BUS_FMT_UYYVYY12_0_5X36: return 12; @@ -834,12 +841,8 @@ if (screen_info && screen_info->depth == 10) color_depth = screen_info->depth; - if (mode->clock >= 600000) { + if (mode->clock >= 600000) color_format = DRM_HDMI_OUTPUT_YCBCR420; - } else if (mode->clock >= 340000) { - if (drm_mode_is_420(info, mode)) - color_format = DRM_HDMI_OUTPUT_YCBCR420; - } if (color_format == DRM_HDMI_OUTPUT_YCBCR422 || color_depth == 8) tmdsclock = pixclock; @@ -876,7 +879,7 @@ case DRM_HDMI_OUTPUT_YCBCR444: return MEDIA_BUS_FMT_YUV10_1X30; case DRM_HDMI_OUTPUT_YCBCR422: - return MEDIA_BUS_FMT_UYVY10_1X20; + return MEDIA_BUS_FMT_YUYV10_1X20; case DRM_HDMI_OUTPUT_YCBCR420: return MEDIA_BUS_FMT_UYYVYY10_0_5X30; default: @@ -887,7 +890,7 @@ case DRM_HDMI_OUTPUT_YCBCR444: return MEDIA_BUS_FMT_YUV8_1X24; case DRM_HDMI_OUTPUT_YCBCR422: - return MEDIA_BUS_FMT_UYVY8_1X16; + return MEDIA_BUS_FMT_YUYV8_1X16; case DRM_HDMI_OUTPUT_YCBCR420: return MEDIA_BUS_FMT_UYYVYY8_0_5X24; default: @@ -1081,7 +1084,7 @@ if (hdmi_bus_fmt_is_yuv420(*bus_format)) hdmi->bus_width /= 2; - if (color_depth == 10) + if (color_depth == 10 && !hdmi_bus_fmt_is_yuv422(*bus_format)) hdmi->bus_width |= COLOR_DEPTH_10BIT; } @@ -1154,6 +1157,10 @@ case MEDIA_BUS_FMT_YUV10_1X30: val = HIWORD_UPDATE(RK3588_YUV444, RK3588_COLOR_FORMAT_MASK); break; + case MEDIA_BUS_FMT_YUYV10_1X20: + case MEDIA_BUS_FMT_YUYV8_1X16: + val = HIWORD_UPDATE(RK3588_YUV422, RK3588_COLOR_FORMAT_MASK); + break; default: dev_err(hdmi->dev, "can't set correct color format\n"); return; @@ -1162,7 +1169,7 @@ if (hdmi->link_cfg.dsc_mode) val = HIWORD_UPDATE(RK3588_COMPRESSED_DATA, RK3588_COLOR_FORMAT_MASK); - if (depth == 8) + if (depth == 8 || bus_format == MEDIA_BUS_FMT_YUYV10_1X20) val |= HIWORD_UPDATE(RK3588_8BPC, RK3588_COLOR_DEPTH_MASK); else val |= HIWORD_UPDATE(RK3588_10BPC, RK3588_COLOR_DEPTH_MASK); -- Gitblit v1.6.2