diff --git a/projects/Rockchip/patches/linux/default/linux-0011-v4l2-from-list.patch b/projects/Rockchip/patches/linux/default/linux-0011-v4l2-from-list.patch index 8d203773e3..11a15d55e4 100644 --- a/projects/Rockchip/patches/linux/default/linux-0011-v4l2-from-list.patch +++ b/projects/Rockchip/patches/linux/default/linux-0011-v4l2-from-list.patch @@ -172,9 +172,9 @@ index e6fd355a2e92..24771edaa4f2 100644 --- a/drivers/media/v4l2-core/v4l2-ioctl.c +++ b/drivers/media/v4l2-core/v4l2-ioctl.c @@ -1354,6 +1354,8 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt) - case V4L2_PIX_FMT_NV24: descr = "Y/UV 4:4:4"; break; case V4L2_PIX_FMT_NV42: descr = "Y/VU 4:4:4"; break; case V4L2_PIX_FMT_P010: descr = "10-bit Y/UV 4:2:0"; break; + case V4L2_PIX_FMT_P012: descr = "12-bit Y/UV 4:2:0"; break; + case V4L2_PIX_FMT_NV15: descr = "10-bit Y/UV 4:2:0 (Packed)"; break; + case V4L2_PIX_FMT_NV20: descr = "10-bit Y/UV 4:2:2 (Packed)"; break; case V4L2_PIX_FMT_NV12_4L4: descr = "Y/UV 4:2:0 (4x4 Linear)"; break; diff --git a/projects/Rockchip/patches/linux/default/linux-1000-drm-rockchip.patch b/projects/Rockchip/patches/linux/default/linux-1000-drm-rockchip.patch index 07bc2d7ffb..e6feadbe18 100644 --- a/projects/Rockchip/patches/linux/default/linux-1000-drm-rockchip.patch +++ b/projects/Rockchip/patches/linux/default/linux-1000-drm-rockchip.patch @@ -111,14 +111,6 @@ index dbe4d411b30f..fac23d370ee0 100644 static bool vop_crtc_mode_fixup(struct drm_crtc *crtc, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode) -@@ -1617,6 +1670,7 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc, - } - - static const struct drm_crtc_helper_funcs vop_crtc_helper_funcs = { -+ .mode_valid = vop_crtc_mode_valid, - .mode_fixup = vop_crtc_mode_fixup, - .atomic_check = vop_crtc_atomic_check, - .atomic_begin = vop_crtc_atomic_begin, From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonas Karlman @@ -148,119 +140,6 @@ index fac23d370ee0..9f7326c5b1f5 100644 if (rounded_rate < 0) return MODE_NOCLOCK; -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jonas Karlman -Date: Sat, 10 Oct 2020 14:57:30 +0000 -Subject: [PATCH] drm/rockchip: vop: define max output resolution supported - -Signed-off-by: Jonas Karlman ---- - drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 6 ++++++ - drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 5 ----- - drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 7 +++++++ - 3 files changed, 13 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h -index b6eea31109d5..ca4e2b7415fe 100644 ---- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h -+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h -@@ -214,6 +214,11 @@ struct vop_win_data { - enum drm_plane_type type; - }; - -+struct vop_rect { -+ int width; -+ int height; -+}; -+ - struct vop_data { - uint32_t version; - const struct vop_intr *intr; -@@ -226,6 +231,7 @@ struct vop_data { - const struct vop_win_data *win; - unsigned int win_size; - unsigned int lut_size; -+ struct vop_rect max_output; - - #define VOP_FEATURE_OUTPUT_RGB10 BIT(0) - #define VOP_FEATURE_INTERNAL_RGB BIT(1) -diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h -index c727093a06d6..f1234a151130 100644 ---- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h -+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.h -@@ -27,11 +27,6 @@ enum win_dly_mode { - VOP2_DLY_MODE_MAX, - }; - --struct vop_rect { -- int width; -- int height; --}; -- - enum vop2_scale_up_mode { - VOP2_SCALE_UP_NRST_NBOR, - VOP2_SCALE_UP_BIL, -diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c -index 16e6aa01e400..9b25b8ffd0ce 100644 ---- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c -+++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c -@@ -743,6 +743,7 @@ static const struct vop_intr rk3288_vop_intr = { - static const struct vop_data rk3288_vop = { - .version = VOP_VERSION(3, 1), - .feature = VOP_FEATURE_OUTPUT_RGB10, -+ .max_output = { 3840, 2160 }, - .intr = &rk3288_vop_intr, - .common = &rk3288_common, - .modeset = &rk3288_modeset, -@@ -845,6 +846,7 @@ static const struct vop_misc rk3368_misc = { - - static const struct vop_data rk3368_vop = { - .version = VOP_VERSION(3, 2), -+ .max_output = { 4096, 2160 }, - .intr = &rk3368_vop_intr, - .common = &rk3288_common, - .modeset = &rk3288_modeset, -@@ -866,6 +868,7 @@ static const struct vop_intr rk3366_vop_intr = { - - static const struct vop_data rk3366_vop = { - .version = VOP_VERSION(3, 4), -+ .max_output = { 4096, 2160 }, - .intr = &rk3366_vop_intr, - .common = &rk3288_common, - .modeset = &rk3288_modeset, -@@ -994,6 +997,7 @@ static const struct vop_afbc rk3399_vop_afbc = { - static const struct vop_data rk3399_vop_big = { - .version = VOP_VERSION(3, 5), - .feature = VOP_FEATURE_OUTPUT_RGB10, -+ .max_output = { 4096, 2160 }, - .intr = &rk3366_vop_intr, - .common = &rk3399_common, - .modeset = &rk3288_modeset, -@@ -1021,6 +1025,7 @@ static const struct vop_win_yuv2yuv_data rk3399_vop_lit_win_yuv2yuv_data[] = { - - static const struct vop_data rk3399_vop_lit = { - .version = VOP_VERSION(3, 6), -+ .max_output = { 2560, 1600 }, - .intr = &rk3366_vop_intr, - .common = &rk3399_common, - .modeset = &rk3288_modeset, -@@ -1042,6 +1047,7 @@ static const struct vop_win_data rk3228_vop_win_data[] = { - static const struct vop_data rk3228_vop = { - .version = VOP_VERSION(3, 7), - .feature = VOP_FEATURE_OUTPUT_RGB10, -+ .max_output = { 4096, 2160 }, - .intr = &rk3366_vop_intr, - .common = &rk3288_common, - .modeset = &rk3288_modeset, -@@ -1113,6 +1119,7 @@ static const struct vop_win_data rk3328_vop_win_data[] = { - static const struct vop_data rk3328_vop = { - .version = VOP_VERSION(3, 8), - .feature = VOP_FEATURE_OUTPUT_RGB10, -+ .max_output = { 4096, 2160 }, - .intr = &rk3328_vop_intr, - .common = &rk3328_common, - .modeset = &rk3328_modeset, - From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonas Karlman Date: Mon, 20 Jul 2020 11:46:16 +0000 @@ -454,7 +333,7 @@ diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc index bec381cde0bc..72c1d65c7b75 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c -@@ -172,20 +172,8 @@ static const struct dw_hdmi_mpll_config rockchip_mpll_cfg[] = { +@@ -172,20 +172,6 @@ static const struct dw_hdmi_mpll_config rockchip_mpll_cfg[] = { static const struct dw_hdmi_curr_ctrl rockchip_cur_ctr[] = { /* pixelclk bpp8 bpp10 bpp12 */ { @@ -472,11 +351,9 @@ index bec381cde0bc..72c1d65c7b75 100644 - }, { - 148500000, { 0x0000, 0x0038, 0x0038 }, - }, { -+ 600000000, { 0x0000, 0x0000, 0x0000 }, -+ }, { + 600000000, { 0x0000, 0x0000, 0x0000 }, + }, { ~0UL, { 0x0000, 0x0000, 0x0000}, - } - }; From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Douglas Anderson @@ -512,7 +389,7 @@ diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockc index 72c1d65c7b75..0370bb247fcb 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c -@@ -91,80 +91,88 @@ static struct rockchip_hdmi *to_rockchip_hdmi(struct drm_encoder *encoder) +@@ -95,86 +95,88 @@ static const struct dw_hdmi_mpll_config rockchip_mpll_cfg[] = { { @@ -520,60 +397,99 @@ index 72c1d65c7b75..0370bb247fcb 100644 - { 0x00b3, 0x0000}, - { 0x2153, 0x0000}, - { 0x40f3, 0x0000} -+ 30666000, { -+ { 0x00b3, 0x0000 }, -+ { 0x2153, 0x0000 }, -+ { 0x40f3, 0x0000 }, - }, +- }, - }, { - 36000000, { - { 0x00b3, 0x0000}, - { 0x2153, 0x0000}, - { 0x40f3, 0x0000} -+ }, { -+ 36800000, { -+ { 0x00b3, 0x0000 }, -+ { 0x2153, 0x0000 }, -+ { 0x40a2, 0x0001 }, - }, +- }, - }, { - 40000000, { - { 0x00b3, 0x0000}, - { 0x2153, 0x0000}, - { 0x40f3, 0x0000} -+ }, { -+ 46000000, { -+ { 0x00b3, 0x0000 }, -+ { 0x2142, 0x0001 }, -+ { 0x40a2, 0x0001 }, - }, +- }, - }, { - 54000000, { - { 0x0072, 0x0001}, - { 0x2142, 0x0001}, - { 0x40a2, 0x0001}, -+ }, { -+ 61333000, { -+ { 0x0072, 0x0001 }, -+ { 0x2142, 0x0001 }, -+ { 0x40a2, 0x0001 }, - }, +- }, - }, { - 65000000, { - { 0x0072, 0x0001}, - { 0x2142, 0x0001}, - { 0x40a2, 0x0001}, -+ }, { -+ 73600000, { -+ { 0x0072, 0x0001 }, -+ { 0x2142, 0x0001 }, -+ { 0x4061, 0x0002 }, - }, +- }, - }, { - 66000000, { - { 0x013e, 0x0003}, - { 0x217e, 0x0002}, - { 0x4061, 0x0002} +- }, +- }, { +- 74250000, { +- { 0x0072, 0x0001}, +- { 0x2145, 0x0002}, +- { 0x4061, 0x0002} +- }, +- }, { +- 83500000, { +- { 0x0072, 0x0001}, +- }, +- }, { +- 108000000, { +- { 0x0051, 0x0002}, +- { 0x2145, 0x0002}, +- { 0x4061, 0x0002} +- }, +- }, { +- 106500000, { +- { 0x0051, 0x0002}, +- { 0x2145, 0x0002}, +- { 0x4061, 0x0002} +- }, +- }, { +- 146250000, { +- { 0x0051, 0x0002}, +- { 0x2145, 0x0002}, +- { 0x4061, 0x0002} +- }, +- }, { +- 148500000, { +- { 0x0051, 0x0003}, +- { 0x214c, 0x0003}, +- { 0x4064, 0x0003} ++ 30666000, { ++ { 0x00b3, 0x0000 }, ++ { 0x2153, 0x0000 }, ++ { 0x40f3, 0x0000 }, ++ }, ++ }, { ++ 36800000, { ++ { 0x00b3, 0x0000 }, ++ { 0x2153, 0x0000 }, ++ { 0x40a2, 0x0001 }, ++ }, ++ }, { ++ 46000000, { ++ { 0x00b3, 0x0000 }, ++ { 0x2142, 0x0001 }, ++ { 0x40a2, 0x0001 }, ++ }, ++ }, { ++ 61333000, { ++ { 0x0072, 0x0001 }, ++ { 0x2142, 0x0001 }, ++ { 0x40a2, 0x0001 }, ++ }, ++ }, { ++ 73600000, { ++ { 0x0072, 0x0001 }, ++ { 0x2142, 0x0001 }, ++ { 0x4061, 0x0002 }, ++ }, + }, { + 92000000, { + { 0x0072, 0x0001 }, @@ -585,21 +501,13 @@ index 72c1d65c7b75..0370bb247fcb 100644 + { 0x0051, 0x0002 }, + { 0x2145, 0x0002 }, + { 0x4061, 0x0002 }, - }, -- }, { -- 74250000, { -- { 0x0072, 0x0001}, -- { 0x2145, 0x0002}, -- { 0x4061, 0x0002} ++ }, + }, { + 147200000, { + { 0x0051, 0x0002 }, + { 0x2145, 0x0002 }, + { 0x4064, 0x0003 }, - }, -- }, { -- 83500000, { -- { 0x0072, 0x0001}, ++ }, + }, { + 184000000, { + { 0x0051, 0x0002 }, @@ -607,50 +515,31 @@ index 72c1d65c7b75..0370bb247fcb 100644 + { 0x4064, 0x0003 }, }, - }, { -- 108000000, { -- { 0x0051, 0x0002}, -- { 0x2145, 0x0002}, -- { 0x4061, 0x0002} + }, { + 226666000, { + { 0x0040, 0x0003 }, + { 0x214c, 0x0003 }, + { 0x4064, 0x0003 }, - }, -- }, { -- 106500000, { -- { 0x0051, 0x0002}, -- { 0x2145, 0x0002}, -- { 0x4061, 0x0002} ++ }, + }, { + 272000000, { + { 0x0040, 0x0003 }, + { 0x214c, 0x0003 }, + { 0x5a64, 0x0003 }, - }, -- }, { -- 146250000, { -- { 0x0051, 0x0002}, -- { 0x2145, 0x0002}, -- { 0x4061, 0x0002} ++ }, + }, { -+ 340000000, { -+ { 0x0040, 0x0003 }, -+ { 0x3b4c, 0x0003 }, -+ { 0x5a64, 0x0003 }, + 340000000, { + { 0x0040, 0x0003 }, + { 0x3b4c, 0x0003 }, + { 0x5a64, 0x0003 }, }, - }, { -- 148500000, { -- { 0x0051, 0x0003}, -- { 0x214c, 0x0003}, -- { 0x4064, 0x0003} + }, { + 600000000, { + { 0x1a40, 0x0003 }, + { 0x3b4c, 0x0003 }, + { 0x5a64, 0x0003 }, - }, -- }, { ++ }, + }, { ~0UL, { - { 0x00a0, 0x000a }, @@ -1144,14 +1033,6 @@ index 9e460b7e14a4..d42ac9fa3246 100644 return MODE_CLOCK_HIGH; return MODE_OK; -@@ -531,6 +538,7 @@ static int dw_hdmi_rockchip_bind(struct device *dev, struct device *master, - return -ENOMEM; - - hdmi->dev = &pdev->dev; -+ plat_data->priv_data = plat_data; - hdmi->chip_data = plat_data->phy_data; - plat_data->phy_data = hdmi; - encoder = &hdmi->encoder.encoder; From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonas Karlman diff --git a/projects/Rockchip/patches/linux/default/linux-1001-v4l2-rockchip.patch b/projects/Rockchip/patches/linux/default/linux-1001-v4l2-rockchip.patch index 368f47fa97..3933630664 100644 --- a/projects/Rockchip/patches/linux/default/linux-1001-v4l2-rockchip.patch +++ b/projects/Rockchip/patches/linux/default/linux-1001-v4l2-rockchip.patch @@ -14,17 +14,17 @@ index 4f5436c89e08..eaf2f133a264 100644 --- a/drivers/staging/media/rkvdec/rkvdec.c +++ b/drivers/staging/media/rkvdec/rkvdec.c @@ -1125,9 +1125,9 @@ static int rkvdec_remove(struct platform_device *pdev) - { - struct rkvdec_dev *rkvdec = platform_get_drvdata(pdev); + + cancel_delayed_work_sync(&rkvdec->watchdog_work); - rkvdec_v4l2_cleanup(rkvdec); - pm_runtime_disable(&pdev->dev); pm_runtime_dont_use_autosuspend(&pdev->dev); + pm_runtime_disable(&pdev->dev); + rkvdec_v4l2_cleanup(rkvdec); - return 0; } + #ifdef CONFIG_PM From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Randy Li