From nobody Tue Sep 9 07:12:10 2025 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 420902853E7; Tue, 22 Jul 2025 19:54:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753214092; cv=none; b=U+ebGp87RNibi72TZpLl3JhfPERrdAvkI7ixWCdTShoDvr8CWipLhZZNlg6k4HRJ06Z/6DNADdl5bqWlrX2qOC3tAPJ1ZAFSg59x8miPOqyZIcjcJCRyMRZnhXjedftxySu0uUUYvF2sMYadKIiH96ZsPl5txR7CuXrlZSUCJiY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753214092; c=relaxed/simple; bh=mtENC6BN0sB5OMWMRTcHCpxBXeo+DFs033MQq3LZxKI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qiOnT2tINJMapAOMR3U/3etNbL6b4gPcIetfHyG7WngmFHgvtiEgb1Ds8DW/FMHL/IYfcF60B//D+Ieuu2uy8bGlf6uy434wg7EY26IOfhA0Il3VrsMNh+fsoTIXy6igv3tnINLzJmDxazky65/pwbwHBT/szu3cPJo0Odt6E5A= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=p7kOQl2S; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="p7kOQl2S" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1753214088; bh=mtENC6BN0sB5OMWMRTcHCpxBXeo+DFs033MQq3LZxKI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p7kOQl2S8BS6xzi9H9TX87Sesl7tBnlqiFPjyGB6+bKJhIsRDXr70YtrgaZEYYvqm kIsUaeSfJ6rpEu/qc66dpipZjKzQoQlZVlF94uZ+N098LvDhN99qC+aJYZgSjSN7nr rnOAT3okBISM8foU/FNtnPDgwV36RhHsJuX0zl0Pohn5X0SRn9vNrzN0yCn6Q04vwu +lCKstrZi6iPwnPQfRrPWZcHXFJzo1nnHvWiXlfcYpZS75x2hAun6aamTNQ/uFkwN7 o3+L3Okt5aWBwXtZ36H+pit2EYf7c9h6DbSk2qmCxjRvhHfDkVGGNavvmluG7J7Ato gw9tZq0DmXzGw== Received: from trenzalore.hitronhub.home (unknown [23.233.251.139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id EA7F617E04D6; Tue, 22 Jul 2025 21:54:44 +0200 (CEST) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Dmitry Baryshkov , Detlev Casanova , Douglas Anderson , Heiko Stuebner , Sugar Zhang , Cristian Ciocaltea , Charles Keepax , Raag Jadav , dri-devel@lists.freedesktop.org, linux-sound@vger.kernel.org, kernel@collabora.com Subject: [PATCH v2 1/3] drm/bridge: dw-hdmi-qp: Return 0 in audio prepare when disconnected Date: Tue, 22 Jul 2025 15:54:35 -0400 Message-ID: <20250722195437.1347865-2-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250722195437.1347865-1-detlev.casanova@collabora.com> References: <20250722195437.1347865-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To configure audio registers, the clock of the video port in use must be enabled. As those clocks are managed by the VOP driver, they can't be enabled here to write the registers even when the HDMI cable is disconnected. Furthermore, the registers values are computed from the TMDS char rate, which is not available when disconnected. Returning -ENODEV seemed reasonable at first, but ASoC will log an error multiple times if dw_hdmi_qp_audio_prepare() return an error. Userspace might also retry multiple times, filling the kernel log with: hdmi-audio-codec hdmi-audio-codec.0.auto: ASoC error (-19): at snd_soc_dai_= prepare() on i2s-hifi This has become even worse with the support of the second HDMI TX port. Activating the clocks to write fake data (fake because the TMDS char rate is unavailable) would require API changes to communicate between VOP and HDMI, which doesn't really make sense. Using a cached regmap to be dumped when a cable is connected won't work because writing order is important and some data needs to be retrieved from registers to write others. Returning 0 to silently fail sounds like the best and simplest solution. Fixes: fd0141d1a8a2 ("drm/bridge: synopsys: Add audio support for dw-hdmi-q= p") Signed-off-by: Detlev Casanova --- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/drivers/gpu/drm= /bridge/synopsys/dw-hdmi-qp.c index 5e5f8c2f95be1..9b9d43c02e3a5 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c @@ -458,8 +458,16 @@ static int dw_hdmi_qp_audio_prepare(struct drm_connect= or *connector, struct dw_hdmi_qp *hdmi =3D dw_hdmi_qp_from_bridge(bridge); bool ref2stream =3D false; =20 + /* + * Silently return if tmds_char_rate is not set. + * + * Writing audio registers requires that the clock of the Video Port curr= ently in + * use by the VOP (dclk_vp) is enabled. + * That clock is guaranteed to be enabled when hdmi->tmds_char_rate is se= t, so we + * only configure audio when it is set. + */ if (!hdmi->tmds_char_rate) - return -ENODEV; + return 0; =20 if (fmt->bit_clk_provider | fmt->frame_clk_provider) { dev_err(hdmi->dev, "unsupported clock settings\n"); --=20 2.50.1 From nobody Tue Sep 9 07:12:10 2025 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9C282857EA; Tue, 22 Jul 2025 19:54:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753214095; cv=none; b=tTxolB+sLlpGnXtE33icoKGLIl1jN8Jylu3qfwB/zH7MRf8TwyWVa91NBPDlA0ClCJCK3DciAFEP2hHxO2MOAEYTa0WaFMH04PDpR91Qxe2Jxw0HsoXPbC0AqY7w7J6PJaCF1eQB3FjwPl/rsfOPIr0N3Vdbzh6vCUon8JMkQS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753214095; c=relaxed/simple; bh=l+stcsHBGwL0jJ++yfnXWYCS37dvD6reGe7NiDK7mwg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jbGgBCtNDPHDzfBbNvfLoWSgxVaJyghnfKLhU/ErAmQTQ9mbYGWPAXMPd1U84oUUNQ6pFbf5QqNToEycm7TfO8YsutPuQElm/DC262dBYyxkQ9nbruttINpmhqJfKJZtz87SCDXsBpKctOG08gruEsx062Wi/RoghjxXbP7KdEU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=CXagd3SU; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="CXagd3SU" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1753214092; bh=l+stcsHBGwL0jJ++yfnXWYCS37dvD6reGe7NiDK7mwg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CXagd3SU8NnYh65BqliaQQMO13OAjn5SLRegEVTNEKGlc8C5uXVgUmQ1Gp9aNF6Q1 G2wAJPiKjMyb8MeLyhVM3xyt9dTQ5l6GN8g2JSCpKNNFM7Cnqu2qEKSt8vaHHa2Urj iZNOgKCvBucMus3YCmyMFBtPdEywiJjtnH7blGqe0VBSu/Abik3H18MLVRpUnCrdMw JfSMDstGlnpnY9KuDvn9it/IYMENlNSakz2puiKOjgs3mnCCwxJRR+tjL3Ao9eetuX cQZAs2OaAFW+0bJ5h7ctVWEfOA6OsKUPiwb/HhnQppvEAr5zdGIRtN5q4G3TX8i94F nzwhHADYjCJrA== Received: from trenzalore.hitronhub.home (unknown [23.233.251.139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id A093B17E09F0; Tue, 22 Jul 2025 21:54:48 +0200 (CEST) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Dmitry Baryshkov , Detlev Casanova , Douglas Anderson , Heiko Stuebner , Sugar Zhang , Cristian Ciocaltea , Charles Keepax , Raag Jadav , dri-devel@lists.freedesktop.org, linux-sound@vger.kernel.org, kernel@collabora.com Subject: [PATCH v2 2/3] ASoC: hdac_hdmi: Use dev_info on invalid ELD version Date: Tue, 22 Jul 2025 15:54:36 -0400 Message-ID: <20250722195437.1347865-3-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250722195437.1347865-1-detlev.casanova@collabora.com> References: <20250722195437.1347865-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When disconnected, the ELD data cannot be read by the display driver, so it just sets the data to 0. That makes the ELD parsing code read an ELD version of 0, which is invalid. In hdac_hdmi, that is logged with dev_err(), but should be logged with dev_info() instead as it is done in sound/core/pcm_drm_eld.c This avoids printing multiple messages like: HDMI: Unknown ELD version 0 in the kernel log when userspace tries to open the sound device. Signed-off-by: Detlev Casanova --- sound/soc/codecs/hdac_hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c index 1139a2754ca33..4cc3b7a1062bd 100644 --- a/sound/soc/codecs/hdac_hdmi.c +++ b/sound/soc/codecs/hdac_hdmi.c @@ -1232,7 +1232,7 @@ static int hdac_hdmi_parse_eld(struct hdac_device *hd= ev, >> DRM_ELD_VER_SHIFT; =20 if (ver !=3D ELD_VER_CEA_861D && ver !=3D ELD_VER_PARTIAL) { - dev_err(&hdev->dev, "HDMI: Unknown ELD version %d\n", ver); + dev_info(&hdev->dev, "HDMI: Unknown ELD version %d\n", ver); return -EINVAL; } =20 --=20 2.50.1 From nobody Tue Sep 9 07:12:10 2025 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 638BA285CA4; Tue, 22 Jul 2025 19:54:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753214099; cv=none; b=sRDlmWzhLDCSWW5AcfMml9dHxxMiw2MNG9OVViHu0T1blwNTZVoN0vIdGWC595BvAbHumVgSJTGQg3J6pEzhjQTeV5pjSsSN+w36B98puFf0WsY9zZern+3oRqCxKjJuNHTdUivewMLXSnmsXgkBQ5f6+MO/5xZ+/MGlyAbrg8w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753214099; c=relaxed/simple; bh=I7PZbKqL4kwtVAmBKVfDZdnaU2GuujBflmjQGhxXSaQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DLx2PiPf6kJ1Jnmni9IDD8waFz2uQzzoVmPqul1zC1sXEq772magYIGI4tG6C/VCxjA3pN3Ie1XooTPP52xQxs/QY7JxsFJpT5p0+WDrqFZ9a190xlqn1zou8eUEWuIzngO9WtxfVXoRTUZaxdFghn34Hr19yqcGD/9c72DDaDo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=Kepk5EVG; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="Kepk5EVG" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1753214095; bh=I7PZbKqL4kwtVAmBKVfDZdnaU2GuujBflmjQGhxXSaQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Kepk5EVGVHqu4n9LHGOJrKdeNWiJUdTRWXGWtrruzydHc9+vlx8TzNmMg5gxZoJ32 kUDf6aOe6gNvzbppm9qDFamWSxUvo/loiqxgGP5vsBbdx46oVsOFdzwqsyzJBtvTVr Uc1zLxe/D39R/uUv+O1fNbrFtkV6puB7AY9VARApdxr8RCDc1pW0zOAuJzWx46qT6l D20UjQs1HFM1Jt2RPlXQXXxVVxZ953lFPBTN9O+8kGmHFqninrKBbL+NgmK6TRh/08 ptMph/fD3acESRN1HQwqM5rCpiR0jtLdpPdlrTDAsLE5Li24aiORyr1N3QKn53VQjf m0ag2VHwh1iAg== Received: from trenzalore.hitronhub.home (unknown [23.233.251.139]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: detlev) by bali.collaboradmins.com (Postfix) with ESMTPSA id 59E1D17E0497; Tue, 22 Jul 2025 21:54:52 +0200 (CEST) From: Detlev Casanova To: linux-kernel@vger.kernel.org Cc: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Dmitry Baryshkov , Detlev Casanova , Douglas Anderson , Heiko Stuebner , Sugar Zhang , Cristian Ciocaltea , Charles Keepax , Raag Jadav , dri-devel@lists.freedesktop.org, linux-sound@vger.kernel.org, kernel@collabora.com Subject: [PATCH v2 3/3] drm/bridge: synopsys: Do not warn about audio params computation Date: Tue, 22 Jul 2025 15:54:37 -0400 Message-ID: <20250722195437.1347865-4-detlev.casanova@collabora.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250722195437.1347865-1-detlev.casanova@collabora.com> References: <20250722195437.1347865-1-detlev.casanova@collabora.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" There is no need to warn about non pre-computed values, just change it to dbg. Fixes: fd0141d1a8a2 ("drm/bridge: synopsys: Add audio support for dw-hdmi-q= p") Signed-off-by: Detlev Casanova --- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/drivers/gpu/drm= /bridge/synopsys/dw-hdmi-qp.c index 9b9d43c02e3a5..d974bcad8f94a 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c @@ -276,8 +276,7 @@ static unsigned int dw_hdmi_qp_find_n(struct dw_hdmi_qp= *hdmi, unsigned long pix if (n > 0) return n; =20 - dev_warn(hdmi->dev, "Rate %lu missing; compute N dynamically\n", - pixel_clk); + dev_dbg(hdmi->dev, "Rate %lu missing; compute N dynamically\n", pixel_clk= ); =20 return dw_hdmi_qp_compute_n(hdmi, pixel_clk, sample_rate); } --=20 2.50.1