diff --git a/patch/kernel/archive/sunxi-6.12/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch b/patch/kernel/archive/sunxi-6.12/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch index 7f096f6f1276..1b207cd0d44d 100644 --- a/patch/kernel/archive/sunxi-6.12/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch +++ b/patch/kernel/archive/sunxi-6.12/patches.armbian/drv-gpu-drm-sun4i-sun8i_mixer.c-add-h3-mixer1.patch @@ -11,7 +11,7 @@ diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_m index 111111111111..222222222222 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -708,6 +708,14 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { +@@ -769,6 +769,14 @@ static const struct sun8i_mixer_cfg sun8i_h3_mixer0_cfg = { .vi_num = 1, }; @@ -25,8 +25,8 @@ index 111111111111..222222222222 100644 + static const struct sun8i_mixer_cfg sun8i_r40_mixer0_cfg = { .ccsc = CCSC_MIXER0_LAYOUT, - .mod_rate = 297000000, -@@ -794,6 +802,10 @@ static const struct of_device_id sun8i_mixer_of_table[] = { + .de_type = sun8i_mixer_de2, +@@ -875,6 +883,10 @@ static const struct of_device_id sun8i_mixer_of_table[] = { .compatible = "allwinner,sun8i-h3-de2-mixer-0", .data = &sun8i_h3_mixer0_cfg, }, diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch new file mode 100644 index 000000000000..6bd5c7665c81 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch @@ -0,0 +1,86 @@ +From b41f5a9ec8841c0342f101585c64c292019543d2 Mon Sep 17 00:00:00 2001 +From: Ryan Walklin +Date: Sun, 29 Sep 2024 22:04:54 +1300 +Subject: clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) support + +The DE33 is a newer version of the Allwinner Display Engine IP block, +found in the H616, H618, H700 and T507 SoCs. DE2 and DE3 are already +supported by the mainline driver. + +The DE33 in the H616 has mixer0 and writeback units. The clocks +and resets required are identical to the H3 and H5 respectively, so use +those existing structs for the H616 description. + +There are two additional 32-bit registers (at offsets 0x24 and 0x28) +which require clearing and setting respectively to bring up the +hardware. The function of these registers is currently unknown, and the +values are taken from the out-of-tree driver. + +Add the required clock description struct and compatible string to the +DE2 driver. + +Signed-off-by: Ryan Walklin +--- + drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c +index 7683ea08d8e3..83eab6f132aa 100644 +--- a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c ++++ b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c +@@ -5,6 +5,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -239,6 +240,16 @@ static const struct sunxi_ccu_desc sun50i_h5_de2_clk_desc = { + .num_resets = ARRAY_SIZE(sun50i_h5_de2_resets), + }; + ++static const struct sunxi_ccu_desc sun50i_h616_de33_clk_desc = { ++ .ccu_clks = sun8i_de2_ccu_clks, ++ .num_ccu_clks = ARRAY_SIZE(sun8i_de2_ccu_clks), ++ ++ .hw_clks = &sun8i_h3_de2_hw_clks, ++ ++ .resets = sun50i_h5_de2_resets, ++ .num_resets = ARRAY_SIZE(sun50i_h5_de2_resets), ++}; ++ + static int sunxi_de2_clk_probe(struct platform_device *pdev) + { + struct clk *bus_clk, *mod_clk; +@@ -291,6 +302,16 @@ static int sunxi_de2_clk_probe(struct platform_device *pdev) + goto err_disable_mod_clk; + } + ++ /* ++ * The DE33 requires these additional (unknown) registers set ++ * during initialisation. ++ */ ++ if (of_device_is_compatible(pdev->dev.of_node, ++ "allwinner,sun50i-h616-de33-clk")) { ++ writel(0, reg + 0x24); ++ writel(0x0000a980, reg + 0x28); ++ } ++ + ret = devm_sunxi_ccu_probe(&pdev->dev, reg, ccu_desc); + if (ret) + goto err_assert_reset; +@@ -335,6 +356,10 @@ static const struct of_device_id sunxi_de2_clk_ids[] = { + .compatible = "allwinner,sun50i-h6-de3-clk", + .data = &sun50i_h5_de2_clk_desc, + }, ++ { ++ .compatible = "allwinner,sun50i-h616-de33-clk", ++ .data = &sun50i_h616_de33_clk_desc, ++ }, + { } + }; + MODULE_DEVICE_TABLE(of, sunxi_de2_clk_ids); +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch new file mode 100644 index 000000000000..f5555d4b0d2e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch @@ -0,0 +1,75 @@ +From 5c2859b3cccd1b1b3f1700fd70c06770f418247a Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:36 +1300 +Subject: drm: sun4i: de2: Initialize layer fields earlier + +drm_universal_plane_init() can already call some callbacks, like +format_mod_supported, during initialization. Because of that, fields +should be initialized beforehand. + +Signed-off-by: Jernej Skrabec +Co-developed-by: Ryan Walklin +Signed-off-by: Ryan Walklin +Reviewed-by: Chen-Yu Tsai +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 9 +++++---- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 9 +++++---- + 2 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index aa987bca1dbb..cb9b694fef10 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -295,6 +295,11 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + if (!layer) + return ERR_PTR(-ENOMEM); + ++ layer->mixer = mixer; ++ layer->type = SUN8I_LAYER_TYPE_UI; ++ layer->channel = channel; ++ layer->overlay = 0; ++ + if (index == 0) + type = DRM_PLANE_TYPE_PRIMARY; + +@@ -325,10 +330,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, + } + + drm_plane_helper_add(&layer->plane, &sun8i_ui_layer_helper_funcs); +- layer->mixer = mixer; +- layer->type = SUN8I_LAYER_TYPE_UI; +- layer->channel = channel; +- layer->overlay = 0; + + return layer; + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index f3a5329351ca..3c657b069d1f 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -478,6 +478,11 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + if (!layer) + return ERR_PTR(-ENOMEM); + ++ layer->mixer = mixer; ++ layer->type = SUN8I_LAYER_TYPE_VI; ++ layer->channel = index; ++ layer->overlay = 0; ++ + if (mixer->cfg->is_de3) { + formats = sun8i_vi_layer_de3_formats; + format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats); +@@ -536,10 +541,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, + } + + drm_plane_helper_add(&layer->plane, &sun8i_vi_layer_helper_funcs); +- layer->mixer = mixer; +- layer->type = SUN8I_LAYER_TYPE_VI; +- layer->channel = index; +- layer->overlay = 0; + + return layer; + } +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch new file mode 100644 index 000000000000..9125e4fa06cb --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch @@ -0,0 +1,178 @@ +From 54669ac67e47835b8cc3eea215026385a0050567 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:33 +1300 +Subject: drm: sun4i: de2/de3: Change CSC argument + +Currently, CSC module takes care only for converting YUV to RGB. +However, DE3 is more suited to work in YUV color space. Change CSC mode +argument to format type to be more neutral. New argument only tells +layer format type and doesn't imply output type. + +This commit doesn't make any functional change. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +Reviewed-by: Andre Przywara +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 22 +++++++++++----------- + drivers/gpu/drm/sun4i/sun8i_csc.h | 10 +++++----- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 16 ++++++++-------- + 3 files changed, 24 insertions(+), 24 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 58480d8e4f70..6ebd1c3aa3ab 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -108,7 +108,7 @@ static const u32 yuv2rgb_de3[2][3][12] = { + }; + + static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, +- enum sun8i_csc_mode mode, ++ enum format_type fmt_type, + enum drm_color_encoding encoding, + enum drm_color_range range) + { +@@ -118,12 +118,12 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, + + table = yuv2rgb[range][encoding]; + +- switch (mode) { +- case SUN8I_CSC_MODE_YUV2RGB: ++ switch (fmt_type) { ++ case FORMAT_TYPE_YUV: + base_reg = SUN8I_CSC_COEFF(base, 0); + regmap_bulk_write(map, base_reg, table, 12); + break; +- case SUN8I_CSC_MODE_YVU2RGB: ++ case FORMAT_TYPE_YVU: + for (i = 0; i < 12; i++) { + if ((i & 3) == 1) + base_reg = SUN8I_CSC_COEFF(base, i + 1); +@@ -141,7 +141,7 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, + } + + static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, +- enum sun8i_csc_mode mode, ++ enum format_type fmt_type, + enum drm_color_encoding encoding, + enum drm_color_range range) + { +@@ -151,12 +151,12 @@ static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, + + table = yuv2rgb_de3[range][encoding]; + +- switch (mode) { +- case SUN8I_CSC_MODE_YUV2RGB: ++ switch (fmt_type) { ++ case FORMAT_TYPE_YUV: + addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); + regmap_bulk_write(map, addr, table, 12); + break; +- case SUN8I_CSC_MODE_YVU2RGB: ++ case FORMAT_TYPE_YVU: + for (i = 0; i < 12; i++) { + if ((i & 3) == 1) + addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, +@@ -206,7 +206,7 @@ static void sun8i_de3_ccsc_enable(struct regmap *map, int layer, bool enable) + } + + void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, +- enum sun8i_csc_mode mode, ++ enum format_type fmt_type, + enum drm_color_encoding encoding, + enum drm_color_range range) + { +@@ -214,14 +214,14 @@ void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, + + if (mixer->cfg->is_de3) { + sun8i_de3_ccsc_set_coefficients(mixer->engine.regs, layer, +- mode, encoding, range); ++ fmt_type, encoding, range); + return; + } + + base = ccsc_base[mixer->cfg->ccsc][layer]; + + sun8i_csc_set_coefficients(mixer->engine.regs, base, +- mode, encoding, range); ++ fmt_type, encoding, range); + } + + void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable) +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h +index 828b86fd0cab..7322770f39f0 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.h ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.h +@@ -22,14 +22,14 @@ struct sun8i_mixer; + + #define SUN8I_CSC_CTRL_EN BIT(0) + +-enum sun8i_csc_mode { +- SUN8I_CSC_MODE_OFF, +- SUN8I_CSC_MODE_YUV2RGB, +- SUN8I_CSC_MODE_YVU2RGB, ++enum format_type { ++ FORMAT_TYPE_RGB, ++ FORMAT_TYPE_YUV, ++ FORMAT_TYPE_YVU, + }; + + void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, +- enum sun8i_csc_mode mode, ++ enum format_type fmt_type, + enum drm_color_encoding encoding, + enum drm_color_range range); + void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable); +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 9c09d9c08496..8a80934e928f 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -193,19 +193,19 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + return 0; + } + +-static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) ++static u32 sun8i_vi_layer_get_format_type(const struct drm_format_info *format) + { + if (!format->is_yuv) +- return SUN8I_CSC_MODE_OFF; ++ return FORMAT_TYPE_RGB; + + switch (format->format) { + case DRM_FORMAT_YVU411: + case DRM_FORMAT_YVU420: + case DRM_FORMAT_YVU422: + case DRM_FORMAT_YVU444: +- return SUN8I_CSC_MODE_YVU2RGB; ++ return FORMAT_TYPE_YVU; + default: +- return SUN8I_CSC_MODE_YUV2RGB; ++ return FORMAT_TYPE_YUV; + } + } + +@@ -213,7 +213,7 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, + int overlay, struct drm_plane *plane) + { + struct drm_plane_state *state = plane->state; +- u32 val, ch_base, csc_mode, hw_fmt; ++ u32 val, ch_base, fmt_type, hw_fmt; + const struct drm_format_info *fmt; + int ret; + +@@ -231,9 +231,9 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), + SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_MASK, val); + +- csc_mode = sun8i_vi_layer_get_csc_mode(fmt); +- if (csc_mode != SUN8I_CSC_MODE_OFF) { +- sun8i_csc_set_ccsc_coefficients(mixer, channel, csc_mode, ++ fmt_type = sun8i_vi_layer_get_format_type(fmt); ++ if (fmt_type != FORMAT_TYPE_RGB) { ++ sun8i_csc_set_ccsc_coefficients(mixer, channel, fmt_type, + state->color_encoding, + state->color_range); + sun8i_csc_enable_ccsc(mixer, channel, true); +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch new file mode 100644 index 000000000000..a487d9d899f4 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch @@ -0,0 +1,221 @@ +From 09744193cdcf400e5a4c54d9309acf5aea3a591c Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:34 +1300 +Subject: drm: sun4i: de2/de3: Merge CSC functions into one + +At the moment the colour space conversion is handled by two functions: +one to setup the conversion parameters, and another one to enable the +conversion. Merging both into one gives more flexibility for upcoming +extensions to support whole YUV pipelines, in the DE33. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +Reviewed-by: Andre Przywara +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 89 ++++++++++---------------- + drivers/gpu/drm/sun4i/sun8i_csc.h | 9 ++- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 11 +--- + 3 files changed, 40 insertions(+), 69 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 6ebd1c3aa3ab..0dcbc0866ae8 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -107,23 +107,28 @@ static const u32 yuv2rgb_de3[2][3][12] = { + }, + }; + +-static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, +- enum format_type fmt_type, +- enum drm_color_encoding encoding, +- enum drm_color_range range) ++static void sun8i_csc_setup(struct regmap *map, u32 base, ++ enum format_type fmt_type, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range) + { ++ u32 base_reg, val; + const u32 *table; +- u32 base_reg; + int i; + + table = yuv2rgb[range][encoding]; + + switch (fmt_type) { ++ case FORMAT_TYPE_RGB: ++ val = 0; ++ break; + case FORMAT_TYPE_YUV: ++ val = SUN8I_CSC_CTRL_EN; + base_reg = SUN8I_CSC_COEFF(base, 0); + regmap_bulk_write(map, base_reg, table, 12); + break; + case FORMAT_TYPE_YVU: ++ val = SUN8I_CSC_CTRL_EN; + for (i = 0; i < 12; i++) { + if ((i & 3) == 1) + base_reg = SUN8I_CSC_COEFF(base, i + 1); +@@ -135,28 +140,37 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, + } + break; + default: ++ val = 0; + DRM_WARN("Wrong CSC mode specified.\n"); + return; + } ++ ++ regmap_write(map, SUN8I_CSC_CTRL(base), val); + } + +-static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, +- enum format_type fmt_type, +- enum drm_color_encoding encoding, +- enum drm_color_range range) ++static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, ++ enum format_type fmt_type, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range) + { ++ u32 addr, val, mask; + const u32 *table; +- u32 addr; + int i; + ++ mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); + table = yuv2rgb_de3[range][encoding]; + + switch (fmt_type) { ++ case FORMAT_TYPE_RGB: ++ val = 0; ++ break; + case FORMAT_TYPE_YUV: ++ val = mask; + addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); + regmap_bulk_write(map, addr, table, 12); + break; + case FORMAT_TYPE_YVU: ++ val = mask; + for (i = 0; i < 12; i++) { + if ((i & 3) == 1) + addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, +@@ -173,67 +187,30 @@ static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, + } + break; + default: ++ val = 0; + DRM_WARN("Wrong CSC mode specified.\n"); + return; + } +-} +- +-static void sun8i_csc_enable(struct regmap *map, u32 base, bool enable) +-{ +- u32 val; +- +- if (enable) +- val = SUN8I_CSC_CTRL_EN; +- else +- val = 0; +- +- regmap_update_bits(map, SUN8I_CSC_CTRL(base), SUN8I_CSC_CTRL_EN, val); +-} +- +-static void sun8i_de3_ccsc_enable(struct regmap *map, int layer, bool enable) +-{ +- u32 val, mask; +- +- mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); +- +- if (enable) +- val = mask; +- else +- val = 0; + + regmap_update_bits(map, SUN50I_MIXER_BLEND_CSC_CTL(DE3_BLD_BASE), + mask, val); + } + +-void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, +- enum format_type fmt_type, +- enum drm_color_encoding encoding, +- enum drm_color_range range) +-{ +- u32 base; +- +- if (mixer->cfg->is_de3) { +- sun8i_de3_ccsc_set_coefficients(mixer->engine.regs, layer, +- fmt_type, encoding, range); +- return; +- } +- +- base = ccsc_base[mixer->cfg->ccsc][layer]; +- +- sun8i_csc_set_coefficients(mixer->engine.regs, base, +- fmt_type, encoding, range); +-} +- +-void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable) ++void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, ++ enum format_type fmt_type, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range) + { + u32 base; + + if (mixer->cfg->is_de3) { +- sun8i_de3_ccsc_enable(mixer->engine.regs, layer, enable); ++ sun8i_de3_ccsc_setup(mixer->engine.regs, layer, ++ fmt_type, encoding, range); + return; + } + + base = ccsc_base[mixer->cfg->ccsc][layer]; + +- sun8i_csc_enable(mixer->engine.regs, base, enable); ++ sun8i_csc_setup(mixer->engine.regs, base, ++ fmt_type, encoding, range); + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h +index 7322770f39f0..b7546e06e315 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.h ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.h +@@ -28,10 +28,9 @@ enum format_type { + FORMAT_TYPE_YVU, + }; + +-void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, +- enum format_type fmt_type, +- enum drm_color_encoding encoding, +- enum drm_color_range range); +-void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable); ++void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, ++ enum format_type fmt_type, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range); + + #endif +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 8a80934e928f..f3a5329351ca 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -232,14 +232,9 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, + SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_MASK, val); + + fmt_type = sun8i_vi_layer_get_format_type(fmt); +- if (fmt_type != FORMAT_TYPE_RGB) { +- sun8i_csc_set_ccsc_coefficients(mixer, channel, fmt_type, +- state->color_encoding, +- state->color_range); +- sun8i_csc_enable_ccsc(mixer, channel, true); +- } else { +- sun8i_csc_enable_ccsc(mixer, channel, false); +- } ++ sun8i_csc_set_ccsc(mixer, channel, fmt_type, ++ state->color_encoding, ++ state->color_range); + + if (!fmt->is_yuv) + val = SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE; +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch new file mode 100644 index 000000000000..2757ba5e21fd --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch @@ -0,0 +1,38 @@ +From 45d06599927825fe1fa3c374508d6d0c8c9f9f52 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:48 +1300 +Subject: drm: sun4i: de2/de3: add generic blender register reference function + +The DE2 and DE3 engines have a blender register range within the +mixer engine register map, whereas the DE33 separates this out into +a separate display group. + +Prepare for this by adding a function to look the blender reference up, +with a subsequent patch to add a conditional based on the DE type. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_mixer.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index 82956cb97cfd..75facc7d1fa6 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -224,6 +224,12 @@ sun8i_blender_base(struct sun8i_mixer *mixer) + return mixer->cfg->de_type == sun8i_mixer_de3 ? DE3_BLD_BASE : DE2_BLD_BASE; + } + ++static inline struct regmap * ++sun8i_blender_regmap(struct sun8i_mixer *mixer) ++{ ++ return mixer->engine.regs; ++} ++ + static inline u32 + sun8i_channel_base(struct sun8i_mixer *mixer, int channel) + { +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-13-26-drm-sun4i-de2-de3-add-mixer-version-enum.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch similarity index 55% rename from patch/kernel/archive/sunxi-6.12/patches.drm/v5-13-26-drm-sun4i-de2-de3-add-mixer-version-enum.patch rename to patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch index f383f1a79774..0df4a242c2ee 100644 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-13-26-drm-sun4i-de2-de3-add-mixer-version-enum.patch +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch @@ -1,130 +1,7 @@ -From patchwork Sun Sep 29 09:04:45 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814929 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id B20ECCF6497 - for ; Sun, 29 Sep 2024 09:12:51 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 33BCC10E294; - Sun, 29 Sep 2024 09:12:51 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="a4dF8Nm9"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="of32SSVV"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id E917110E294 - for ; Sun, 29 Sep 2024 09:12:49 +0000 (UTC) -Received: from phl-compute-11.internal (phl-compute-11.phl.internal - [10.202.2.51]) - by mailfout.phl.internal (Postfix) with ESMTP id 5761913802B6; - Sun, 29 Sep 2024 05:12:49 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-11.internal (MEProxy); Sun, 29 Sep 2024 05:12:49 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601169; x= - 1727687569; bh=njKRIGMapQIOtRyCeAl8bLmE4lCYwM0vFQPSkmXGO0U=; b=a - 4dF8Nm97HgbD39N2jQhmY2CVVxUzDjg19t8R1LE/3U/SR1WvzX8zlWNBbWEI8ZVm - BwK47vftDld6UyOpvBbSVQW+FPKMcLFrCZUhJDA4cAG5hP40gZppjkmNjLQJiIe6 - fMuyc2s2EvU4nZDwITjFEsnf53nNoItulLi4e3vsgJscjO7MonroPHgQJDR8LDy1 - bVPkaLsS0ljII2nprn7NU+kxXuM/FglrCFxMTsJl7U7G3W/aBIiA/be6mQC5EsDH - suR+DM/P11XmBdI4qCwrqkf3fq/svCNjCyNL9e5WnIybot/1DusZM+J9qkPpIv3Q - 0rtVMzpA0516XNmVCJNng== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601169; x= - 1727687569; bh=njKRIGMapQIOtRyCeAl8bLmE4lCYwM0vFQPSkmXGO0U=; b=o - f32SSVVBEoJNZc2XilYdEY3sfT1s+2bjFxYSCsHXHoPT75CS2yViAGOUISzRbK4n - Vy3fjJunzO5PqAlksLk40Rc51gW+hpjD3AnZ/zJ98ZdH8Q5ooqBqO+sm8JXGhb9D - iw8BTzMpH+7iznL3+xeQx/zyNjyinkEtdjmIvnwsacT4eUf7k+CP6DqrKVA4KXE1 - GdBUaSwxAxYABxomX7F7WQ3Q5T3D8CZIjOB5Ju9kqxwi8MqHVj7GKvQMcHzuyfNk - 5kLExB1p04/jVHTJaufv8jSvP9kHPck/zTpP4Q1Hm5nrHwms6HVaxRVdrC0h9FfK - yC8uh8a4CcjW6VdNKqWfQ== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:43 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 13/26] drm: sun4i: de2/de3: add mixer version enum -Date: Sun, 29 Sep 2024 22:04:45 +1300 -Message-ID: <20240929091107.838023-14-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - +From b49e4fb3439c50eb6effc559366b3e88e2ac2f27 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:45 +1300 +Subject: drm: sun4i: de2/de3: add mixer version enum The Allwinner DE2 and DE3 display engine mixers are currently identified by a simple boolean flag. This will not scale to support additional DE @@ -145,7 +22,7 @@ Reviewed-by: Andre Przywara 6 files changed, 28 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index e12a81fa91083..2d5a2cf7cba24 100644 +index e12a81fa9108..2d5a2cf7cba2 100644 --- a/drivers/gpu/drm/sun4i/sun8i_csc.c +++ b/drivers/gpu/drm/sun4i/sun8i_csc.c @@ -365,7 +365,7 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, @@ -158,7 +35,7 @@ index e12a81fa91083..2d5a2cf7cba24 100644 fmt_type, encoding, range); return; diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index a50c583852edf..16e018aa4aae9 100644 +index a50c583852ed..16e018aa4aae 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c @@ -584,7 +584,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, @@ -260,7 +137,7 @@ index a50c583852edf..16e018aa4aae9 100644 .mod_rate = 600000000, .scaler_mask = 0xf, diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index 8417b8fef2e1f..82956cb97cfd9 100644 +index 8417b8fef2e1..82956cb97cfd 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h @@ -151,6 +151,11 @@ enum { @@ -301,7 +178,7 @@ index 8417b8fef2e1f..82956cb97cfd9 100644 else return DE2_CH_BASE + channel * DE2_CH_SIZE; diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c -index ae0806bccac7f..504ffa0971a4f 100644 +index ae0806bccac7..504ffa0971a4 100644 --- a/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c +++ b/drivers/gpu/drm/sun4i/sun8i_ui_scaler.c @@ -93,7 +93,7 @@ static u32 sun8i_ui_scaler_base(struct sun8i_mixer *mixer, int channel) @@ -314,7 +191,7 @@ index ae0806bccac7f..504ffa0971a4f 100644 DE3_VI_SCALER_UNIT_SIZE * vi_num + DE3_UI_SCALER_UNIT_SIZE * (channel - vi_num); diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 3c657b069d1f4..4647e9bcccaa7 100644 +index 3c657b069d1f..4647e9bcccaa 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c @@ -25,7 +25,7 @@ static void sun8i_vi_layer_update_alpha(struct sun8i_mixer *mixer, int channel, @@ -354,7 +231,7 @@ index 3c657b069d1f4..4647e9bcccaa7 100644 supported_ranges = BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) | diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index 2e49a6e5f1f1c..aa346c3beb303 100644 +index 2e49a6e5f1f1..aa346c3beb30 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c @@ -835,7 +835,7 @@ static const u32 bicubic4coefftab32[480] = { @@ -375,3 +252,6 @@ index 2e49a6e5f1f1c..aa346c3beb303 100644 u32 val; if (format->hsub == 1 && format->vsub == 1) +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch new file mode 100644 index 000000000000..96847a05dce8 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch @@ -0,0 +1,64 @@ +From 000c586a34ad82e4673e6dfda5457147b0d85606 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:35 +1300 +Subject: drm: sun4i: de2/de3: call csc setup also for UI layer + +Currently, only VI layer calls CSC setup function. This comes from DE2 +limitation, which doesn't have CSC unit for UI layers. However, DE3 has +separate CSC units for each layer. This allows display pipeline to make +output signal in different color spaces. To support both use cases, add +a call to CSC setup function also in UI layer code. For DE2, this will +be a no-op, but it will allow DE3 to output signal in multiple formats. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 8 +++++--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 6 ++++++ + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 0dcbc0866ae8..68d955c63b05 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -209,8 +209,10 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, + return; + } + +- base = ccsc_base[mixer->cfg->ccsc][layer]; ++ if (layer < mixer->cfg->vi_num) { ++ base = ccsc_base[mixer->cfg->ccsc][layer]; + +- sun8i_csc_setup(mixer->engine.regs, base, +- fmt_type, encoding, range); ++ sun8i_csc_setup(mixer->engine.regs, base, ++ fmt_type, encoding, range); ++ } + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index b90e5edef4e8..aa987bca1dbb 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -20,6 +20,7 @@ + #include + #include + ++#include "sun8i_csc.h" + #include "sun8i_mixer.h" + #include "sun8i_ui_layer.h" + #include "sun8i_ui_scaler.h" +@@ -135,6 +136,11 @@ static int sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, + SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), + SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_MASK, val); + ++ /* Note: encoding and range arguments are ignored for RGB */ ++ sun8i_csc_set_ccsc(mixer, channel, FORMAT_TYPE_RGB, ++ DRM_COLOR_YCBCR_BT601, ++ DRM_COLOR_YCBCR_FULL_RANGE); ++ + return 0; + } + +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch new file mode 100644 index 000000000000..4357b5b775ab --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch @@ -0,0 +1,121 @@ +From 18890b5c9dbf9270b7f0e42875d6b8bd14ee6624 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:46 +1300 +Subject: drm: sun4i: de2/de3: refactor mixer initialisation + +Now that the DE variant can be selected by enum, take the oppportunity +to factor out some common initialisation code to a separate function. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +Reviewed-by: Andre Przywara +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 64 +++++++++++++++-------------- + 1 file changed, 34 insertions(+), 30 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 16e018aa4aae..18745af08954 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -468,6 +468,38 @@ static int sun8i_mixer_of_get_id(struct device_node *node) + return of_ep.id; + } + ++static void sun8i_mixer_init(struct sun8i_mixer *mixer) ++{ ++ unsigned int base = sun8i_blender_base(mixer); ++ int plane_cnt, i; ++ ++ /* Enable the mixer */ ++ regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, ++ SUN8I_MIXER_GLOBAL_CTL_RT_EN); ++ ++ /* Set background color to black */ ++ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), ++ SUN8I_MIXER_BLEND_COLOR_BLACK); ++ ++ /* ++ * Set fill color of bottom plane to black. Generally not needed ++ * except when VI plane is at bottom (zpos = 0) and enabled. ++ */ ++ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), ++ SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); ++ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), ++ SUN8I_MIXER_BLEND_COLOR_BLACK); ++ ++ plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; ++ for (i = 0; i < plane_cnt; i++) ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_BLEND_MODE(base, i), ++ SUN8I_MIXER_BLEND_MODE_DEF); ++ ++ regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), ++ SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); ++} ++ + static int sun8i_mixer_bind(struct device *dev, struct device *master, + void *data) + { +@@ -476,8 +508,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + struct sun4i_drv *drv = drm->dev_private; + struct sun8i_mixer *mixer; + void __iomem *regs; +- unsigned int base; +- int plane_cnt; + int i, ret; + + /* +@@ -581,8 +611,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + + list_add_tail(&mixer->engine.list, &drv->engine_list); + +- base = sun8i_blender_base(mixer); +- + /* Reset registers and disable unused sub-engines */ + if (mixer->cfg->de_type == sun8i_mixer_de3) { + for (i = 0; i < DE3_MIXER_UNIT_SIZE; i += 4) +@@ -598,7 +626,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + regmap_write(mixer->engine.regs, SUN50I_MIXER_FMT_EN, 0); + regmap_write(mixer->engine.regs, SUN50I_MIXER_CDC0_EN, 0); + regmap_write(mixer->engine.regs, SUN50I_MIXER_CDC1_EN, 0); +- } else { ++ } else if (mixer->cfg->de_type == sun8i_mixer_de2) { + for (i = 0; i < DE2_MIXER_UNIT_SIZE; i += 4) + regmap_write(mixer->engine.regs, i, 0); + +@@ -611,31 +639,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + regmap_write(mixer->engine.regs, SUN8I_MIXER_DCSC_EN, 0); + } + +- /* Enable the mixer */ +- regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, +- SUN8I_MIXER_GLOBAL_CTL_RT_EN); +- +- /* Set background color to black */ +- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), +- SUN8I_MIXER_BLEND_COLOR_BLACK); +- +- /* +- * Set fill color of bottom plane to black. Generally not needed +- * except when VI plane is at bottom (zpos = 0) and enabled. +- */ +- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), +- SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); +- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), +- SUN8I_MIXER_BLEND_COLOR_BLACK); +- +- plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; +- for (i = 0; i < plane_cnt; i++) +- regmap_write(mixer->engine.regs, +- SUN8I_MIXER_BLEND_MODE(base, i), +- SUN8I_MIXER_BLEND_MODE_DEF); +- +- regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), +- SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); ++ sun8i_mixer_init(mixer); + + return 0; + +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch new file mode 100644 index 000000000000..ae503d937cb6 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch @@ -0,0 +1,117 @@ +From a756d6b4ac645ac3c18d5758faec068b3c8819a6 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:49 +1300 +Subject: drm: sun4i: de2/de3: use generic register reference function for + layer configuration + +Use the new blender register lookup function where required in the layer +commit and update code. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 5 +++-- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 7 +++++-- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 6 ++++-- + 3 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 18745af08954..600084286b39 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -277,6 +277,7 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + { + struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); + u32 bld_base = sun8i_blender_base(mixer); ++ struct regmap *bld_regs = sun8i_blender_regmap(mixer); + struct drm_plane_state *plane_state; + struct drm_plane *plane; + u32 route = 0, pipe_en = 0; +@@ -316,8 +317,8 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, + pipe_en |= SUN8I_MIXER_BLEND_PIPE_CTL_EN(zpos); + } + +- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); +- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), ++ regmap_write(bld_regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); ++ regmap_write(bld_regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), + pipe_en | SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); + + regmap_write(engine->regs, SUN8I_MIXER_GLOBAL_DBUFF, +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index cb9b694fef10..7f1231cf0f01 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -24,6 +24,7 @@ + #include "sun8i_mixer.h" + #include "sun8i_ui_layer.h" + #include "sun8i_ui_scaler.h" ++#include "sun8i_vi_scaler.h" + + static void sun8i_ui_layer_update_alpha(struct sun8i_mixer *mixer, int channel, + int overlay, struct drm_plane *plane) +@@ -52,6 +53,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + { + struct drm_plane_state *state = plane->state; + u32 src_w, src_h, dst_w, dst_h; ++ struct regmap *bld_regs; + u32 bld_base, ch_base; + u32 outsize, insize; + u32 hphase, vphase; +@@ -60,6 +62,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + channel, overlay); + + bld_base = sun8i_blender_base(mixer); ++ bld_regs = sun8i_blender_regmap(mixer); + ch_base = sun8i_channel_base(mixer, channel); + + src_w = drm_rect_width(&state->src) >> 16; +@@ -104,10 +107,10 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", + state->dst.x1, state->dst.y1); + DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); +- regmap_write(mixer->engine.regs, ++ regmap_write(bld_regs, + SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), + SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); +- regmap_write(mixer->engine.regs, ++ regmap_write(bld_regs, + SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), + outsize); + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index e348fd0a3d81..d19349eecc9d 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -55,6 +55,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + struct drm_plane_state *state = plane->state; + const struct drm_format_info *format = state->fb->format; + u32 src_w, src_h, dst_w, dst_h; ++ struct regmap *bld_regs; + u32 bld_base, ch_base; + u32 outsize, insize; + u32 hphase, vphase; +@@ -66,6 +67,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + channel, overlay); + + bld_base = sun8i_blender_base(mixer); ++ bld_regs = sun8i_blender_regmap(mixer); + ch_base = sun8i_channel_base(mixer, channel); + + src_w = drm_rect_width(&state->src) >> 16; +@@ -182,10 +184,10 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", + state->dst.x1, state->dst.y1); + DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); +- regmap_write(mixer->engine.regs, ++ regmap_write(bld_regs, + SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), + SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); +- regmap_write(mixer->engine.regs, ++ regmap_write(bld_regs, + SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), + outsize); + +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch new file mode 100644 index 000000000000..14f17b6d5d69 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch @@ -0,0 +1,164 @@ +From 8bdcc131fedb576a8db65bb6e87ca8742660add0 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:37 +1300 +Subject: drm: sun4i: de3: Add YUV formatter module + +The display engine formatter (FMT) module is present in the DE3 engine +and provides YUV444 to YUV422/YUV420 conversion, format re-mapping and +color depth conversion. + +Add support for this module. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/Makefile | 3 +- + drivers/gpu/drm/sun4i/sun50i_fmt.c | 82 ++++++++++++++++++++++++++++++ + drivers/gpu/drm/sun4i/sun50i_fmt.h | 32 ++++++++++++ + 3 files changed, 116 insertions(+), 1 deletion(-) + create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.c + create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.h + +diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile +index bad7497a0d11..3f516329f51e 100644 +--- a/drivers/gpu/drm/sun4i/Makefile ++++ b/drivers/gpu/drm/sun4i/Makefile +@@ -16,7 +16,8 @@ sun8i-drm-hdmi-y += sun8i_hdmi_phy_clk.o + + sun8i-mixer-y += sun8i_mixer.o sun8i_ui_layer.o \ + sun8i_vi_layer.o sun8i_ui_scaler.o \ +- sun8i_vi_scaler.o sun8i_csc.o ++ sun8i_vi_scaler.o sun8i_csc.o \ ++ sun50i_fmt.o + + sun4i-tcon-y += sun4i_crtc.o + sun4i-tcon-y += sun4i_tcon_dclk.o +diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.c b/drivers/gpu/drm/sun4i/sun50i_fmt.c +new file mode 100644 +index 000000000000..050a8716ae86 +--- /dev/null ++++ b/drivers/gpu/drm/sun4i/sun50i_fmt.c +@@ -0,0 +1,82 @@ ++// SPDX-License-Identifier: GPL-2.0-or-later ++/* ++ * Copyright (C) Jernej Skrabec ++ */ ++ ++#include ++ ++#include "sun50i_fmt.h" ++ ++static bool sun50i_fmt_is_10bit(u32 format) ++{ ++ switch (format) { ++ case MEDIA_BUS_FMT_RGB101010_1X30: ++ case MEDIA_BUS_FMT_YUV10_1X30: ++ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: ++ case MEDIA_BUS_FMT_UYVY10_1X20: ++ return true; ++ default: ++ return false; ++ } ++} ++ ++static u32 sun50i_fmt_get_colorspace(u32 format) ++{ ++ switch (format) { ++ case MEDIA_BUS_FMT_UYYVYY8_0_5X24: ++ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: ++ return SUN50I_FMT_CS_YUV420; ++ case MEDIA_BUS_FMT_UYVY8_1X16: ++ case MEDIA_BUS_FMT_UYVY10_1X20: ++ return SUN50I_FMT_CS_YUV422; ++ default: ++ return SUN50I_FMT_CS_YUV444RGB; ++ } ++} ++ ++static void sun50i_fmt_de3_limits(u32 *limits, u32 colorspace, bool bit10) ++{ ++ if (colorspace != SUN50I_FMT_CS_YUV444RGB) { ++ limits[0] = SUN50I_FMT_LIMIT(64, 940); ++ limits[1] = SUN50I_FMT_LIMIT(64, 960); ++ limits[2] = SUN50I_FMT_LIMIT(64, 960); ++ } else if (bit10) { ++ limits[0] = SUN50I_FMT_LIMIT(0, 1023); ++ limits[1] = SUN50I_FMT_LIMIT(0, 1023); ++ limits[2] = SUN50I_FMT_LIMIT(0, 1023); ++ } else { ++ limits[0] = SUN50I_FMT_LIMIT(0, 1021); ++ limits[1] = SUN50I_FMT_LIMIT(0, 1021); ++ limits[2] = SUN50I_FMT_LIMIT(0, 1021); ++ } ++} ++ ++void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, ++ u16 height, u32 format) ++{ ++ u32 colorspace, limit[3], base; ++ struct regmap *regs; ++ bool bit10; ++ ++ colorspace = sun50i_fmt_get_colorspace(format); ++ bit10 = sun50i_fmt_is_10bit(format); ++ base = SUN50I_FMT_DE3; ++ regs = sun8i_blender_regmap(mixer); ++ ++ sun50i_fmt_de3_limits(limit, colorspace, bit10); ++ ++ regmap_write(regs, SUN50I_FMT_CTRL(base), 0); ++ ++ regmap_write(regs, SUN50I_FMT_SIZE(base), ++ SUN8I_MIXER_SIZE(width, height)); ++ regmap_write(regs, SUN50I_FMT_SWAP(base), 0); ++ regmap_write(regs, SUN50I_FMT_DEPTH(base), bit10); ++ regmap_write(regs, SUN50I_FMT_FORMAT(base), colorspace); ++ regmap_write(regs, SUN50I_FMT_COEF(base), 0); ++ ++ regmap_write(regs, SUN50I_FMT_LMT_Y(base), limit[0]); ++ regmap_write(regs, SUN50I_FMT_LMT_C0(base), limit[1]); ++ regmap_write(regs, SUN50I_FMT_LMT_C1(base), limit[2]); ++ ++ regmap_write(regs, SUN50I_FMT_CTRL(base), 1); ++} +diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.h b/drivers/gpu/drm/sun4i/sun50i_fmt.h +new file mode 100644 +index 000000000000..4127f7206aad +--- /dev/null ++++ b/drivers/gpu/drm/sun4i/sun50i_fmt.h +@@ -0,0 +1,32 @@ ++/* SPDX-License-Identifier: GPL-2.0-or-later */ ++/* ++ * Copyright (C) Jernej Skrabec ++ */ ++ ++#ifndef _SUN50I_FMT_H_ ++#define _SUN50I_FMT_H_ ++ ++#include "sun8i_mixer.h" ++ ++#define SUN50I_FMT_DE3 0xa8000 ++ ++#define SUN50I_FMT_CTRL(base) ((base) + 0x00) ++#define SUN50I_FMT_SIZE(base) ((base) + 0x04) ++#define SUN50I_FMT_SWAP(base) ((base) + 0x08) ++#define SUN50I_FMT_DEPTH(base) ((base) + 0x0c) ++#define SUN50I_FMT_FORMAT(base) ((base) + 0x10) ++#define SUN50I_FMT_COEF(base) ((base) + 0x14) ++#define SUN50I_FMT_LMT_Y(base) ((base) + 0x20) ++#define SUN50I_FMT_LMT_C0(base) ((base) + 0x24) ++#define SUN50I_FMT_LMT_C1(base) ((base) + 0x28) ++ ++#define SUN50I_FMT_LIMIT(low, high) (((high) << 16) | (low)) ++ ++#define SUN50I_FMT_CS_YUV444RGB 0 ++#define SUN50I_FMT_CS_YUV422 1 ++#define SUN50I_FMT_CS_YUV420 2 ++ ++void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, ++ u16 height, u32 format); ++ ++#endif +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-18-26-drm-sun4i-de3-Implement-AFBC-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch similarity index 72% rename from patch/kernel/archive/sunxi-6.12/patches.drm/v5-18-26-drm-sun4i-de3-Implement-AFBC-support.patch rename to patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch index dcde58f862f9..e4d21564c020 100644 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-18-26-drm-sun4i-de3-Implement-AFBC-support.patch +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch @@ -1,130 +1,7 @@ -From patchwork Sun Sep 29 09:04:50 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814934 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 0361ACF6497 - for ; Sun, 29 Sep 2024 09:13:24 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 7945D10E29B; - Sun, 29 Sep 2024 09:13:23 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="zg26fw+j"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="KqCZHmSY"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 81F5C10E29B - for ; Sun, 29 Sep 2024 09:13:21 +0000 (UTC) -Received: from phl-compute-05.internal (phl-compute-05.phl.internal - [10.202.2.45]) - by mailfout.phl.internal (Postfix) with ESMTP id E2A35138038D; - Sun, 29 Sep 2024 05:13:20 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-05.internal (MEProxy); Sun, 29 Sep 2024 05:13:20 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601200; x= - 1727687600; bh=iGLjrwRg3952BWQtL3jOaqybvH+Nx4VkDEY8ywfL3lU=; b=z - g26fw+jb84AGHt+OPnTjHB9B3danUqvpazXOi4ClXaEMn4QqZMl9Pmj3Rxu1vFxQ - PmDo6lIZjxqR4edFYbvkxOrWJMeCKozmYDSkXOh4h5FaPATLo4ZefaRyIF9cpIDh - F9zA3/BJmNS9fSM4cjAz1PBtQeW9WB/KpveZxoqCHho5BBdZSsySspWnOkB2uAAt - MwNIJ5i3F8SvQxyG54kObRP/3BBaIxNEWJbi843LDcaoFttlAjpno6Ul9K8EqNlu - sq7y2SpAc+YiJA4BWvaqc3vpLK0Dh20j4+NJTQ1aiSRPmpfShFfL28R8DGcIw5YE - OrJk+ZqJb7hP0F7CO5LfA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601200; x= - 1727687600; bh=iGLjrwRg3952BWQtL3jOaqybvH+Nx4VkDEY8ywfL3lU=; b=K - qCZHmSYUXhYeU1tIbflbdnAGU8fdER2ih1IGl+ZvYhUiGDegKlyp6GuVPyj1o2km - ANjqAdZZh9YSyfinZXErU+a9ano9LjjcwBfRwSpLUUOTSD0kd9Pm88eOQc6NtDy/ - VgK7Goh/F4VIdkyAlY2V/dDvL8vfIm0WpZGwGlxngE1B6AM5sjDU71wgJS+UPdWB - 6xX2fh11hJ0iJeIUl8v5gLN7MaZspRVdldLDBHGh9fqtKymuVUc6WJu/K4XkEVDQ - dlruvIbYIKUxu/42GpTgF1f6JqNIPp5hU23JAlPXTaSPYfN4a8beaJoHKr7TqSBK - SKDLa4Ng0K832HpjUO/yQ== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:14 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 18/26] drm: sun4i: de3: Implement AFBC support -Date: Sun, 29 Sep 2024 22:04:50 +1300 -Message-ID: <20240929091107.838023-19-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - +From 0788787d1240dba85ecbbdb559cb46d413975656 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:50 +1300 +Subject: drm: sun4i: de3: Implement AFBC support Buffers, compressed with AFBC, are supported by the DE3 and above, and are generally more efficient for memory transfers. Add support for them. @@ -135,9 +12,6 @@ observed any SoC with such feature. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin ---- -Changelog v4..v5: -- Correct strict mode warnings from checkpatch.pl --- drivers/gpu/drm/sun4i/Makefile | 2 +- drivers/gpu/drm/sun4i/sun50i_afbc.c | 250 +++++++++++++++++++++++++ @@ -148,7 +22,7 @@ Changelog v4..v5: create mode 100644 drivers/gpu/drm/sun4i/sun50i_afbc.h diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile -index 3f516329f51ee..78290f1660fbd 100644 +index 3f516329f51e..78290f1660fb 100644 --- a/drivers/gpu/drm/sun4i/Makefile +++ b/drivers/gpu/drm/sun4i/Makefile @@ -17,7 +17,7 @@ sun8i-drm-hdmi-y += sun8i_hdmi_phy_clk.o @@ -162,7 +36,7 @@ index 3f516329f51ee..78290f1660fbd 100644 sun4i-tcon-y += sun4i_tcon_dclk.o diff --git a/drivers/gpu/drm/sun4i/sun50i_afbc.c b/drivers/gpu/drm/sun4i/sun50i_afbc.c new file mode 100644 -index 0000000000000..b55e1c5533714 +index 000000000000..b55e1c553371 --- /dev/null +++ b/drivers/gpu/drm/sun4i/sun50i_afbc.c @@ -0,0 +1,250 @@ @@ -418,7 +292,7 @@ index 0000000000000..b55e1c5533714 +} diff --git a/drivers/gpu/drm/sun4i/sun50i_afbc.h b/drivers/gpu/drm/sun4i/sun50i_afbc.h new file mode 100644 -index 0000000000000..cea685c868550 +index 000000000000..cea685c86855 --- /dev/null +++ b/drivers/gpu/drm/sun4i/sun50i_afbc.h @@ -0,0 +1,87 @@ @@ -510,7 +384,7 @@ index 0000000000000..cea685c868550 + +#endif diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index d19349eecc9de..84f8917e2dd87 100644 +index d19349eecc9d..84f8917e2dd8 100644 --- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c @@ -11,8 +11,10 @@ @@ -690,3 +564,6 @@ index d19349eecc9de..84f8917e2dd87 100644 if (ret) { dev_err(drm->dev, "Couldn't initialize layer\n"); return ERR_PTR(ret); +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch new file mode 100644 index 000000000000..8a814bcaf3db --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch @@ -0,0 +1,126 @@ +From 3b6462ebad249f4762acfd8e262442bb0cda95b4 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:40 +1300 +Subject: drm: sun4i: de3: add YUV support to the DE3 mixer + +The mixer in the DE3 display engine supports YUV 8 and 10 bit +formats in addition to 8-bit RGB. Add the required register +configuration and format enumeration callback functions to the mixer, +and store the in-use output format (defaulting to RGB) and color +encoding in engine variables. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 53 ++++++++++++++++++++++++++-- + drivers/gpu/drm/sun4i/sunxi_engine.h | 5 +++ + 2 files changed, 55 insertions(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index 252827715de1..a50c583852ed 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -23,7 +23,10 @@ + #include + #include + ++#include ++ + #include "sun4i_drv.h" ++#include "sun50i_fmt.h" + #include "sun8i_mixer.h" + #include "sun8i_ui_layer.h" + #include "sun8i_vi_layer.h" +@@ -390,12 +393,52 @@ static void sun8i_mixer_mode_set(struct sunxi_engine *engine, + + DRM_DEBUG_DRIVER("Switching display mixer interlaced mode %s\n", + interlaced ? "on" : "off"); ++ ++ if (engine->format == MEDIA_BUS_FMT_RGB888_1X24) ++ val = SUN8I_MIXER_BLEND_COLOR_BLACK; ++ else ++ val = 0xff108080; ++ ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_BLEND_BKCOLOR(bld_base), val); ++ regmap_write(mixer->engine.regs, ++ SUN8I_MIXER_BLEND_ATTR_FCOLOR(bld_base, 0), val); ++ ++ if (mixer->cfg->has_formatter) ++ sun50i_fmt_setup(mixer, mode->hdisplay, ++ mode->vdisplay, mixer->engine.format); ++} ++ ++static u32 *sun8i_mixer_get_supported_fmts(struct sunxi_engine *engine, u32 *num) ++{ ++ struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); ++ u32 *formats, count; ++ ++ count = 0; ++ ++ formats = kcalloc(5, sizeof(*formats), GFP_KERNEL); ++ if (!formats) ++ return NULL; ++ ++ if (mixer->cfg->has_formatter) { ++ formats[count++] = MEDIA_BUS_FMT_UYYVYY10_0_5X30; ++ formats[count++] = MEDIA_BUS_FMT_YUV8_1X24; ++ formats[count++] = MEDIA_BUS_FMT_UYVY8_1X16; ++ formats[count++] = MEDIA_BUS_FMT_UYYVYY8_0_5X24; ++ } ++ ++ formats[count++] = MEDIA_BUS_FMT_RGB888_1X24; ++ ++ *num = count; ++ ++ return formats; + } + + static const struct sunxi_engine_ops sun8i_engine_ops = { +- .commit = sun8i_mixer_commit, +- .layers_init = sun8i_layers_init, +- .mode_set = sun8i_mixer_mode_set, ++ .commit = sun8i_mixer_commit, ++ .layers_init = sun8i_layers_init, ++ .mode_set = sun8i_mixer_mode_set, ++ .get_supported_fmts = sun8i_mixer_get_supported_fmts, + }; + + static const struct regmap_config sun8i_mixer_regmap_config = { +@@ -456,6 +499,10 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, + dev_set_drvdata(dev, mixer); + mixer->engine.ops = &sun8i_engine_ops; + mixer->engine.node = dev->of_node; ++ /* default output format, supported by all mixers */ ++ mixer->engine.format = MEDIA_BUS_FMT_RGB888_1X24; ++ /* default color encoding, ignored with RGB I/O */ ++ mixer->engine.encoding = DRM_COLOR_YCBCR_BT601; + + if (of_property_present(dev->of_node, "iommus")) { + /* +diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h +index c48cbc1aceb8..ffafc29b3a0c 100644 +--- a/drivers/gpu/drm/sun4i/sunxi_engine.h ++++ b/drivers/gpu/drm/sun4i/sunxi_engine.h +@@ -6,6 +6,8 @@ + #ifndef _SUNXI_ENGINE_H_ + #define _SUNXI_ENGINE_H_ + ++#include ++ + struct drm_plane; + struct drm_crtc; + struct drm_device; +@@ -151,6 +153,9 @@ struct sunxi_engine { + + int id; + ++ u32 format; ++ enum drm_color_encoding encoding; ++ + /* Engine list management */ + struct list_head list; + }; +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch new file mode 100644 index 000000000000..5fb39d4f07d6 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch @@ -0,0 +1,83 @@ +From ff794822d56721795fec59dea66164cc19ba792c Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:43 +1300 +Subject: drm: sun4i: de3: add YUV support to the TCON + +Account for U/V channel subsampling by reducing the dot clock and +resolution with a divider in the DE3 timing controller if a YUV format +is selected. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun4i_tcon.c | 26 +++++++++++++++++++------- + 1 file changed, 19 insertions(+), 7 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c +index 3675c87461e9..af67bf2e6e09 100644 +--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c ++++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c +@@ -649,14 +649,26 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, + static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, + const struct drm_display_mode *mode) + { +- unsigned int bp, hsync, vsync, vtotal; ++ unsigned int bp, hsync, vsync, vtotal, div; ++ struct sun4i_crtc *scrtc = tcon->crtc; ++ struct sunxi_engine *engine = scrtc->engine; + u8 clk_delay; + u32 val; + + WARN_ON(!tcon->quirks->has_channel_1); + ++ switch (engine->format) { ++ case MEDIA_BUS_FMT_UYYVYY8_0_5X24: ++ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: ++ div = 2; ++ break; ++ default: ++ div = 1; ++ break; ++ } ++ + /* Configure the dot clock */ +- clk_set_rate(tcon->sclk1, mode->crtc_clock * 1000); ++ clk_set_rate(tcon->sclk1, mode->crtc_clock * 1000 / div); + + /* Adjust clock delay */ + clk_delay = sun4i_tcon_get_clk_delay(mode, 1); +@@ -675,17 +687,17 @@ static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, + + /* Set the input resolution */ + regmap_write(tcon->regs, SUN4I_TCON1_BASIC0_REG, +- SUN4I_TCON1_BASIC0_X(mode->crtc_hdisplay) | ++ SUN4I_TCON1_BASIC0_X(mode->crtc_hdisplay / div) | + SUN4I_TCON1_BASIC0_Y(mode->crtc_vdisplay)); + + /* Set the upscaling resolution */ + regmap_write(tcon->regs, SUN4I_TCON1_BASIC1_REG, +- SUN4I_TCON1_BASIC1_X(mode->crtc_hdisplay) | ++ SUN4I_TCON1_BASIC1_X(mode->crtc_hdisplay / div) | + SUN4I_TCON1_BASIC1_Y(mode->crtc_vdisplay)); + + /* Set the output resolution */ + regmap_write(tcon->regs, SUN4I_TCON1_BASIC2_REG, +- SUN4I_TCON1_BASIC2_X(mode->crtc_hdisplay) | ++ SUN4I_TCON1_BASIC2_X(mode->crtc_hdisplay / div) | + SUN4I_TCON1_BASIC2_Y(mode->crtc_vdisplay)); + + /* Set horizontal display timings */ +@@ -693,8 +705,8 @@ static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, + DRM_DEBUG_DRIVER("Setting horizontal total %d, backporch %d\n", + mode->htotal, bp); + regmap_write(tcon->regs, SUN4I_TCON1_BASIC3_REG, +- SUN4I_TCON1_BASIC3_H_TOTAL(mode->crtc_htotal) | +- SUN4I_TCON1_BASIC3_H_BACKPORCH(bp)); ++ SUN4I_TCON1_BASIC3_H_TOTAL(mode->crtc_htotal / div) | ++ SUN4I_TCON1_BASIC3_H_BACKPORCH(bp / div)); + + bp = mode->crtc_vtotal - mode->crtc_vsync_start; + DRM_DEBUG_DRIVER("Setting vertical total %d, backporch %d\n", +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-10-26-drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-module.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch similarity index 51% rename from patch/kernel/archive/sunxi-6.12/patches.drm/v5-10-26-drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-module.patch rename to patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch index 0a5e778361cb..68774b67bf48 100644 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-10-26-drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-module.patch +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch @@ -1,131 +1,7 @@ -From patchwork Sun Sep 29 09:04:42 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814926 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id F0390CF6497 - for ; Sun, 29 Sep 2024 09:12:31 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 7056610E291; - Sun, 29 Sep 2024 09:12:31 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="m4pGH+JR"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="GZiA+ab4"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 10D7C10E291 - for ; Sun, 29 Sep 2024 09:12:31 +0000 (UTC) -Received: from phl-compute-10.internal (phl-compute-10.phl.internal - [10.202.2.50]) - by mailfhigh.phl.internal (Postfix) with ESMTP id 71D2511401FB; - Sun, 29 Sep 2024 05:12:30 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-10.internal (MEProxy); Sun, 29 Sep 2024 05:12:30 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601150; x= - 1727687550; bh=x3OqmAxsNGOVVt9znS4fHvCxa6Knje0sdH9aSFhxmtA=; b=m - 4pGH+JRdo3/AGyusIVwMcipbC+x7O765KjsEpAsckZsBmkABZPXoHrgKkB8u4gGM - nQBnZ0S5Bc6MFSN2uIc5/Da0u7tR/H00Q1vXLZ4lB/bhKfdJVEN17RPXJvjaAp5c - xPtSWw5f0XUd3Jpvk7R3L5Up3Jj9Rsqd9GA5NqzbrUmpT0vp+J6F418kVBg0xm5/ - WmlPw4jdropcWTdHF4sso2qagUQDy7MUrXPIDfL5ajVBKrfjLNNCJM5sNvwpxs6L - NwqW7jynJNSDskvjH/o9+DrtBzQJl+eOKOd3s7NaYIrsxHnlKchO5YDlffdF3Zbj - eev9xws/g57JHjBm55Apw== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601150; x= - 1727687550; bh=x3OqmAxsNGOVVt9znS4fHvCxa6Knje0sdH9aSFhxmtA=; b=G - ZiA+ab4OqXFRv4mN05gfEdnR0XWGg+qNEFsDcOyHjFKvQK0z044pTBwcYO9xtvX6 - fXfRFDkAiho4XTXgJuF/imIY+eH4yXFV9TM4ypj/rSDRCeHUL0q1IWbGCa8t1d3I - unTHPiwas2feaMhe5tBA+AFCdpCFqOEBplHiDV5Z2yPXUEPG1sQxuzJTAsyP5ZiC - q5AqF4iApDs/6x6pdAi3I4W/rSRRqF5IMz3JK8wnQ7t/zo8oWrd/jMvu/T2yIKvl - nxV+XrLq1HfXAJiFvwjvBdQ3kj1hDdU88y3Rc/9V7akn3lK8JLXBEGOMsja8RoUg - 0AUbf6mXT0zFrPY2KF0pA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:24 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 10/26] drm: sun4i: de3: add YUV support to the color space - correction module -Date: Sun, 29 Sep 2024 22:04:42 +1300 -Message-ID: <20240929091107.838023-11-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - +From a23ed976ee720c2445791716d975f040ef576c2b Mon Sep 17 00:00:00 2001 From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:42 +1300 +Subject: drm: sun4i: de3: add YUV support to the color space correction module Add coefficients and support for YUV formats to the display engine colorspace and dynamic range correction submodule. @@ -137,7 +13,7 @@ Signed-off-by: Ryan Walklin 1 file changed, 162 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 8a336ccb27d33..e12a81fa91083 100644 +index 8a336ccb27d3..e12a81fa9108 100644 --- a/drivers/gpu/drm/sun4i/sun8i_csc.c +++ b/drivers/gpu/drm/sun4i/sun8i_csc.c @@ -5,6 +5,8 @@ @@ -344,3 +220,6 @@ index 8a336ccb27d33..e12a81fa91083 100644 val = mask; for (i = 0; i < 12; i++) { if ((i & 3) == 1) +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch new file mode 100644 index 000000000000..581242c382e9 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch @@ -0,0 +1,63 @@ +From 99d327853acbc5d6c6d4140f004f82fcd5c40ea1 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:38 +1300 +Subject: drm: sun4i: de3: add format enumeration function to engine + +The DE3 display engine supports YUV formats in addition to RGB. + +Add an optional format enumeration function to the engine. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sunxi_engine.h | 29 ++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h +index ec0c4932f15c..c48cbc1aceb8 100644 +--- a/drivers/gpu/drm/sun4i/sunxi_engine.h ++++ b/drivers/gpu/drm/sun4i/sunxi_engine.h +@@ -123,6 +123,17 @@ struct sunxi_engine_ops { + */ + void (*mode_set)(struct sunxi_engine *engine, + const struct drm_display_mode *mode); ++ ++ /** ++ * @get_supported_fmts ++ * ++ * This callback is used to enumerate all supported output ++ * formats by the engine. They are used for bridge format ++ * negotiation. ++ * ++ * This function is optional. ++ */ ++ u32 *(*get_supported_fmts)(struct sunxi_engine *engine, u32 *num); + }; + + /** +@@ -215,4 +226,22 @@ sunxi_engine_mode_set(struct sunxi_engine *engine, + if (engine->ops && engine->ops->mode_set) + engine->ops->mode_set(engine, mode); + } ++ ++/** ++ * sunxi_engine_get_supported_formats - Provide array of supported formats ++ * @engine: pointer to the engine ++ * @num: pointer to variable, which will hold number of formats ++ * ++ * This list can be used for format negotiation by bridge. ++ */ ++static inline u32 * ++sunxi_engine_get_supported_formats(struct sunxi_engine *engine, u32 *num) ++{ ++ if (engine->ops && engine->ops->get_supported_fmts) ++ return engine->ops->get_supported_fmts(engine, num); ++ ++ *num = 0; ++ ++ return NULL; ++} + #endif /* _SUNXI_ENGINE_H_ */ +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch new file mode 100644 index 000000000000..90f86befd415 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch @@ -0,0 +1,53 @@ +From f9a39553dcf5e87eba968d2aac4f5acf52baa392 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:39 +1300 +Subject: drm: sun4i: de3: add formatter flag to mixer config + +Only the DE3 (and newer) display engines have a formatter module. This +could be inferred from the is_de3 flag alone, however this will not +scale with addition of future DE versions in subsequent patches. + +Add a separate flag to signal this in the mixer configuration. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 + + drivers/gpu/drm/sun4i/sun8i_mixer.h | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c +index bd0fe2c6624e..252827715de1 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c +@@ -717,6 +717,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { + static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { + .ccsc = CCSC_MIXER0_LAYOUT, + .is_de3 = true, ++ .has_formatter = 1, + .mod_rate = 600000000, + .scaler_mask = 0xf, + .scanline_yuv = 4096, +diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h +index d7898c9c9cc0..8417b8fef2e1 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_mixer.h ++++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h +@@ -163,6 +163,7 @@ enum { + * @mod_rate: module clock rate that needs to be set in order to have + * a functional block. + * @is_de3: true, if this is next gen display engine 3.0, false otherwise. ++ * @has_formatter: true, if mixer has formatter core, for 10-bit and YUV handling + * @scaline_yuv: size of a scanline for VI scaler for YUV formats. + */ + struct sun8i_mixer_cfg { +@@ -172,6 +173,7 @@ struct sun8i_mixer_cfg { + int ccsc; + unsigned long mod_rate; + unsigned int is_de3 : 1; ++ unsigned int has_formatter : 1; + unsigned int scanline_yuv; + }; + +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch new file mode 100644 index 000000000000..41bd023772e6 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch @@ -0,0 +1,54 @@ +From 2d7c88fc2af6d07ccadc99b157753638b4940293 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:41 +1300 +Subject: drm: sun4i: de3: pass engine reference to ccsc setup function + +Configuration of the DE3 colorspace and dynamic range correction module +requires knowledge of the current video format and encoding. + +Pass the display engine by reference to the csc setup function, rather +than the register map alone, to allow access to this information. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 68d955c63b05..8a336ccb27d3 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -148,17 +148,19 @@ static void sun8i_csc_setup(struct regmap *map, u32 base, + regmap_write(map, SUN8I_CSC_CTRL(base), val); + } + +-static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, ++static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, + enum format_type fmt_type, + enum drm_color_encoding encoding, + enum drm_color_range range) + { + u32 addr, val, mask; ++ struct regmap *map; + const u32 *table; + int i; + + mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); + table = yuv2rgb_de3[range][encoding]; ++ map = engine->regs; + + switch (fmt_type) { + case FORMAT_TYPE_RGB: +@@ -204,7 +206,7 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, + u32 base; + + if (mixer->cfg->is_de3) { +- sun8i_de3_ccsc_setup(mixer->engine.regs, layer, ++ sun8i_de3_ccsc_setup(&mixer->engine, layer, + fmt_type, encoding, range); + return; + } +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch new file mode 100644 index 000000000000..3479d96ff100 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch @@ -0,0 +1,156 @@ +From 0d003a88bcacf5f405f3922b0c56b7eecdb68386 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:58 +1300 +Subject: drm: sun4i: de33: csc: add Display Engine 3.3 (DE33) support + +Like earlier DE versions, the DE33 has a CSC (Color Space Correction) +module. which provides color space conversion between BT2020/BT709, and +dynamic range conversion between SDR/ST2084/HLG. + +Add support for the DE33. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_csc.c | 96 +++++++++++++++++++++++++++++++ + drivers/gpu/drm/sun4i/sun8i_csc.h | 3 + + 2 files changed, 99 insertions(+) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c +index 2d5a2cf7cba2..45bd1ca06400 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.c ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.c +@@ -238,6 +238,14 @@ static const u32 yuv2yuv_de3[2][3][3][12] = { + }, + }; + ++static u32 sun8i_csc_base(struct sun8i_mixer *mixer, int layer) ++{ ++ if (mixer->cfg->de_type == sun8i_mixer_de33) ++ return sun8i_channel_base(mixer, layer) - 0x800; ++ else ++ return ccsc_base[mixer->cfg->ccsc][layer]; ++} ++ + static void sun8i_csc_setup(struct regmap *map, u32 base, + enum format_type fmt_type, + enum drm_color_encoding encoding, +@@ -358,6 +366,90 @@ static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, + mask, val); + } + ++/* extract constant from high word and invert sign if necessary */ ++static u32 sun8i_de33_ccsc_get_constant(u32 value) ++{ ++ value >>= 16; ++ ++ if (value & BIT(15)) ++ return 0x400 - (value & 0x3ff); ++ ++ return value; ++} ++ ++static void sun8i_de33_convert_table(const u32 *src, u32 *dst) ++{ ++ dst[0] = sun8i_de33_ccsc_get_constant(src[3]); ++ dst[1] = sun8i_de33_ccsc_get_constant(src[7]); ++ dst[2] = sun8i_de33_ccsc_get_constant(src[11]); ++ memcpy(&dst[3], src, sizeof(u32) * 12); ++ dst[6] &= 0xffff; ++ dst[10] &= 0xffff; ++ dst[14] &= 0xffff; ++} ++ ++static void sun8i_de33_ccsc_setup(struct sun8i_mixer *mixer, int layer, ++ enum format_type fmt_type, ++ enum drm_color_encoding encoding, ++ enum drm_color_range range) ++{ ++ u32 addr, val = 0, base, csc[15]; ++ struct sunxi_engine *engine; ++ struct regmap *map; ++ const u32 *table; ++ int i; ++ ++ table = yuv2rgb_de3[range][encoding]; ++ base = sun8i_csc_base(mixer, layer); ++ engine = &mixer->engine; ++ map = engine->regs; ++ ++ switch (fmt_type) { ++ case FORMAT_TYPE_RGB: ++ if (engine->format == MEDIA_BUS_FMT_RGB888_1X24) ++ break; ++ val = SUN8I_CSC_CTRL_EN; ++ sun8i_de33_convert_table(rgb2yuv_de3[engine->encoding], csc); ++ regmap_bulk_write(map, SUN50I_CSC_COEFF(base, 0), csc, 15); ++ break; ++ case FORMAT_TYPE_YUV: ++ table = sun8i_csc_get_de3_yuv_table(encoding, range, ++ engine->format, ++ engine->encoding); ++ if (!table) ++ break; ++ val = SUN8I_CSC_CTRL_EN; ++ sun8i_de33_convert_table(table, csc); ++ regmap_bulk_write(map, SUN50I_CSC_COEFF(base, 0), csc, 15); ++ break; ++ case FORMAT_TYPE_YVU: ++ table = sun8i_csc_get_de3_yuv_table(encoding, range, ++ engine->format, ++ engine->encoding); ++ if (!table) ++ table = yuv2yuv_de3[range][encoding][encoding]; ++ val = SUN8I_CSC_CTRL_EN; ++ sun8i_de33_convert_table(table, csc); ++ for (i = 0; i < 15; i++) { ++ addr = SUN50I_CSC_COEFF(base, i); ++ if (i > 3) { ++ if (((i - 3) & 3) == 1) ++ addr = SUN50I_CSC_COEFF(base, i + 1); ++ else if (((i - 3) & 3) == 2) ++ addr = SUN50I_CSC_COEFF(base, i - 1); ++ } ++ regmap_write(map, addr, csc[i]); ++ } ++ break; ++ default: ++ val = 0; ++ DRM_WARN("Wrong CSC mode specified.\n"); ++ return; ++ } ++ ++ regmap_write(map, SUN8I_CSC_CTRL(base), val); ++} ++ + void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, + enum format_type fmt_type, + enum drm_color_encoding encoding, +@@ -369,6 +461,10 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, + sun8i_de3_ccsc_setup(&mixer->engine, layer, + fmt_type, encoding, range); + return; ++ } else if (mixer->cfg->de_type == sun8i_mixer_de33) { ++ sun8i_de33_ccsc_setup(mixer, layer, fmt_type, ++ encoding, range); ++ return; + } + + if (layer < mixer->cfg->vi_num) { +diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h +index b7546e06e315..2b762cb79f02 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_csc.h ++++ b/drivers/gpu/drm/sun4i/sun8i_csc.h +@@ -20,6 +20,9 @@ struct sun8i_mixer; + #define SUN8I_CSC_CTRL(base) ((base) + 0x0) + #define SUN8I_CSC_COEFF(base, i) ((base) + 0x10 + 4 * (i)) + ++#define SUN50I_CSC_COEFF(base, i) ((base) + 0x04 + 4 * (i)) ++#define SUN50I_CSC_ALPHA(base) ((base) + 0x40) ++ + #define SUN8I_CSC_CTRL_EN BIT(0) + + enum format_type { +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch new file mode 100644 index 000000000000..cd060b36718e --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch @@ -0,0 +1,75 @@ +From 792b816c952bcf5dbf7c3ac7d90937bc71f0a7cd Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:57 +1300 +Subject: drm: sun4i: de33: fmt: add Display Engine 3.3 (DE33) support + +Like the DE3, the DE33 has a FMT (formatter) module, which +provides YUV444 to YUV422/YUV420 conversion, format re-mapping and color +depth conversion, although the DE33 module appears significantly more +capable, including up to 4K video support. + +Add support for the DE33. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun50i_fmt.c | 21 +++++++++++++++++++-- + drivers/gpu/drm/sun4i/sun50i_fmt.h | 1 + + 2 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.c b/drivers/gpu/drm/sun4i/sun50i_fmt.c +index 050a8716ae86..39682d4e6d20 100644 +--- a/drivers/gpu/drm/sun4i/sun50i_fmt.c ++++ b/drivers/gpu/drm/sun4i/sun50i_fmt.c +@@ -51,6 +51,19 @@ static void sun50i_fmt_de3_limits(u32 *limits, u32 colorspace, bool bit10) + } + } + ++static void sun50i_fmt_de33_limits(u32 *limits, u32 colorspace) ++{ ++ if (colorspace == SUN50I_FMT_CS_YUV444RGB) { ++ limits[0] = SUN50I_FMT_LIMIT(0, 4095); ++ limits[1] = SUN50I_FMT_LIMIT(0, 4095); ++ limits[2] = SUN50I_FMT_LIMIT(0, 4095); ++ } else { ++ limits[0] = SUN50I_FMT_LIMIT(256, 3840); ++ limits[1] = SUN50I_FMT_LIMIT(256, 3840); ++ limits[2] = SUN50I_FMT_LIMIT(256, 3840); ++ } ++} ++ + void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, + u16 height, u32 format) + { +@@ -60,10 +73,14 @@ void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, + + colorspace = sun50i_fmt_get_colorspace(format); + bit10 = sun50i_fmt_is_10bit(format); +- base = SUN50I_FMT_DE3; ++ base = mixer->cfg->de_type == sun8i_mixer_de3 ? ++ SUN50I_FMT_DE3 : SUN50I_FMT_DE33; + regs = sun8i_blender_regmap(mixer); + +- sun50i_fmt_de3_limits(limit, colorspace, bit10); ++ if (mixer->cfg->de_type == sun8i_mixer_de3) ++ sun50i_fmt_de3_limits(limit, colorspace, bit10); ++ else ++ sun50i_fmt_de33_limits(limit, colorspace); + + regmap_write(regs, SUN50I_FMT_CTRL(base), 0); + +diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.h b/drivers/gpu/drm/sun4i/sun50i_fmt.h +index 4127f7206aad..3e60d5c788b3 100644 +--- a/drivers/gpu/drm/sun4i/sun50i_fmt.h ++++ b/drivers/gpu/drm/sun4i/sun50i_fmt.h +@@ -9,6 +9,7 @@ + #include "sun8i_mixer.h" + + #define SUN50I_FMT_DE3 0xa8000 ++#define SUN50I_FMT_DE33 0x5000 + + #define SUN50I_FMT_CTRL(base) ((base) + 0x00) + #define SUN50I_FMT_SIZE(base) ((base) + 0x04) +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-23-26-drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch similarity index 57% rename from patch/kernel/archive/sunxi-6.12/patches.drm/v5-23-26-drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch rename to patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch index bfeaaafc46db..84e9458fb3fd 100644 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-23-26-drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch @@ -1,131 +1,7 @@ -From patchwork Sun Sep 29 09:04:55 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814939 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 92BDBCF6495 - for ; Sun, 29 Sep 2024 09:13:55 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 12D8810E29E; - Sun, 29 Sep 2024 09:13:55 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="UKPk283V"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="o8HeqjYH"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 796DD10E1C1 - for ; Sun, 29 Sep 2024 09:13:53 +0000 (UTC) -Received: from phl-compute-01.internal (phl-compute-01.phl.internal - [10.202.2.41]) - by mailfout.phl.internal (Postfix) with ESMTP id D9B0B13802B6; - Sun, 29 Sep 2024 05:13:52 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-01.internal (MEProxy); Sun, 29 Sep 2024 05:13:52 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601232; x= - 1727687632; bh=stM6cnmzNQV+JvWi2wmG6oMDUlFbNmlfb0DYGgwFxjc=; b=U - KPk283VG6adw5ejRqJmI2bgxh4v90FLk5+Y6tf31lk9BEApwXoLcSrIqPf8YS2rM - WzXQROhrOXzJnyciG06K4LWCtz4ZR30aL+52mAXyfvCUQ0f+H057mf7UxKoMHT8n - 8bmdCvX+qrk/ZZH0VejGOHtMMajmW0kvfPKzB688BOwQodhuPyGzg7E7sxMX0zqE - gWuHIamHws/XWSXGx3HGuqmLRJtdM0tRt+/U/7Km/ujO9rGppzM3fKNOK8GkjWQK - N99TOCksmc4Vo12PQUHqGEM1mW96JjU+L8xAIhrHWbGa2mkMsri8o/dc1cw5Thhe - njDIyqL8y96r+VbJ9E9Og== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601232; x= - 1727687632; bh=stM6cnmzNQV+JvWi2wmG6oMDUlFbNmlfb0DYGgwFxjc=; b=o - 8HeqjYHMVG0FGGI0ULQ+JdS0rkU7kqCrZfFH4lfhbVikfM7dfozyv8ouunRosO/Q - 4VmIMq/RdgxZjXbbSs6z6O4dmy5hTLqcwwiDZdaDp9kl7TWw9go8xlQvg8xxzLDh - exM1ub+qhrRRCXmiY24ggnkDgrmgpMUoth/YhnkepLI01tILoEEL0AwR7S6TPUH/ - 88CZtG0CCB2/3yQtdtO0mdKx9EnZv/fBreqwAf/HIPLJtV9bD1CQhyXW+lHPGYCY - 9HtaclLGIrtN8Pb35qzkDt9T4ZyuUXbRewIYggIHQ/46xBCl7rS1Nz6bdLKU3Qfp - ZAgChtf8TtKhxZ2r7z3AA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpeehnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:46 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 23/26] drm: sun4i: de33: mixer: add Display Engine 3.3 - (DE33) support -Date: Sun, 29 Sep 2024 22:04:55 +1300 -Message-ID: <20240929091107.838023-24-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - +From 66c111f3315d2c34c2f9bfb39de61bf3ec46a5f6 Mon Sep 17 00:00:00 2001 From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:55 +1300 +Subject: drm: sun4i: de33: mixer: add Display Engine 3.3 (DE33) support The DE33 is a newer version of the Allwinner Display Engine IP block, found in the H616, H618, H700 and T507 SoCs. DE2 and DE3 are already @@ -144,17 +20,13 @@ Extend the mixer to support the DE33. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin ---- -Changelog v4..v5: -- Whitespace fixes -- Correct strict mode warnings from checkpatch.pl --- drivers/gpu/drm/sun4i/sun8i_mixer.c | 109 ++++++++++++++++++++++++---- drivers/gpu/drm/sun4i/sun8i_mixer.h | 16 +++- 2 files changed, 108 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 600084286b39d..204fc8055b32a 100644 +index 600084286b39..204fc8055b32 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.c +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c @@ -321,8 +321,12 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, @@ -366,7 +238,7 @@ index 600084286b39d..204fc8055b32a 100644 }; MODULE_DEVICE_TABLE(of, sun8i_mixer_of_table); diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index 75facc7d1fa66..26b001164647c 100644 +index 75facc7d1fa6..26b001164647 100644 --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h @@ -21,6 +21,10 @@ @@ -425,3 +297,6 @@ index 75facc7d1fa66..26b001164647c 100644 return DE3_CH_BASE + channel * DE3_CH_SIZE; else return DE2_CH_BASE + channel * DE2_CH_SIZE; +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch new file mode 100644 index 000000000000..9028d40a3256 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch @@ -0,0 +1,77 @@ +From 412294545ec91452cc3eccff746a4243879b4cde Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:56 +1300 +Subject: drm: sun4i: de33: vi_scaler: add Display Engine 3.3 (DE33) support + +The vi_scaler appears to be used in preference to the ui_scaler module +for hardware video scaling in the DE33. + +Enable support for this scaler. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 19 +++++++++++++++---- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 7 ++++++- + 2 files changed, 21 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +index 7f1231cf0f01..180be9d67d9c 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c +@@ -95,12 +95,23 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, + hscale = state->src_w / state->crtc_w; + vscale = state->src_h / state->crtc_h; + +- sun8i_ui_scaler_setup(mixer, channel, src_w, src_h, dst_w, +- dst_h, hscale, vscale, hphase, vphase); +- sun8i_ui_scaler_enable(mixer, channel, true); ++ if (mixer->cfg->de_type == sun8i_mixer_de33) { ++ sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, ++ dst_w, dst_h, hscale, vscale, ++ hphase, vphase, ++ state->fb->format); ++ } else { ++ sun8i_ui_scaler_setup(mixer, channel, src_w, src_h, ++ dst_w, dst_h, hscale, vscale, ++ hphase, vphase); ++ sun8i_ui_scaler_enable(mixer, channel, true); ++ } + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); +- sun8i_ui_scaler_enable(mixer, channel, false); ++ if (mixer->cfg->de_type == sun8i_mixer_de33) ++ sun8i_vi_scaler_disable(mixer, channel); ++ else ++ sun8i_ui_scaler_enable(mixer, channel, false); + } + + /* Set base coordinates */ +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +index e7242301b312..9c7f6e7d71d5 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +@@ -835,7 +835,9 @@ static const u32 bicubic4coefftab32[480] = { + + static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) + { +- if (mixer->cfg->de_type == sun8i_mixer_de3) ++ if (mixer->cfg->de_type == sun8i_mixer_de33) ++ return sun8i_channel_base(mixer, channel) + 0x3000; ++ else if (mixer->cfg->de_type == sun8i_mixer_de3) + return DE3_VI_SCALER_UNIT_BASE + + DE3_VI_SCALER_UNIT_SIZE * channel; + else +@@ -845,6 +847,9 @@ static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) + + static bool sun8i_vi_scaler_is_vi_plane(struct sun8i_mixer *mixer, int channel) + { ++ if (mixer->cfg->de_type == sun8i_mixer_de33) ++ return mixer->cfg->map[channel] < mixer->cfg->vi_num; ++ + return true; + } + +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch new file mode 100644 index 000000000000..1aff0b4bcde5 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch @@ -0,0 +1,140 @@ +From e0de25f60a3535d345b33dcc541c814499151788 Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:44 +1300 +Subject: drm: sun4i: support YUV formats in VI scaler + +Now that YUV formats are available, enable support in the VI scaler. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin + +Changelog v4..v5: +- Add commit description +--- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 85 +++++++++++++++++-------- + 1 file changed, 58 insertions(+), 27 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +index 7ba75011adf9..2e49a6e5f1f1 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +@@ -843,6 +843,11 @@ static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) + DE2_VI_SCALER_UNIT_SIZE * channel; + } + ++static bool sun8i_vi_scaler_is_vi_plane(struct sun8i_mixer *mixer, int channel) ++{ ++ return true; ++} ++ + static int sun8i_vi_scaler_coef_index(unsigned int step) + { + unsigned int scale, int_part, float_part; +@@ -867,44 +872,65 @@ static int sun8i_vi_scaler_coef_index(unsigned int step) + } + } + +-static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base, +- u32 hstep, u32 vstep, +- const struct drm_format_info *format) ++static void sun8i_vi_scaler_set_coeff_vi(struct regmap *map, u32 base, ++ u32 hstep, u32 vstep, ++ const struct drm_format_info *format) + { + const u32 *ch_left, *ch_right, *cy; +- int offset, i; ++ int offset; + +- if (format->hsub == 1 && format->vsub == 1) { +- ch_left = lan3coefftab32_left; +- ch_right = lan3coefftab32_right; +- cy = lan2coefftab32; +- } else { ++ if (format->is_yuv) { + ch_left = bicubic8coefftab32_left; + ch_right = bicubic8coefftab32_right; + cy = bicubic4coefftab32; ++ } else { ++ ch_left = lan3coefftab32_left; ++ ch_right = lan3coefftab32_right; ++ cy = lan2coefftab32; + } + + offset = sun8i_vi_scaler_coef_index(hstep) * + SUN8I_VI_SCALER_COEFF_COUNT; +- for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) { +- regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, i), +- lan3coefftab32_left[offset + i]); +- regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, i), +- lan3coefftab32_right[offset + i]); +- regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, i), +- ch_left[offset + i]); +- regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, i), +- ch_right[offset + i]); +- } ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, 0), ++ &lan3coefftab32_left[offset], ++ SUN8I_VI_SCALER_COEFF_COUNT); ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, 0), ++ &lan3coefftab32_right[offset], ++ SUN8I_VI_SCALER_COEFF_COUNT); ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, 0), ++ &ch_left[offset], SUN8I_VI_SCALER_COEFF_COUNT); ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, 0), ++ &ch_right[offset], SUN8I_VI_SCALER_COEFF_COUNT); + + offset = sun8i_vi_scaler_coef_index(hstep) * + SUN8I_VI_SCALER_COEFF_COUNT; +- for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) { +- regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i), +- lan2coefftab32[offset + i]); +- regmap_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, i), +- cy[offset + i]); +- } ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, 0), ++ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, 0), ++ &cy[offset], SUN8I_VI_SCALER_COEFF_COUNT); ++} ++ ++static void sun8i_vi_scaler_set_coeff_ui(struct regmap *map, u32 base, ++ u32 hstep, u32 vstep, ++ const struct drm_format_info *format) ++{ ++ const u32 *table; ++ int offset; ++ ++ offset = sun8i_vi_scaler_coef_index(hstep) * ++ SUN8I_VI_SCALER_COEFF_COUNT; ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, 0), ++ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); ++ offset = sun8i_vi_scaler_coef_index(vstep) * ++ SUN8I_VI_SCALER_COEFF_COUNT; ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, 0), ++ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); ++ ++ table = format->is_yuv ? bicubic4coefftab32 : lan2coefftab32; ++ offset = sun8i_vi_scaler_coef_index(hstep) * ++ SUN8I_VI_SCALER_COEFF_COUNT; ++ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, 0), ++ &table[offset], SUN8I_VI_SCALER_COEFF_COUNT); + } + + void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) +@@ -994,6 +1020,11 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, + SUN8I_SCALER_VSU_CHPHASE(base), chphase); + regmap_write(mixer->engine.regs, + SUN8I_SCALER_VSU_CVPHASE(base), cvphase); +- sun8i_vi_scaler_set_coeff(mixer->engine.regs, base, +- hscale, vscale, format); ++ ++ if (sun8i_vi_scaler_is_vi_plane(mixer, layer)) ++ sun8i_vi_scaler_set_coeff_vi(mixer->engine.regs, base, ++ hscale, vscale, format); ++ else ++ sun8i_vi_scaler_set_coeff_ui(mixer->engine.regs, base, ++ hscale, vscale, format); + } +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch new file mode 100644 index 000000000000..59a56dd02497 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch @@ -0,0 +1,100 @@ +From 0c10a80b8e37d9a7fc57d8bf968c70419423065a Mon Sep 17 00:00:00 2001 +From: Jernej Skrabec +Date: Sun, 29 Sep 2024 22:04:47 +1300 +Subject: drm: sun4i: vi_scaler refactor vi_scaler enablement + +If the video scaler is required, then it is obligatory to set the +relevant register to enable it, so move this to the +sun8i_vi_scaler_setup() function. + +This simplifies the alternate case (scaler not required) so replace the +vi_scaler_enable() function with a vi_scaler_disable() function. + +Signed-off-by: Jernej Skrabec +Signed-off-by: Ryan Walklin +--- + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 3 +-- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 21 +++++++++++---------- + drivers/gpu/drm/sun4i/sun8i_vi_scaler.h | 2 +- + 3 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +index 4647e9bcccaa..e348fd0a3d81 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c +@@ -156,10 +156,9 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, + sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, dst_w, + dst_h, hscale, vscale, hphase, vphase, + format); +- sun8i_vi_scaler_enable(mixer, channel, true); + } else { + DRM_DEBUG_DRIVER("HW scaling is not needed\n"); +- sun8i_vi_scaler_enable(mixer, channel, false); ++ sun8i_vi_scaler_disable(mixer, channel); + } + + regmap_write(mixer->engine.regs, +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +index aa346c3beb30..e7242301b312 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c +@@ -933,20 +933,13 @@ static void sun8i_vi_scaler_set_coeff_ui(struct regmap *map, u32 base, + &table[offset], SUN8I_VI_SCALER_COEFF_COUNT); + } + +-void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) ++void sun8i_vi_scaler_disable(struct sun8i_mixer *mixer, int layer) + { +- u32 val, base; ++ u32 base; + + base = sun8i_vi_scaler_base(mixer, layer); + +- if (enable) +- val = SUN8I_SCALER_VSU_CTRL_EN | +- SUN8I_SCALER_VSU_CTRL_COEFF_RDY; +- else +- val = 0; +- +- regmap_write(mixer->engine.regs, +- SUN8I_SCALER_VSU_CTRL(base), val); ++ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), 0); + } + + void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, +@@ -982,6 +975,9 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, + cvphase = vphase; + } + ++ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), ++ SUN8I_SCALER_VSU_CTRL_EN); ++ + if (mixer->cfg->de_type >= sun8i_mixer_de3) { + u32 val; + +@@ -1027,4 +1023,9 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, + else + sun8i_vi_scaler_set_coeff_ui(mixer->engine.regs, base, + hscale, vscale, format); ++ ++ if (mixer->cfg->de_type <= sun8i_mixer_de3) ++ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), ++ SUN8I_SCALER_VSU_CTRL_EN | ++ SUN8I_SCALER_VSU_CTRL_COEFF_RDY); + } +diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h +index 68f6593b369a..e801bc7a4189 100644 +--- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h ++++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h +@@ -69,7 +69,7 @@ + #define SUN50I_SCALER_VSU_ANGLE_SHIFT(x) (((x) << 16) & 0xF) + #define SUN50I_SCALER_VSU_ANGLE_OFFSET(x) ((x) & 0xFF) + +-void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable); ++void sun8i_vi_scaler_disable(struct sun8i_mixer *mixer, int layer); + void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, + u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, + u32 hscale, u32 vscale, u32 hphase, u32 vphase, +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch new file mode 100644 index 000000000000..86b0c0cb30ca --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch @@ -0,0 +1,35 @@ +From b8344d8eb9d000bc2984a5fcafc25b527f361b5b Mon Sep 17 00:00:00 2001 +From: Ryan Walklin +Date: Sun, 29 Sep 2024 22:04:51 +1300 +Subject: dt-bindings: allwinner: add H616 DE33 bus binding + +The Allwinner H616 and variants have a new display engine revision +(DE33). + +Add a display engine bus binding for the DE33. + +Signed-off-by: Ryan Walklin +Acked-by: Conor Dooley +Reviewed-by: Chen-Yu Tsai +--- + .../devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml +index 9845a187bdf6..ea7ee89158c6 100644 +--- a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml ++++ b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml +@@ -24,7 +24,9 @@ properties: + oneOf: + - const: allwinner,sun50i-a64-de2 + - items: +- - const: allwinner,sun50i-h6-de3 ++ - enum: ++ - allwinner,sun50i-h6-de3 ++ - allwinner,sun50i-h616-de33 + - const: allwinner,sun50i-a64-de2 + + reg: +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-clock-binding.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-clock-binding.patch new file mode 100644 index 000000000000..65411eb517a8 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-clock-binding.patch @@ -0,0 +1,32 @@ +From 58a606c8136c57d23b4e35f0f50cb140f1d65d9b Mon Sep 17 00:00:00 2001 +From: Ryan Walklin +Date: Sun, 29 Sep 2024 22:04:52 +1300 +Subject: dt-bindings: allwinner: add H616 DE33 clock binding + +The Allwinner H616 and variants have a new display engine revision +(DE33). + +Add a clock binding for the DE33. + +Signed-off-by: Ryan Walklin +Acked-by: Conor Dooley +Reviewed-by: Chen-Yu Tsai +--- + .../devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml b/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml +index 70369bd633e4..7fcd55d468d4 100644 +--- a/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml ++++ b/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml +@@ -25,6 +25,7 @@ properties: + - const: allwinner,sun50i-a64-de2-clk + - const: allwinner,sun50i-h5-de2-clk + - const: allwinner,sun50i-h6-de3-clk ++ - const: allwinner,sun50i-h616-de33-clk + - items: + - const: allwinner,sun8i-r40-de2-clk + - const: allwinner,sun8i-h3-de2-clk +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch new file mode 100644 index 000000000000..d3a92736cc03 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch @@ -0,0 +1,36 @@ +From 12d7983166ed867dd72c023af036b1397aec66ba Mon Sep 17 00:00:00 2001 +From: Ryan Walklin +Date: Sun, 29 Sep 2024 22:04:53 +1300 +Subject: dt-bindings: allwinner: add H616 DE33 mixer binding + +The Allwinner H616 and variants have a new display engine revision +(DE33). + +The mixer configuration registers are significantly different to the DE3 +and DE2 revisions, being split into separate top and display blocks, +therefore a fallback for the mixer compatible is not provided. + +Add a display engine mixer binding for the DE33. + +Signed-off-by: Ryan Walklin +Acked-by: Conor Dooley +Reviewed-by: Chen-Yu Tsai +--- + .../bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml +index b75c1ec686ad..c37eb8ae1b8e 100644 +--- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml ++++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml +@@ -24,6 +24,7 @@ properties: + - allwinner,sun50i-a64-de2-mixer-0 + - allwinner,sun50i-a64-de2-mixer-1 + - allwinner,sun50i-h6-de3-mixer-0 ++ - allwinner,sun50i-h616-de33-mixer-0 + + reg: + maxItems: 1 +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-01-26-drm-sun4i-de2-de3-Change-CSC-argument.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-01-26-drm-sun4i-de2-de3-Change-CSC-argument.patch deleted file mode 100644 index c565709fcbe0..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-01-26-drm-sun4i-de2-de3-Change-CSC-argument.patch +++ /dev/null @@ -1,298 +0,0 @@ -From patchwork Sun Sep 29 09:04:33 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814917 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 23AB6CF6497 - for ; Sun, 29 Sep 2024 09:11:36 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 83FF410E248; - Sun, 29 Sep 2024 09:11:35 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="38VLnHTA"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="OOPwpX74"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 142A310E248 - for ; Sun, 29 Sep 2024 09:11:34 +0000 (UTC) -Received: from phl-compute-06.internal (phl-compute-06.phl.internal - [10.202.2.46]) - by mailfout.phl.internal (Postfix) with ESMTP id 7525013802BE; - Sun, 29 Sep 2024 05:11:33 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-06.internal (MEProxy); Sun, 29 Sep 2024 05:11:33 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601093; x= - 1727687493; bh=8EPuPZU1esPvnRrvnyjMVZEuRv4nNZQffcu6cFWSCD4=; b=3 - 8VLnHTARHEkw0JZGXK+SQtSAldj8DZ8EofgxCNrqpkBwKaWrZm1ZxbXztvqsuhZP - rWH+wudEPX4glxYe0nwDyrNjo7vBd7gBsWcxgQj7rU+3FTsUZPNp7vJXoihltIPK - igDJzTwEfsUgFQyI7Vm13Zd5TMqU82HCa02FZBI9Bgb1S5SYjVUKlHMUTbZiQaj1 - 8RR7SWIjSnNjCSiSEuzxl8gT5J+KhqJaGJmJI5bhSomcPo9TB2u6YEZmGJw+790E - VeAjDr9rJ0I7GY9uUGP6csuaJKBUFX0vM5eK9sTD1UPFQ+HdR54x9ieiX7vkLMza - doSCLF687oNabWc1DSL8w== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601093; x= - 1727687493; bh=8EPuPZU1esPvnRrvnyjMVZEuRv4nNZQffcu6cFWSCD4=; b=O - OPwpX74jwvWYHbywWoFKCi6aWYD/C9NEczG2L2tFZRW68hKN7rASt/k8XARKKMXS - 6hvRsyev6aFMNsULcEjw4BOv3crHDVulqnz43sdeqngIMxisEFIPKh/FaFWObfGW - sNU6ksmrGUp9SMMZsZEwjigw+GEU0R9kzt+WCPlGlbYij2w7YpAHM2zTZ7yQPYdH - X8bo/rT9juiaaDc3FcFcHj/UaCFjhg9CL95rKJgBTp5yoiVIVOMu2/bQkyraIpl1 - cFZAIAjfgXLG3UZM9vHzwCWxOUS2LW2upa7ERyyMGYjVuk5v0AaWGN09vwKIVNar - JmVLr5TRbBAgovFDfIzxw== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:11:27 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 01/26] drm: sun4i: de2/de3: Change CSC argument -Date: Sun, 29 Sep 2024 22:04:33 +1300 -Message-ID: <20240929091107.838023-2-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Currently, CSC module takes care only for converting YUV to RGB. -However, DE3 is more suited to work in YUV color space. Change CSC mode -argument to format type to be more neutral. New argument only tells -layer format type and doesn't imply output type. - -This commit doesn't make any functional change. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin -Reviewed-by: Andre Przywara ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 22 +++++++++++----------- - drivers/gpu/drm/sun4i/sun8i_csc.h | 10 +++++----- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 16 ++++++++-------- - 3 files changed, 24 insertions(+), 24 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 58480d8e4f704..6ebd1c3aa3ab5 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -108,7 +108,7 @@ static const u32 yuv2rgb_de3[2][3][12] = { - }; - - static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { -@@ -118,12 +118,12 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, - - table = yuv2rgb[range][encoding]; - -- switch (mode) { -- case SUN8I_CSC_MODE_YUV2RGB: -+ switch (fmt_type) { -+ case FORMAT_TYPE_YUV: - base_reg = SUN8I_CSC_COEFF(base, 0); - regmap_bulk_write(map, base_reg, table, 12); - break; -- case SUN8I_CSC_MODE_YVU2RGB: -+ case FORMAT_TYPE_YVU: - for (i = 0; i < 12; i++) { - if ((i & 3) == 1) - base_reg = SUN8I_CSC_COEFF(base, i + 1); -@@ -141,7 +141,7 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, - } - - static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { -@@ -151,12 +151,12 @@ static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, - - table = yuv2rgb_de3[range][encoding]; - -- switch (mode) { -- case SUN8I_CSC_MODE_YUV2RGB: -+ switch (fmt_type) { -+ case FORMAT_TYPE_YUV: - addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); - regmap_bulk_write(map, addr, table, 12); - break; -- case SUN8I_CSC_MODE_YVU2RGB: -+ case FORMAT_TYPE_YVU: - for (i = 0; i < 12; i++) { - if ((i & 3) == 1) - addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, -@@ -206,7 +206,7 @@ static void sun8i_de3_ccsc_enable(struct regmap *map, int layer, bool enable) - } - - void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { -@@ -214,14 +214,14 @@ void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, - - if (mixer->cfg->is_de3) { - sun8i_de3_ccsc_set_coefficients(mixer->engine.regs, layer, -- mode, encoding, range); -+ fmt_type, encoding, range); - return; - } - - base = ccsc_base[mixer->cfg->ccsc][layer]; - - sun8i_csc_set_coefficients(mixer->engine.regs, base, -- mode, encoding, range); -+ fmt_type, encoding, range); - } - - void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable) -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h -index 828b86fd0cabb..7322770f39f03 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.h -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.h -@@ -22,14 +22,14 @@ struct sun8i_mixer; - - #define SUN8I_CSC_CTRL_EN BIT(0) - --enum sun8i_csc_mode { -- SUN8I_CSC_MODE_OFF, -- SUN8I_CSC_MODE_YUV2RGB, -- SUN8I_CSC_MODE_YVU2RGB, -+enum format_type { -+ FORMAT_TYPE_RGB, -+ FORMAT_TYPE_YUV, -+ FORMAT_TYPE_YVU, - }; - - void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum sun8i_csc_mode mode, -+ enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range); - void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable); -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 9c09d9c08496d..8a80934e928fe 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -193,19 +193,19 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - return 0; - } - --static u32 sun8i_vi_layer_get_csc_mode(const struct drm_format_info *format) -+static u32 sun8i_vi_layer_get_format_type(const struct drm_format_info *format) - { - if (!format->is_yuv) -- return SUN8I_CSC_MODE_OFF; -+ return FORMAT_TYPE_RGB; - - switch (format->format) { - case DRM_FORMAT_YVU411: - case DRM_FORMAT_YVU420: - case DRM_FORMAT_YVU422: - case DRM_FORMAT_YVU444: -- return SUN8I_CSC_MODE_YVU2RGB; -+ return FORMAT_TYPE_YVU; - default: -- return SUN8I_CSC_MODE_YUV2RGB; -+ return FORMAT_TYPE_YUV; - } - } - -@@ -213,7 +213,7 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, - int overlay, struct drm_plane *plane) - { - struct drm_plane_state *state = plane->state; -- u32 val, ch_base, csc_mode, hw_fmt; -+ u32 val, ch_base, fmt_type, hw_fmt; - const struct drm_format_info *fmt; - int ret; - -@@ -231,9 +231,9 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, - SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay), - SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_MASK, val); - -- csc_mode = sun8i_vi_layer_get_csc_mode(fmt); -- if (csc_mode != SUN8I_CSC_MODE_OFF) { -- sun8i_csc_set_ccsc_coefficients(mixer, channel, csc_mode, -+ fmt_type = sun8i_vi_layer_get_format_type(fmt); -+ if (fmt_type != FORMAT_TYPE_RGB) { -+ sun8i_csc_set_ccsc_coefficients(mixer, channel, fmt_type, - state->color_encoding, - state->color_range); - sun8i_csc_enable_ccsc(mixer, channel, true); diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-02-26-drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-02-26-drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch deleted file mode 100644 index 4990fb79ff5b..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-02-26-drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch +++ /dev/null @@ -1,341 +0,0 @@ -From patchwork Sun Sep 29 09:04:34 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814918 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 4CCEFCF6495 - for ; Sun, 29 Sep 2024 09:11:42 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 8A2AF10E24A; - Sun, 29 Sep 2024 09:11:41 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="dbT6G4w9"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="jH2oVfH4"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 931E110E24A - for ; Sun, 29 Sep 2024 09:11:40 +0000 (UTC) -Received: from phl-compute-05.internal (phl-compute-05.phl.internal - [10.202.2.45]) - by mailfhigh.phl.internal (Postfix) with ESMTP id D24C811402BC; - Sun, 29 Sep 2024 05:11:39 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-05.internal (MEProxy); Sun, 29 Sep 2024 05:11:39 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601099; x= - 1727687499; bh=txXpEzfBA4xFxC8kyohRkVUkxCg0r+HkhJCRkjADZZQ=; b=d - bT6G4w9iljM9i3bmcVv7IQRuM4tJMC3YBwC0G6B7T69VuIAurxYTcRWqd+W0npRx - CdLoo8O+/iO4dPnG6Oumtsdr9YX57+UXbyvTjwDkq9gnp+/p9rWwNQMxGeGRouWE - 1Nq5CLYf0RYajy0ucjN0RotUkv9oRQYPsYvu4sUgddpJBqI2NtAaquMbZiUwjBpU - KvL3F/GEG0CQEC4JteqGD5CjyomEVk5c+qHdm++uqjG53PTj9htkCu9nSGo9m8rx - QmO2dA5gna5QPEb+UOMfhZugYJY/fTk+U+XofaAS8QHqKcV/o7X6zkAp3H0BC+HE - SQ/6FBVTuHDxDcLgLDaaA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601099; x= - 1727687499; bh=txXpEzfBA4xFxC8kyohRkVUkxCg0r+HkhJCRkjADZZQ=; b=j - H2oVfH43/wk+jGkZ4PLIVf8x+sJYKXTF3IqF91LwxmVjPDmNrcAesybWX6Ha86hI - gF1wGiD3+Sv75lWHkSxQfJk/P+aubvljpqndrxl8NYpvmh3n5iJTgIiIkKjUIbEB - mZChfDF39BRVUb8jvn2vfclHhs2cEhXWIzRYuOCgdJcR1Al1uVVOYFL9egfzDBLu - E0o22WRUCWse7AVEYjqxmikcWfPXEERSsspokFGGPziOyw5IQMOkch5Bw0m0lZ1C - xPqpD6bEbnMcsPMNBBBYtJBGwlSHKXZ2z9v8J4GuKV5w97faQw03G1xWhBaNtgPE - d1iInew3zliqenzM1hesg== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudefucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:11:33 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 02/26] drm: sun4i: de2/de3: Merge CSC functions into one -Date: Sun, 29 Sep 2024 22:04:34 +1300 -Message-ID: <20240929091107.838023-3-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -At the moment the colour space conversion is handled by two functions: -one to setup the conversion parameters, and another one to enable the -conversion. Merging both into one gives more flexibility for upcoming -extensions to support whole YUV pipelines, in the DE33. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin -Reviewed-by: Andre Przywara ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 89 ++++++++++---------------- - drivers/gpu/drm/sun4i/sun8i_csc.h | 9 ++- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 11 +--- - 3 files changed, 40 insertions(+), 69 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 6ebd1c3aa3ab5..0dcbc0866ae82 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -107,23 +107,28 @@ static const u32 yuv2rgb_de3[2][3][12] = { - }, - }; - --static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, -- enum format_type fmt_type, -- enum drm_color_encoding encoding, -- enum drm_color_range range) -+static void sun8i_csc_setup(struct regmap *map, u32 base, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range) - { -+ u32 base_reg, val; - const u32 *table; -- u32 base_reg; - int i; - - table = yuv2rgb[range][encoding]; - - switch (fmt_type) { -+ case FORMAT_TYPE_RGB: -+ val = 0; -+ break; - case FORMAT_TYPE_YUV: -+ val = SUN8I_CSC_CTRL_EN; - base_reg = SUN8I_CSC_COEFF(base, 0); - regmap_bulk_write(map, base_reg, table, 12); - break; - case FORMAT_TYPE_YVU: -+ val = SUN8I_CSC_CTRL_EN; - for (i = 0; i < 12; i++) { - if ((i & 3) == 1) - base_reg = SUN8I_CSC_COEFF(base, i + 1); -@@ -135,28 +140,37 @@ static void sun8i_csc_set_coefficients(struct regmap *map, u32 base, - } - break; - default: -+ val = 0; - DRM_WARN("Wrong CSC mode specified.\n"); - return; - } -+ -+ regmap_write(map, SUN8I_CSC_CTRL(base), val); - } - --static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, -- enum format_type fmt_type, -- enum drm_color_encoding encoding, -- enum drm_color_range range) -+static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range) - { -+ u32 addr, val, mask; - const u32 *table; -- u32 addr; - int i; - -+ mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); - table = yuv2rgb_de3[range][encoding]; - - switch (fmt_type) { -+ case FORMAT_TYPE_RGB: -+ val = 0; -+ break; - case FORMAT_TYPE_YUV: -+ val = mask; - addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, layer, 0); - regmap_bulk_write(map, addr, table, 12); - break; - case FORMAT_TYPE_YVU: -+ val = mask; - for (i = 0; i < 12; i++) { - if ((i & 3) == 1) - addr = SUN50I_MIXER_BLEND_CSC_COEFF(DE3_BLD_BASE, -@@ -173,67 +187,30 @@ static void sun8i_de3_ccsc_set_coefficients(struct regmap *map, int layer, - } - break; - default: -+ val = 0; - DRM_WARN("Wrong CSC mode specified.\n"); - return; - } --} -- --static void sun8i_csc_enable(struct regmap *map, u32 base, bool enable) --{ -- u32 val; -- -- if (enable) -- val = SUN8I_CSC_CTRL_EN; -- else -- val = 0; -- -- regmap_update_bits(map, SUN8I_CSC_CTRL(base), SUN8I_CSC_CTRL_EN, val); --} -- --static void sun8i_de3_ccsc_enable(struct regmap *map, int layer, bool enable) --{ -- u32 val, mask; -- -- mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); -- -- if (enable) -- val = mask; -- else -- val = 0; - - regmap_update_bits(map, SUN50I_MIXER_BLEND_CSC_CTL(DE3_BLD_BASE), - mask, val); - } - --void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum format_type fmt_type, -- enum drm_color_encoding encoding, -- enum drm_color_range range) --{ -- u32 base; -- -- if (mixer->cfg->is_de3) { -- sun8i_de3_ccsc_set_coefficients(mixer->engine.regs, layer, -- fmt_type, encoding, range); -- return; -- } -- -- base = ccsc_base[mixer->cfg->ccsc][layer]; -- -- sun8i_csc_set_coefficients(mixer->engine.regs, base, -- fmt_type, encoding, range); --} -- --void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable) -+void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range) - { - u32 base; - - if (mixer->cfg->is_de3) { -- sun8i_de3_ccsc_enable(mixer->engine.regs, layer, enable); -+ sun8i_de3_ccsc_setup(mixer->engine.regs, layer, -+ fmt_type, encoding, range); - return; - } - - base = ccsc_base[mixer->cfg->ccsc][layer]; - -- sun8i_csc_enable(mixer->engine.regs, base, enable); -+ sun8i_csc_setup(mixer->engine.regs, base, -+ fmt_type, encoding, range); - } -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h -index 7322770f39f03..b7546e06e315c 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.h -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.h -@@ -28,10 +28,9 @@ enum format_type { - FORMAT_TYPE_YVU, - }; - --void sun8i_csc_set_ccsc_coefficients(struct sun8i_mixer *mixer, int layer, -- enum format_type fmt_type, -- enum drm_color_encoding encoding, -- enum drm_color_range range); --void sun8i_csc_enable_ccsc(struct sun8i_mixer *mixer, int layer, bool enable); -+void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range); - - #endif -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 8a80934e928fe..f3a5329351caa 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -232,14 +232,9 @@ static int sun8i_vi_layer_update_formats(struct sun8i_mixer *mixer, int channel, - SUN8I_MIXER_CHAN_VI_LAYER_ATTR_FBFMT_MASK, val); - - fmt_type = sun8i_vi_layer_get_format_type(fmt); -- if (fmt_type != FORMAT_TYPE_RGB) { -- sun8i_csc_set_ccsc_coefficients(mixer, channel, fmt_type, -- state->color_encoding, -- state->color_range); -- sun8i_csc_enable_ccsc(mixer, channel, true); -- } else { -- sun8i_csc_enable_ccsc(mixer, channel, false); -- } -+ sun8i_csc_set_ccsc(mixer, channel, fmt_type, -+ state->color_encoding, -+ state->color_range); - - if (!fmt->is_yuv) - val = SUN8I_MIXER_CHAN_VI_LAYER_ATTR_RGB_MODE; diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-03-26-drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-03-26-drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch deleted file mode 100644 index 7c3b62267847..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-03-26-drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch +++ /dev/null @@ -1,185 +0,0 @@ -From patchwork Sun Sep 29 09:04:35 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814919 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 2A5E3CF6497 - for ; Sun, 29 Sep 2024 09:11:48 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id A798610E284; - Sun, 29 Sep 2024 09:11:47 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="yk++jg4p"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="hSEHRMj3"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 9D25710E284 - for ; Sun, 29 Sep 2024 09:11:46 +0000 (UTC) -Received: from phl-compute-06.internal (phl-compute-06.phl.internal - [10.202.2.46]) - by mailfout.phl.internal (Postfix) with ESMTP id 0C19E13802BE; - Sun, 29 Sep 2024 05:11:46 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-06.internal (MEProxy); Sun, 29 Sep 2024 05:11:46 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601106; x= - 1727687506; bh=j39o6gjNS9OmLnvkrdvnX7rGkSbKds69G+QiPuGs8E4=; b=y - k++jg4pU0DUXIdhZl2Xz1RQvdHiYKycEucRVTxJHFOwA1BX9sz999Pi1hy6PFHAd - sH1i1gfkJ3M8NM/ntRO8xLc3gu+9bNA0bJsrIHMl/PJDkOzKsQN2sUcFga5x926x - cs/doBNFonXZ+8/G9AjHaD46g4cEGQJbP48iBZvhAjQTvQuydWy+vQLDHWPti0+V - 0wt2ncrh+BAomzDCuBAFi9H1YUlauanPP3VxQK7rfIvhXtZoNn8g3Zekono5Z1kU - f8JpXnol+uxWRuMH/nXV1qmc6OKRN1tKmxaggbyoxcdmhSUejW4A9iOOciCwNJgo - r7+JUKfEmD+zvBY3v9UhA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601106; x= - 1727687506; bh=j39o6gjNS9OmLnvkrdvnX7rGkSbKds69G+QiPuGs8E4=; b=h - SEHRMj3SsQINB+c2rnIQtJtzifoMR1u/ryECL+L3pnz+ewA5rEooCVIUqLdnhhAk - IU+EJRJ22k+YhUBW6hnHlon9jvLQk/KjPfbwMnetSgLM9dAuWwI1fFdsq2TKRFpH - cxvhv+ASe+SVyu7IfKdjF9XqvHSjFQdpPnyU6LPhWISUCbhvh1tSgbO8pE+e7/mp - OA1wcW2S43I0KLz+zex7M8CSnlhSUTZdaETZU9I5tZp4RbOBsNmP5MWGjq4OvklK - cxMZRIboMqrD5zyZ+3+Vj0gsRanuONCtNJA3Ug3xboosdRed3eNkgjz1P593sHPQ - 2bhgYrxM7m3Isw6ANDVaA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:11:40 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 03/26] drm: sun4i: de2/de3: call csc setup also for UI - layer -Date: Sun, 29 Sep 2024 22:04:35 +1300 -Message-ID: <20240929091107.838023-4-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Currently, only VI layer calls CSC setup function. This comes from DE2 -limitation, which doesn't have CSC unit for UI layers. However, DE3 has -separate CSC units for each layer. This allows display pipeline to make -output signal in different color spaces. To support both use cases, add -a call to CSC setup function also in UI layer code. For DE2, this will -be a no-op, but it will allow DE3 to output signal in multiple formats. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 8 +++++--- - drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 6 ++++++ - 2 files changed, 11 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 0dcbc0866ae82..68d955c63b05b 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -209,8 +209,10 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - return; - } - -- base = ccsc_base[mixer->cfg->ccsc][layer]; -+ if (layer < mixer->cfg->vi_num) { -+ base = ccsc_base[mixer->cfg->ccsc][layer]; - -- sun8i_csc_setup(mixer->engine.regs, base, -- fmt_type, encoding, range); -+ sun8i_csc_setup(mixer->engine.regs, base, -+ fmt_type, encoding, range); -+ } - } -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index b90e5edef4e88..aa987bca1dbb9 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -20,6 +20,7 @@ - #include - #include - -+#include "sun8i_csc.h" - #include "sun8i_mixer.h" - #include "sun8i_ui_layer.h" - #include "sun8i_ui_scaler.h" -@@ -135,6 +136,11 @@ static int sun8i_ui_layer_update_formats(struct sun8i_mixer *mixer, int channel, - SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay), - SUN8I_MIXER_CHAN_UI_LAYER_ATTR_FBFMT_MASK, val); - -+ /* Note: encoding and range arguments are ignored for RGB */ -+ sun8i_csc_set_ccsc(mixer, channel, FORMAT_TYPE_RGB, -+ DRM_COLOR_YCBCR_BT601, -+ DRM_COLOR_YCBCR_FULL_RANGE); -+ - return 0; - } - diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-04-26-drm-sun4i-de2-Initialize-layer-fields-earlier.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-04-26-drm-sun4i-de2-Initialize-layer-fields-earlier.patch deleted file mode 100644 index cd84ba1d2b7b..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-04-26-drm-sun4i-de2-Initialize-layer-fields-earlier.patch +++ /dev/null @@ -1,195 +0,0 @@ -From patchwork Sun Sep 29 09:04:36 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814920 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 3D795CF6497 - for ; Sun, 29 Sep 2024 09:11:55 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id B363410E286; - Sun, 29 Sep 2024 09:11:54 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="f1yJBu/L"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="auIuczCd"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 33C8910E286 - for ; Sun, 29 Sep 2024 09:11:53 +0000 (UTC) -Received: from phl-compute-10.internal (phl-compute-10.phl.internal - [10.202.2.50]) - by mailfhigh.phl.internal (Postfix) with ESMTP id 964C6114012F; - Sun, 29 Sep 2024 05:11:52 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-10.internal (MEProxy); Sun, 29 Sep 2024 05:11:52 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601112; x= - 1727687512; bh=nay3ZyN0cN/80lVEv9bgr4vS0wpneM/GiqVSWG6S8J8=; b=f - 1yJBu/L9KjlZQrAK9vJ3KmOClx1tCVF774B6/cGX4LfQ9nzvw6C1OYFcMDPtz3PU - SibJfvSiCdm8S39EJRY0XoIEXIoIbr29QQ+Rge1bHdr7t70468pYl9tPQYXHZ9fO - jHIg2uO+bswNbx0yBXFuAggsfLj96IGXoEJMPZOFM61NK7glNBWFycvi6jj84qxh - jz8nhu2iSHwzLf0Bs2uulZZLPmJxFGl2IIQs2Go94WRXmf3SbRVvuiCKkrbJJ190 - vGCJv0gCe+7rb3KhOrrvcFiuqiQvFErW4+IpSydIMIXTGF7yRv6HIhTUhKEmkWNc - GfjCXJ+AGADFD4jP287uA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601112; x= - 1727687512; bh=nay3ZyN0cN/80lVEv9bgr4vS0wpneM/GiqVSWG6S8J8=; b=a - uIuczCdZYptXykXONBumfKC6AMlQZ+K1JrbmSgDp3xQu4BUgDTWm3+xOoRhsVSIT - P6Mu1JdE6s5/+D/amxqqg0x5AnhlL5dIYIsNMxrKD//PX155c8DH+Y5jazZUjfKO - cY1Ey2+umvhqBbJbNZZX5zqGE5LkYbnU//6J25nQj3i7B4Dj14svM2GfMXtZxRQe - 5n8OKh0dSAeSuS9Boevjoe/FjzMxiEOwK7jaJ4jQBJ1HgLs4ul+PqK3EK5uUnNLz - gUJpJw2SuTuO4s8vwPjB0z/N2Wf46i5b9BcLPY+GL/nXB26DdhvdM8X6XO5FutX5 - ep50I7nKvQuSqYOPbMbvA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:11:46 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 04/26] drm: sun4i: de2: Initialize layer fields earlier -Date: Sun, 29 Sep 2024 22:04:36 +1300 -Message-ID: <20240929091107.838023-5-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -drm_universal_plane_init() can already call some callbacks, like -format_mod_supported, during initialization. Because of that, fields -should be initialized beforehand. - -Signed-off-by: Jernej Skrabec -Co-developed-by: Ryan Walklin -Signed-off-by: Ryan Walklin -Reviewed-by: Chen-Yu Tsai ---- - drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 9 +++++---- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 9 +++++---- - 2 files changed, 10 insertions(+), 8 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index aa987bca1dbb9..cb9b694fef101 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -295,6 +295,11 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, - if (!layer) - return ERR_PTR(-ENOMEM); - -+ layer->mixer = mixer; -+ layer->type = SUN8I_LAYER_TYPE_UI; -+ layer->channel = channel; -+ layer->overlay = 0; -+ - if (index == 0) - type = DRM_PLANE_TYPE_PRIMARY; - -@@ -325,10 +330,6 @@ struct sun8i_layer *sun8i_ui_layer_init_one(struct drm_device *drm, - } - - drm_plane_helper_add(&layer->plane, &sun8i_ui_layer_helper_funcs); -- layer->mixer = mixer; -- layer->type = SUN8I_LAYER_TYPE_UI; -- layer->channel = channel; -- layer->overlay = 0; - - return layer; - } -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index f3a5329351caa..3c657b069d1f4 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -478,6 +478,11 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - if (!layer) - return ERR_PTR(-ENOMEM); - -+ layer->mixer = mixer; -+ layer->type = SUN8I_LAYER_TYPE_VI; -+ layer->channel = index; -+ layer->overlay = 0; -+ - if (mixer->cfg->is_de3) { - formats = sun8i_vi_layer_de3_formats; - format_count = ARRAY_SIZE(sun8i_vi_layer_de3_formats); -@@ -536,10 +541,6 @@ struct sun8i_layer *sun8i_vi_layer_init_one(struct drm_device *drm, - } - - drm_plane_helper_add(&layer->plane, &sun8i_vi_layer_helper_funcs); -- layer->mixer = mixer; -- layer->type = SUN8I_LAYER_TYPE_VI; -- layer->channel = index; -- layer->overlay = 0; - - return layer; - } diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-05-26-drm-sun4i-de3-Add-YUV-formatter-module.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-05-26-drm-sun4i-de3-Add-YUV-formatter-module.patch deleted file mode 100644 index dc4814b5458a..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-05-26-drm-sun4i-de3-Add-YUV-formatter-module.patch +++ /dev/null @@ -1,284 +0,0 @@ -From patchwork Sun Sep 29 09:04:37 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814921 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 3854ACF6497 - for ; Sun, 29 Sep 2024 09:12:01 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id BC4DB10E289; - Sun, 29 Sep 2024 09:12:00 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="Zuq41dey"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="lqTyiFH9"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 7508710E289 - for ; Sun, 29 Sep 2024 09:11:59 +0000 (UTC) -Received: from phl-compute-04.internal (phl-compute-04.phl.internal - [10.202.2.44]) - by mailfout.phl.internal (Postfix) with ESMTP id D684113802B6; - Sun, 29 Sep 2024 05:11:58 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-04.internal (MEProxy); Sun, 29 Sep 2024 05:11:58 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601118; x= - 1727687518; bh=Nrlqm79bY8OBTpF7Y4mgezfpb6RIo8X4hT/KX88CsXc=; b=Z - uq41deyoFTqQLCOg+8USv2r7vOIauRhDGccf5qvJakE6GRCbjmRT/HKEvD3XhZYx - uAXw9xLjuXZA7Y/XMyfChrUdDVWrbhhtbcwJScmu7bMs7DNwolJvZUzbIY0GN869 - dJq3M+meMI/26eGJ2FJ23xCfKBBCZn/UKRyqiDldQwGQo7uxvm4vmASGjQ9b8qFr - 5R64ZvNJf/PQpSXTioPL1GFu7Fjf5urPZRP8gNP0Bcewpip+QBxOKhpvWXsPhmxJ - ovDpFo0itwZkqOa2BwgJhPWegTGnF+42uKQ9Kwx/5/R7g2dzr2rwDeGwVMDRGIlF - +iV/6+Bj/RPGX9Hz/EpLA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601118; x= - 1727687518; bh=Nrlqm79bY8OBTpF7Y4mgezfpb6RIo8X4hT/KX88CsXc=; b=l - qTyiFH9DoqoWey3W3LubLmdztDZeOIXBZ9pxeuqJqDG9ijqRTGhceADpIETS87PK - sOI8F75fZVafpaogY1HDBpZlzdGjjrhyeY9ahP4olB4+QS4TDr4FPkCN3umZbZQQ - UIC9akjNXwDtkczW80GmSiGV0ghgMkHYwoyQw3Gi8Zaxd9Hj2HuUpU3SHsYSJ+R0 - p0oMkg+kfDmQPSah7RyWBlSfMoacO7+E4L7I2XguCR3ruUrSc1IyslmRsrMoINFO - 0BnYYZOK4Mz8/hzww55443xtIcP6a+Bqp+E1esxw7FE71a+pWtaWrA6NRaEfhY+J - VRaJKd11qE+OcBBr2ljcA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:11:52 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 05/26] drm: sun4i: de3: Add YUV formatter module -Date: Sun, 29 Sep 2024 22:04:37 +1300 -Message-ID: <20240929091107.838023-6-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -The display engine formatter (FMT) module is present in the DE3 engine -and provides YUV444 to YUV422/YUV420 conversion, format re-mapping and -color depth conversion. - -Add support for this module. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/Makefile | 3 +- - drivers/gpu/drm/sun4i/sun50i_fmt.c | 82 ++++++++++++++++++++++++++++++ - drivers/gpu/drm/sun4i/sun50i_fmt.h | 32 ++++++++++++ - 3 files changed, 116 insertions(+), 1 deletion(-) - create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.c - create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.h - -diff --git a/drivers/gpu/drm/sun4i/Makefile b/drivers/gpu/drm/sun4i/Makefile -index bad7497a0d11e..3f516329f51ee 100644 ---- a/drivers/gpu/drm/sun4i/Makefile -+++ b/drivers/gpu/drm/sun4i/Makefile -@@ -16,7 +16,8 @@ sun8i-drm-hdmi-y += sun8i_hdmi_phy_clk.o - - sun8i-mixer-y += sun8i_mixer.o sun8i_ui_layer.o \ - sun8i_vi_layer.o sun8i_ui_scaler.o \ -- sun8i_vi_scaler.o sun8i_csc.o -+ sun8i_vi_scaler.o sun8i_csc.o \ -+ sun50i_fmt.o - - sun4i-tcon-y += sun4i_crtc.o - sun4i-tcon-y += sun4i_tcon_dclk.o -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.c b/drivers/gpu/drm/sun4i/sun50i_fmt.c -new file mode 100644 -index 0000000000000..050a8716ae862 ---- /dev/null -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.c -@@ -0,0 +1,82 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Copyright (C) Jernej Skrabec -+ */ -+ -+#include -+ -+#include "sun50i_fmt.h" -+ -+static bool sun50i_fmt_is_10bit(u32 format) -+{ -+ switch (format) { -+ case MEDIA_BUS_FMT_RGB101010_1X30: -+ case MEDIA_BUS_FMT_YUV10_1X30: -+ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: -+ case MEDIA_BUS_FMT_UYVY10_1X20: -+ return true; -+ default: -+ return false; -+ } -+} -+ -+static u32 sun50i_fmt_get_colorspace(u32 format) -+{ -+ switch (format) { -+ case MEDIA_BUS_FMT_UYYVYY8_0_5X24: -+ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: -+ return SUN50I_FMT_CS_YUV420; -+ case MEDIA_BUS_FMT_UYVY8_1X16: -+ case MEDIA_BUS_FMT_UYVY10_1X20: -+ return SUN50I_FMT_CS_YUV422; -+ default: -+ return SUN50I_FMT_CS_YUV444RGB; -+ } -+} -+ -+static void sun50i_fmt_de3_limits(u32 *limits, u32 colorspace, bool bit10) -+{ -+ if (colorspace != SUN50I_FMT_CS_YUV444RGB) { -+ limits[0] = SUN50I_FMT_LIMIT(64, 940); -+ limits[1] = SUN50I_FMT_LIMIT(64, 960); -+ limits[2] = SUN50I_FMT_LIMIT(64, 960); -+ } else if (bit10) { -+ limits[0] = SUN50I_FMT_LIMIT(0, 1023); -+ limits[1] = SUN50I_FMT_LIMIT(0, 1023); -+ limits[2] = SUN50I_FMT_LIMIT(0, 1023); -+ } else { -+ limits[0] = SUN50I_FMT_LIMIT(0, 1021); -+ limits[1] = SUN50I_FMT_LIMIT(0, 1021); -+ limits[2] = SUN50I_FMT_LIMIT(0, 1021); -+ } -+} -+ -+void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, -+ u16 height, u32 format) -+{ -+ u32 colorspace, limit[3], base; -+ struct regmap *regs; -+ bool bit10; -+ -+ colorspace = sun50i_fmt_get_colorspace(format); -+ bit10 = sun50i_fmt_is_10bit(format); -+ base = SUN50I_FMT_DE3; -+ regs = sun8i_blender_regmap(mixer); -+ -+ sun50i_fmt_de3_limits(limit, colorspace, bit10); -+ -+ regmap_write(regs, SUN50I_FMT_CTRL(base), 0); -+ -+ regmap_write(regs, SUN50I_FMT_SIZE(base), -+ SUN8I_MIXER_SIZE(width, height)); -+ regmap_write(regs, SUN50I_FMT_SWAP(base), 0); -+ regmap_write(regs, SUN50I_FMT_DEPTH(base), bit10); -+ regmap_write(regs, SUN50I_FMT_FORMAT(base), colorspace); -+ regmap_write(regs, SUN50I_FMT_COEF(base), 0); -+ -+ regmap_write(regs, SUN50I_FMT_LMT_Y(base), limit[0]); -+ regmap_write(regs, SUN50I_FMT_LMT_C0(base), limit[1]); -+ regmap_write(regs, SUN50I_FMT_LMT_C1(base), limit[2]); -+ -+ regmap_write(regs, SUN50I_FMT_CTRL(base), 1); -+} -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.h b/drivers/gpu/drm/sun4i/sun50i_fmt.h -new file mode 100644 -index 0000000000000..4127f7206aade ---- /dev/null -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.h -@@ -0,0 +1,32 @@ -+/* SPDX-License-Identifier: GPL-2.0-or-later */ -+/* -+ * Copyright (C) Jernej Skrabec -+ */ -+ -+#ifndef _SUN50I_FMT_H_ -+#define _SUN50I_FMT_H_ -+ -+#include "sun8i_mixer.h" -+ -+#define SUN50I_FMT_DE3 0xa8000 -+ -+#define SUN50I_FMT_CTRL(base) ((base) + 0x00) -+#define SUN50I_FMT_SIZE(base) ((base) + 0x04) -+#define SUN50I_FMT_SWAP(base) ((base) + 0x08) -+#define SUN50I_FMT_DEPTH(base) ((base) + 0x0c) -+#define SUN50I_FMT_FORMAT(base) ((base) + 0x10) -+#define SUN50I_FMT_COEF(base) ((base) + 0x14) -+#define SUN50I_FMT_LMT_Y(base) ((base) + 0x20) -+#define SUN50I_FMT_LMT_C0(base) ((base) + 0x24) -+#define SUN50I_FMT_LMT_C1(base) ((base) + 0x28) -+ -+#define SUN50I_FMT_LIMIT(low, high) (((high) << 16) | (low)) -+ -+#define SUN50I_FMT_CS_YUV444RGB 0 -+#define SUN50I_FMT_CS_YUV422 1 -+#define SUN50I_FMT_CS_YUV420 2 -+ -+void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, -+ u16 height, u32 format); -+ -+#endif diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-06-26-drm-sun4i-de3-add-format-enumeration-function-to-engine.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-06-26-drm-sun4i-de3-add-format-enumeration-function-to-engine.patch deleted file mode 100644 index df7371221ffa..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-06-26-drm-sun4i-de3-add-format-enumeration-function-to-engine.patch +++ /dev/null @@ -1,184 +0,0 @@ -From patchwork Sun Sep 29 09:04:38 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814922 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 4AF9DCF6495 - for ; Sun, 29 Sep 2024 09:12:07 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id C740410E28A; - Sun, 29 Sep 2024 09:12:06 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="B3SY8x0q"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="KG8ymsi+"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id EBC8110E28A - for ; Sun, 29 Sep 2024 09:12:05 +0000 (UTC) -Received: from phl-compute-12.internal (phl-compute-12.phl.internal - [10.202.2.52]) - by mailfout.phl.internal (Postfix) with ESMTP id 5750C13802B6; - Sun, 29 Sep 2024 05:12:05 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-12.internal (MEProxy); Sun, 29 Sep 2024 05:12:05 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601125; x= - 1727687525; bh=3QPNGe1zZiKhzuTyCeTHAjPsIfSM0kDD9Pg1n81Bevg=; b=B - 3SY8x0qqVYpj2JSvaYl6PDtXAoaB/9iuiG5ycnsjdqjtJ+DF3E9VukgHV0yHvqSH - uabjHdjiQSWBOMzOrGXSGkRgocYbkB2oLc2DOCDC8bGNRNrFmkHFrDRzmFPvhm37 - L4E0wFRvSNl0BYGURdG6GJV8UxYVVBexvGYeAj3Is9+hxEqEr5nbs+VfLckgd0+C - z6aE5J6GGQ9zrKQ9cItqBRv6EhRFuvLb4EbSLqRlmzQOHnGIA3aqY64TqKqbNUMs - iJ16kls4+3L6xMriYHj7WfQ8N93hQXR/rfRxLfCyHUR+8yKlAq5Rf3HPjGdS8424 - wSj44nDYzb/w57V7e1Ypg== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601125; x= - 1727687525; bh=3QPNGe1zZiKhzuTyCeTHAjPsIfSM0kDD9Pg1n81Bevg=; b=K - G8ymsi+jFxk2Vbpi574WsA8C5tsNGql7H2qY52eYtdBsfTF16bGHnoPNTzTQ9DB4 - 2QA92ih/azy6I/BTe20097v/iYgtYUsfTv+e6gFxzRI+4wGSHkqlstI5IbffpIjf - x3WIplVxHrQDLIT98qO+K+TZWbMiopqT6HtKbYIOR12vJ+QxsVptR1BdwAq4W8MZ - rfYNv4o1X/32f6D7RTxNL27VgrKShFBeUzgrmvgPDH12Et+c12jHqqL1t3LVS402 - RQUhS+3vkq5rTR6Z0TzuhZM+KJWx1+6/fRKyrIuWhfwU/aT+GRb5QIXNkxo73Je7 - gMdiyzjQ6TjmCYtVyBGyA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:11:59 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 06/26] drm: sun4i: de3: add format enumeration function to - engine -Date: Sun, 29 Sep 2024 22:04:38 +1300 -Message-ID: <20240929091107.838023-7-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -The DE3 display engine supports YUV formats in addition to RGB. - -Add an optional format enumeration function to the engine. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sunxi_engine.h | 29 ++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h -index ec0c4932f15cf..c48cbc1aceb80 100644 ---- a/drivers/gpu/drm/sun4i/sunxi_engine.h -+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h -@@ -123,6 +123,17 @@ struct sunxi_engine_ops { - */ - void (*mode_set)(struct sunxi_engine *engine, - const struct drm_display_mode *mode); -+ -+ /** -+ * @get_supported_fmts -+ * -+ * This callback is used to enumerate all supported output -+ * formats by the engine. They are used for bridge format -+ * negotiation. -+ * -+ * This function is optional. -+ */ -+ u32 *(*get_supported_fmts)(struct sunxi_engine *engine, u32 *num); - }; - - /** -@@ -215,4 +226,22 @@ sunxi_engine_mode_set(struct sunxi_engine *engine, - if (engine->ops && engine->ops->mode_set) - engine->ops->mode_set(engine, mode); - } -+ -+/** -+ * sunxi_engine_get_supported_formats - Provide array of supported formats -+ * @engine: pointer to the engine -+ * @num: pointer to variable, which will hold number of formats -+ * -+ * This list can be used for format negotiation by bridge. -+ */ -+static inline u32 * -+sunxi_engine_get_supported_formats(struct sunxi_engine *engine, u32 *num) -+{ -+ if (engine->ops && engine->ops->get_supported_fmts) -+ return engine->ops->get_supported_fmts(engine, num); -+ -+ *num = 0; -+ -+ return NULL; -+} - #endif /* _SUNXI_ENGINE_H_ */ diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-07-26-drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-07-26-drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch deleted file mode 100644 index d3bcdcaac56e..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-07-26-drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch +++ /dev/null @@ -1,173 +0,0 @@ -From patchwork Sun Sep 29 09:04:39 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814923 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 7131BCF6497 - for ; Sun, 29 Sep 2024 09:12:14 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id E216B10E2A5; - Sun, 29 Sep 2024 09:12:13 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="mNXBFg6X"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="KR20lgM6"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 55BEC10E292 - for ; Sun, 29 Sep 2024 09:12:12 +0000 (UTC) -Received: from phl-compute-01.internal (phl-compute-01.phl.internal - [10.202.2.41]) - by mailfhigh.phl.internal (Postfix) with ESMTP id B8D3611401F9; - Sun, 29 Sep 2024 05:12:11 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-01.internal (MEProxy); Sun, 29 Sep 2024 05:12:11 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601131; x= - 1727687531; bh=AwHhBn3bbgR1hnB5MQJEZRwH1DqrqeD78dAXPRj4TlI=; b=m - NXBFg6XKKBiPeQm1GKrMvDEhbyIhmjnBQMtvksSTIRnybHrQx054O7kxAcxwTs6j - ogBfRT1I+H2XUGInPUD+TTbZzqmg1AnSbL0EZf2ss0BSu4Z3LgCKrpIalavtj7zg - 5Pfqyy686HnG0Rs0nBxUoutKvtzXiynC3BrCLOYOnDsQrBti53dZo+bM5deB7Z6f - PVZE8knBedboizftf6h16RMXWPQ0nU0jLMrFWszLVKm+BDhWwBNE0asmjIDVoG+h - 0le2PLyE4kcBfq/Esl8qEr1JvesYTRR/BFSpU4h2CO40D3JzqQINRnA+bmbWOs11 - C9w3ynqckkkEeZrAaPitA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601131; x= - 1727687531; bh=AwHhBn3bbgR1hnB5MQJEZRwH1DqrqeD78dAXPRj4TlI=; b=K - R20lgM6ToPCT8+0ASW+NJobM6wm8eEihAAQT5WvSlXRlpuYqMeQIBlqJd/PXKdyt - gobm+/MwrqJYpBLW5v5TMSDcd/umWXyLA0OaCT2cAVeOmR/7FW3deIcCUxb58sY1 - pI5rD17asmtnZuIdHQ8l6NvtqWsoPaSQ3ug/TpJyVrIkmeIU8voR6w0kyOifyzFL - 3P7cJ4VZrLz4Icf6NLiXekAtkjI1aXwH5esx6+61dhRPVuXq47S+yudP1JGUXHX/ - iMNx2eJRK78Nx/8QMU493VuJN9+LbBFhEYpF3W0WzYsI2c7mvbcdDL2XqPFEZ0XX - OvX0M4zHtlPfChH8iTnuQ== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:05 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 07/26] drm: sun4i: de3: add formatter flag to mixer config -Date: Sun, 29 Sep 2024 22:04:39 +1300 -Message-ID: <20240929091107.838023-8-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Only the DE3 (and newer) display engines have a formatter module. This -could be inferred from the is_de3 flag alone, however this will not -scale with addition of future DE versions in subsequent patches. - -Add a separate flag to signal this in the mixer configuration. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 + - drivers/gpu/drm/sun4i/sun8i_mixer.h | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index bd0fe2c6624e6..252827715de1d 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -717,6 +717,7 @@ static const struct sun8i_mixer_cfg sun50i_a64_mixer1_cfg = { - static const struct sun8i_mixer_cfg sun50i_h6_mixer0_cfg = { - .ccsc = CCSC_MIXER0_LAYOUT, - .is_de3 = true, -+ .has_formatter = 1, - .mod_rate = 600000000, - .scaler_mask = 0xf, - .scanline_yuv = 4096, -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index d7898c9c9cc0c..8417b8fef2e1f 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.h -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h -@@ -163,6 +163,7 @@ enum { - * @mod_rate: module clock rate that needs to be set in order to have - * a functional block. - * @is_de3: true, if this is next gen display engine 3.0, false otherwise. -+ * @has_formatter: true, if mixer has formatter core, for 10-bit and YUV handling - * @scaline_yuv: size of a scanline for VI scaler for YUV formats. - */ - struct sun8i_mixer_cfg { -@@ -172,6 +173,7 @@ struct sun8i_mixer_cfg { - int ccsc; - unsigned long mod_rate; - unsigned int is_de3 : 1; -+ unsigned int has_formatter : 1; - unsigned int scanline_yuv; - }; - diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-08-26-drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-08-26-drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch deleted file mode 100644 index ae967df4ba7e..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-08-26-drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch +++ /dev/null @@ -1,249 +0,0 @@ -From patchwork Sun Sep 29 09:04:40 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814924 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id B73D3CF6495 - for ; Sun, 29 Sep 2024 09:12:20 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 407CF10E290; - Sun, 29 Sep 2024 09:12:20 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="HQe1GfI4"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="ITz55gKa"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 92CB410E290 - for ; Sun, 29 Sep 2024 09:12:18 +0000 (UTC) -Received: from phl-compute-06.internal (phl-compute-06.phl.internal - [10.202.2.46]) - by mailfhigh.phl.internal (Postfix) with ESMTP id F27FE11401F9; - Sun, 29 Sep 2024 05:12:17 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-06.internal (MEProxy); Sun, 29 Sep 2024 05:12:17 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601137; x= - 1727687537; bh=HZQ6qTVTU3V7CJc0Wl3DiqXQ1eXkbPiPUYHaMPGuCfQ=; b=H - Qe1GfI4xB4vYsritM/8lta4vM947X8zbv63xP7m2Zxlb/u5VDDacJZcZIq/0SJgc - MB3GQRmyOj41yRIPHwh+ZL1ztZl1tVoVod7agyKPKwyC6EqsM9FdMaREGjx51P5u - ltRknlRynaCI0OEEWROkOEAv3UpilXX4LgE4BXetnxEt3e/dXYkRLvcOFho2beBp - PKC1f1J10tBQQM8kaA+QU54GmfxJPh9LTiOgbb+vd2L+THPHe9tkE9cFmvBVmJ/k - uvMBJJ1Zpk82OubrLbTGxq5V5qMaE+Fh5RiSFUplyYAmtEFRRDI9W81GFvqI5zn+ - xV4NsvjtvL+/Zevf/1+KQ== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601137; x= - 1727687537; bh=HZQ6qTVTU3V7CJc0Wl3DiqXQ1eXkbPiPUYHaMPGuCfQ=; b=I - Tz55gKahFAF6smLbbmFAXh1bfUI/qyj7gjIcaHRxQuw70QvoqmsarXJ3/xsAu4v5 - DUx4o9gC2RpYmHzN7hkBCawr3kC56I+BRwuPG2DfSxUrom+YbNLuiodbq92T1Jz6 - EkA115ZRSQfgI6G8jd+FtX4h+xxgMCpFGym+BbEGo+2JAeyyRT8C4sWw6xl5WXnH - Qz54kWqbl6hHsoumLPftC6AwpH223ql1AA5w5yiM2Sm7SLpkLIplvTI4YOzRFqQo - BgrhpcbzL6LzkoQenkFbaLFqQEjbph4/aVWLYHPU5P71B3kgkll3oyWoyTe8jM4W - pyz/2/j+IdeBh6uPGnlVQ== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:12 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 08/26] drm: sun4i: de3: add YUV support to the DE3 mixer -Date: Sun, 29 Sep 2024 22:04:40 +1300 -Message-ID: <20240929091107.838023-9-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -The mixer in the DE3 display engine supports YUV 8 and 10 bit -formats in addition to 8-bit RGB. Add the required register -configuration and format enumeration callback functions to the mixer, -and store the in-use output format (defaulting to RGB) and color -encoding in engine variables. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- -Changelog v4..v5: -- Remove trailing whitespace ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 53 ++++++++++++++++++++++++++-- - drivers/gpu/drm/sun4i/sunxi_engine.h | 5 +++ - 2 files changed, 55 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 252827715de1d..a50c583852edf 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -23,7 +23,10 @@ - #include - #include - -+#include -+ - #include "sun4i_drv.h" -+#include "sun50i_fmt.h" - #include "sun8i_mixer.h" - #include "sun8i_ui_layer.h" - #include "sun8i_vi_layer.h" -@@ -390,12 +393,52 @@ static void sun8i_mixer_mode_set(struct sunxi_engine *engine, - - DRM_DEBUG_DRIVER("Switching display mixer interlaced mode %s\n", - interlaced ? "on" : "off"); -+ -+ if (engine->format == MEDIA_BUS_FMT_RGB888_1X24) -+ val = SUN8I_MIXER_BLEND_COLOR_BLACK; -+ else -+ val = 0xff108080; -+ -+ regmap_write(mixer->engine.regs, -+ SUN8I_MIXER_BLEND_BKCOLOR(bld_base), val); -+ regmap_write(mixer->engine.regs, -+ SUN8I_MIXER_BLEND_ATTR_FCOLOR(bld_base, 0), val); -+ -+ if (mixer->cfg->has_formatter) -+ sun50i_fmt_setup(mixer, mode->hdisplay, -+ mode->vdisplay, mixer->engine.format); -+} -+ -+static u32 *sun8i_mixer_get_supported_fmts(struct sunxi_engine *engine, u32 *num) -+{ -+ struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); -+ u32 *formats, count; -+ -+ count = 0; -+ -+ formats = kcalloc(5, sizeof(*formats), GFP_KERNEL); -+ if (!formats) -+ return NULL; -+ -+ if (mixer->cfg->has_formatter) { -+ formats[count++] = MEDIA_BUS_FMT_UYYVYY10_0_5X30; -+ formats[count++] = MEDIA_BUS_FMT_YUV8_1X24; -+ formats[count++] = MEDIA_BUS_FMT_UYVY8_1X16; -+ formats[count++] = MEDIA_BUS_FMT_UYYVYY8_0_5X24; -+ } -+ -+ formats[count++] = MEDIA_BUS_FMT_RGB888_1X24; -+ -+ *num = count; -+ -+ return formats; - } - - static const struct sunxi_engine_ops sun8i_engine_ops = { -- .commit = sun8i_mixer_commit, -- .layers_init = sun8i_layers_init, -- .mode_set = sun8i_mixer_mode_set, -+ .commit = sun8i_mixer_commit, -+ .layers_init = sun8i_layers_init, -+ .mode_set = sun8i_mixer_mode_set, -+ .get_supported_fmts = sun8i_mixer_get_supported_fmts, - }; - - static const struct regmap_config sun8i_mixer_regmap_config = { -@@ -456,6 +499,10 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - dev_set_drvdata(dev, mixer); - mixer->engine.ops = &sun8i_engine_ops; - mixer->engine.node = dev->of_node; -+ /* default output format, supported by all mixers */ -+ mixer->engine.format = MEDIA_BUS_FMT_RGB888_1X24; -+ /* default color encoding, ignored with RGB I/O */ -+ mixer->engine.encoding = DRM_COLOR_YCBCR_BT601; - - if (of_property_present(dev->of_node, "iommus")) { - /* -diff --git a/drivers/gpu/drm/sun4i/sunxi_engine.h b/drivers/gpu/drm/sun4i/sunxi_engine.h -index c48cbc1aceb80..ffafc29b3a0c3 100644 ---- a/drivers/gpu/drm/sun4i/sunxi_engine.h -+++ b/drivers/gpu/drm/sun4i/sunxi_engine.h -@@ -6,6 +6,8 @@ - #ifndef _SUNXI_ENGINE_H_ - #define _SUNXI_ENGINE_H_ - -+#include -+ - struct drm_plane; - struct drm_crtc; - struct drm_device; -@@ -151,6 +153,9 @@ struct sunxi_engine { - - int id; - -+ u32 format; -+ enum drm_color_encoding encoding; -+ - /* Engine list management */ - struct list_head list; - }; diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-09-26-drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-09-26-drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch deleted file mode 100644 index 08aeaead329d..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-09-26-drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch +++ /dev/null @@ -1,175 +0,0 @@ -From patchwork Sun Sep 29 09:04:41 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814925 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 7D49ACF6497 - for ; Sun, 29 Sep 2024 09:12:26 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 045E410E27D; - Sun, 29 Sep 2024 09:12:26 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="yMNaKSGG"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="N4Jhu2CT"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id CACF610E27D - for ; Sun, 29 Sep 2024 09:12:24 +0000 (UTC) -Received: from phl-compute-04.internal (phl-compute-04.phl.internal - [10.202.2.44]) - by mailfhigh.phl.internal (Postfix) with ESMTP id 384B011401F9; - Sun, 29 Sep 2024 05:12:24 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-04.internal (MEProxy); Sun, 29 Sep 2024 05:12:24 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601144; x= - 1727687544; bh=UUs9KKw9gM7Rm8ttFhQy8Tmz+91u9KDG5MSJ+Ys1Ptg=; b=y - MNaKSGGaUUpuUEQFbNMSpVWdr/gMdkV9t4Bcy0pyDnP4l9AL1f3j00NOwPKkObGA - e6tuT7cNtzMStKFBn03o6kr1rJyVcPPQb3YT5x8i+a08714DFc3p6RFFinTjPe1B - PY6lkIoqmuH+faFykErGTTjQCDG3hc1KFUEo0kHLAyi+ozXBeYK8faJORtDATgKj - WNnMEldCFgPbULg1Yqz4zrDEt9ZMWU55yNGOyhBnVg1OB/TlPqJ62hQzBBW2A+6j - 3YUJ96drqV+7uPAvF7EBK0/Bt69flt80qnoNT6xYmjuQd7cJqmvk9wt6DgLXXNBZ - ab+MuMjk62V3Mcjkima8Q== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601144; x= - 1727687544; bh=UUs9KKw9gM7Rm8ttFhQy8Tmz+91u9KDG5MSJ+Ys1Ptg=; b=N - 4Jhu2CT9RO7m0v8ObUm1L4Ayz7aiNSvZohLLspVdcL3g/a7VarSK58P8pcBH7Xfo - Zua8Hk9U3UAiITfq/CWeYmnc6ZURxxhco5+mVkoka6Fays/t20hDswt5Y9/eTdqh - 1LgZ2aRWUPpchzn019EUq5BKfybxxw2oH+ihZFZf/FhyfQdvahCYg+OwLuL2NMau - Yr9wFj8At9DLjXGgEffsAoty0W4j6hOJJQEVBEPByikysaUG2bbxD5d9bZhrjDL+ - qW74zV/Ww4I1fOjBS5H2AuBACP3CsmnbK++PnrRIPHeU2tEl3O+2ohU00P8SUe2s - WQ+e5OF99MkjtDInKkOuw== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:18 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 09/26] drm: sun4i: de3: pass engine reference to ccsc setup - function -Date: Sun, 29 Sep 2024 22:04:41 +1300 -Message-ID: <20240929091107.838023-10-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Configuration of the DE3 colorspace and dynamic range correction module -requires knowledge of the current video format and encoding. - -Pass the display engine by reference to the csc setup function, rather -than the register map alone, to allow access to this information. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 68d955c63b05b..8a336ccb27d33 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -148,17 +148,19 @@ static void sun8i_csc_setup(struct regmap *map, u32 base, - regmap_write(map, SUN8I_CSC_CTRL(base), val); - } - --static void sun8i_de3_ccsc_setup(struct regmap *map, int layer, -+static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, - enum format_type fmt_type, - enum drm_color_encoding encoding, - enum drm_color_range range) - { - u32 addr, val, mask; -+ struct regmap *map; - const u32 *table; - int i; - - mask = SUN50I_MIXER_BLEND_CSC_CTL_EN(layer); - table = yuv2rgb_de3[range][encoding]; -+ map = engine->regs; - - switch (fmt_type) { - case FORMAT_TYPE_RGB: -@@ -204,7 +206,7 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - u32 base; - - if (mixer->cfg->is_de3) { -- sun8i_de3_ccsc_setup(mixer->engine.regs, layer, -+ sun8i_de3_ccsc_setup(&mixer->engine, layer, - fmt_type, encoding, range); - return; - } diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-11-26-drm-sun4i-de3-add-YUV-support-to-the-TCON.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-11-26-drm-sun4i-de3-add-YUV-support-to-the-TCON.patch deleted file mode 100644 index c595e0b37cdb..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-11-26-drm-sun4i-de3-add-YUV-support-to-the-TCON.patch +++ /dev/null @@ -1,203 +0,0 @@ -From patchwork Sun Sep 29 09:04:43 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814927 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id A58B8CF6497 - for ; Sun, 29 Sep 2024 09:12:39 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 2B4B010E292; - Sun, 29 Sep 2024 09:12:39 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="dl7hY1XM"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="C/A5A9q6"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 4822410E292 - for ; Sun, 29 Sep 2024 09:12:37 +0000 (UTC) -Received: from phl-compute-10.internal (phl-compute-10.phl.internal - [10.202.2.50]) - by mailfhigh.phl.internal (Postfix) with ESMTP id AA74711401FA; - Sun, 29 Sep 2024 05:12:36 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-10.internal (MEProxy); Sun, 29 Sep 2024 05:12:36 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601156; x= - 1727687556; bh=4U49VSdH02cprq0wkAp0Cx95pxHA2zFJM654XzxwqHk=; b=d - l7hY1XMYhdKWW3y/1IybKheBz1TrFKna1od3DpeMBtGOftYp3ykCjV49pOFMRJVG - y3PlSQTNsfgRSCLzCbACuoJkkF720gO2Y3PhlOJF0c/ueTWX5iOfMX70zC6thDWP - UoOdNkg9p/txQjaP4Bl4eQ3JSQiXCKVOK65Y68B3xqGsV+BNu0EiE5pu/JrLE4zD - Bhxu1balIcZ5VbZTrrMVl+DBiP8tJqeOh9BfmlaOhDrZzT4NL7esfnr7GLDncvoH - JsRMuCP6StY9MyFsuFk3Yp1gYYAV4+Zo3aVUJoJnlUZ/gtdR4GBaaJo7IbrHg3IZ - 3nT5EF+Gc3V1yh3sFG1pg== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601156; x= - 1727687556; bh=4U49VSdH02cprq0wkAp0Cx95pxHA2zFJM654XzxwqHk=; b=C - /A5A9q6eopku3zASLninuloGnmt9fl9e+6ndGshu88uiSsKcBhtVEaZi6tBPX3Rc - 5sge997WiTwKYYlXeDrbSoaIwKUxKvCXe3nyHh8sm8cfp02A7etDVYUu2bRIKKkT - 0e2jVHeduPxlleBqFe5fSOs7P2HAyDCNDJZw8ijE4IZIudEtV7iw3sB1q1gCjJ6U - FDzS1LTv27Roz/zb/W7wGAZf6OoJzLm7zm/RfIKERvxTBNfhZxg7iOM1XMV4NVLi - X1A3H/CxMscg10lmNTx6N2qycuTLhcak6rkLHM/2pPS+Xgvm6sK3mVjVNioDV/Ey - tPJKeEtvm+0agXHYGcxRA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:30 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 11/26] drm: sun4i: de3: add YUV support to the TCON -Date: Sun, 29 Sep 2024 22:04:43 +1300 -Message-ID: <20240929091107.838023-12-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Account for U/V channel subsampling by reducing the dot clock and -resolution with a divider in the DE3 timing controller if a YUV format -is selected. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun4i_tcon.c | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c -index a1a2c845ade0c..e39926e9f0b5d 100644 ---- a/drivers/gpu/drm/sun4i/sun4i_tcon.c -+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c -@@ -598,14 +598,26 @@ static void sun4i_tcon0_mode_set_rgb(struct sun4i_tcon *tcon, - static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, - const struct drm_display_mode *mode) - { -- unsigned int bp, hsync, vsync, vtotal; -+ unsigned int bp, hsync, vsync, vtotal, div; -+ struct sun4i_crtc *scrtc = tcon->crtc; -+ struct sunxi_engine *engine = scrtc->engine; - u8 clk_delay; - u32 val; - - WARN_ON(!tcon->quirks->has_channel_1); - -+ switch (engine->format) { -+ case MEDIA_BUS_FMT_UYYVYY8_0_5X24: -+ case MEDIA_BUS_FMT_UYYVYY10_0_5X30: -+ div = 2; -+ break; -+ default: -+ div = 1; -+ break; -+ } -+ - /* Configure the dot clock */ -- clk_set_rate(tcon->sclk1, mode->crtc_clock * 1000); -+ clk_set_rate(tcon->sclk1, mode->crtc_clock * 1000 / div); - - /* Adjust clock delay */ - clk_delay = sun4i_tcon_get_clk_delay(mode, 1); -@@ -624,17 +636,17 @@ static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, - - /* Set the input resolution */ - regmap_write(tcon->regs, SUN4I_TCON1_BASIC0_REG, -- SUN4I_TCON1_BASIC0_X(mode->crtc_hdisplay) | -+ SUN4I_TCON1_BASIC0_X(mode->crtc_hdisplay / div) | - SUN4I_TCON1_BASIC0_Y(mode->crtc_vdisplay)); - - /* Set the upscaling resolution */ - regmap_write(tcon->regs, SUN4I_TCON1_BASIC1_REG, -- SUN4I_TCON1_BASIC1_X(mode->crtc_hdisplay) | -+ SUN4I_TCON1_BASIC1_X(mode->crtc_hdisplay / div) | - SUN4I_TCON1_BASIC1_Y(mode->crtc_vdisplay)); - - /* Set the output resolution */ - regmap_write(tcon->regs, SUN4I_TCON1_BASIC2_REG, -- SUN4I_TCON1_BASIC2_X(mode->crtc_hdisplay) | -+ SUN4I_TCON1_BASIC2_X(mode->crtc_hdisplay / div) | - SUN4I_TCON1_BASIC2_Y(mode->crtc_vdisplay)); - - /* Set horizontal display timings */ -@@ -642,8 +654,8 @@ static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, - DRM_DEBUG_DRIVER("Setting horizontal total %d, backporch %d\n", - mode->htotal, bp); - regmap_write(tcon->regs, SUN4I_TCON1_BASIC3_REG, -- SUN4I_TCON1_BASIC3_H_TOTAL(mode->crtc_htotal) | -- SUN4I_TCON1_BASIC3_H_BACKPORCH(bp)); -+ SUN4I_TCON1_BASIC3_H_TOTAL(mode->crtc_htotal / div) | -+ SUN4I_TCON1_BASIC3_H_BACKPORCH(bp / div)); - - bp = mode->crtc_vtotal - mode->crtc_vsync_start; - DRM_DEBUG_DRIVER("Setting vertical total %d, backporch %d\n", diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-12-26-drm-sun4i-support-YUV-formats-in-VI-scaler.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-12-26-drm-sun4i-support-YUV-formats-in-VI-scaler.patch deleted file mode 100644 index 68fae8db2649..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-12-26-drm-sun4i-support-YUV-formats-in-VI-scaler.patch +++ /dev/null @@ -1,260 +0,0 @@ -From patchwork Sun Sep 29 09:04:44 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814928 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 176BECF6495 - for ; Sun, 29 Sep 2024 09:12:45 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 716ED10E293; - Sun, 29 Sep 2024 09:12:44 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="Z6wFCLiz"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="EbX+FxW/"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 7DB9810E293 - for ; Sun, 29 Sep 2024 09:12:43 +0000 (UTC) -Received: from phl-compute-04.internal (phl-compute-04.phl.internal - [10.202.2.44]) - by mailfout.phl.internal (Postfix) with ESMTP id E0E9913802B6; - Sun, 29 Sep 2024 05:12:42 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-04.internal (MEProxy); Sun, 29 Sep 2024 05:12:42 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601162; x= - 1727687562; bh=UTbgAlZPg7kKDXmpb3ox4DzabVzCpQwm62KnqwRU5w0=; b=Z - 6wFCLizFTJQjFKlVKsySyQAhr8KsoogIZas7g+Y5l87p9+14PfqgZjKaNIaAxTwu - 0U4VxZxdWKEYWsGJLiGttDbjcgwlrj7eh9qovzcIWkUsz6+V9wzDScYlgSBlIX2p - 3rFt3Nfh6Mfg1smkeDVWOpDpTKSsOukYfD/hh9h1aWPnGgJAvxnt3wJfm0cOZ6Wc - lNL9D3cicl7aRQcI6Khj4u57O5EKITglEou0WijIZdk7n4sY2x/t8DyeJhuYgpV1 - EK39wa7ElAzxSZ1KHeZ3g2TgcvtFGPzRH62Q/Ob0QAyotFrli+KwuvCFiHfon4xh - rZC8CTVyWi2Ou3l/ipkoA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601162; x= - 1727687562; bh=UTbgAlZPg7kKDXmpb3ox4DzabVzCpQwm62KnqwRU5w0=; b=E - bX+FxW/h1D10L/Sd/j0pZfgM46ltGCyEysVSZfNGR6VL2wpv8qzP+4ryoJgQVcaA - mKoKnh5+EMIAR8NaR6D8eT1isDspd7fFNJopzOLPpvwDayyx4cqFemiOsLDxuUh3 - KwLh6OAuMXUcudXsAxJtqchyFvm4TBKxFzgJxi9gGjma0wQ8zFHqhpT0IMSXobbF - 3c1jCKpeg/2bev7BeGLaeuDzvRb5NfxoIeJNkF5aKuE1MWgWhqIv9NNYI1qvz4uJ - CAT3MPbxk3auUgZliEVuL660E+ZG+tUMSaeW4UZ8mRNPa5DSKZJN4mkWBW9slcKV - JxEPfCA49GrOiDXtfPWnw== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:36 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 12/26] drm: sun4i: support YUV formats in VI scaler -Date: Sun, 29 Sep 2024 22:04:44 +1300 -Message-ID: <20240929091107.838023-13-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Now that YUV formats are available, enable support in the VI scaler. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin - -Changelog v4..v5: -- Add commit description ---- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 85 +++++++++++++++++-------- - 1 file changed, 58 insertions(+), 27 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index 7ba75011adf9f..2e49a6e5f1f1c 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -@@ -843,6 +843,11 @@ static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) - DE2_VI_SCALER_UNIT_SIZE * channel; - } - -+static bool sun8i_vi_scaler_is_vi_plane(struct sun8i_mixer *mixer, int channel) -+{ -+ return true; -+} -+ - static int sun8i_vi_scaler_coef_index(unsigned int step) - { - unsigned int scale, int_part, float_part; -@@ -867,44 +872,65 @@ static int sun8i_vi_scaler_coef_index(unsigned int step) - } - } - --static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base, -- u32 hstep, u32 vstep, -- const struct drm_format_info *format) -+static void sun8i_vi_scaler_set_coeff_vi(struct regmap *map, u32 base, -+ u32 hstep, u32 vstep, -+ const struct drm_format_info *format) - { - const u32 *ch_left, *ch_right, *cy; -- int offset, i; -+ int offset; - -- if (format->hsub == 1 && format->vsub == 1) { -- ch_left = lan3coefftab32_left; -- ch_right = lan3coefftab32_right; -- cy = lan2coefftab32; -- } else { -+ if (format->is_yuv) { - ch_left = bicubic8coefftab32_left; - ch_right = bicubic8coefftab32_right; - cy = bicubic4coefftab32; -+ } else { -+ ch_left = lan3coefftab32_left; -+ ch_right = lan3coefftab32_right; -+ cy = lan2coefftab32; - } - - offset = sun8i_vi_scaler_coef_index(hstep) * - SUN8I_VI_SCALER_COEFF_COUNT; -- for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) { -- regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, i), -- lan3coefftab32_left[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, i), -- lan3coefftab32_right[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, i), -- ch_left[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, i), -- ch_right[offset + i]); -- } -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, 0), -+ &lan3coefftab32_left[offset], -+ SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, 0), -+ &lan3coefftab32_right[offset], -+ SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, 0), -+ &ch_left[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, 0), -+ &ch_right[offset], SUN8I_VI_SCALER_COEFF_COUNT); - - offset = sun8i_vi_scaler_coef_index(hstep) * - SUN8I_VI_SCALER_COEFF_COUNT; -- for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) { -- regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i), -- lan2coefftab32[offset + i]); -- regmap_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, i), -- cy[offset + i]); -- } -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, 0), -+ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, 0), -+ &cy[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+} -+ -+static void sun8i_vi_scaler_set_coeff_ui(struct regmap *map, u32 base, -+ u32 hstep, u32 vstep, -+ const struct drm_format_info *format) -+{ -+ const u32 *table; -+ int offset; -+ -+ offset = sun8i_vi_scaler_coef_index(hstep) * -+ SUN8I_VI_SCALER_COEFF_COUNT; -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, 0), -+ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ offset = sun8i_vi_scaler_coef_index(vstep) * -+ SUN8I_VI_SCALER_COEFF_COUNT; -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, 0), -+ &lan2coefftab32[offset], SUN8I_VI_SCALER_COEFF_COUNT); -+ -+ table = format->is_yuv ? bicubic4coefftab32 : lan2coefftab32; -+ offset = sun8i_vi_scaler_coef_index(hstep) * -+ SUN8I_VI_SCALER_COEFF_COUNT; -+ regmap_bulk_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, 0), -+ &table[offset], SUN8I_VI_SCALER_COEFF_COUNT); - } - - void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) -@@ -994,6 +1020,11 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - SUN8I_SCALER_VSU_CHPHASE(base), chphase); - regmap_write(mixer->engine.regs, - SUN8I_SCALER_VSU_CVPHASE(base), cvphase); -- sun8i_vi_scaler_set_coeff(mixer->engine.regs, base, -- hscale, vscale, format); -+ -+ if (sun8i_vi_scaler_is_vi_plane(mixer, layer)) -+ sun8i_vi_scaler_set_coeff_vi(mixer->engine.regs, base, -+ hscale, vscale, format); -+ else -+ sun8i_vi_scaler_set_coeff_ui(mixer->engine.regs, base, -+ hscale, vscale, format); - } diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-14-26-drm-sun4i-de2-de3-refactor-mixer-initialisation.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-14-26-drm-sun4i-de2-de3-refactor-mixer-initialisation.patch deleted file mode 100644 index 4cd6db141686..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-14-26-drm-sun4i-de2-de3-refactor-mixer-initialisation.patch +++ /dev/null @@ -1,248 +0,0 @@ -From patchwork Sun Sep 29 09:04:46 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814930 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 145A3CF6495 - for ; Sun, 29 Sep 2024 09:12:58 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 90CBA10E298; - Sun, 29 Sep 2024 09:12:57 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="14XuRnUL"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="Wxp7ueei"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 37B1E10E298 - for ; Sun, 29 Sep 2024 09:12:56 +0000 (UTC) -Received: from phl-compute-10.internal (phl-compute-10.phl.internal - [10.202.2.50]) - by mailfhigh.phl.internal (Postfix) with ESMTP id 99DF311401F9; - Sun, 29 Sep 2024 05:12:55 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-10.internal (MEProxy); Sun, 29 Sep 2024 05:12:55 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601175; x= - 1727687575; bh=LwRq1ASJM7AVmYLE3VYTUq+Fw5lQfVtbj01qQQC5JiU=; b=1 - 4XuRnULUIPk0lw5KHMBalP1Vz9C5FCyeOqK8+DmqtZYEF78+/xVo6bW9biFWhyKg - YbvECehUqojKUS2WiHx9ncG1B8w/mVLss5zBWWOU1ukVRb4I4ru8vtGClVOG61gB - 5NH2n52WPZYz6gsXYqx4Da/LFKYm8gfdxBSzU9alzp16vrQ2k0IKiZwCLhvuHDWJ - epwW65YBqMlg/TkT6EBW3uzbj6g3qZ+uWxWMPme8J5f1w4S8xNNhCAF29yrAn3DN - 4fi2rxcxAy0/4vQ4GBqC0UXIolIzMpNyIeM9wDt8JHBt71c1yu2foRDuLT0+qXHA - uqDhwUdMWmBQ8PGImoQ4A== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601175; x= - 1727687575; bh=LwRq1ASJM7AVmYLE3VYTUq+Fw5lQfVtbj01qQQC5JiU=; b=W - xp7ueeiaFfFIN2qz1puJDrt9n7xXmxqFrQi2npZ6CWy0CS4GSJjXgaueR7+kNTS1 - 2NcYW9rR2Hzrw6suEzLr/uDxBK9bdp57US7rrIoIYTrZngIN9jfcTYCXfRMPI12A - KOkLxmOMwYVD/229ZmF9WkiBzo+nr4IiZ0XUlCMtBGxDsoPEGugCinWdL3uJbtSv - 9C0OULBMT4PpTwIg4OrxUoDoKyqC1FZHDJH7bAmEkT44ip6MQ7Rp1qWL0pin21dm - S0j0KBCqUhFjCmKluTTFw+tXeruz0n3n4XCrFtPz27BbzyldTUhoTexIv3q8wsk6 - hoMtkG2e4uXEBWdlLlv/w== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpeefnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:49 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 14/26] drm: sun4i: de2/de3: refactor mixer initialisation -Date: Sun, 29 Sep 2024 22:04:46 +1300 -Message-ID: <20240929091107.838023-15-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Now that the DE variant can be selected by enum, take the oppportunity -to factor out some common initialisation code to a separate function. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin -Reviewed-by: Andre Przywara ---- -Changelog v1..v2: -- Combine base register allocation and initialisation in sun8i_mixer_init -- Whitespace fix - -Changelog v4..v5: -- Remove trailing whitespace ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 64 +++++++++++++++-------------- - 1 file changed, 34 insertions(+), 30 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 16e018aa4aae9..18745af089545 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -468,6 +468,38 @@ static int sun8i_mixer_of_get_id(struct device_node *node) - return of_ep.id; - } - -+static void sun8i_mixer_init(struct sun8i_mixer *mixer) -+{ -+ unsigned int base = sun8i_blender_base(mixer); -+ int plane_cnt, i; -+ -+ /* Enable the mixer */ -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, -+ SUN8I_MIXER_GLOBAL_CTL_RT_EN); -+ -+ /* Set background color to black */ -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), -+ SUN8I_MIXER_BLEND_COLOR_BLACK); -+ -+ /* -+ * Set fill color of bottom plane to black. Generally not needed -+ * except when VI plane is at bottom (zpos = 0) and enabled. -+ */ -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -+ SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); -+ regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), -+ SUN8I_MIXER_BLEND_COLOR_BLACK); -+ -+ plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; -+ for (i = 0; i < plane_cnt; i++) -+ regmap_write(mixer->engine.regs, -+ SUN8I_MIXER_BLEND_MODE(base, i), -+ SUN8I_MIXER_BLEND_MODE_DEF); -+ -+ regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -+ SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); -+} -+ - static int sun8i_mixer_bind(struct device *dev, struct device *master, - void *data) - { -@@ -476,8 +508,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - struct sun4i_drv *drv = drm->dev_private; - struct sun8i_mixer *mixer; - void __iomem *regs; -- unsigned int base; -- int plane_cnt; - int i, ret; - - /* -@@ -581,8 +611,6 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - - list_add_tail(&mixer->engine.list, &drv->engine_list); - -- base = sun8i_blender_base(mixer); -- - /* Reset registers and disable unused sub-engines */ - if (mixer->cfg->de_type == sun8i_mixer_de3) { - for (i = 0; i < DE3_MIXER_UNIT_SIZE; i += 4) -@@ -598,7 +626,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - regmap_write(mixer->engine.regs, SUN50I_MIXER_FMT_EN, 0); - regmap_write(mixer->engine.regs, SUN50I_MIXER_CDC0_EN, 0); - regmap_write(mixer->engine.regs, SUN50I_MIXER_CDC1_EN, 0); -- } else { -+ } else if (mixer->cfg->de_type == sun8i_mixer_de2) { - for (i = 0; i < DE2_MIXER_UNIT_SIZE; i += 4) - regmap_write(mixer->engine.regs, i, 0); - -@@ -611,31 +639,7 @@ static int sun8i_mixer_bind(struct device *dev, struct device *master, - regmap_write(mixer->engine.regs, SUN8I_MIXER_DCSC_EN, 0); - } - -- /* Enable the mixer */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_GLOBAL_CTL, -- SUN8I_MIXER_GLOBAL_CTL_RT_EN); -- -- /* Set background color to black */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_BKCOLOR(base), -- SUN8I_MIXER_BLEND_COLOR_BLACK); -- -- /* -- * Set fill color of bottom plane to black. Generally not needed -- * except when VI plane is at bottom (zpos = 0) and enabled. -- */ -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -- SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ATTR_FCOLOR(base, 0), -- SUN8I_MIXER_BLEND_COLOR_BLACK); -- -- plane_cnt = mixer->cfg->vi_num + mixer->cfg->ui_num; -- for (i = 0; i < plane_cnt; i++) -- regmap_write(mixer->engine.regs, -- SUN8I_MIXER_BLEND_MODE(base, i), -- SUN8I_MIXER_BLEND_MODE_DEF); -- -- regmap_update_bits(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(base), -- SUN8I_MIXER_BLEND_PIPE_CTL_EN_MSK, 0); -+ sun8i_mixer_init(mixer); - - return 0; - diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-15-26-drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-15-26-drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch deleted file mode 100644 index c20b28b524ac..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-15-26-drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch +++ /dev/null @@ -1,220 +0,0 @@ -From patchwork Sun Sep 29 09:04:47 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814931 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 8114ACF6497 - for ; Sun, 29 Sep 2024 09:13:04 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 053AB10E295; - Sun, 29 Sep 2024 09:13:04 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="WJmozB18"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="GheKDpgE"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 7563310E295 - for ; Sun, 29 Sep 2024 09:13:02 +0000 (UTC) -Received: from phl-compute-10.internal (phl-compute-10.phl.internal - [10.202.2.50]) - by mailfhigh.phl.internal (Postfix) with ESMTP id D7C0B11401FA; - Sun, 29 Sep 2024 05:13:01 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-10.internal (MEProxy); Sun, 29 Sep 2024 05:13:01 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601181; x= - 1727687581; bh=nV1BScUrdzGA3a/wlIvGzF584kt9HToFlKVAV1oi63c=; b=W - JmozB18swMdIpxi2PUVUc0ilaAZriprERvz4WjZ3GGVshDOcHvUSQdX6ZWVqMhXw - vzQFiGLBJznXbLbf13wqFcBjm/0Z89s6Qb+3Dqm6ISZuSuG0pM/Jihl81BFoWht1 - 0UqQDGF/8FhaSrvEGlr1ltLJaGf7VUVSbZR1F7D/uMyqw9zSH03nWWWPzI3Lkas0 - fSZTbatn6TU3IhYP8EVb4dl32DE0TUGQr1r7BL3ZHuSc7dTc5tETFn2LvR9rhdU5 - 82jsbjIgd8t7mBjLrXjLnFZaxVArVNRMP9SrY/wbXgSu28WNiM98V/EcoXZZKhPw - gXpsJOk9Bn3bWxWm037WA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601181; x= - 1727687581; bh=nV1BScUrdzGA3a/wlIvGzF584kt9HToFlKVAV1oi63c=; b=G - heKDpgEfrcG5Snqq/ZESxv1ENmbFcJf9bbLkR44J41m6wHV0b9QXFEfBcW9I4QrG - TS3XN7Fn0qgjYQArv30xr+deifBkKuIgaih7UioUKMXSkgUAg14ktrYoJ5J8isL0 - lriTN7Ew0zFYN51ast3PxwRpk2ZV2oWrTvcN2PSEhyd+sPmQFUjuMbbAICYRLRDT - 3cYQXHI6upCfm8brDdB/EFizDYaRksWFnnOPJAxvn+zwEdOzMvyuhNrxv2ryt/vs - iICf29M2BtGTN3Z3e0x0e/2JVAfMiFuGhXatSSUxhHt2g0bCJV4IAR6JHMie224+ - Yx62yUn+Qj+cpO0uh0grA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpeegnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:12:55 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 15/26] drm: sun4i: vi_scaler refactor vi_scaler enablement -Date: Sun, 29 Sep 2024 22:04:47 +1300 -Message-ID: <20240929091107.838023-16-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -If the video scaler is required, then it is obligatory to set the -relevant register to enable it, so move this to the -sun8i_vi_scaler_setup() function. - -This simplifies the alternate case (scaler not required) so replace the -vi_scaler_enable() function with a vi_scaler_disable() function. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 3 +-- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 21 +++++++++++---------- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.h | 2 +- - 3 files changed, 13 insertions(+), 13 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index 4647e9bcccaa7..e348fd0a3d81c 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -156,10 +156,9 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, dst_w, - dst_h, hscale, vscale, hphase, vphase, - format); -- sun8i_vi_scaler_enable(mixer, channel, true); - } else { - DRM_DEBUG_DRIVER("HW scaling is not needed\n"); -- sun8i_vi_scaler_enable(mixer, channel, false); -+ sun8i_vi_scaler_disable(mixer, channel); - } - - regmap_write(mixer->engine.regs, -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index aa346c3beb303..e7242301b312c 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -@@ -933,20 +933,13 @@ static void sun8i_vi_scaler_set_coeff_ui(struct regmap *map, u32 base, - &table[offset], SUN8I_VI_SCALER_COEFF_COUNT); - } - --void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable) -+void sun8i_vi_scaler_disable(struct sun8i_mixer *mixer, int layer) - { -- u32 val, base; -+ u32 base; - - base = sun8i_vi_scaler_base(mixer, layer); - -- if (enable) -- val = SUN8I_SCALER_VSU_CTRL_EN | -- SUN8I_SCALER_VSU_CTRL_COEFF_RDY; -- else -- val = 0; -- -- regmap_write(mixer->engine.regs, -- SUN8I_SCALER_VSU_CTRL(base), val); -+ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), 0); - } - - void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, -@@ -982,6 +975,9 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - cvphase = vphase; - } - -+ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), -+ SUN8I_SCALER_VSU_CTRL_EN); -+ - if (mixer->cfg->de_type >= sun8i_mixer_de3) { - u32 val; - -@@ -1027,4 +1023,9 @@ void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - else - sun8i_vi_scaler_set_coeff_ui(mixer->engine.regs, base, - hscale, vscale, format); -+ -+ if (mixer->cfg->de_type <= sun8i_mixer_de3) -+ regmap_write(mixer->engine.regs, SUN8I_SCALER_VSU_CTRL(base), -+ SUN8I_SCALER_VSU_CTRL_EN | -+ SUN8I_SCALER_VSU_CTRL_COEFF_RDY); - } -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h -index 68f6593b369ab..e801bc7a4189e 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.h -@@ -69,7 +69,7 @@ - #define SUN50I_SCALER_VSU_ANGLE_SHIFT(x) (((x) << 16) & 0xF) - #define SUN50I_SCALER_VSU_ANGLE_OFFSET(x) ((x) & 0xFF) - --void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable); -+void sun8i_vi_scaler_disable(struct sun8i_mixer *mixer, int layer); - void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer, - u32 src_w, u32 src_h, u32 dst_w, u32 dst_h, - u32 hscale, u32 vscale, u32 hphase, u32 vphase, diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-16-26-drm-sun4i-de2-de3-add-generic-blender-register-reference-function.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-16-26-drm-sun4i-de2-de3-add-generic-blender-register-reference-function.patch deleted file mode 100644 index 4fdfafdd6aae..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-16-26-drm-sun4i-de2-de3-add-generic-blender-register-reference-function.patch +++ /dev/null @@ -1,159 +0,0 @@ -From patchwork Sun Sep 29 09:04:48 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814932 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id A15F1CF6495 - for ; Sun, 29 Sep 2024 09:13:10 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 238AA10E299; - Sun, 29 Sep 2024 09:13:10 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="QDD2UbDO"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="aLp6WHj1"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id CADE710E299 - for ; Sun, 29 Sep 2024 09:13:08 +0000 (UTC) -Received: from phl-compute-01.internal (phl-compute-01.phl.internal - [10.202.2.41]) - by mailfhigh.phl.internal (Postfix) with ESMTP id 36E9B11401FA; - Sun, 29 Sep 2024 05:13:08 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-01.internal (MEProxy); Sun, 29 Sep 2024 05:13:08 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601188; x= - 1727687588; bh=vFAn77DPkhVmiFKjEXXB2+gUQSssJmHTL5ELI1Q/NII=; b=Q - DD2UbDOJVSJII4HdRQcjf28zoxFWmimDVPiKbBukQd3OVk1vuoaOOy54CWOwTfWZ - pKOv1TPsWaZ90nMykM/lmmq5/HcCer2vS53YHqNOU2p50jBc3Xx97ng/2mBYz/ah - r2CksODzNCSwvbN9p2uQg0irJcxSIJ7PtTJDTUwTjMjmqArcrvp6snyxQC/BhALV - nDOuooanWimujf7Xw0exLmHCgLQXsihKBJXhegl6G0qlc7oSEFeVYq8aIxsQwj5r - VWf+8WgThJzsIN/V6mwrcZ9gKndtH9P11stgLrCAIr7wRVkSVagRDjM7xh4nbZNP - n+/VFFRVXAMHoAVghTRRA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601188; x= - 1727687588; bh=vFAn77DPkhVmiFKjEXXB2+gUQSssJmHTL5ELI1Q/NII=; b=a - Lp6WHj1YvAX2ehIa3ppY/LyA69sOkD+WR2Ozpd8fk4Q9jeC4YEZmf0ZQ4tIOhHRt - KqFLzXWrrQHJN0x6LdHLBw21pOXK+v4YKAt5ulJ8GBokmavq7j5yI59KrSRtRkLI - U2OEbobUsDPMdWk9C9V4ET5oP2BXNIKTfCLaEdt9NvcY82TjEKuv/+KoXX4hm0Xy - +3VmNpOFzAXd+ASI4rl7gyY1K6TMzLVdoc6q5XdbXuzNaANYCRBMsCr6RWCc2mRG - t/CGR447sBrKZx4IqneuDWyzfwBGd7/qSXwCVc1AmjiC2oWqkimYHQyQhac38wA1 - /aUBdm6ULwwwmZKEaMUUg== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:02 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 16/26] drm: sun4i: de2/de3: add generic blender register - reference function -Date: Sun, 29 Sep 2024 22:04:48 +1300 -Message-ID: <20240929091107.838023-17-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -The DE2 and DE3 engines have a blender register range within the -mixer engine register map, whereas the DE33 separates this out into -a separate display group. - -Prepare for this by adding a function to look the blender reference up, -with a subsequent patch to add a conditional based on the DE type. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_mixer.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h -index 82956cb97cfd9..75facc7d1fa66 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.h -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h -@@ -224,6 +224,12 @@ sun8i_blender_base(struct sun8i_mixer *mixer) - return mixer->cfg->de_type == sun8i_mixer_de3 ? DE3_BLD_BASE : DE2_BLD_BASE; - } - -+static inline struct regmap * -+sun8i_blender_regmap(struct sun8i_mixer *mixer) -+{ -+ return mixer->engine.regs; -+} -+ - static inline u32 - sun8i_channel_base(struct sun8i_mixer *mixer, int channel) - { diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-17-26-drm-sun4i-de2-de3-use-generic-register-reference-function-for-layer-configuration.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-17-26-drm-sun4i-de2-de3-use-generic-register-reference-function-for-layer-configuration.patch deleted file mode 100644 index c54ca5356d3a..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-17-26-drm-sun4i-de2-de3-use-generic-register-reference-function-for-layer-configuration.patch +++ /dev/null @@ -1,240 +0,0 @@ -From patchwork Sun Sep 29 09:04:49 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814933 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id F3E2ACF6497 - for ; Sun, 29 Sep 2024 09:13:16 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 7562F10E29A; - Sun, 29 Sep 2024 09:13:16 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="uqhT6vGU"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="LidmotB0"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 1829710E29A - for ; Sun, 29 Sep 2024 09:13:15 +0000 (UTC) -Received: from phl-compute-01.internal (phl-compute-01.phl.internal - [10.202.2.41]) - by mailfout.phl.internal (Postfix) with ESMTP id 7AD2C13802C0; - Sun, 29 Sep 2024 05:13:14 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-01.internal (MEProxy); Sun, 29 Sep 2024 05:13:14 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601194; x= - 1727687594; bh=iQff8NazfMBwyOx8u8iBaB2qvnWRcwJaUn9bgjwNQjY=; b=u - qhT6vGUpMKMq2orfCfLGe6F+RU0uC54asu5+d1S0vKq9NbzzpLOwOaKsY+se1ajq - gd/DvLcVq9IJNXxIUIRBp5f43Puj50RK/la3zAGVmkvHNKaqsKzk45iXWH2fC+LX - EuHwrWoEH8YXr3K1oKmgvzgBB9xA4tPtZ4EUuNn4zhjcunTJZlOpxxCnyFW4Z+0F - Rh0DtgCCMX20GeBmrMZLSuZB0pG1gOjJFdEQPIox8acF1mV1QOGyL/anWzbJBH5E - c/k6eYR4JFwCi3LUB4V7FECOGmJ0ozdyVFajALAaMvHMGllVNsb22aM09sDPq7/m - 2GCcMSQseN9e0Rl0OPtxQ== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601194; x= - 1727687594; bh=iQff8NazfMBwyOx8u8iBaB2qvnWRcwJaUn9bgjwNQjY=; b=L - idmotB0lHH2l3iOUqTsmLuJ4Vio7/+DLudjZw0Zyx/NfOyDcChq6rYIUHBxls00A - mqJ9k24RSg6Zm6FLlLLX3Cg5sNkNjvzUpbmG7/1+xxlPRoyL6qd2LSvB+HUGTWgS - eXSjOFadu05zfOaqhaFhjmt72sXZI/xipEjLFhn1liLqCBHiTDOPBtjTYTZgTcbH - JEA2kiBcuCvgCV4lves9CcIvgajZ1Bu0l80IJfcy9ak8jfBTNLJERqa0ZyyUeewz - I7CJMQXONyBRV54q7kXJ9fv9r8WUOSYk+URNEFoWk9DhfglQnYMyAvnDzPxdrRTK - PgczHLBM5A+mgvSxyl1mg== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:08 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 17/26] drm: sun4i: de2/de3: use generic register reference - function for layer configuration -Date: Sun, 29 Sep 2024 22:04:49 +1300 -Message-ID: <20240929091107.838023-18-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Use the new blender register lookup function where required in the layer -commit and update code. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- -Changelog v2..v3: -- Refactor for 6.11 layer init/modesetting changes ---- - drivers/gpu/drm/sun4i/sun8i_mixer.c | 5 +++-- - drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 7 +++++-- - drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 6 ++++-- - 3 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c -index 18745af089545..600084286b39d 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_mixer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_mixer.c -@@ -277,6 +277,7 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, - { - struct sun8i_mixer *mixer = engine_to_sun8i_mixer(engine); - u32 bld_base = sun8i_blender_base(mixer); -+ struct regmap *bld_regs = sun8i_blender_regmap(mixer); - struct drm_plane_state *plane_state; - struct drm_plane *plane; - u32 route = 0, pipe_en = 0; -@@ -316,8 +317,8 @@ static void sun8i_mixer_commit(struct sunxi_engine *engine, - pipe_en |= SUN8I_MIXER_BLEND_PIPE_CTL_EN(zpos); - } - -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); -- regmap_write(mixer->engine.regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), -+ regmap_write(bld_regs, SUN8I_MIXER_BLEND_ROUTE(bld_base), route); -+ regmap_write(bld_regs, SUN8I_MIXER_BLEND_PIPE_CTL(bld_base), - pipe_en | SUN8I_MIXER_BLEND_PIPE_CTL_FC_EN(0)); - - regmap_write(engine->regs, SUN8I_MIXER_GLOBAL_DBUFF, -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index cb9b694fef101..7f1231cf0f012 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -24,6 +24,7 @@ - #include "sun8i_mixer.h" - #include "sun8i_ui_layer.h" - #include "sun8i_ui_scaler.h" -+#include "sun8i_vi_scaler.h" - - static void sun8i_ui_layer_update_alpha(struct sun8i_mixer *mixer, int channel, - int overlay, struct drm_plane *plane) -@@ -52,6 +53,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - { - struct drm_plane_state *state = plane->state; - u32 src_w, src_h, dst_w, dst_h; -+ struct regmap *bld_regs; - u32 bld_base, ch_base; - u32 outsize, insize; - u32 hphase, vphase; -@@ -60,6 +62,7 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - channel, overlay); - - bld_base = sun8i_blender_base(mixer); -+ bld_regs = sun8i_blender_regmap(mixer); - ch_base = sun8i_channel_base(mixer, channel); - - src_w = drm_rect_width(&state->src) >> 16; -@@ -104,10 +107,10 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", - state->dst.x1, state->dst.y1); - DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), - SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), - outsize); - -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -index e348fd0a3d81c..d19349eecc9de 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c -@@ -55,6 +55,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - struct drm_plane_state *state = plane->state; - const struct drm_format_info *format = state->fb->format; - u32 src_w, src_h, dst_w, dst_h; -+ struct regmap *bld_regs; - u32 bld_base, ch_base; - u32 outsize, insize; - u32 hphase, vphase; -@@ -66,6 +67,7 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - channel, overlay); - - bld_base = sun8i_blender_base(mixer); -+ bld_regs = sun8i_blender_regmap(mixer); - ch_base = sun8i_channel_base(mixer, channel); - - src_w = drm_rect_width(&state->src) >> 16; -@@ -182,10 +184,10 @@ static int sun8i_vi_layer_update_coord(struct sun8i_mixer *mixer, int channel, - DRM_DEBUG_DRIVER("Layer destination coordinates X: %d Y: %d\n", - state->dst.x1, state->dst.y1); - DRM_DEBUG_DRIVER("Layer destination size W: %d H: %d\n", dst_w, dst_h); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_COORD(bld_base, zpos), - SUN8I_MIXER_COORD(state->dst.x1, state->dst.y1)); -- regmap_write(mixer->engine.regs, -+ regmap_write(bld_regs, - SUN8I_MIXER_BLEND_ATTR_INSIZE(bld_base, zpos), - outsize); - diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-19-26-dt-bindings-allwinner-add-H616-DE33-bus-binding.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-19-26-dt-bindings-allwinner-add-H616-DE33-bus-binding.patch deleted file mode 100644 index b3ce144030e1..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-19-26-dt-bindings-allwinner-add-H616-DE33-bus-binding.patch +++ /dev/null @@ -1,160 +0,0 @@ -From patchwork Sun Sep 29 09:04:51 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814935 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 1A123CF6495 - for ; Sun, 29 Sep 2024 09:13:30 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 84EDC10E29C; - Sun, 29 Sep 2024 09:13:29 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="lzP4tUWN"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="l7wY80rE"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 0DBB410E29C - for ; Sun, 29 Sep 2024 09:13:28 +0000 (UTC) -Received: from phl-compute-06.internal (phl-compute-06.phl.internal - [10.202.2.46]) - by mailfhigh.phl.internal (Postfix) with ESMTP id 6F74411401FB; - Sun, 29 Sep 2024 05:13:27 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-06.internal (MEProxy); Sun, 29 Sep 2024 05:13:27 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601207; x= - 1727687607; bh=HUZkB4BTaGl4+olIKxefdYNCC1xPzS2oUWDhSekCT3I=; b=l - zP4tUWNK64LLx9+bwrpPZYIgHmdnQo7essQ8FMwr8wkFv0y/Z3KpKF7n3JzDj65h - EyX1dLK4Mcfd6bShN6+mzAegiAHup3STFvqLDdNzbHIzP27uASKQmCu9hbcq+ZMl - ETWHzeVBu5gLcN5iosz2HqBw/IzKCgQUZv0R7QxfEL0ejI6kp7H0rMpKc6N7qgEZ - 2J0fTipUxO/UTa7CELfpJazNcLZUp1hH+xStMBQSfzLTOCxEXXJmiLAenDFwu9H+ - vzd21DiJ//OZPip6ymvHBqZi26dc1pMQek8Cwwo0tHgjR9zkoyEhvjepgojHEi9Z - fXWZxxH3cO4IPRQ2o6N2w== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601207; x= - 1727687607; bh=HUZkB4BTaGl4+olIKxefdYNCC1xPzS2oUWDhSekCT3I=; b=l - 7wY80rELUxSt7qLqc5BQY740J9P8w8fi9o++q7s6LU/xTR6/BM57et2CDNvwBp85 - tvQg7RkH3I/czPONBS6AVXObaXC5SCTFOFnBdJC0egRvbEobfqf9e3IeorOWTVt5 - xZDPWCvdl56FEx/2nDVv21wRNVaa6Q+5BI5uToZG9AfR2BeKH1CLvFinVfkL9rar - M/fK768m8sIug3hwxkZFYKgER0zRUK+lenZcgoa58gJfyTQxtBF7ceLyE+hbvML8 - TvDApzdeIHW9e+1RHsGhdgSH44KK/kMMCOCsismFSv4j7RB4zekEZ3zRO5mf1vvZ - x3AGf1kym2VLaZ/frflXg== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudehucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:21 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin , - Conor Dooley -Subject: [PATCH v5 19/26] dt-bindings: allwinner: add H616 DE33 bus binding -Date: Sun, 29 Sep 2024 22:04:51 +1300 -Message-ID: <20240929091107.838023-20-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -The Allwinner H616 and variants have a new display engine revision -(DE33). - -Add a display engine bus binding for the DE33. - -Signed-off-by: Ryan Walklin -Acked-by: Conor Dooley -Reviewed-by: Chen-Yu Tsai ---- -Changelog v1..v2: -- Correct DE2 bus enum to reflect fallback devices accurately. - -Changelog v2..v3: -- Separate content into three patches for three separate subsystems ---- - .../devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml -index 9845a187bdf65..ea7ee89158c61 100644 ---- a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml -+++ b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml -@@ -24,7 +24,9 @@ properties: - oneOf: - - const: allwinner,sun50i-a64-de2 - - items: -- - const: allwinner,sun50i-h6-de3 -+ - enum: -+ - allwinner,sun50i-h6-de3 -+ - allwinner,sun50i-h616-de33 - - const: allwinner,sun50i-a64-de2 - - reg: diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-20-26-dt-bindings-allwinner-add-H616-DE33-clock-binding.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-20-26-dt-bindings-allwinner-add-H616-DE33-clock-binding.patch deleted file mode 100644 index 190caba25469..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-20-26-dt-bindings-allwinner-add-H616-DE33-clock-binding.patch +++ /dev/null @@ -1,154 +0,0 @@ -From patchwork Sun Sep 29 09:04:52 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814936 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 6BDB2CF6497 - for ; Sun, 29 Sep 2024 09:13:36 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id EE56A10E29F; - Sun, 29 Sep 2024 09:13:35 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="w4yaxGMQ"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="cqHmvjlK"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 8F36610E29F - for ; Sun, 29 Sep 2024 09:13:34 +0000 (UTC) -Received: from phl-compute-01.internal (phl-compute-01.phl.internal - [10.202.2.41]) - by mailfhigh.phl.internal (Postfix) with ESMTP id F0A6111401F9; - Sun, 29 Sep 2024 05:13:33 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-01.internal (MEProxy); Sun, 29 Sep 2024 05:13:33 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601213; x= - 1727687613; bh=ABgqTd7uObbDYR1wm8fD08OQQ8fryUdjNqzFp1bmI3g=; b=w - 4yaxGMQ5of1GigN3ues6TlAE3BD8XYyEvxk+gi3Lc/J4Y2KPna0XF5hV/rWKFLKJ - oT9jTjNUL9TfDYiSTHgqbAb+zgTei+eYeH4cs+EWEV3BObc96FEt8dC8EU/mvsbU - BQrnmQ7oYvQJdymxDRSYFOgNsVfKhvJ9enrzgmYs3/dKL/dP3KsOrrrEqcTq0Evv - lk5dzd3ThAJ9/GHBhcbkkHaBVhDeNmoitpCBkzGuqdGeYuQ6IC0nXjaDUNGEhFPm - 5Jg7xDUAeftAOoZhuHUkM6zK9Yeo1nQrmewAebYc7wpMSNbNVbsBI0Kww4xNCmPP - cyAT4buuKrJ3zTkHgIDMQ== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601213; x= - 1727687613; bh=ABgqTd7uObbDYR1wm8fD08OQQ8fryUdjNqzFp1bmI3g=; b=c - qHmvjlKfOJXQbKfGYflcJ692s+O2uWf9jJz5odql8Y3RXcPLNevGXFKLVA3UQ0a3 - m9T2nNKtKMjABXijsFxMRaHFIE1eX5KppvxCHI0CITScKnZLnvGI9+RwbCfsIRK5 - LzdNFtK0tIy4kzOVt2VqKFwMSFGNLsxAoeLC1CpefjtBLAvTEilawlV4P+pdGjPH - qyw9S6UjvY7xNmdRu8DuodoOIF4VulbJFhKV8ti9HNksqIZTdaVpwh5fah3YFkGU - GfKnfcId78TBeEUg1j4CtskRnhMalyc3Fk+ZhAkS5Pyp+72oQ1nk9Ylxe6b0ieLu - rlBmm6y0LTH/OZHu0d6TA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpeefnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:27 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin , - Conor Dooley -Subject: [PATCH v5 20/26] dt-bindings: allwinner: add H616 DE33 clock binding -Date: Sun, 29 Sep 2024 22:04:52 +1300 -Message-ID: <20240929091107.838023-21-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -The Allwinner H616 and variants have a new display engine revision -(DE33). - -Add a clock binding for the DE33. - -Signed-off-by: Ryan Walklin -Acked-by: Conor Dooley -Reviewed-by: Chen-Yu Tsai ---- -Changelog v2..v3: -- Separate content into three patches for three separate subsystems ---- - .../devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml b/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml -index 70369bd633e40..7fcd55d468d49 100644 ---- a/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml -+++ b/Documentation/devicetree/bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml -@@ -25,6 +25,7 @@ properties: - - const: allwinner,sun50i-a64-de2-clk - - const: allwinner,sun50i-h5-de2-clk - - const: allwinner,sun50i-h6-de3-clk -+ - const: allwinner,sun50i-h616-de33-clk - - items: - - const: allwinner,sun8i-r40-de2-clk - - const: allwinner,sun8i-h3-de2-clk diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-21-26-dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-21-26-dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch deleted file mode 100644 index dea3b55ce677..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-21-26-dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch +++ /dev/null @@ -1,158 +0,0 @@ -From patchwork Sun Sep 29 09:04:53 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814937 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 9229CCF6497 - for ; Sun, 29 Sep 2024 09:13:42 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 1F89989D4D; - Sun, 29 Sep 2024 09:13:42 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="jeZ+0LHa"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="c1TO+Lqv"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 05EFF89D4D - for ; Sun, 29 Sep 2024 09:13:41 +0000 (UTC) -Received: from phl-compute-01.internal (phl-compute-01.phl.internal - [10.202.2.41]) - by mailfout.phl.internal (Postfix) with ESMTP id 6871513802B7; - Sun, 29 Sep 2024 05:13:40 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-01.internal (MEProxy); Sun, 29 Sep 2024 05:13:40 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601220; x= - 1727687620; bh=soe6UnfOFlClSHMdY3T8JKZaxKLApa1PT2tNRAMa+Co=; b=j - eZ+0LHavLtW6gv9lKOttzMnBrVEv1pDuz7QNHovPQaGUnLRtw66cdAtyQ2dKp0fC - NvQzPKN1CNTnXgP3KOgcZtLqyvvamhnUT8ELQH/cS5D3YsesmNp7QccgLihHy4Yd - IVeMDJgc0FEOySWhN605n36BAMeKrSNjwR8GrI3/f95IGhdnmaCM2e8XPWUZ97Y5 - gVUaBbXI+n3XT6KVKX31OaYm5JkMqMCCSgi2IcRw0RFcxvSLi/w2uhUJdBMVKTKm - iD5xIbCLw/1fjmaNiYZgPgxYqmAOoMit7UefxdL43LNJ8bFfOLMDcLK0tpE2rKUi - av78ccGVTmn86z0U3oMRA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601220; x= - 1727687620; bh=soe6UnfOFlClSHMdY3T8JKZaxKLApa1PT2tNRAMa+Co=; b=c - 1TO+LqvDAqkMAtOoFpJ/TInlUwD3D3gRmzJfK6wWhU9eN42zztIZ/kfHNk9XVhlw - Wq0EEhsvXoPvcvPmB4MQFsivOG5UUiY5GOvoB1oXMbSEBO++Ry3PV3SPzeaz6XQi - afXWGHttyCuyhCbEhGOq6fu2AU+xWoqEb9DCqGEjRKCKmvsARAbVznVSaD3oRVBp - UHRrB6QZFv4EOBYNBb5srdGmwuhbBwj6d3F2NKkO8FRQOXg+BZggCF7vDvlEqHNl - m2yo7UmbxgIFmTV07Zagweajrj20QUlTd9uatHscAWGv6kmu3adk5wYuGlHCvjE/ - IsT/xPepMC8COxDf6X8lA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpeegnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:34 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin , - Conor Dooley -Subject: [PATCH v5 21/26] dt-bindings: allwinner: add H616 DE33 mixer binding -Date: Sun, 29 Sep 2024 22:04:53 +1300 -Message-ID: <20240929091107.838023-22-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -The Allwinner H616 and variants have a new display engine revision -(DE33). - -The mixer configuration registers are significantly different to the DE3 -and DE2 revisions, being split into separate top and display blocks, -therefore a fallback for the mixer compatible is not provided. - -Add a display engine mixer binding for the DE33. - -Signed-off-by: Ryan Walklin -Acked-by: Conor Dooley -Reviewed-by: Chen-Yu Tsai ---- -Changelog v2..v3: -- Separate content into three patches for three separate subsystems ---- - .../bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml -index b75c1ec686ad2..c37eb8ae1b8ee 100644 ---- a/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml -+++ b/Documentation/devicetree/bindings/display/allwinner,sun8i-a83t-de2-mixer.yaml -@@ -24,6 +24,7 @@ properties: - - allwinner,sun50i-a64-de2-mixer-0 - - allwinner,sun50i-a64-de2-mixer-1 - - allwinner,sun50i-h6-de3-mixer-0 -+ - allwinner,sun50i-h616-de33-mixer-0 - - reg: - maxItems: 1 diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-22-26-clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-22-26-clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index ce8e6cfd3ec4..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-22-26-clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,214 +0,0 @@ -From patchwork Sun Sep 29 09:04:54 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814938 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 899A0CF6497 - for ; Sun, 29 Sep 2024 09:13:49 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 0D0B610E163; - Sun, 29 Sep 2024 09:13:49 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="I5vF9Ll4"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="Mqtt/oPf"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 3AA4110E163 - for ; Sun, 29 Sep 2024 09:13:47 +0000 (UTC) -Received: from phl-compute-06.internal (phl-compute-06.phl.internal - [10.202.2.46]) - by mailfout.phl.internal (Postfix) with ESMTP id 9AEF113802C0; - Sun, 29 Sep 2024 05:13:46 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-06.internal (MEProxy); Sun, 29 Sep 2024 05:13:46 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601226; x= - 1727687626; bh=yLZo7PUOT9aCWrwaZbTmXr5v+3hjbZkSf/GJyFKh78A=; b=I - 5vF9Ll4+3Px0mymIt3TDfHY6rFwhv7IwlC0MnGkTdHE7pNLHmTRq0mAavXO7KDoP - UPCvbY39HEulJM6y+sP8HZb1YKEuw0gJhSb1ZT4LK7NnQFCE8bJt4PRKDEhNTumx - nAK9aOXK804upGEvtwb2UCu617jVL7KTQLl/Ihfod0fcLXvo4ixXFG4yJB2Ysjb+ - kel8IhwZsdC48M0HgkpWdMNTZap+9c5vZ4obRNuK6q+gxwNUDa3T+iivQPWhxALC - 8PwucSaEOWbrGvk2jqbKRON5PuSpyvE2l1htCulw0XEqOTa9+TEAfxSnLkL0MfZ2 - BRkopA2L1xMsju39yX29w== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601226; x= - 1727687626; bh=yLZo7PUOT9aCWrwaZbTmXr5v+3hjbZkSf/GJyFKh78A=; b=M - qtt/oPfZYjmu+noB1SDPM3yc5n5cie3BNZrv23Z4K1tGt/CPXU4gImHHjcMjyNNB - DLNvUa5/gfQxwKivW/lUlNIAukYwavnmpL+PaCka5a2we4PDoWuTf4VNxmyxPfXd - 9cNRfQIdC7kAOGcTB5SAmRVndwEkJdxKrndTlBQAEpFGY+Npg5zp1owawhm4e90G - TwjzYe6X3by7zqXpG5SdeogJDplxvjvPEJG+P1dZHSs+foSB2iXf9usYVmBIN+ld - iKkJ6FaKGaw0XRQ0EoT30Y6RyZ0l3CsT18zd70EIwIgv/aJD/vx2fuMtyMeyhT2e - DHXZxuyJvb6NBNlsubwiA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudehucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:40 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 22/26] clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) - support -Date: Sun, 29 Sep 2024 22:04:54 +1300 -Message-ID: <20240929091107.838023-23-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -The DE33 is a newer version of the Allwinner Display Engine IP block, -found in the H616, H618, H700 and T507 SoCs. DE2 and DE3 are already -supported by the mainline driver. - -The DE33 in the H616 has mixer0 and writeback units. The clocks -and resets required are identical to the H3 and H5 respectively, so use -those existing structs for the H616 description. - -There are two additional 32-bit registers (at offsets 0x24 and 0x28) -which require clearing and setting respectively to bring up the -hardware. The function of these registers is currently unknown, and the -values are taken from the out-of-tree driver. - -Add the required clock description struct and compatible string to the -DE2 driver. - -Signed-off-by: Ryan Walklin ---- -Changelog v2..v3: -- Lowercase hex value - -Changelog v2..v3: -- Correct #include for writel() - -Changelog v4..v5: -- Whitespace fix ---- - drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c -index 7683ea08d8e30..83eab6f132aad 100644 ---- a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c -+++ b/drivers/clk/sunxi-ng/ccu-sun8i-de2.c -@@ -5,6 +5,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -239,6 +240,16 @@ static const struct sunxi_ccu_desc sun50i_h5_de2_clk_desc = { - .num_resets = ARRAY_SIZE(sun50i_h5_de2_resets), - }; - -+static const struct sunxi_ccu_desc sun50i_h616_de33_clk_desc = { -+ .ccu_clks = sun8i_de2_ccu_clks, -+ .num_ccu_clks = ARRAY_SIZE(sun8i_de2_ccu_clks), -+ -+ .hw_clks = &sun8i_h3_de2_hw_clks, -+ -+ .resets = sun50i_h5_de2_resets, -+ .num_resets = ARRAY_SIZE(sun50i_h5_de2_resets), -+}; -+ - static int sunxi_de2_clk_probe(struct platform_device *pdev) - { - struct clk *bus_clk, *mod_clk; -@@ -291,6 +302,16 @@ static int sunxi_de2_clk_probe(struct platform_device *pdev) - goto err_disable_mod_clk; - } - -+ /* -+ * The DE33 requires these additional (unknown) registers set -+ * during initialisation. -+ */ -+ if (of_device_is_compatible(pdev->dev.of_node, -+ "allwinner,sun50i-h616-de33-clk")) { -+ writel(0, reg + 0x24); -+ writel(0x0000a980, reg + 0x28); -+ } -+ - ret = devm_sunxi_ccu_probe(&pdev->dev, reg, ccu_desc); - if (ret) - goto err_assert_reset; -@@ -335,6 +356,10 @@ static const struct of_device_id sunxi_de2_clk_ids[] = { - .compatible = "allwinner,sun50i-h6-de3-clk", - .data = &sun50i_h5_de2_clk_desc, - }, -+ { -+ .compatible = "allwinner,sun50i-h616-de33-clk", -+ .data = &sun50i_h616_de33_clk_desc, -+ }, - { } - }; - MODULE_DEVICE_TABLE(of, sunxi_de2_clk_ids); diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-24-26-drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-24-26-drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index 16b37bc23c22..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-24-26-drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,198 +0,0 @@ -From patchwork Sun Sep 29 09:04:56 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814940 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 28311CF6497 - for ; Sun, 29 Sep 2024 09:14:02 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id AE44B10E1C1; - Sun, 29 Sep 2024 09:14:01 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="vFVZGpH0"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="GfO6sAR0"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id B258110E1C1 - for ; Sun, 29 Sep 2024 09:13:59 +0000 (UTC) -Received: from phl-compute-05.internal (phl-compute-05.phl.internal - [10.202.2.45]) - by mailfout.phl.internal (Postfix) with ESMTP id 2097E13802B7; - Sun, 29 Sep 2024 05:13:59 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-05.internal (MEProxy); Sun, 29 Sep 2024 05:13:59 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601239; x= - 1727687639; bh=GzStvdVzyVR2B+0fZHuwlVX7olZEgtoygp1s91SLTdg=; b=v - FVZGpH092wo4X0sM+DMTtsa2Yc+jyKdzWkHtijgoyWNySPpTj1NgEov/FtH7SkB3 - GgWQsBzrRSdbdG3l+4Gq01FtJtyYioBPD+nenXuVXYKDh7XE/QEG60MJqrrw0gbf - aBNYIByI47BwaY9TlhaC0uFPGg7X6ewh1EHTm8eR7BAfoj5iZOL9vjftfbNnP6di - 857mtuLkp5mRAPOwcYi6a/WTD97mlAc4n6C4DW0JtsBhIXqJ6JRzq3OPZBL3tcdc - HphkchCbG6DiRr9fBH2/9T2haPggE2s1oaXQDyORtPZsHnUwSv7595So68SB1KXb - jraIjOLkOgPTnLv7jfXqA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601239; x= - 1727687639; bh=GzStvdVzyVR2B+0fZHuwlVX7olZEgtoygp1s91SLTdg=; b=G - fO6sAR0rldSJ9NH/ZEZjpQSeyOicfBftF7YYTbYkDEWBeX/P7Fb48D+f2Hs4sL8T - BwGK0HeW5plMJcdciKDnNFojTi78HGOuwMMd9B1prS1RAbHzz1AigeQtCh33Hg4W - NrBvjwA7uumwjB4BFKTWdXQn+Mymt4GghXxbhMffYEzhlY9asS9LJwOMkS+PicdQ - zkqDREhs723Oepk3KeoysJ1lkj43rDKZtqBX5Lez4Mx0GFd23VdprYBTMqjDgmpW - Vnbo2dTlPSlmdtoFmcQsacZEe3h5Rg4rl/UGPN2Nbc0AMwx0p9jAXh3xwGc865Jq - nEg5rNNPWRmG78o+Ep5yA== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:53 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 24/26] drm: sun4i: de33: vi_scaler: add Display Engine 3.3 - (DE33) support -Date: Sun, 29 Sep 2024 22:04:56 +1300 -Message-ID: <20240929091107.838023-25-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -The vi_scaler appears to be used in preference to the ui_scaler module -for hardware video scaling in the DE33. - -Enable support for this scaler. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 19 +++++++++++++++---- - drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 7 ++++++- - 2 files changed, 21 insertions(+), 5 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -index 7f1231cf0f012..180be9d67d9c3 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c -@@ -95,12 +95,23 @@ static int sun8i_ui_layer_update_coord(struct sun8i_mixer *mixer, int channel, - hscale = state->src_w / state->crtc_w; - vscale = state->src_h / state->crtc_h; - -- sun8i_ui_scaler_setup(mixer, channel, src_w, src_h, dst_w, -- dst_h, hscale, vscale, hphase, vphase); -- sun8i_ui_scaler_enable(mixer, channel, true); -+ if (mixer->cfg->de_type == sun8i_mixer_de33) { -+ sun8i_vi_scaler_setup(mixer, channel, src_w, src_h, -+ dst_w, dst_h, hscale, vscale, -+ hphase, vphase, -+ state->fb->format); -+ } else { -+ sun8i_ui_scaler_setup(mixer, channel, src_w, src_h, -+ dst_w, dst_h, hscale, vscale, -+ hphase, vphase); -+ sun8i_ui_scaler_enable(mixer, channel, true); -+ } - } else { - DRM_DEBUG_DRIVER("HW scaling is not needed\n"); -- sun8i_ui_scaler_enable(mixer, channel, false); -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ sun8i_vi_scaler_disable(mixer, channel); -+ else -+ sun8i_ui_scaler_enable(mixer, channel, false); - } - - /* Set base coordinates */ -diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -index e7242301b312c..9c7f6e7d71d50 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -+++ b/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c -@@ -835,7 +835,9 @@ static const u32 bicubic4coefftab32[480] = { - - static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) - { -- if (mixer->cfg->de_type == sun8i_mixer_de3) -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ return sun8i_channel_base(mixer, channel) + 0x3000; -+ else if (mixer->cfg->de_type == sun8i_mixer_de3) - return DE3_VI_SCALER_UNIT_BASE + - DE3_VI_SCALER_UNIT_SIZE * channel; - else -@@ -845,6 +847,9 @@ static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel) - - static bool sun8i_vi_scaler_is_vi_plane(struct sun8i_mixer *mixer, int channel) - { -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ return mixer->cfg->map[channel] < mixer->cfg->vi_num; -+ - return true; - } - diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-25-26-drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-25-26-drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index 87f4e27a644c..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-25-26-drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,196 +0,0 @@ -From patchwork Sun Sep 29 09:04:57 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814941 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id 8D52DCF6497 - for ; Sun, 29 Sep 2024 09:14:07 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 152D710E2A0; - Sun, 29 Sep 2024 09:14:07 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="DbQuizj3"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="hovh5/9f"; - dkim-atps=neutral -Received: from fout-a3-smtp.messagingengine.com - (fout-a3-smtp.messagingengine.com [103.168.172.146]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 0A4B410E2A0 - for ; Sun, 29 Sep 2024 09:14:06 +0000 (UTC) -Received: from phl-compute-05.internal (phl-compute-05.phl.internal - [10.202.2.45]) - by mailfout.phl.internal (Postfix) with ESMTP id 6BC7213802B6; - Sun, 29 Sep 2024 05:14:05 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-05.internal (MEProxy); Sun, 29 Sep 2024 05:14:05 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601245; x= - 1727687645; bh=t/hGwFMygrSXn+HOCQW8wOfax07KyzMGRR0fPCScM44=; b=D - bQuizj3eKWlOwvk1lk4fmcqL1MLoqvE8sFIiDvatvrecxSb1lA4ziEMGh6Bi79EC - D74hOLzaFsMFx6AKFBUQ4VW3HXzNzJfrs5L/yCCA6yxvTTS4V36bCDvWR6kxugaK - +9ll7P+99VomWteom9cvQyZNFp4a+bTmNWYYWwaiiF8Am1ocUP5URRvO0NJ6VNXW - QHrEQ58DBbG+sK+X8h5QZCFNNqOiIkz8gQLIp5pW7ie3HMfeMsJywJqnhclqyopl - rOMLnnVpTK2vFS69tcJSmIi04G/8NM2HOpi9fmmobjbpw60dmjkx0PRVDvJNg3bj - RoAXJcHq70zuf+1tuiGXA== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601245; x= - 1727687645; bh=t/hGwFMygrSXn+HOCQW8wOfax07KyzMGRR0fPCScM44=; b=h - ovh5/9fsj7gqA8nVHzh3xRWSjii9lJT0yVef85JAZND+6zBUWatQxFrigQkeREAs - /q+r7NamFfXESDjb3dQdXzJIZkNJp5tZBaP707gQ/22eimInzGgf+UgPTlLfbxsN - 0exRYgdJBz3kaJFP9BzH/SFBZukXmrrN+x6KiUseW3twsnCVdIcIBOBVasK+aZu2 - LbLvAcHfFl4YcOz7J7IZxdArbSdaZJTQHUbA/q692sVrRPqg9lNSXykCaLgIIsnH - L+pKfrGVio2kVSxF9R8m1AuyPe59qqEJW9ReV1dkcH9se/u4BqbQ2q0EabAN94Li - G2LSHmzTJuL8g6NZQLGWw== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudegucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:13:59 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 25/26] drm: sun4i: de33: fmt: add Display Engine 3.3 (DE33) - support -Date: Sun, 29 Sep 2024 22:04:57 +1300 -Message-ID: <20240929091107.838023-26-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Like the DE3, the DE33 has a FMT (formatter) module, which -provides YUV444 to YUV422/YUV420 conversion, format re-mapping and color -depth conversion, although the DE33 module appears significantly more -capable, including up to 4K video support. - -Add support for the DE33. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun50i_fmt.c | 21 +++++++++++++++++++-- - drivers/gpu/drm/sun4i/sun50i_fmt.h | 1 + - 2 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.c b/drivers/gpu/drm/sun4i/sun50i_fmt.c -index 050a8716ae862..39682d4e6d208 100644 ---- a/drivers/gpu/drm/sun4i/sun50i_fmt.c -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.c -@@ -51,6 +51,19 @@ static void sun50i_fmt_de3_limits(u32 *limits, u32 colorspace, bool bit10) - } - } - -+static void sun50i_fmt_de33_limits(u32 *limits, u32 colorspace) -+{ -+ if (colorspace == SUN50I_FMT_CS_YUV444RGB) { -+ limits[0] = SUN50I_FMT_LIMIT(0, 4095); -+ limits[1] = SUN50I_FMT_LIMIT(0, 4095); -+ limits[2] = SUN50I_FMT_LIMIT(0, 4095); -+ } else { -+ limits[0] = SUN50I_FMT_LIMIT(256, 3840); -+ limits[1] = SUN50I_FMT_LIMIT(256, 3840); -+ limits[2] = SUN50I_FMT_LIMIT(256, 3840); -+ } -+} -+ - void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, - u16 height, u32 format) - { -@@ -60,10 +73,14 @@ void sun50i_fmt_setup(struct sun8i_mixer *mixer, u16 width, - - colorspace = sun50i_fmt_get_colorspace(format); - bit10 = sun50i_fmt_is_10bit(format); -- base = SUN50I_FMT_DE3; -+ base = mixer->cfg->de_type == sun8i_mixer_de3 ? -+ SUN50I_FMT_DE3 : SUN50I_FMT_DE33; - regs = sun8i_blender_regmap(mixer); - -- sun50i_fmt_de3_limits(limit, colorspace, bit10); -+ if (mixer->cfg->de_type == sun8i_mixer_de3) -+ sun50i_fmt_de3_limits(limit, colorspace, bit10); -+ else -+ sun50i_fmt_de33_limits(limit, colorspace); - - regmap_write(regs, SUN50I_FMT_CTRL(base), 0); - -diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.h b/drivers/gpu/drm/sun4i/sun50i_fmt.h -index 4127f7206aade..3e60d5c788b39 100644 ---- a/drivers/gpu/drm/sun4i/sun50i_fmt.h -+++ b/drivers/gpu/drm/sun4i/sun50i_fmt.h -@@ -9,6 +9,7 @@ - #include "sun8i_mixer.h" - - #define SUN50I_FMT_DE3 0xa8000 -+#define SUN50I_FMT_DE33 0x5000 - - #define SUN50I_FMT_CTRL(base) ((base) + 0x00) - #define SUN50I_FMT_SIZE(base) ((base) + 0x04) diff --git a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-26-26-drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch b/patch/kernel/archive/sunxi-6.12/patches.drm/v5-26-26-drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch deleted file mode 100644 index 7b34e3d6d6ff..000000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.drm/v5-26-26-drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch +++ /dev/null @@ -1,277 +0,0 @@ -From patchwork Sun Sep 29 09:04:58 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Ryan Walklin -X-Patchwork-Id: 13814942 -Return-Path: -X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on - aws-us-west-2-korg-lkml-1.web.codeaurora.org -Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) - (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) - (No client certificate requested) - by smtp.lore.kernel.org (Postfix) with ESMTPS id A80F4CF6495 - for ; Sun, 29 Sep 2024 09:14:13 +0000 (UTC) -Received: from gabe.freedesktop.org (localhost [127.0.0.1]) - by gabe.freedesktop.org (Postfix) with ESMTP id 34CAA10E2B0; - Sun, 29 Sep 2024 09:14:13 +0000 (UTC) -Authentication-Results: gabe.freedesktop.org; - dkim=pass (2048-bit key; - unprotected) header.d=testtoast.com header.i=@testtoast.com - header.b="OaBA17uZ"; - dkim=pass (2048-bit key; - unprotected) header.d=messagingengine.com header.i=@messagingengine.com - header.b="jssl7r2d"; - dkim-atps=neutral -Received: from fhigh-a2-smtp.messagingengine.com - (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) - by gabe.freedesktop.org (Postfix) with ESMTPS id 449A910E2B0 - for ; Sun, 29 Sep 2024 09:14:12 +0000 (UTC) -Received: from phl-compute-06.internal (phl-compute-06.phl.internal - [10.202.2.46]) - by mailfhigh.phl.internal (Postfix) with ESMTP id A760011402B9; - Sun, 29 Sep 2024 05:14:11 -0400 (EDT) -Received: from phl-mailfrontend-01 ([10.202.2.162]) - by phl-compute-06.internal (MEProxy); Sun, 29 Sep 2024 05:14:11 -0400 -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=testtoast.com; - h=cc:cc:content-transfer-encoding:content-type:date:date:from - :from:in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to; s=fm2; t=1727601251; x= - 1727687651; bh=QWeAcEx5ydjrPlUyYTxWYAwZbE8Bk7NgntmEsZsvBn8=; b=O - aBA17uZj/L2pn0+yhz/qTixr61p+3X2jI/a/EJgqtLGacB1dDRcT9L88SMMqS7lD - wPIdkieezyX2bg0gQ0oHq9sZNkhUncvM4ygL+KjgmzdvpQd7wpKiOE0TCn/H+/Bl - TjzokP5e7EzyVZ+K7Nr97Nbdy0gynKezrbeEMcJo3qeAMZ/XfoKIzIy+ejiT+AhW - 00PqhW28I4V1CUF6RoF+lEjgJkpMUXEyJ9zUQz8xE9GwpVdhAbdCrnp+xt5DnqoX - HbTFncKVu9F7IDD97VCI/H2XLh6SKfyuwqG0qUpR3mQrzZ6d75UddGmADHmrCMhI - 601P6IWN7sF9KgNFg9zXQ== -DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= - messagingengine.com; h=cc:cc:content-transfer-encoding - :content-type:date:date:feedback-id:feedback-id:from:from - :in-reply-to:in-reply-to:message-id:mime-version:references - :reply-to:subject:subject:to:to:x-me-proxy:x-me-proxy - :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1727601251; x= - 1727687651; bh=QWeAcEx5ydjrPlUyYTxWYAwZbE8Bk7NgntmEsZsvBn8=; b=j - ssl7r2dZ/rLld/S4nVJisvUSxk+El2WOf8EqwYpZe4ONwytI7MhRVlYtUIDXSYCQ - La/U/pssddI89ZxLI7QQ3jGX5Ks5hWUclN5yppHroWXR1/lpusxzhaY6oktLAg93 - UYSApGW8NagCDw/Ruat9FVV9G1rdW5MDEorftm8obai0l1WFv5EUB8ykxv2E55/1 - bej8Qqgl88GhnM7ud9BjdV9V/Ukgm/GGr2m9x2UwfF4NIemrypoHEdtoaIqy4EMD - XRpOkeB8GjCSlRWyqnkj/Ya8PBEPf3XUa1IS9CyK1kohn2RpZdu8/5vSEYe9TDL6 - LQ920E4hA5keCLcy9xh+Q== -X-ME-Sender: - -X-ME-Received: - -X-ME-Proxy-Cause: - gggruggvucftvghtrhhoucdtuddrgeeftddrvddufedgudehucetufdoteggodetrfdotf - fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu - rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh - htshculddquddttddmnecujfgurhephffvvefufffkofgjfhgggfestdekredtredttden - ucfhrhhomheptfihrghnucghrghlkhhlihhnuceorhihrghnsehtvghsthhtohgrshhtrd - gtohhmqeenucggtffrrghtthgvrhhnpeffheeiffegtdfgffejteevgeefkeelieelkeev - ueetffetteduffevgeeiieehteenucevlhhushhtvghrufhiiigvpedvnecurfgrrhgrmh - epmhgrihhlfhhrohhmpehrhigrnhesthgvshhtthhorghsthdrtghomhdpnhgspghrtghp - thhtohepvddupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehmrhhiphgrrhguse - hkvghrnhgvlhdrohhrghdprhgtphhtthhopeifvghnshestghsihgvrdhorhhgpdhrtghp - thhtohepmhgrrghrthgvnhdrlhgrnhhkhhhorhhstheslhhinhhugidrihhnthgvlhdrtg - homhdprhgtphhtthhopehtiihimhhmvghrmhgrnhhnsehsuhhsvgdruggvpdhrtghpthht - oheprghirhhlihgvugesghhmrghilhdrtghomhdprhgtphhtthhopegurghnihgvlhesfh - hffihllhdrtghhpdhrtghpthhtohepjhgvrhhnvghjrdhskhhrrggsvggtsehgmhgrihhl - rdgtohhmpdhrtghpthhtohepshgrmhhuvghlsehshhholhhlrghnugdrohhrghdprhgtph - htthhopehrohgshheskhgvrhhnvghlrdhorhhg -X-ME-Proxy: - - - - -Feedback-ID: idc0145fc:Fastmail -Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, - 29 Sep 2024 05:14:05 -0400 (EDT) -From: Ryan Walklin -To: Maxime Ripard , Chen-Yu Tsai , - Maarten Lankhorst , - Thomas Zimmermann , David Airlie , - Daniel Vetter , Jernej Skrabec , - Samuel Holland , Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Michael Turquette , - Stephen Boyd -Cc: Andre Przywara , - Chris Morgan , dri-devel@lists.freedesktop.org, - linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, - devicetree@vger.kernel.org, linux-clk@vger.kernel.org, - Ryan Walklin -Subject: [PATCH v5 26/26] drm: sun4i: de33: csc: add Display Engine 3.3 (DE33) - support -Date: Sun, 29 Sep 2024 22:04:58 +1300 -Message-ID: <20240929091107.838023-27-ryan@testtoast.com> -X-Mailer: git-send-email 2.46.1 -In-Reply-To: <20240929091107.838023-1-ryan@testtoast.com> -References: <20240929091107.838023-1-ryan@testtoast.com> -MIME-Version: 1.0 -X-BeenThere: dri-devel@lists.freedesktop.org -X-Mailman-Version: 2.1.29 -Precedence: list -List-Id: Direct Rendering Infrastructure - Development - -List-Unsubscribe: , - -List-Archive: -List-Post: -List-Help: -List-Subscribe: , - -Errors-To: dri-devel-bounces@lists.freedesktop.org -Sender: "dri-devel" - -From: Jernej Skrabec - -Like earlier DE versions, the DE33 has a CSC (Color Space Correction) -module. which provides color space conversion between BT2020/BT709, and -dynamic range conversion between SDR/ST2084/HLG. - -Add support for the DE33. - -Signed-off-by: Jernej Skrabec -Signed-off-by: Ryan Walklin ---- - drivers/gpu/drm/sun4i/sun8i_csc.c | 96 +++++++++++++++++++++++++++++++ - drivers/gpu/drm/sun4i/sun8i_csc.h | 3 + - 2 files changed, 99 insertions(+) - -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c -index 2d5a2cf7cba24..45bd1ca06400e 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.c -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.c -@@ -238,6 +238,14 @@ static const u32 yuv2yuv_de3[2][3][3][12] = { - }, - }; - -+static u32 sun8i_csc_base(struct sun8i_mixer *mixer, int layer) -+{ -+ if (mixer->cfg->de_type == sun8i_mixer_de33) -+ return sun8i_channel_base(mixer, layer) - 0x800; -+ else -+ return ccsc_base[mixer->cfg->ccsc][layer]; -+} -+ - static void sun8i_csc_setup(struct regmap *map, u32 base, - enum format_type fmt_type, - enum drm_color_encoding encoding, -@@ -358,6 +366,90 @@ static void sun8i_de3_ccsc_setup(struct sunxi_engine *engine, int layer, - mask, val); - } - -+/* extract constant from high word and invert sign if necessary */ -+static u32 sun8i_de33_ccsc_get_constant(u32 value) -+{ -+ value >>= 16; -+ -+ if (value & BIT(15)) -+ return 0x400 - (value & 0x3ff); -+ -+ return value; -+} -+ -+static void sun8i_de33_convert_table(const u32 *src, u32 *dst) -+{ -+ dst[0] = sun8i_de33_ccsc_get_constant(src[3]); -+ dst[1] = sun8i_de33_ccsc_get_constant(src[7]); -+ dst[2] = sun8i_de33_ccsc_get_constant(src[11]); -+ memcpy(&dst[3], src, sizeof(u32) * 12); -+ dst[6] &= 0xffff; -+ dst[10] &= 0xffff; -+ dst[14] &= 0xffff; -+} -+ -+static void sun8i_de33_ccsc_setup(struct sun8i_mixer *mixer, int layer, -+ enum format_type fmt_type, -+ enum drm_color_encoding encoding, -+ enum drm_color_range range) -+{ -+ u32 addr, val = 0, base, csc[15]; -+ struct sunxi_engine *engine; -+ struct regmap *map; -+ const u32 *table; -+ int i; -+ -+ table = yuv2rgb_de3[range][encoding]; -+ base = sun8i_csc_base(mixer, layer); -+ engine = &mixer->engine; -+ map = engine->regs; -+ -+ switch (fmt_type) { -+ case FORMAT_TYPE_RGB: -+ if (engine->format == MEDIA_BUS_FMT_RGB888_1X24) -+ break; -+ val = SUN8I_CSC_CTRL_EN; -+ sun8i_de33_convert_table(rgb2yuv_de3[engine->encoding], csc); -+ regmap_bulk_write(map, SUN50I_CSC_COEFF(base, 0), csc, 15); -+ break; -+ case FORMAT_TYPE_YUV: -+ table = sun8i_csc_get_de3_yuv_table(encoding, range, -+ engine->format, -+ engine->encoding); -+ if (!table) -+ break; -+ val = SUN8I_CSC_CTRL_EN; -+ sun8i_de33_convert_table(table, csc); -+ regmap_bulk_write(map, SUN50I_CSC_COEFF(base, 0), csc, 15); -+ break; -+ case FORMAT_TYPE_YVU: -+ table = sun8i_csc_get_de3_yuv_table(encoding, range, -+ engine->format, -+ engine->encoding); -+ if (!table) -+ table = yuv2yuv_de3[range][encoding][encoding]; -+ val = SUN8I_CSC_CTRL_EN; -+ sun8i_de33_convert_table(table, csc); -+ for (i = 0; i < 15; i++) { -+ addr = SUN50I_CSC_COEFF(base, i); -+ if (i > 3) { -+ if (((i - 3) & 3) == 1) -+ addr = SUN50I_CSC_COEFF(base, i + 1); -+ else if (((i - 3) & 3) == 2) -+ addr = SUN50I_CSC_COEFF(base, i - 1); -+ } -+ regmap_write(map, addr, csc[i]); -+ } -+ break; -+ default: -+ val = 0; -+ DRM_WARN("Wrong CSC mode specified.\n"); -+ return; -+ } -+ -+ regmap_write(map, SUN8I_CSC_CTRL(base), val); -+} -+ - void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - enum format_type fmt_type, - enum drm_color_encoding encoding, -@@ -369,6 +461,10 @@ void sun8i_csc_set_ccsc(struct sun8i_mixer *mixer, int layer, - sun8i_de3_ccsc_setup(&mixer->engine, layer, - fmt_type, encoding, range); - return; -+ } else if (mixer->cfg->de_type == sun8i_mixer_de33) { -+ sun8i_de33_ccsc_setup(mixer, layer, fmt_type, -+ encoding, range); -+ return; - } - - if (layer < mixer->cfg->vi_num) { -diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.h b/drivers/gpu/drm/sun4i/sun8i_csc.h -index b7546e06e315c..2b762cb79f02c 100644 ---- a/drivers/gpu/drm/sun4i/sun8i_csc.h -+++ b/drivers/gpu/drm/sun4i/sun8i_csc.h -@@ -20,6 +20,9 @@ struct sun8i_mixer; - #define SUN8I_CSC_CTRL(base) ((base) + 0x0) - #define SUN8I_CSC_COEFF(base, i) ((base) + 0x10 + 4 * (i)) - -+#define SUN50I_CSC_COEFF(base, i) ((base) + 0x04 + 4 * (i)) -+#define SUN50I_CSC_ALPHA(base) ((base) + 0x40) -+ - #define SUN8I_CSC_CTRL_EN BIT(0) - - enum format_type { diff --git a/patch/kernel/archive/sunxi-6.12/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch b/patch/kernel/archive/sunxi-6.12/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch index 3f3eb38e7c60..fbba0e3414ed 100644 --- a/patch/kernel/archive/sunxi-6.12/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch +++ b/patch/kernel/archive/sunxi-6.12/patches.megous/clk-sunxi-ng-sun50i-a64-Switch-parent-of-MIPI-DSI-to-periph0-1x.patch @@ -25,23 +25,24 @@ index 111111111111..222222222222 100644 static int sun50i_a64_ccu_probe(struct platform_device *pdev) { void __iomem *reg; -@@ -981,9 +983,15 @@ static int sun50i_a64_ccu_probe(struct platform_device *pdev) +@@ -980,7 +982,16 @@ static int sun50i_a64_ccu_probe(struct platform_device *pdev) + /* Decrease the PLL AUDIO bias current to reduce noise. */ writel(0x10040000, reg + SUN50I_A64_PLL_AUDIO_BIAS_REG); - ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &val); -- if (ret) +- writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG); ++ ret = of_property_read_u32_index(of_chosen, "p-boot,framebuffer-start", 0, &val); + if (ret) { - writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG); - ++ writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG); ++ + /* Set MIPI-DSI clock parent to periph0(1x), so that video0(1x) is free to change. */ + val = readl(reg + CCU_MIPI_DSI_CLK); + val &= 0x30f; + val |= (2 << 8) | ((4 - 1) << 0); /* M-1 */ + writel(val, reg + CCU_MIPI_DSI_CLK); + } + /* Set PLL MIPI as parent for TCON0 */ val = readl(reg + SUN50I_A64_TCON0_CLK_REG); - val &= ~GENMASK(26, 24); -- Armbian diff --git a/patch/kernel/archive/sunxi-6.12/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch b/patch/kernel/archive/sunxi-6.12/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch index c10141ce51ab..65d6df07fa94 100644 --- a/patch/kernel/archive/sunxi-6.12/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch +++ b/patch/kernel/archive/sunxi-6.12/patches.megous/video-pwm_bl-Allow-to-change-lth_brightness-via-sysfs.patch @@ -90,15 +90,29 @@ index 111111111111..222222222222 100644 static int pwm_backlight_probe(struct platform_device *pdev) { struct platform_pwm_backlight_data *data = dev_get_platdata(&pdev->dev); -@@ -445,6 +500,7 @@ static int pwm_backlight_probe(struct platform_device *pdev) +@@ -444,7 +499,8 @@ static int pwm_backlight_probe(struct platform_device *pdev) + struct backlight_properties props; struct backlight_device *bl; struct pwm_bl_data *pb; - struct pwm_state state, state_real; +- struct pwm_state state; ++ struct pwm_state state, state_real; + u32 lth_brightness; unsigned int i; int ret; -@@ -584,8 +640,20 @@ static int pwm_backlight_probe(struct platform_device *pdev) +@@ -509,6 +565,11 @@ static int pwm_backlight_probe(struct platform_device *pdev) + /* Sync up PWM state. */ + pwm_init_state(pb->pwm, &state); + ++ /* Read real state, but only if the PWM is enabled. */ ++ pwm_get_state(pb->pwm, &state_real); ++ if (state_real.enabled) ++ state = state_real; ++ + /* + * The DT case will set the pwm_period_ns field to 0 and store the + * period, parsed from the DT, in the PWM device. For the non-DT case, +@@ -579,8 +640,20 @@ static int pwm_backlight_probe(struct platform_device *pdev) pb->scale = data->max_brightness; } @@ -121,6 +135,31 @@ index 111111111111..222222222222 100644 props.type = BACKLIGHT_RAW; props.max_brightness = data->max_brightness; +@@ -601,6 +674,24 @@ static int pwm_backlight_probe(struct platform_device *pdev) + + bl->props.brightness = data->dft_brightness; + bl->props.power = pwm_backlight_initial_power_state(pb); ++ if (bl->props.power == FB_BLANK_UNBLANK && pb->levels) { ++ u64 level; ++ ++ /* If the backlight is already on, determine the default ++ * brightness from PWM duty cycle instead of forcing ++ * the brightness determined by the driver ++ */ ++ pwm_get_state(pb->pwm, &state); ++ level = (u64)state.duty_cycle * pb->scale; ++ do_div(level, (u64)state.period); ++ ++ for (i = 0; i <= data->max_brightness; i++) { ++ if (data->levels[i] > level) { ++ bl->props.brightness = i; ++ break; ++ } ++ } ++ } + backlight_update_status(bl); + + platform_set_drvdata(pdev, bl); -- Armbian diff --git a/patch/kernel/archive/sunxi-6.12/series.conf b/patch/kernel/archive/sunxi-6.12/series.conf index 7e9c7a3479cd..f5c150b512f8 100644 --- a/patch/kernel/archive/sunxi-6.12/series.conf +++ b/patch/kernel/archive/sunxi-6.12/series.conf @@ -259,32 +259,32 @@ # drivers/gpu/drm/sun4i/ # ################################################################################ -patches.drm/v5-01-26-drm-sun4i-de2-de3-Change-CSC-argument.patch -patches.drm/v5-02-26-drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch -patches.drm/v5-03-26-drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch -patches.drm/v5-04-26-drm-sun4i-de2-Initialize-layer-fields-earlier.patch -patches.drm/v5-05-26-drm-sun4i-de3-Add-YUV-formatter-module.patch -patches.drm/v5-06-26-drm-sun4i-de3-add-format-enumeration-function-to-engine.patch -patches.drm/v5-07-26-drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch -patches.drm/v5-08-26-drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch -patches.drm/v5-09-26-drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch -patches.drm/v5-10-26-drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-module.patch -patches.drm/v5-11-26-drm-sun4i-de3-add-YUV-support-to-the-TCON.patch -patches.drm/v5-12-26-drm-sun4i-support-YUV-formats-in-VI-scaler.patch -patches.drm/v5-13-26-drm-sun4i-de2-de3-add-mixer-version-enum.patch -patches.drm/v5-14-26-drm-sun4i-de2-de3-refactor-mixer-initialisation.patch -patches.drm/v5-15-26-drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch -patches.drm/v5-16-26-drm-sun4i-de2-de3-add-generic-blender-register-reference-function.patch -patches.drm/v5-17-26-drm-sun4i-de2-de3-use-generic-register-reference-function-for-layer-configuration.patch -patches.drm/v5-18-26-drm-sun4i-de3-Implement-AFBC-support.patch -patches.drm/v5-19-26-dt-bindings-allwinner-add-H616-DE33-bus-binding.patch -patches.drm/v5-20-26-dt-bindings-allwinner-add-H616-DE33-clock-binding.patch -patches.drm/v5-21-26-dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch -patches.drm/v5-22-26-clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-23-26-drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-24-26-drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-25-26-drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-26-26-drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch + patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch + patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch + patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch + patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch + patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch + patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch + patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch + patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch + patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch + patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch + patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch + patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch + patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch + patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch + patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch + patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch + patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch + patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch + patches.drm/dt-bindings-allwinner-add-H616-DE33-clock-binding.patch + patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch + patches.drm/clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch ################################################################################ # @@ -442,7 +442,7 @@ patches.drm/v5-26-26-drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patc patches.armbian/ARM-dts-sun8i-nanopiduo2-enable-ethernet.patch patches.armbian/arm-dts-sun8i-h3-reduce-opp-microvolt-to-prevent-not-supported-.patch patches.armbian/arm64-dts-sun50i-h5-enable-power-button-for-orangepi-prime.patch - patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch +- patches.armbian/enable-TV-Output-on-OrangePi-Zero-LTE.patch patches.armbian/arm64-dts-allwinner-h6-Add-AC200-EPHY-nodes.patch patches.armbian/arm64-dts-allwinner-h6-tanix-enable-Ethernet.patch patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch diff --git a/patch/kernel/archive/sunxi-6.12/series.drm b/patch/kernel/archive/sunxi-6.12/series.drm index 623b1a34ad44..e8da74cd7509 100644 --- a/patch/kernel/archive/sunxi-6.12/series.drm +++ b/patch/kernel/archive/sunxi-6.12/series.drm @@ -3,29 +3,29 @@ # drivers/gpu/drm/sun4i/ # ################################################################################ -patches.drm/v5-01-26-drm-sun4i-de2-de3-Change-CSC-argument.patch -patches.drm/v5-02-26-drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch -patches.drm/v5-03-26-drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch -patches.drm/v5-04-26-drm-sun4i-de2-Initialize-layer-fields-earlier.patch -patches.drm/v5-05-26-drm-sun4i-de3-Add-YUV-formatter-module.patch -patches.drm/v5-06-26-drm-sun4i-de3-add-format-enumeration-function-to-engine.patch -patches.drm/v5-07-26-drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch -patches.drm/v5-08-26-drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch -patches.drm/v5-09-26-drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch -patches.drm/v5-10-26-drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-module.patch -patches.drm/v5-11-26-drm-sun4i-de3-add-YUV-support-to-the-TCON.patch -patches.drm/v5-12-26-drm-sun4i-support-YUV-formats-in-VI-scaler.patch -patches.drm/v5-13-26-drm-sun4i-de2-de3-add-mixer-version-enum.patch -patches.drm/v5-14-26-drm-sun4i-de2-de3-refactor-mixer-initialisation.patch -patches.drm/v5-15-26-drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch -patches.drm/v5-16-26-drm-sun4i-de2-de3-add-generic-blender-register-reference-function.patch -patches.drm/v5-17-26-drm-sun4i-de2-de3-use-generic-register-reference-function-for-layer-configuration.patch -patches.drm/v5-18-26-drm-sun4i-de3-Implement-AFBC-support.patch -patches.drm/v5-19-26-dt-bindings-allwinner-add-H616-DE33-bus-binding.patch -patches.drm/v5-20-26-dt-bindings-allwinner-add-H616-DE33-clock-binding.patch -patches.drm/v5-21-26-dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch -patches.drm/v5-22-26-clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-23-26-drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-24-26-drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-25-26-drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch -patches.drm/v5-26-26-drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de2-de3-Change-CSC-argument.patch + patches.drm/drm-sun4i-de2-de3-Merge-CSC-functions-into-one.patch + patches.drm/drm-sun4i-de2-de3-call-csc-setup-also-for-UI-layer.patch + patches.drm/drm-sun4i-de2-Initialize-layer-fields-earlier.patch + patches.drm/drm-sun4i-de3-Add-YUV-formatter-module.patch + patches.drm/drm-sun4i-de3-add-format-enumeration-function-to-engine.patch + patches.drm/drm-sun4i-de3-add-formatter-flag-to-mixer-config.patch + patches.drm/drm-sun4i-de3-add-YUV-support-to-the-DE3-mixer.patch + patches.drm/drm-sun4i-de3-pass-engine-reference-to-ccsc-setup-function.patch + patches.drm/drm-sun4i-de3-add-YUV-support-to-the-color-space-correction-mod.patch + patches.drm/drm-sun4i-de3-add-YUV-support-to-the-TCON.patch + patches.drm/drm-sun4i-support-YUV-formats-in-VI-scaler.patch + patches.drm/drm-sun4i-de2-de3-add-mixer-version-enum.patch + patches.drm/drm-sun4i-de2-de3-refactor-mixer-initialisation.patch + patches.drm/drm-sun4i-vi_scaler-refactor-vi_scaler-enablement.patch + patches.drm/drm-sun4i-de2-de3-add-generic-blender-register-reference-functi.patch + patches.drm/drm-sun4i-de2-de3-use-generic-register-reference-function-for-l.patch + patches.drm/drm-sun4i-de3-Implement-AFBC-support.patch + patches.drm/dt-bindings-allwinner-add-H616-DE33-bus-binding.patch + patches.drm/dt-bindings-allwinner-add-H616-DE33-clock-binding.patch + patches.drm/dt-bindings-allwinner-add-H616-DE33-mixer-binding.patch + patches.drm/clk-sunxi-ng-ccu-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-mixer-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-vi_scaler-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-fmt-add-Display-Engine-3.3-DE33-support.patch + patches.drm/drm-sun4i-de33-csc-add-Display-Engine-3.3-DE33-support.patch