[PATCH v15 00/13] VOP Support for rk3576

Andy Yan posted 13 patches 10 months ago
There is a newer version of this series
.../display/rockchip/rockchip-vop2.yaml       |   99 +-
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c  | 1472 +++-----------
drivers/gpu/drm/rockchip/rockchip_drm_vop2.h  |  277 ++-
drivers/gpu/drm/rockchip/rockchip_vop2_reg.c  | 1798 ++++++++++++++++-
4 files changed, 2377 insertions(+), 1269 deletions(-)
[PATCH v15 00/13] VOP Support for rk3576
Posted by Andy Yan 10 months ago
From: Andy Yan <andy.yan@rock-chips.com>


PATCH 1~9 are preparations for rk3576 support
PATCH 10~13 are real support for rk376

I test it with a 1080P/4K HDMI output with modetest and weston
output.

If there are some one want to have a try, I have a tree based on
Linux 6.14-rc1 here[0]

[0]https://github.com/andyshrk/linux/tree/rk3576-vop2-upstream-v14


Changes in v15:
- Remove AFBC/AFBCD prefix of TRANSFORM_OFFSET register
- Remove redundant blank line before function vop2_lock
- Fix nr_regs arguments for smart windows register.
- Link to v14: https://lore.kernel.org/linux-rockchip/20250212093530.52961-1-andyshrk@163.com/

Changes in v14:
- Rebase on drm-misc-next
- Set maxItems constraint of clocks for rk3588 to 9 as a recently
  merged patch added two optional clocks[0]:
  [0]https://patchwork.freedesktop.org/patch/msgid/20250204-vop2-hdmi0-disp-modes-v3-1-d71c6a196e58@collabora.com

Changes in v13:
- Add maxItems constraint for clocks
- Remove constraint for interrupts in allOf block, as the current
  maxItems is already 1.
- typo fix
- Explain the function of this property.
- Use maxItems constraint for clocks in allOf block

Changes in v12:
- Only change the description method for existing SoC.
- Split from patch 10/13
- Split from patch 10/13

Changes in v11:
- Remove redundant min/maxItems constraint
- Remove redundant min/maxItems constraint

Changes in v10:
- Move interrupt-names back to top level
- Add constraint of interrupts for all platform
- Add constraint for all grf phandles
- Reorder some properties
- Move interrupt-names back to top level
- Add constraint of interrupts for all platform
- Add constraint for all grf phandles
- Reorder some properties

Changes in v9:
- Drop 'vop-' prefix of interrupt-names.
- Add blank line between DT properties
- Remove list interrupt-names in top level
- Drop 'vop-' prefix of interrupt-names.
- Add blank line between DT properties
- Remove list interrupt-names in top level
- Drop 'vop-' prefix of interrupt-names.

Changes in v8:
- Remove redundant blank line before drm_bus_format_enum_list
- Add a blank line before DRM_ENUM_NAME_FN
- Fix dt_binding_check errors
- ordered by soc name
- Link to the previous version:
  https://lore.kernel.org/linux-rockchip/6pn3qjxotdtpzucpul24yro7ppddezwuizneovqvmgdwyv2j7p@ztg4mqyiqmjf/T/#u
- Fix dt_binding_check errors
- ordered by soc name
- Link to the previous version:
  https://lore.kernel.org/linux-rockchip/6pn3qjxotdtpzucpul24yro7ppddezwuizneovqvmgdwyv2j7p@ztg4mqyiqmjf/T/#u

Changes in v7:
- Fix rk3588 dp+dsi maxclk verification

Changes in v6:
- Add a blank line after hardware version check code
-  More specific explanation about the AXI_BUS_ID register bit of
   cluster window.

Changes in v5:
- Add axi id configuration
- Remove the non-existent CBCR scale register.

Changes in v4:
- Typo fix: selet->select
- describe constraint SOC by SOC, as interrupts of rk3576 is very
  different from others
- Drop Krzysztof's Reviewed-by, as this version changed a lot.
- describe constraint SOC by SOC, as interrupts of rk3576 is very
  different from others
- Drop Krzysztof's Reviewed-by, as this version changed a lot.

Changes in v3:
- Add comments for why we should treat rk3566 with special care.
- Add hardware version check
- Add comments for why we should treat rk3566 with special care.
- ordered by soc name
- Add description for newly added interrupt
- ordered by soc name
- Add description for newly added interrupt
- Share the alpha setup function with rk3568
- recoder the code block by soc

Changes in v2:
- Add platform specific callback
- Introduce vop hardware version
- Add dt bindings
- Add dt bindings
- Add platform specific callback

