diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0684-drm-vc4-hdmi-Don-t-poll-for-the-infoframes-status-on.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0684-drm-vc4-hdmi-Don-t-poll-for-the-infoframes-status-on.patch | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0684-drm-vc4-hdmi-Don-t-poll-for-the-infoframes-status-on.patch b/target/linux/bcm27xx/patches-5.10/950-0684-drm-vc4-hdmi-Don-t-poll-for-the-infoframes-status-on.patch deleted file mode 100644 index b613e9a730..0000000000 --- a/target/linux/bcm27xx/patches-5.10/950-0684-drm-vc4-hdmi-Don-t-poll-for-the-infoframes-status-on.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 643f9b3a9e48fb2378d3dde8cfef452f7628e295 Mon Sep 17 00:00:00 2001 -From: Maxime Ripard <maxime@cerno.tech> -Date: Thu, 3 Dec 2020 08:46:24 +0100 -Subject: [PATCH] drm/vc4: hdmi: Don't poll for the infoframes status - on setup - -The infoframes are sent at a regular interval as a data island packet, -so we don't need to wait for them to be sent when we're setting them up. - -However, we do need to poll when we're enabling since the we can't -update the packet RAM until it has been sent. - -Let's add a boolean flag to tell whether we want to poll or not to -support both cases. - -Suggested-by: Dave Stevenson <dave.stevenson@raspberrypi.com> -Signed-off-by: Maxime Ripard <maxime@cerno.tech> -Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com> -Link: https://patchwork.freedesktop.org/patch/msgid/20201203074624.721559-1-maxime@cerno.tech ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -364,7 +364,8 @@ static int vc4_hdmi_connector_init(struc - } - - static int vc4_hdmi_stop_packet(struct drm_encoder *encoder, -- enum hdmi_infoframe_type type) -+ enum hdmi_infoframe_type type, -+ bool poll) - { - struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); - u32 packet_id = type - 0x80; -@@ -372,6 +373,9 @@ static int vc4_hdmi_stop_packet(struct d - HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, - HDMI_READ(HDMI_RAM_PACKET_CONFIG) & ~BIT(packet_id)); - -+ if (!poll) -+ return 0; -+ - return wait_for(!(HDMI_READ(HDMI_RAM_PACKET_STATUS) & - BIT(packet_id)), 100); - } -@@ -400,7 +404,7 @@ static void vc4_hdmi_write_infoframe(str - if (len < 0) - return; - -- ret = vc4_hdmi_stop_packet(encoder, frame->any.type); -+ ret = vc4_hdmi_stop_packet(encoder, frame->any.type, true); - if (ret) { - DRM_ERROR("Failed to wait for infoframe to go idle: %d\n", ret); - return; -@@ -1284,7 +1288,7 @@ static void vc4_hdmi_audio_reset(struct - int ret; - - vc4_hdmi->audio.streaming = false; -- ret = vc4_hdmi_stop_packet(encoder, HDMI_INFOFRAME_TYPE_AUDIO); -+ ret = vc4_hdmi_stop_packet(encoder, HDMI_INFOFRAME_TYPE_AUDIO, false); - if (ret) - dev_err(dev, "Failed to stop audio infoframe: %d\n", ret); - |