mbox series

[v5,00/11] drm/bridge: dw-hdmi: implement bus-format negotiation and YUV420 support

Message ID 20200304104052.17196-1-narmstrong@baylibre.com (mailing list archive)
Headers show
Series drm/bridge: dw-hdmi: implement bus-format negotiation and YUV420 support | expand

Message

Neil Armstrong March 4, 2020, 10:40 a.m. UTC
Hi Philippe, Heiko, Maxime, Laurent,

A bad negociation was detected on platforms not implementing a bridge on the
encoder side, which has been fixed in this version.

Could you check it doesn't break your platforms using dw-hdmi ? Especially
patches 1-5.

Thanks,
Neil

This patchset is based on Boris's merged "drm: Add support for bus-format negotiation"
patchset to implement full bus-format negotiation for DW-HDMI, including YUV420 support and
10/12/16bit YUV444, YUV422 and RGB. The Color Space Converter support is already implemented.

And the counterpart implementation in the Amlogic Meson VPU dw-hdmi glue :
- basic bus-format negotiation to select YUV444 bus-format as DW-HDMI input
- YUV420 support when HDMI2.0 YUV420 modeset

This is a follow-up from the previous attempts :
- "drm/meson: Add support for HDMI2.0 YUV420 4k60" at [2]
- "drm/meson: Add support for HDMI2.0 4k60" at [3]

Changes since v4 at [7]:
- Cleaned up patch 1
- Added comment on patch 2
- Added commit message on patch 3
- Fixed invalid negociation when encoder is not yet a bridge (seen on allwinner & rockchip platforms) on patch 4
- Fixed invalid defines, handled MEDIA_BUS_FMT_FIXED and cleaned negociation debug on patch 4
- Added tags on patch 5, 6
- Removed meson_venc_hdmi_encoder_get_out_bus_fmts on patch 7
- Add off-list r-b from Jernej

Changes since v3 at [6]:
- Added "Plug atomic state hooks to the default implementation" on drm/bridge: dw-hdmi
- Also added these atomic state hooks in meson-dw-hdmi in patch 7
- Rebased on latest drm-misc-next including patches 1-7 of [1]

Changes since RFC v2 at [5]:
- Added fixes from Jonas, who tested and integrated it for Rockchip SoCs
- Added support for 10/12/16bit tmds clock calculation
- Added support for max_bcp connector property
- Adapted to Boris's v4 patchset
- Fixed typos reported by boris

Changes since RFC v1 at [4]:
- Rewrote negociation using the v2 patchset, including full DW-HDMI fmt negociation

[2] https://patchwork.freedesktop.org/patch/msgid/20190520133753.23871-1-narmstrong@baylibre.com
[3] https://patchwork.freedesktop.org/patch/msgid/1549022873-40549-1-git-send-email-narmstrong@baylibre.com
[4] https://patchwork.freedesktop.org/patch/msgid/20190820084109.24616-1-narmstrong@baylibre.com
[5] https://patchwork.freedesktop.org/patch/msgid/20190827081425.15011-1-narmstrong@baylibre.com
[6] https://patchwork.freedesktop.org/patch/msgid/20191218154637.17509-1-narmstrong@baylibre.com
[7] https://patchwork.freedesktop.org/patch/msgid/20200206191834.6125-1-narmstrong@baylibre.com

Jonas Karlman (2):
  drm/bridge: dw-hdmi: set mtmdsclock for deep color
  drm/bridge: dw-hdmi: add max bpc connector property

Neil Armstrong (9):
  drm/bridge: dw-hdmi: Plug atomic state hooks to the default
    implementation
  drm/bridge: synopsys: dw-hdmi: add bus format negociation
  drm/bridge: synopsys: dw-hdmi: allow ycbcr420 modes for >= 0x200a
  drm/meson: venc: make drm_display_mode const
  drm/meson: meson_dw_hdmi: add bridge and switch to drm_bridge_funcs
  drm/meson: dw-hdmi: stop enforcing input_bus_format
  drm/meson: venc: add support for YUV420 setup
  drm/meson: vclk: add support for YUV420 setup
  drm/meson: Add YUV420 output support

 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 319 +++++++++++++++++++++-
 drivers/gpu/drm/meson/meson_dw_hdmi.c     | 180 +++++++++---
 drivers/gpu/drm/meson/meson_vclk.c        |  93 +++++--
 drivers/gpu/drm/meson/meson_vclk.h        |   7 +-
 drivers/gpu/drm/meson/meson_venc.c        |  10 +-
 drivers/gpu/drm/meson/meson_venc.h        |   4 +-
 drivers/gpu/drm/meson/meson_venc_cvbs.c   |   6 +-
 include/drm/bridge/dw_hdmi.h              |   1 +
 8 files changed, 544 insertions(+), 76 deletions(-)

