OpenCloudOS-Kernel/drivers/gpu/drm/vc4
Maxime Ripard 1998646129
drm/vc4: hdmi: Introduce a scdc_enabled flag
We currently rely on two functions, vc4_hdmi_supports_scrambling() and
vc4_hdmi_mode_needs_scrambling() to determine if we should enable and
disable the scrambler for any given mode.

Since we might need to disable the controller at boot, we also always
run vc4_hdmi_disable_scrambling() and thus call those functions without
a mode yet, which in turns need to make some special casing in order for
it to work.

Instead of duplicating the check for whether or not we need to take care
of the scrambler in both vc4_hdmi_enable_scrambling() and
vc4_hdmi_disable_scrambling(), we can do that check only when we enable
it and store whether or not it's been enabled in our private structure.

We also need to initialize that flag at true to make sure we disable the
scrambler at boot since we can't really know its state yet.

This allows to simplify a bit that part of the driver, and removes one
user of our copy of the CRTC adjusted mode outside of KMS (since
vc4_hdmi_disable_scrambling() might be called from the hotplug interrupt
handler).

It also removes our last user of the legacy encoder->crtc pointer.

Link: https://lore.kernel.org/r/20211025141113.702757-10-maxime@cerno.tech
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
2021-11-05 12:53:30 +01:00
..
Kconfig drm/vc4: hdmi: Register HDMI codec 2021-06-23 14:32:28 +02:00
Makefile drm/vc4: hdmi: Add PHY init and disable function 2020-09-07 18:06:04 +02:00
vc4_bo.c drm/vc4: Initialize vc4_drm_driver with CMA helper defaults 2021-01-15 10:39:05 +01:00
vc4_crtc.c drm/vc4: crtc: Copy assigned channel to the CRTC 2021-11-05 12:53:22 +01:00
vc4_debugfs.c drm/vc4: Leverage the load tracker on the BCM2711 2021-11-04 10:36:25 +01:00
vc4_dpi.c drm/vc4: dpi: Switch to devm_drm_of_get_bridge 2021-09-14 10:39:30 +02:00
vc4_drv.c drm/vc4: Make use of the helper function devm_platform_ioremap_resource() 2021-09-01 11:43:25 +02:00
vc4_drv.h drm/vc4: crtc: Copy assigned channel to the CRTC 2021-11-05 12:53:22 +01:00
vc4_dsi.c drm/vc4: dsi: Switch to devm_drm_of_get_bridge 2021-09-14 10:40:24 +02:00
vc4_fence.c
vc4_gem.c drm/vc4: remove unneeded variable: "ret" 2021-02-09 17:16:57 +01:00
vc4_hdmi.c drm/vc4: hdmi: Introduce a scdc_enabled flag 2021-11-05 12:53:30 +01:00
vc4_hdmi.h drm/vc4: hdmi: Introduce a scdc_enabled flag 2021-11-05 12:53:30 +01:00
vc4_hdmi_phy.c drm/vc4: hdmi: Add a spinlock to protect register access 2021-11-05 12:53:24 +01:00
vc4_hdmi_regs.h drm/vc4: hdmi: Add a spinlock to protect register access 2021-11-05 12:53:24 +01:00
vc4_hvs.c drm/vc4: crtc: Copy assigned channel to the CRTC 2021-11-05 12:53:22 +01:00
vc4_irq.c drm/vc4: Convert to Linux IRQ interfaces 2021-08-10 20:13:53 +02:00
vc4_kms.c drm/vc4: crtc: Drop feed_txp from state 2021-11-05 12:53:16 +01:00
vc4_packet.h
vc4_perfmon.c drm/vc4: replace idr_init() by idr_init_base() 2020-11-06 11:48:43 +01:00
vc4_plane.c drm/vc4: Leverage the load tracker on the BCM2711 2021-11-04 10:36:25 +01:00
vc4_qpu_defines.h
vc4_regs.h drm/vc4: hdmi: Set HDMI_MAI_FMT 2021-06-23 14:32:27 +02:00
vc4_render_cl.c
vc4_trace.h
vc4_trace_points.c
vc4_txp.c drm/vc4: crtc: Copy assigned channel to the CRTC 2021-11-05 12:53:22 +01:00
vc4_v3d.c drm/vc4: Convert to Linux IRQ interfaces 2021-08-10 20:13:53 +02:00
vc4_validate.c
vc4_validate_shaders.c
vc4_vec.c drm/vc4: Separate VEC compatible variants 2021-05-24 13:52:33 +02:00