From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758781AbcHDPc2 (ORCPT ); Thu, 4 Aug 2016 11:32:28 -0400 Received: from pandora.armlinux.org.uk ([78.32.30.218]:54191 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756095AbcHDPcZ (ORCPT ); Thu, 4 Aug 2016 11:32:25 -0400 Date: Thu, 4 Aug 2016 16:32:07 +0100 From: Russell King - ARM Linux To: Jose Abreu Cc: dri-devel@lists.freedesktop.org, Carlos Palminha , Archit Taneja , David Airlie , Fabio Estevam , Daniel Vetter , Takashi Iwai , Vladimir Zapolskiy , Thierry Reding , linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3 v3] drm: bridge/dw-hdmi: Enable ISCR1, ISCR2 and ACP packets Message-ID: <20160804153206.GX1041@n2100.armlinux.org.uk> References: <24dfd753e075c70d7b9b429b2d5f42ce9b1562a1.1470306826.git.joabreu@synopsys.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <24dfd753e075c70d7b9b429b2d5f42ce9b1562a1.1470306826.git.joabreu@synopsys.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Aug 04, 2016 at 11:44:50AM +0100, Jose Abreu wrote: > Currently ISCR and ACP packets are not being sent causing > HDMI compliance tests like CTS 7-19 HDMI 1.4b to fail. Hmm. Reading the HDMI specifications (v1.3, being the publically available one), the specification does _not_ say that a source _must_ transmit ISRC and ACP packets if Supports_AI is set. What it does say is that: * a sink shall set Supports_AI if it supports at least one function which uses ISRC or ACP packets, and it shall accept such packets. * a source shall not transmit ISRC or ACP packets to a sink that has Supports_AI=0. I don't see anything that mandates the transmission of ISRC and ACP packets when Supports_AI is set. Moreover, transmission of wrong ISRC information probably goes against the HDMI spec section 8.8, which requires specific ISRC status values in HB1 - I don't see how that _could_ be handled, as the kernel has no knowledge about the EAN of the audio content being played, nor when a track starts or finishes. Please clarify. > + /* Set ISCR1, ISCR2, and ACP packets to automatic scheduling */ > + if (hdmi->sink_supports_ai) { > + dev_dbg(hdmi->dev, "sink supports AI packets\n"); > + hdmi_writeb(hdmi, 0x06, HDMI_FC_ISCR1_0); > + hdmi_writeb(hdmi, 0x03, HDMI_FC_DATAUTO0); > + hdmi_writeb(hdmi, 0x01, HDMI_FC_DATAUTO1); > + hdmi_writeb(hdmi, 0x11, HDMI_FC_DATAUTO2); So what data gets sent in these packets - I guess whatever random data happens to be in the HDMI_FC_ACP* and HDMI_FC_ISCR1_* registers at the time the sending is enabled. I don't think that's particularly a good idea. > @@ -1474,8 +1490,13 @@ static int dw_hdmi_connector_get_modes(struct drm_connector *connector) > /* Store the ELD */ > drm_edid_to_eld(connector, edid); > kfree(edid); > + > + hdmi->sink_supports_ai = connector->eld[5] & (0x1 << 1); We have a definition for this bit - DRM_ELD_SUPPORTS_AI. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.