| drm/vc4: Support BCM2711 Display Pipeline |
| |
| 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: Philipp Zabel <p.zabel@pengutronix.de> |
| Cc: Rob Herring <robh+dt@kernel.org> |
| Cc: Stephen Boyd <sboyd@kernel.org> |
| |
| Changes from v4: |
| - Rebased on top of next-20200828 |
| - Collected the various tags |
| - Fixed some issues with 4k support and dual output (thanks Hoegeun!) |
| - Fixed typos in commit logs (thanks Dave!) |
| - Split the csc setup hook into its own patch again |
| - Added the CEC clock to the DT binding |
| - Fixed the DT binding example |
| - Reduced the number of calls to of_device_is_compatible in vc4_kms_load |
| - Added back the check for the state commit in our commit hook |
| |
| 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 |