From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E844C4361A for ; Fri, 4 Dec 2020 15:37:47 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0400322BF5 for ; Fri, 4 Dec 2020 15:37:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0400322BF5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=raspberrypi.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=tKmf1XNl/LVm7bQpKa1GpjipjnFn3/IRbpHFh61Pm50=; b=T66x+IypybikXt4thYj4LQACf RSeT6R1yXRAsigA9DZykbTKrRXOyh2DezQ0nZ4LU7Z7NNHoB///gDvPHFYdTO/ECtZ+89k2qkKSCy 15dxvU+25rZceo0g+ia7yN8nFbSwtkmuTqbNXsYyJDV1YsYucohMHOpIAK0p86IQmwVE7+JW/RUFZ r73XIVAmluzUqmUo32g99G71iWsqx5YJi/5nU8g1gZY8vDvVjWWfKjaU91b3M2gl6kdC9WCDhqKHr lgOib4cpRzutBItbBQm2vc8dOp8vyc89rooiNLpZKiLVbuBiZzW48efc18/SSaId0sF+OH7IfbikM it3oN1G1Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1klD8K-00081L-K1; Fri, 04 Dec 2020 15:36:32 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1klD8I-00080O-7L for linux-arm-kernel@lists.infradead.org; Fri, 04 Dec 2020 15:36:31 +0000 Received: by mail-wm1-x343.google.com with SMTP id a6so5873050wmc.2 for ; Fri, 04 Dec 2020 07:36:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0v566WzwVM5IixZEI6M5GdbCg0P5kKkDNz+vnQsiMHc=; b=C+Tvsth0hE7h8bxuxdV29xKYFR5ez6kPMqHicRyVXIRw4nqz3q1/pmwpNKjgZ4sP2+ tbUnNpcXusLp2AAIAeWGJGGqnWZKQiBug9QLuZji1RgeW5vL8vlnHTsUqtyXdH/CfY0+ goyKQvsADHt2Rnxkg30M4zoMnlkUPGdQ1qr/CUQjEOvojbALWN7YjBXm6+UtAa8RchDt 8vo2Kfar5+7a+NwSE1ftp90KsC1N7pp3tdUt1Ar0NsP4PcoDL7o9x99Zwd4qschPRUW7 4kt0HAnNXq2b4kWMxe1FwsyqnZYFJCM06eVZrir037jgQYk/wC3mvGQvcaIf2HdY+oN6 yhfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0v566WzwVM5IixZEI6M5GdbCg0P5kKkDNz+vnQsiMHc=; b=pqnfN8G0yrYVbvRB+xQYf6/RhZumCWI69//8oDtc+4Brpmzw+3Gdkh9+mkGKsRbtmW Lr+DOU6WkoAarB8sYR4sfCjItlknQNqdjMtsJ40xqNDWYOmmik2w8UjRbzLMm5KH1yCP AfHOdso1hHKM057fNqRzEXCFowvbU/cV2c1JI5HMJS5j00QJgdU8fGvbbaj2Gx3ReOfl OZDBkQdKVyx5RZ9U1gyPT9mNAD6FlKfINNZVHghwsqLMhWlqM7bLx1TL/0Pt0sDYjiOl I6zIGwGnDZe29QgI+BTsCX5Mo9yYX51DvuQjbF7zQIdKamQcADF+SdHszlaNTx0b9rkp cwDw== X-Gm-Message-State: AOAM532Ad0vTDCGUzUezjqwWL3CRcFQLOF+YiOxX5hv3Hvc9FV2JJmh0 Fqe06HesMFo8aTTv0NrXY/ObfucNHAwWlsNSdAToKQ== X-Google-Smtp-Source: ABdhPJyfoO7NououpVsC9vMpf0YzY0uMz1QWtkxNdyjTPpV5zF1Cbpy0i6SQAuI4ZXBn37+iygqqNa5/+004xpRcp94= X-Received: by 2002:a1c:810c:: with SMTP id c12mr4951170wmd.96.1607096187567; Fri, 04 Dec 2020 07:36:27 -0800 (PST) MIME-Version: 1.0 References: <20201203074624.721559-1-maxime@cerno.tech> In-Reply-To: <20201203074624.721559-1-maxime@cerno.tech> From: Dave Stevenson Date: Fri, 4 Dec 2020 15:36:11 +0000 Message-ID: Subject: Re: [PATCH v2] drm/vc4: hdmi: Don't poll for the infoframes status on setup To: Maxime Ripard X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201204_103630_305626_39368277 X-CRM114-Status: GOOD ( 23.40 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , Maarten Lankhorst , DRI Development , Eric Anholt , bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, Thomas Zimmermann , Daniel Vetter , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Maxime On Thu, 3 Dec 2020 at 07:46, Maxime Ripard wrote: > > 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 > Signed-off-by: Maxime Ripard That looks like it should do what was intended - thanks. Reviewed-by: Dave Stevenson > --- > > Changes from v1: > - Inverted when to poll > --- > drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c > index a2c5b5e9786a..d3c4a9b5bb6d 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -265,7 +265,8 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, > } > > 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; > @@ -273,6 +274,9 @@ static int vc4_hdmi_stop_packet(struct drm_encoder *encoder, > 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); > } > @@ -299,7 +303,7 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, > 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; > @@ -1056,7 +1060,7 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) > 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); > > -- > 2.28.0 > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 48281C4361A for ; Fri, 4 Dec 2020 15:36:31 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D85B022B30 for ; Fri, 4 Dec 2020 15:36:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D85B022B30 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=raspberrypi.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2DA556E17F; Fri, 4 Dec 2020 15:36:30 +0000 (UTC) Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by gabe.freedesktop.org (Postfix) with ESMTPS id DE5E16E17F for ; Fri, 4 Dec 2020 15:36:28 +0000 (UTC) Received: by mail-wm1-x342.google.com with SMTP id k10so5857672wmi.3 for ; Fri, 04 Dec 2020 07:36:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0v566WzwVM5IixZEI6M5GdbCg0P5kKkDNz+vnQsiMHc=; b=C+Tvsth0hE7h8bxuxdV29xKYFR5ez6kPMqHicRyVXIRw4nqz3q1/pmwpNKjgZ4sP2+ tbUnNpcXusLp2AAIAeWGJGGqnWZKQiBug9QLuZji1RgeW5vL8vlnHTsUqtyXdH/CfY0+ goyKQvsADHt2Rnxkg30M4zoMnlkUPGdQ1qr/CUQjEOvojbALWN7YjBXm6+UtAa8RchDt 8vo2Kfar5+7a+NwSE1ftp90KsC1N7pp3tdUt1Ar0NsP4PcoDL7o9x99Zwd4qschPRUW7 4kt0HAnNXq2b4kWMxe1FwsyqnZYFJCM06eVZrir037jgQYk/wC3mvGQvcaIf2HdY+oN6 yhfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0v566WzwVM5IixZEI6M5GdbCg0P5kKkDNz+vnQsiMHc=; b=L0bQWkOYCZ3Theo+QREEo2h7IAIW/S/6skx2w0QsuOVlT0HFpwz65cdKBkl5oXCYlv elwmmuiOeC48sjN6LdIExOA8+LaI1Tuor4G2OR/dzW+rfTc7rEMSPp89Hxf2jRVXRG23 VUtuQOhqmwcdJbfnPJFrUjrgHYPydr011I/A2Qzn2pov8pfRrB6HBlPW+M7JBKUKh/Dp fgNTWnvaGp4ztCnggD4R9gDm/v/ntHDoXV5FkJctI5Z2lVmaWzbZnFJ2ajXrjhOHnZuw uFOUd50P24QtjOdb4ep4SWVatzzdOevMU46nphILhc6rQ0V3nU2+FIMrNh2Mj9HoAvXq kSrQ== X-Gm-Message-State: AOAM532hmJ2DfOF0OiXjuRzQ8HEA8RZgGMNDEedFeG4wpbog83BZ9sLT itSuOsDXtfWkVHORbckA2n5snGlwOdHA3x84gpyN1Q== X-Google-Smtp-Source: ABdhPJyfoO7NououpVsC9vMpf0YzY0uMz1QWtkxNdyjTPpV5zF1Cbpy0i6SQAuI4ZXBn37+iygqqNa5/+004xpRcp94= X-Received: by 2002:a1c:810c:: with SMTP id c12mr4951170wmd.96.1607096187567; Fri, 04 Dec 2020 07:36:27 -0800 (PST) MIME-Version: 1.0 References: <20201203074624.721559-1-maxime@cerno.tech> In-Reply-To: <20201203074624.721559-1-maxime@cerno.tech> From: Dave Stevenson Date: Fri, 4 Dec 2020 15:36:11 +0000 Message-ID: Subject: Re: [PATCH v2] drm/vc4: hdmi: Don't poll for the infoframes status on setup To: Maxime Ripard X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , DRI Development , bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, Thomas Zimmermann , Daniel Vetter , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi Maxime On Thu, 3 Dec 2020 at 07:46, Maxime Ripard wrote: > > 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 > Signed-off-by: Maxime Ripard That looks like it should do what was intended - thanks. Reviewed-by: Dave Stevenson > --- > > Changes from v1: > - Inverted when to poll > --- > drivers/gpu/drm/vc4/vc4_hdmi.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c > index a2c5b5e9786a..d3c4a9b5bb6d 100644 > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c > @@ -265,7 +265,8 @@ static int vc4_hdmi_connector_init(struct drm_device *dev, > } > > 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; > @@ -273,6 +274,9 @@ static int vc4_hdmi_stop_packet(struct drm_encoder *encoder, > 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); > } > @@ -299,7 +303,7 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder, > 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; > @@ -1056,7 +1060,7 @@ static void vc4_hdmi_audio_reset(struct vc4_hdmi *vc4_hdmi) > 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); > > -- > 2.28.0 > _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel