Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp5468439ybp; Tue, 8 Oct 2019 03:23:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqx1K2ceJ6ukX2GwO24qXUHYFVsZfP7R7aZYWb1RFeZvl1+zMGRuFb0UOjtc4gRoXUxjfAlH X-Received: by 2002:aa7:df8e:: with SMTP id b14mr33499779edy.65.1570530222522; Tue, 08 Oct 2019 03:23:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570530222; cv=none; d=google.com; s=arc-20160816; b=GehW7L6++eY32No0CEz8E6jMRCaBL+7vUIf8kY0Oy06xWJZU9ql070A9gT37E3MWa/ su3tZIiAHlb9zgIoB32EL9ap1cUYHtD8dxuUBu6BaEq6ZtJRf6L5G+61x749ZusPmArj BvP1KIP5wEXYuouzvuzwzOfuYPbD73ZfabD3bdHXPLB6vlDcK79NHLgggpC620hO+gn1 jmisZ1wDvE+EHuFtraEdbCAQRctPeHCJP7BfCiE4c0A2w+YjZB61vuis62d8AdWNtQD1 lQ2BcZviBCP8oTKD5Ng99RkkpRVSNYa37PJBQglQim/UaB/t6pLNi94crT+k2aax2Xqx x6gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=GeMDvxk000kDXZOF/cVkZFJMD0gb/5P7FfXKteqfPL8=; b=F+JrBCJfGtto/ZiIBu2Sl+pVDRprOmZsSQi1Gf4PiduibZvSvEkAeHgHYw+Mx8HVqF 1pxfJGANlhsJzsSdQI7jCyBuBcXMiHr+AHCoFG3L36O4x7L+w4FKimmWYFfbLwUpOl2K Ce/wkxEwGYpxsHOQ7xm6K/wFc3DPkSUvi0TD/eQCfyM1aCH2wP9CDsxqgVTe3FoALwK8 veBnPc9j/qpgJcWspJFr6gLh5QCqx/1AVb/snS+rlShHw/BXXyEIGtLRi2SrLmn/W9Cw wqzmwOOgs4GrmEtI6CzW7FMTop294QK8+qJXfRuvm/XW56739lXKFcZuLjOY8Zq62kXG 0tyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=cdJSJvCO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a3si10890457edc.75.2019.10.08.03.23.18; Tue, 08 Oct 2019 03:23:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=cdJSJvCO; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730165AbfJHKVy (ORCPT + 99 others); Tue, 8 Oct 2019 06:21:54 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:38958 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728866AbfJHKVx (ORCPT ); Tue, 8 Oct 2019 06:21:53 -0400 Received: by mail-pl1-f194.google.com with SMTP id s17so8263417plp.6 for ; Tue, 08 Oct 2019 03:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=GeMDvxk000kDXZOF/cVkZFJMD0gb/5P7FfXKteqfPL8=; b=cdJSJvCOf5lwlnvWxJxswCx6xNQ3AjanFRiUtsdswxZMfYmCMtj1PGMFewsVic258v Obg7GqwttJcCpt7nuw95onf8KC58807n8gbnHZJ/LRcDAza2N53eImEePNyxIg99BHpt Ebgr4PpV4SPUtutXxqVqDceBd9fiuEQOlx/sE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=GeMDvxk000kDXZOF/cVkZFJMD0gb/5P7FfXKteqfPL8=; b=ghnxh/9O2jWqkf3NZN9mnFiJL0KsjpCmL/VjJpKU6z/wvC95CFvf0XUYJUkmkD1/He 7X12eaaa5o/r6FrjXS3oAD0DE11pqzUPzdV/5kWcoCaTNlorz1z5Yf7j0fDkJhXK8LcP d7KZihgYrOFz/za8KNiD8JJS1JrWeD6SiU4i2And+AlxocI4KN8umptSijDHwK29z+SS yuodOZGl4z8Q126Nhov7pJ1Py4aMmjhMrS2wbQP4YkU33oA8FCau6rrfBiwu54Nhem38 fnDdAbF0bnlIxMptN/n+urKLFvwF3UHRb3yaIkMwqYCsGC+vJBsLHfcLvg1z9gK4gCqM h5/g== X-Gm-Message-State: APjAAAVMoeaVRfLuPfCrI8cnw1wkKTdeJL6I5zG/BH//LF3M6ppkfeji TnwAbVoGC1+6P4c1ZAO8sGSqQ8S4Y2I= X-Received: by 2002:a17:902:7895:: with SMTP id q21mr33495295pll.94.1570530112854; Tue, 08 Oct 2019 03:21:52 -0700 (PDT) Received: from localhost ([2401:fa00:1:10:79b4:bd83:e4a5:a720]) by smtp.gmail.com with ESMTPSA id b9sm15111763pfo.105.2019.10.08.03.21.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Oct 2019 03:21:52 -0700 (PDT) From: Cheng-Yi Chiang To: linux-kernel@vger.kernel.org Cc: Neil Armstrong , Jerome Brunet , Jernej Skrabec , Jonas Karlman , Hans Verkuil , Mark Brown , Jaroslav Kysela , Russell King , dianders@chromium.org, dgreid@chromium.org, tzungbi@chromium.org, alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, Daniel Kurtz , Cheng-Yi Chiang , Yakir Yang Subject: [PATCH v3] drm/bridge: dw-hdmi: Restore audio when setting a mode Date: Tue, 8 Oct 2019 18:21:45 +0800 Message-Id: <20191008102145.55134-1-cychiang@chromium.org> X-Mailer: git-send-email 2.23.0.581.g78d2f28ef7-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Daniel Kurtz When setting a new display mode, dw_hdmi_setup() calls dw_hdmi_enable_video_path(), which disables all hdmi clocks, including the audio clock. We should only (re-)enable the audio clock if audio was already enabled when setting the new mode. Without this patch, on RK3288, there will be HDMI audio on some monitors if i2s was played to headphone when the monitor was plugged. ACER H277HU and ASUS PB278 are two of the monitors showing this issue. Signed-off-by: Cheng-Yi Chiang Signed-off-by: Daniel Kurtz Signed-off-by: Yakir Yang --- Change from v2 to v3: - Remove spinlock around setting clock. drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index a15fbf71b9d7..af060162b0af 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -2054,7 +2054,7 @@ static int dw_hdmi_setup(struct dw_hdmi *hdmi, struct drm_display_mode *mode) /* HDMI Initialization Step E - Configure audio */ hdmi_clk_regenerator_update_pixel_clock(hdmi); - hdmi_enable_audio_clk(hdmi, true); + hdmi_enable_audio_clk(hdmi, hdmi->audio_enable); } /* not for DVI mode */ -- 2.23.0.581.g78d2f28ef7-goog