Comments

Neil Armstrong March 10, 2020, 10:08 a.m. UTC | #1
On 04/03/2020 11:40, Neil Armstrong wrote:
> Hi Philippe, Heiko, Maxime, Laurent,
> 
> A bad negociation was detected on platforms not implementing a bridge on the
> encoder side, which has been fixed in this version.
> 
> Could you check it doesn't break your platforms using dw-hdmi ? Especially
> patches 1-5.
> 
> Thanks,
> Neil
> 
> This patchset is based on Boris's merged "drm: Add support for bus-format negotiation"
> patchset to implement full bus-format negotiation for DW-HDMI, including YUV420 support and
> 10/12/16bit YUV444, YUV422 and RGB. The Color Space Converter support is already implemented.
> 
> And the counterpart implementation in the Amlogic Meson VPU dw-hdmi glue :
> - basic bus-format negotiation to select YUV444 bus-format as DW-HDMI input
> - YUV420 support when HDMI2.0 YUV420 modeset
> 
> This is a follow-up from the previous attempts :
> - "drm/meson: Add support for HDMI2.0 YUV420 4k60" at [2]
> - "drm/meson: Add support for HDMI2.0 4k60" at [3]
> 
> Changes since v4 at [7]:
> - Cleaned up patch 1
> - Added comment on patch 2
> - Added commit message on patch 3
> - Fixed invalid negociation when encoder is not yet a bridge (seen on allwinner & rockchip platforms) on patch 4
> - Fixed invalid defines, handled MEDIA_BUS_FMT_FIXED and cleaned negociation debug on patch 4
> - Added tags on patch 5, 6
> - Removed meson_venc_hdmi_encoder_get_out_bus_fmts on patch 7
> - Add off-list r-b from Jernej
> 
> Changes since v3 at [6]:
> - Added "Plug atomic state hooks to the default implementation" on drm/bridge: dw-hdmi
> - Also added these atomic state hooks in meson-dw-hdmi in patch 7
> - Rebased on latest drm-misc-next including patches 1-7 of [1]
> 
> Changes since RFC v2 at [5]:
> - Added fixes from Jonas, who tested and integrated it for Rockchip SoCs
> - Added support for 10/12/16bit tmds clock calculation
> - Added support for max_bcp connector property
> - Adapted to Boris's v4 patchset
> - Fixed typos reported by boris
> 
> Changes since RFC v1 at [4]:
> - Rewrote negociation using the v2 patchset, including full DW-HDMI fmt negociation
> 
> [2] https://patchwork.freedesktop.org/patch/msgid/20190520133753.23871-1-narmstrong@baylibre.com
> [3] https://patchwork.freedesktop.org/patch/msgid/1549022873-40549-1-git-send-email-narmstrong@baylibre.com
> [4] https://patchwork.freedesktop.org/patch/msgid/20190820084109.24616-1-narmstrong@baylibre.com
> [5] https://patchwork.freedesktop.org/patch/msgid/20190827081425.15011-1-narmstrong@baylibre.com
> [6] https://patchwork.freedesktop.org/patch/msgid/20191218154637.17509-1-narmstrong@baylibre.com
> [7] https://patchwork.freedesktop.org/patch/msgid/20200206191834.6125-1-narmstrong@baylibre.com
> 
> Jonas Karlman (2):
>   drm/bridge: dw-hdmi: set mtmdsclock for deep color
>   drm/bridge: dw-hdmi: add max bpc connector property
> 
> Neil Armstrong (9):
>   drm/bridge: dw-hdmi: Plug atomic state hooks to the default
>     implementation
>   drm/bridge: synopsys: dw-hdmi: add bus format negociation
>   drm/bridge: synopsys: dw-hdmi: allow ycbcr420 modes for >= 0x200a
>   drm/meson: venc: make drm_display_mode const
>   drm/meson: meson_dw_hdmi: add bridge and switch to drm_bridge_funcs
>   drm/meson: dw-hdmi: stop enforcing input_bus_format
>   drm/meson: venc: add support for YUV420 setup
>   drm/meson: vclk: add support for YUV420 setup
>   drm/meson: Add YUV420 output support
> 
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 319 +++++++++++++++++++++-
>  drivers/gpu/drm/meson/meson_dw_hdmi.c     | 180 +++++++++---
>  drivers/gpu/drm/meson/meson_vclk.c        |  93 +++++--
>  drivers/gpu/drm/meson/meson_vclk.h        |   7 +-
>  drivers/gpu/drm/meson/meson_venc.c        |  10 +-
>  drivers/gpu/drm/meson/meson_venc.h        |   4 +-
>  drivers/gpu/drm/meson/meson_venc_cvbs.c   |   6 +-
>  include/drm/bridge/dw_hdmi.h              |   1 +
>  8 files changed, 544 insertions(+), 76 deletions(-)
> 

