Received: by 10.223.185.116 with SMTP id b49csp2213116wrg; Mon, 12 Feb 2018 06:16:35 -0800 (PST) X-Google-Smtp-Source: AH8x225fksumO0qOb10Zxd5/EngbmAj3SdkEYNLrBDwrEkfNbQVpr7acNPFXMA++/mDYJ/p5XljP X-Received: by 10.98.208.3 with SMTP id p3mr11752605pfg.8.1518444995842; Mon, 12 Feb 2018 06:16:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518444995; cv=none; d=google.com; s=arc-20160816; b=Vy9OCusNqWqQCkY9wl3byrk1e+qKdVi7Y5/6RJ2pBwtRN1ngQvrl5lPSDd3Gt74mWy 3MA12vuRZefDQQzD9wLMjNo6COVzW6kF4fA+IJKGVG74UQmKF99r0s4wONnFBiNUCdYz 6l58fP9LtH8w0/HS3MM20UdjEYakUZzdHFjjs+1Db5ELKnRSo/jaeUhz2zwZV9uvnc9+ EtMGhxNYfxeVlkGc+Mo+Ut4ZWk7682eYu4L6x2wWc5ryi1cbaIn49L+FcASe7hOe0JwL SX84C7BPtQVwraITvR4cXTXCIAqLMXhTxIcJw2d8Gl+kmKWEBntgUvkJGOKN2FcJLD41 c8bw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date :arc-authentication-results; bh=OicTeuLkc2gRB7i4KGExnBJFLaBr9idkceFgP9D4DYQ=; b=E7F4TZdpljDavIgpYF2cj+Fd6qe7ML7vKo+lTQzPbutny0+IoeWwz4+jwpDygosQmS DNg12XLL6LHFmsWj413nwHpSRavM9H5/ad65sFjuDHfBVxMgQ6iwFefeKDTJzsrm4D3T FAy/JnxLYrFmseKGfQL8puWvF/ipn9/SikBRK1ty/dASs9aKDveInIQu2kOaLha3zmiP 8A4OvdffU8lNP+nGthra5UQK8R3b8lznwvdaz+ZStaorDcqwr+8YfpAHD/f3h9svsk43 qYoi0S5g93LftZI1yX7C06lFqayuaub/XoccYaRcx7uk6iTbv5vor9qbkL28IKSkehLX +Zwg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f15-v6si5861043plr.336.2018.02.12.06.16.20; Mon, 12 Feb 2018 06:16:35 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935138AbeBLNEY (ORCPT + 99 others); Mon, 12 Feb 2018 08:04:24 -0500 Received: from mx2.suse.de ([195.135.220.15]:56559 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933646AbeBLNEX (ORCPT ); Mon, 12 Feb 2018 08:04:23 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id E9A71ACA0; Mon, 12 Feb 2018 13:04:21 +0000 (UTC) Date: Mon, 12 Feb 2018 14:04:21 +0100 Message-ID: From: Takashi Iwai To: Cc: , "Bhumika Goyal" , "Liam Girdwood" , "Wang YanQing" , "Guneshwor Singh" , "Jeeja KP" , "Subhransu S. Prusty" , "Vinod Koul" , "Mark Brown" , "Jaroslav Kysela" , "Takashi Sakamoto" , Subject: Re: [PATCH 3/3] ASoC: hdac_hdmi : Ensuring proper setting of output widget power state In-Reply-To: <1516728657-21522-3-git-send-email-abhijeet.kumar@intel.com> References: <1515670468-9198-1-git-send-email-abhijeet.kumar@intel.com> <1516728657-21522-1-git-send-email-abhijeet.kumar@intel.com> <1516728657-21522-3-git-send-email-abhijeet.kumar@intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 23 Jan 2018 18:30:53 +0100, wrote: > > From: Abhijeet Kumar > > In usecases like hot plug-unplug DP panel or modeset during a playback, > sometimes we observe no audio after codec resets. During no audio > condition, we have noticed that the power state of the pin or the > connector is D3. Optimizing the way we set the power mitigates the > issue. With this changes the verb is sent to set the power state and > waits until actual state reaches target state. Thus ensuring power state > is set. > > Signed-off-by: Abhijeet Kumar I applied the patches 1 and 2 to topic/hda-sync-power branch. It's based on 4.16-rc1. Mark, could you pull that into your intel branch and apply this fix? thanks, Takashi > --- > sound/soc/codecs/hdac_hdmi.c | 16 +++++++++++++--- > 1 file changed, 13 insertions(+), 3 deletions(-) > > diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c > index f3b4f4dfae6a..4dc9b9b71db9 100644 > --- a/sound/soc/codecs/hdac_hdmi.c > +++ b/sound/soc/codecs/hdac_hdmi.c > @@ -716,10 +716,20 @@ static struct hdac_hdmi_pcm *hdac_hdmi_get_pcm(struct hdac_ext_device *edev, > static void hdac_hdmi_set_power_state(struct hdac_ext_device *edev, > hda_nid_t nid, unsigned int pwr_state) > { > + int count; > + unsigned int state; > if (get_wcaps(&edev->hdac, nid) & AC_WCAP_POWER) { > - if (!snd_hdac_check_power_state(&edev->hdac, nid, pwr_state)) > - snd_hdac_codec_write(&edev->hdac, nid, 0, > - AC_VERB_SET_POWER_STATE, pwr_state); > + if (!snd_hdac_check_power_state(&edev->hdac, nid, pwr_state)) { > + for (count = 0; count < 10; count++) { > + snd_hdac_codec_read(&edev->hdac, nid, 0, > + AC_VERB_SET_POWER_STATE, > + pwr_state); > + state = snd_hdac_sync_power_state(&edev->hdac, > + nid, pwr_state); > + if (!(state & AC_PWRST_ERROR)) > + break; > + } > + } > } > } > > -- > 1.9.1 > >