lkml.org 
[lkml]   [2020]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v4 00/78] drm/vc4: Support BCM2711 Display Pipeline
    From
    Date
    Hi Maxime,

    Thank you for your version 4 patch.
    I tested all 78 patches based on the next-20200708.


    Dual HDMI opearation does not work normally.
    flip_done timed out occurs and doesn't work.
    Could you check please it.

    [  105.694541] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR*
    [CRTC:64:crtc-3] flip_done timed out
    [  115.934994] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR*
    [CONNECTOR:32:HDMI-A-1] flip_done timed out
    [  126.174545] [drm:drm_atomic_helper_wait_for_dependencies] *ERROR*
    [PLANE:60:plane-3] flip_done timed out


    And there is a problem with 4k UDH not outputting...
    So this problem worked as I fixed it like patches[1].

    [1] [PATCH 0/3] drm/vc4: Support HDMI QHD or higher output


    "[PATCH v4 00/78] drm/vc4: Support BCM2711 Display Pipeline" all patches.

    Tested-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>

    Best regards,
    Hoegeun

    > Hi everyone,
    >
    > Here's a (pretty long) series to introduce support in the VC4 DRM driver
    > for the display pipeline found in the BCM2711 (and thus the RaspberryPi 4).
    >
    > The main differences are that there's two HDMI controllers and that there's
    > more pixelvalve now. Those pixelvalve come with a mux in the HVS that still
    > have only 3 FIFOs. Both of those differences are breaking a bunch of
    > expectations in the driver, so we first need a good bunch of cleanup and
    > reworks to introduce support for the new controllers.
    >
    > Similarly, the HDMI controller has all its registers shuffled and split in
    > multiple controllers now, so we need a bunch of changes to support this as
    > well.
    >
    > Only the HDMI support is enabled for now (even though the DPI and DSI
    > outputs have been tested too).
    >
    > Let me know if you have any comments
    > Maxime
    >
    > Cc: bcm-kernel-feedback-list@broadcom.com
    > Cc: devicetree@vger.kernel.org
    > Cc: Kamal Dasu <kdasu.kdev@gmail.com>
    > Cc: linux-clk@vger.kernel.org
    > Cc: Michael Turquette <mturquette@baylibre.com>
    > Cc: Philipp Zabel <p.zabel@pengutronix.de>
    > Cc: Rob Herring <robh+dt@kernel.org>
    > Cc: Stephen Boyd <sboyd@kernel.org>
    >
    > Changes from v3:
    > - Rebased on top of next-20200708
    > - Added a name to the HDMI audio codec component
    > - Only disable the BCM2711 HDMI pixelvalves at boot
    > - Fixed an error in the HVS binding
    > - Fix a framebuffer size condition that was inverted
    > - Changed the channel allocation algorithm using Eric's suggestion
    > - Always write the muxing values instead of updating if needed
    > - Improved a bit the hvs_available_channels comment in the structure
    > - Change atomic_complete_commit code to use for_each_new_crtc_in_state
    > - Change the muxing code to take into account disparities between the
    > BCM2711 and previous SoCs.
    > - Only change the clock rate on BCM2711 during a modeset
    > - Fix a crash at atomic_disable
    > - Use clk_set_min_rate for the core clock too
    > - Add a few defines, and simplify the FIFO level stuff
    > - Reordered the patches according to Eric's reviews
    > - Fixed a regression with VID_CTL setting on RPI3
    >
    > Changes from v2:
    > - Rebased on top of next-20200526
    > - Split the firmware clock series away
    > - Removed the stuck pixel (with all the subsequent pixels being shifted
    > by one
    > - Fixed the writeback issue too.
    > - Fix the dual output
    > - Fixed the return value of phy_get_cp_current
    > - Enhanced the comment on the reset delay
    > - Increase the max width and height
    > - Made a proper Kconfig option for the DVP clock driver
    > - Fixed the alsa card name collision
    >
    > Changes from v1:
    > - Rebased on top of 5.7-rc1
    > - Run checkpatch
    > - Added audio support
    > - Fixed some HDMI timeouts
    > - Swiched to clk_hw_register_gate_parent_data
    > - Reorder Kconfig symbols in drivers/i2c/busses
    > - Make the firmware clocks a child of the firmware node
    > - Switch DVP clock driver to clk_hw interface
    > - constify raspberrypi_clk_data in raspberrypi_clock_property
    > - Don't mark firmware clocks as IGNORE_UNUSED
    > - Change from reset_ms to reset_us in reset-simple, and add a bit more
    > comments
    > - Remove generic clk patch to test if a NULL pointer is returned
    > - Removed misleading message in the is_prepared renaming patch commit
    > message
    > - Constify HDMI controller variants
    > - Fix a bug in the allocation size of the clk data array
    > - Added a mention in the DT binding conversion patches about the breakage
    > - Merged a few fixes from kbuild
    > - Fixed a few bisection and CEC build issues
    > - Collected Acked-by and Reviewed-by
    > - Change Dave email address to raspberrypi.com
    >
    > Dave Stevenson (7):
    > drm/vc4: Add support for the BCM2711 HVS5
    > drm/vc4: plane: Change LBM alignment constraint on LBM
    > drm/vc4: plane: Optimize the LBM allocation size
    > drm/vc4: hdmi: Use reg-names to retrieve the HDMI audio registers
    > drm/vc4: hdmi: Reset audio infoframe on encoder_enable if previously streaming
    > drm/vc4: hdmi: Set the b-frame marker to the match ALSA's default.
    > drm/vc4: hdmi: Add audio-related callbacks
    >
    > Maxime Ripard (71):
    > dt-bindings: display: Add support for the BCM2711 HVS
    > drm/vc4: hvs: Boost the core clock during modeset
    > drm/vc4: plane: Create more planes
    > drm/vc4: crtc: Deal with different number of pixel per clock
    > drm/vc4: crtc: Use a shared interrupt
    > drm/vc4: crtc: Move the cob allocation outside of bind
    > drm/vc4: crtc: Rename HVS channel to output
    > drm/vc4: crtc: Use local chan variable
    > drm/vc4: crtc: Enable and disable the PV in atomic_enable / disable
    > drm/vc4: kms: Convert to for_each_new_crtc_state
    > drm/vc4: crtc: Assign output to channel automatically
    > drm/vc4: crtc: Add FIFO depth to vc4_crtc_data
    > drm/vc4: crtc: Add function to compute FIFO level bits
    > drm/vc4: crtc: Rename HDMI encoder type to HDMI0
    > drm/vc4: crtc: Add HDMI1 encoder type
    > drm/vc4: crtc: Disable color management for HVS5
    > drm/vc4: crtc: Turn pixelvalve reset into a function
    > drm/vc4: crtc: Move PV dump to config_pv
    > drm/vc4: crtc: Move HVS init and close to a function
    > drm/vc4: crtc: Move the HVS gamma LUT setup to our init function
    > drm/vc4: hvs: Make sure our channel is reset
    > drm/vc4: crtc: Remove mode_set_nofb
    > drm/vc4: crtc: Remove redundant pixelvalve reset
    > drm/vc4: crtc: Move HVS channel init before the PV initialisation
    > drm/vc4: encoder: Add finer-grained encoder callbacks
    > drm/vc4: crtc: Add a delay after disabling the PixelValve output
    > drm/vc4: crtc: Clear the PixelValve FIFO on disable
    > drm/vc4: crtc: Clear the PixelValve FIFO during configuration
    > drm/vc4: hvs: Make the stop_channel function public
    > drm/vc4: hvs: Introduce a function to get the assigned FIFO
    > drm/vc4: crtc: Move the CRTC disable out
    > drm/vc4: drv: Disable the CRTC at boot time
    > dt-bindings: display: vc4: pv: Add BCM2711 pixel valves
    > drm/vc4: crtc: Add BCM2711 pixelvalves
    > drm/vc4: hdmi: Use debugfs private field
    > drm/vc4: hdmi: Move structure to header
    > drm/vc4: hdmi: rework connectors and encoders
    > drm/vc4: hdmi: Remove DDC argument to connector_init
    > drm/vc4: hdmi: Rename hdmi to vc4_hdmi
    > drm/vc4: hdmi: Move accessors to vc4_hdmi
    > drm/vc4: hdmi: Use local vc4_hdmi directly
    > drm/vc4: hdmi: Add container_of macros for encoders and connectors
    > drm/vc4: hdmi: Pass vc4_hdmi to CEC code
    > drm/vc4: hdmi: Retrieve the vc4_hdmi at unbind using our device
    > drm/vc4: hdmi: Remove vc4_dev hdmi pointer
    > drm/vc4: hdmi: Remove vc4_hdmi_connector
    > drm/vc4: hdmi: Introduce resource init and variant
    > drm/vc4: hdmi: Implement a register layout abstraction
    > drm/vc4: hdmi: Add reset callback
    > drm/vc4: hdmi: Add PHY init and disable function
    > drm/vc4: hdmi: Add PHY RNG enable / disable function
    > drm/vc4: hdmi: Add a CSC setup callback
    > drm/vc4: hdmi: Store the encoder type in the variant structure
    > drm/vc4: hdmi: Deal with multiple debugfs files
    > drm/vc4: hdmi: Move CEC init to its own function
    > drm/vc4: hdmi: Add CEC support flag
    > drm/vc4: hdmi: Remove unused CEC_CLOCK_DIV define
    > drm/vc4: hdmi: Rename drm_encoder pointer in mode_valid
    > drm/vc4: hdmi: Adjust HSM clock rate depending on pixel rate
    > drm/vc4: hdmi: Use clk_set_min_rate instead
    > drm/vc4: hdmi: Deal with multiple ALSA cards
    > drm/vc4: hdmi: Remove register dumps in enable
    > drm/vc4: hdmi: Always recenter the HDMI FIFO
    > drm/vc4: hdmi: Implement finer-grained hooks
    > drm/vc4: hdmi: Do the VID_CTL configuration at once
    > drm/vc4: hdmi: Switch to blank pixels when disabled
    > drm/vc4: hdmi: Support the BCM2711 HDMI controllers
    > dt-bindings: display: vc4: hdmi: Add BCM2711 HDMI controllers bindings
    > dt-bindings: display: vc4: Document BCM2711 VC5
    > drm/vc4: drv: Support BCM2711
    > ARM: dts: bcm2711: Enable the display pipeline
    >
    > Documentation/devicetree/bindings/display/brcm,bcm2711-hdmi.yaml | 109 +++++-
    > Documentation/devicetree/bindings/display/brcm,bcm2835-hvs.yaml | 18 +-
    > Documentation/devicetree/bindings/display/brcm,bcm2835-pixelvalve0.yaml | 5 +-
    > Documentation/devicetree/bindings/display/brcm,bcm2835-vc4.yaml | 1 +-
    > arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 46 ++-
    > arch/arm/boot/dts/bcm2711.dtsi | 115 ++++-
    > drivers/gpu/drm/vc4/Makefile | 1 +-
    > drivers/gpu/drm/vc4/vc4_crtc.c | 338 +++++++++++----
    > drivers/gpu/drm/vc4/vc4_drv.c | 5 +-
    > drivers/gpu/drm/vc4/vc4_drv.h | 43 +-
    > drivers/gpu/drm/vc4/vc4_hdmi.c | 1625 +++++++++++++++++++++++++++++++++++++++++++-----------------------------
    > drivers/gpu/drm/vc4/vc4_hdmi.h | 183 ++++++++-
    > drivers/gpu/drm/vc4/vc4_hdmi_phy.c | 520 +++++++++++++++++++++++-
    > drivers/gpu/drm/vc4/vc4_hdmi_regs.h | 442 ++++++++++++++++++++-
    > drivers/gpu/drm/vc4/vc4_hvs.c | 260 +++++++-----
    > drivers/gpu/drm/vc4/vc4_kms.c | 225 +++++++++-
    > drivers/gpu/drm/vc4/vc4_plane.c | 222 +++++++---
    > drivers/gpu/drm/vc4/vc4_regs.h | 177 +++-----
    > drivers/gpu/drm/vc4/vc4_txp.c | 4 +-
    > 19 files changed, 3331 insertions(+), 1008 deletions(-)
    > create mode 100644 Documentation/devicetree/bindings/display/brcm,bcm2711-hdmi.yaml
    > create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi.h
    > create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi_phy.c
    > create mode 100644 drivers/gpu/drm/vc4/vc4_hdmi_regs.h
    >
    > base-commit: 5bdd2824d705fb8d339d6f96e464b907c9a1553d

    \
     
     \ /
      Last update: 2020-08-21 09:21    [W:5.033 / U:1.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site