Pushed to drm-misc-next

Neil
patchwork-bot+linux-amlogic@kernel.org April 16, 2020, 4:07 p.m. UTC | #2
Hello:

This series was applied to khilman/linux-amlogic.git (refs/heads/for-next).

On Wed,  4 Mar 2020 11:40:41 +0100 you wrote:
> Hi Philippe, Heiko, Maxime, Laurent,
> 
> A bad negociation was detected on platforms not implementing a bridge on the
> encoder side, which has been fixed in this version.
> 
> Could you check it doesn't break your platforms using dw-hdmi ? Especially
> patches 1-5.
> 
> [...]


Here is a summary with links:
  - [v5,01/11] drm/bridge: dw-hdmi: set mtmdsclock for deep color
    https://git.kernel.org/khilman/linux-amlogic/c/c6cae702340069d9f48925bd2201359602a72e83
  - [v5,02/11] drm/bridge: dw-hdmi: add max bpc connector property
    https://git.kernel.org/khilman/linux-amlogic/c/b8e810e868f73a698af9bde1ac51a332c0f61fc4
  - [v5,03/11] drm/bridge: dw-hdmi: Plug atomic state hooks to the default implementation
    https://git.kernel.org/khilman/linux-amlogic/c/a5cf9e2e52b638ae62049bf06d2283f5d757ac7d
  - [v5,04/11] drm/bridge: synopsys: dw-hdmi: add bus format negociation
    https://git.kernel.org/khilman/linux-amlogic/c/6c3c719936dafeb5df3a625cd57a674bf1d6ef31
  - [v5,05/11] drm/bridge: synopsys: dw-hdmi: allow ycbcr420 modes for >= 0x200a
    https://git.kernel.org/khilman/linux-amlogic/c/f14d3f6c39f39acf0eec90f4dcf1105f7be1fc1b
  - [v5,06/11] drm/meson: venc: make drm_display_mode const
    https://git.kernel.org/khilman/linux-amlogic/c/0fad640bbfed33e7e2a8db056e3782b396c42185
  - [v5,07/11] drm/meson: meson_dw_hdmi: add bridge and switch to drm_bridge_funcs
    https://git.kernel.org/khilman/linux-amlogic/c/f43aa58432de8fba8975826eedbd51425b791688
  - [v5,08/11] drm/meson: dw-hdmi: stop enforcing input_bus_format
    https://git.kernel.org/khilman/linux-amlogic/c/1fd34184aab0fe04c5d50af01a37fe1bb8bd6595
  - [v5,09/11] drm/meson: venc: add support for YUV420 setup
    https://git.kernel.org/khilman/linux-amlogic/c/64db601a9561778b41add87270daf512c9bf0433
  - [v5,10/11] drm/meson: vclk: add support for YUV420 setup
    https://git.kernel.org/khilman/linux-amlogic/c/e5fab2ec9ca4f7db47aaf1d7f39e43a13b03a4b7
  - [v5,11/11] drm/meson: Add YUV420 output support
    https://git.kernel.org/khilman/linux-amlogic/c/8496a2172d7cd25d1baa734b756cbee4574d4652

You are awesome, thank you!