From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752367AbcBVTKJ (ORCPT ); Mon, 22 Feb 2016 14:10:09 -0500 Received: from mx2.suse.de ([195.135.220.15]:55635 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751219AbcBVTKH (ORCPT ); Mon, 22 Feb 2016 14:10:07 -0500 Date: Mon, 22 Feb 2016 20:10:05 +0100 Message-ID: From: Takashi Iwai To: Martin Kepplinger Cc: david.henningsson@canonical.com, han.lu@intel.com, libin.yang@intel.com, treding@nvidia.com, perex@perex.cz, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915 In-Reply-To: <56CB5A4A.90906@posteo.de> References: <56B98888.5000702@posteo.de> <56BB7187.1020108@posteo.de> <56BDD990.1070900@posteo.de> <56BE0044.9080500@posteo.de> <56CAE1C5.4070107@posteo.de> <56CB1510.4010503@posteo.de> <56CB5A4A.90906@posteo.de> 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/24.5 (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 List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 22 Feb 2016 19:58:18 +0100, Martin Kepplinger wrote: > > Am 2016-02-22 um 15:12 schrieb Takashi Iwai: > > On Mon, 22 Feb 2016 15:02:56 +0100, > > Martin Kepplinger wrote: > >>> And how about my questions in the previous mail? Does > >>> i915_audio_component_get_eld() is called and returns 0? > >>> And is monitor_present set true or false? > >> > >> i915_audio_component_get_eld() returns 0 and monitor_present is 0. > >>> > >>> If i915_audio_component_get_eld() is called but returns zero, track > >>> the code flow there. It means either intel_encoder is NULL or > >>> intel_dig_port->audio_connector is NULL. > >> > >> intel_dig_port->audio_connector is NULL! > >> > >> (when called during boot and during HDMI plugin) > > > > Interesting. The relevant code flow should be like: > > > > intel_audio_codec_enable() > > -> acomp->audio_ops->pin_eld_notify() > > -> intel_pin_eld_notify() > > -> check_presence_and_report() > > -> hdmi_present_sense() > > -> sync_eld_via_acomp() > > -> snd_hdac_acomp_get_eld() > > -> i915_audio_component_get_eld() > > > > So, at first, check whether intel_dig_port in both > > intel_audio_codec_enable() and i915_audio_component_get_eld() points > > to the same object address. The audio_connector must be set in > > intel_audio_codec_enable(), thus basically it must be non-NULL at > > i915_audio_component_get_eld(), too. > > > > intel_dig_port is *not* the same object in these 2 places. During > plugin, see: > > [ 146.934091] in intel_audio_codec_enable: intel_dig_port is > ffff8800a1f54000 > [ 146.934121] in i915_audio_component_get_eld: intel_dig_port is > ffff880244f7d000 > > sorry for the slow responses. I'll try to go back that direction unless > again someone comes up with other suggestions. Thanks, this makes sense. It implies that the digital port mapping is somehow wrong. There are three places setting dig_port_map[], one in intel_ddi_init(), one in intel_dp_init() and another in intel_hdmi_init(). Try to check which function creates which object assigned to which port number, together with drm.debug=0x0e debug messages. Takashi