Andy Yan (12):
  drm/rockchip: vop2: Remove AFBC from TRANSFORM_OFFSET register macro
  drm/rockchip: vop2: Add platform specific callback
  drm/rockchip: vop2: Merge vop2_cluster/esmart_init function
  drm/rockchip: vop2: Support for different layer select configuration
    between VPs
  drm/rockchip: vop2: Introduce vop hardware version
  drm/rockchip: vop2: Register the primary plane and overlay plane
    separately
  drm/rockchip: vop2: Set plane possible crtcs by possible vp mask
  drm/rockchip: vop2: Add uv swap for cluster window
  dt-bindings: display: vop2: describe constraint SoC by SoC
  dt-bindings: display: vop2: Add missing rockchip,grf property for
    rk3566/8
  dt-bindings: display: vop2: Add rk3576 support
  drm/rockchip: vop2: Add support for rk3576

Heiko Stuebner (1):
  drm/rockchip: vop2: use devm_regmap_field_alloc for cluster-regs

 .../display/rockchip/rockchip-vop2.yaml       |   99 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c  | 1472 +++-----------
 drivers/gpu/drm/rockchip/rockchip_drm_vop2.h  |  277 ++-
 drivers/gpu/drm/rockchip/rockchip_vop2_reg.c  | 1798 ++++++++++++++++-
 4 files changed, 2377 insertions(+), 1269 deletions(-)

-- 
2.34.1
Re:[PATCH v15 00/13] VOP Support for rk3576
Posted by Andy Yan 9 months, 3 weeks ago
Hello Heiko,
     At your earliest convenience, could you kindly have a look whether this patch series is currently eligible for merge ? 
    I still hope it can land Linux 6.15 merge window. Please let me know if i need do some fix or rebase"
  
At 2025-02-18 19:27:27, "Andy Yan" <andyshrk@163.com> wrote:
>From: Andy Yan <andy.yan@rock-chips.com>
>
>
>PATCH 1~9 are preparations for rk3576 support
>PATCH 10~13 are real support for rk376
>
>I test it with a 1080P/4K HDMI output with modetest and weston
>output.
>
>If there are some one want to have a try, I have a tree based on
>Linux 6.14-rc1 here[0]
>
>[0]https://github.com/andyshrk/linux/tree/rk3576-vop2-upstream-v14
>
>
>Changes in v15:
>- Remove AFBC/AFBCD prefix of TRANSFORM_OFFSET register
>- Remove redundant blank line before function vop2_lock
>- Fix nr_regs arguments for smart windows register.
>- Link to v14: https://lore.kernel.org/linux-rockchip/20250212093530.52961-1-andyshrk@163.com/
>
>Changes in v14:
>- Rebase on drm-misc-next
>- Set maxItems constraint of clocks for rk3588 to 9 as a recently
>  merged patch added two optional clocks[0]:
>  [0]https://patchwork.freedesktop.org/patch/msgid/20250204-vop2-hdmi0-disp-modes-v3-1-d71c6a196e58@collabora.com
>
>Changes in v13:
>- Add maxItems constraint for clocks
>- Remove constraint for interrupts in allOf block, as the current
>  maxItems is already 1.
>- typo fix
>- Explain the function of this property.
>- Use maxItems constraint for clocks in allOf block
>
>Changes in v12:
>- Only change the description method for existing SoC.
>- Split from patch 10/13
>- Split from patch 10/13
>
>Changes in v11:
>- Remove redundant min/maxItems constraint
>- Remove redundant min/maxItems constraint
>
>Changes in v10:
>- Move interrupt-names back to top level
>- Add constraint of interrupts for all platform
>- Add constraint for all grf phandles
>- Reorder some properties
>- Move interrupt-names back to top level
>- Add constraint of interrupts for all platform
>- Add constraint for all grf phandles
>- Reorder some properties
>
>Changes in v9:
>- Drop 'vop-' prefix of interrupt-names.
>- Add blank line between DT properties
>- Remove list interrupt-names in top level
>- Drop 'vop-' prefix of interrupt-names.
>- Add blank line between DT properties
>- Remove list interrupt-names in top level
>- Drop 'vop-' prefix of interrupt-names.
>
>Changes in v8:
>- Remove redundant blank line before drm_bus_format_enum_list
>- Add a blank line before DRM_ENUM_NAME_FN
>- Fix dt_binding_check errors
>- ordered by soc name
>- Link to the previous version:
>  https://lore.kernel.org/linux-rockchip/6pn3qjxotdtpzucpul24yro7ppddezwuizneovqvmgdwyv2j7p@ztg4mqyiqmjf/T/#u
>- Fix dt_binding_check errors
>- ordered by soc name
>- Link to the previous version:
>  https://lore.kernel.org/linux-rockchip/6pn3qjxotdtpzucpul24yro7ppddezwuizneovqvmgdwyv2j7p@ztg4mqyiqmjf/T/#u
>
>Changes in v7:
>- Fix rk3588 dp+dsi maxclk verification
>
>Changes in v6:
>- Add a blank line after hardware version check code
>-  More specific explanation about the AXI_BUS_ID register bit of
>   cluster window.
>
>Changes in v5:
>- Add axi id configuration
>- Remove the non-existent CBCR scale register.
>
>Changes in v4:
>- Typo fix: selet->select
>- describe constraint SOC by SOC, as interrupts of rk3576 is very
>  different from others
>- Drop Krzysztof's Reviewed-by, as this version changed a lot.
>- describe constraint SOC by SOC, as interrupts of rk3576 is very
>  different from others
>- Drop Krzysztof's Reviewed-by, as this version changed a lot.
>
>Changes in v3:
>- Add comments for why we should treat rk3566 with special care.
>- Add hardware version check
>- Add comments for why we should treat rk3566 with special care.
>- ordered by soc name
>- Add description for newly added interrupt
>- ordered by soc name
>- Add description for newly added interrupt
>- Share the alpha setup function with rk3568
>- recoder the code block by soc
>
>Changes in v2:
>- Add platform specific callback
>- Introduce vop hardware version
>- Add dt bindings
>- Add dt bindings
>- Add platform specific callback
>
>Andy Yan (12):
>  drm/rockchip: vop2: Remove AFBC from TRANSFORM_OFFSET register macro
>  drm/rockchip: vop2: Add platform specific callback
>  drm/rockchip: vop2: Merge vop2_cluster/esmart_init function
>  drm/rockchip: vop2: Support for different layer select configuration
>    between VPs
>  drm/rockchip: vop2: Introduce vop hardware version
>  drm/rockchip: vop2: Register the primary plane and overlay plane
>    separately
>  drm/rockchip: vop2: Set plane possible crtcs by possible vp mask
>  drm/rockchip: vop2: Add uv swap for cluster window
>  dt-bindings: display: vop2: describe constraint SoC by SoC
>  dt-bindings: display: vop2: Add missing rockchip,grf property for
>    rk3566/8
>  dt-bindings: display: vop2: Add rk3576 support
>  drm/rockchip: vop2: Add support for rk3576
>
>Heiko Stuebner (1):
>  drm/rockchip: vop2: use devm_regmap_field_alloc for cluster-regs
>
> .../display/rockchip/rockchip-vop2.yaml       |   99 +-
> drivers/gpu/drm/rockchip/rockchip_drm_vop2.c  | 1472 +++-----------
> drivers/gpu/drm/rockchip/rockchip_drm_vop2.h  |  277 ++-
> drivers/gpu/drm/rockchip/rockchip_vop2_reg.c  | 1798 ++++++++++++++++-
> 4 files changed, 2377 insertions(+), 1269 deletions(-)
>
>-- 
>2.34.1
Re: (subset) [PATCH v15 00/13] VOP Support for rk3576
Posted by Heiko Stuebner 9 months, 3 weeks ago
On Tue, 18 Feb 2025 19:27:27 +0800, Andy Yan wrote:
> PATCH 1~9 are preparations for rk3576 support
> PATCH 10~13 are real support for rk376
> 
> I test it with a 1080P/4K HDMI output with modetest and weston
> output.
> 
> If there are some one want to have a try, I have a tree based on
> Linux 6.14-rc1 here[0]
> 
> [...]

Applied, thanks!

[01/13] drm/rockchip: vop2: use devm_regmap_field_alloc for cluster-regs
        commit: ff0b6c031ed3ed31024618340c795523a86e6688
[02/13] drm/rockchip: vop2: Remove AFBC from TRANSFORM_OFFSET register macro
        commit: 838a871a4d51b59fe56ac0422b97443203bfa55c
[03/13] drm/rockchip: vop2: Add platform specific callback
        commit: 328e6885996ca2c6eb8b07d3c9bb1439fdcb088f
[04/13] drm/rockchip: vop2: Merge vop2_cluster/esmart_init function
        commit: 145c9b36892a07bf5e2525b4938e1a6cc9b41b7a
[05/13] drm/rockchip: vop2: Support for different layer select configuration between VPs
        commit: 5439c4f3cb0ec11a3f3cb70be2b019770f6d183c
[06/13] drm/rockchip: vop2: Introduce vop hardware version
        commit: 301618ed1d8ab7cfaec39b107eded9f263da2299

Best regards,
-- 
Heiko Stuebner <heiko@sntech.de>