From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Kepplinger Subject: Re: [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915 Date: Tue, 23 Feb 2016 20:09:02 +0100 Message-ID: <56CCAE4E.3090009@posteo.de> References: <56BE0044.9080500@posteo.de> <56CAE1C5.4070107@posteo.de> <56CB1510.4010503@posteo.de> <56CB5A4A.90906@posteo.de> <56CB7F98.20807@posteo.de> <20160223171447.GL23290@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160223171447.GL23290@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Takashi Iwai Cc: alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, perex@perex.cz, han.lu@intel.com, treding@nvidia.com, david.henningsson@canonical.com List-Id: alsa-devel@alsa-project.org QW0gMjAxNi0wMi0yMyB1bSAxODoxNCBzY2hyaWViIFZpbGxlIFN5cmrDpGzDpDoKPiBPbiBUdWUs IEZlYiAyMywgMjAxNiBhdCAwNTo1Nzo0MFBNICswMTAwLCBUYWthc2hpIEl3YWkgd3JvdGU6Cj4+ IE9uIE1vbiwgMjIgRmViIDIwMTYgMjI6Mzc6MjggKzAxMDAsCj4+IE1hcnRpbiBLZXBwbGluZ2Vy IHdyb3RlOgo+Pj4KPj4+IEFtIDIwMTYtMDItMjIgdW0gMjA6MTAgc2NocmllYiBUYWthc2hpIEl3 YWk6Cj4+Pj4gT24gTW9uLCAyMiBGZWIgMjAxNiAxOTo1ODoxOCArMDEwMCwKPj4+PiBNYXJ0aW4g S2VwcGxpbmdlciB3cm90ZToKPj4+Pj4KPj4+Pj4gQW0gMjAxNi0wMi0yMiB1bSAxNToxMiBzY2hy aWViIFRha2FzaGkgSXdhaToKPj4+Pj4+IE9uIE1vbiwgMjIgRmViIDIwMTYgMTU6MDI6NTYgKzAx MDAsCj4+Pj4+PiBNYXJ0aW4gS2VwcGxpbmdlciB3cm90ZToKPj4+Pj4+Pj4gQW5kIGhvdyBhYm91 dCBteSBxdWVzdGlvbnMgaW4gdGhlIHByZXZpb3VzIG1haWw/ICBEb2VzCj4+Pj4+Pj4+IGk5MTVf YXVkaW9fY29tcG9uZW50X2dldF9lbGQoKSBpcyBjYWxsZWQgYW5kIHJldHVybnMgMD8KPj4+Pj4+ Pj4gQW5kIGlzIG1vbml0b3JfcHJlc2VudCBzZXQgdHJ1ZSBvciBmYWxzZT8KPj4+Pj4+Pgo+Pj4+ Pj4+IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoKSByZXR1cm5zIDAgYW5kIG1vbml0b3Jf cHJlc2VudCBpcyAwLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJZiBpOTE1X2F1ZGlvX2NvbXBvbmVudF9n ZXRfZWxkKCkgaXMgY2FsbGVkIGJ1dCByZXR1cm5zIHplcm8sIHRyYWNrCj4+Pj4+Pj4+IHRoZSBj b2RlIGZsb3cgdGhlcmUuICBJdCBtZWFucyBlaXRoZXIgaW50ZWxfZW5jb2RlciBpcyBOVUxMIG9y Cj4+Pj4+Pj4+IGludGVsX2RpZ19wb3J0LT5hdWRpb19jb25uZWN0b3IgaXMgTlVMTC4KPj4+Pj4+ Pgo+Pj4+Pj4+IGludGVsX2RpZ19wb3J0LT5hdWRpb19jb25uZWN0b3IgaXMgTlVMTCEKPj4+Pj4+ Pgo+Pj4+Pj4+ICh3aGVuIGNhbGxlZCBkdXJpbmcgYm9vdCBhbmQgZHVyaW5nIEhETUkgcGx1Z2lu KQo+Pj4+Pj4KPj4+Pj4+IEludGVyZXN0aW5nLiAgVGhlIHJlbGV2YW50IGNvZGUgZmxvdyBzaG91 bGQgYmUgbGlrZToKPj4+Pj4+Cj4+Pj4+PiAgIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZSgpCj4+ Pj4+PiAgIC0+IGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KCkKPj4+Pj4+ICAgICAt PiBpbnRlbF9waW5fZWxkX25vdGlmeSgpCj4+Pj4+PiAgICAgICAtPiBjaGVja19wcmVzZW5jZV9h bmRfcmVwb3J0KCkKPj4+Pj4+ICAgICAgICAgLT4gaGRtaV9wcmVzZW50X3NlbnNlKCkKPj4+Pj4+ IAkgIC0+IHN5bmNfZWxkX3ZpYV9hY29tcCgpCj4+Pj4+PiAJICAgIC0+IHNuZF9oZGFjX2Fjb21w X2dldF9lbGQoKQo+Pj4+Pj4gCSAgICAgIC0+IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQo KQo+Pj4+Pj4KPj4+Pj4+IFNvLCBhdCBmaXJzdCwgY2hlY2sgd2hldGhlciBpbnRlbF9kaWdfcG9y dCBpbiBib3RoCj4+Pj4+PiBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoKSBhbmQgaTkxNV9hdWRp b19jb21wb25lbnRfZ2V0X2VsZCgpIHBvaW50cwo+Pj4+Pj4gdG8gdGhlIHNhbWUgb2JqZWN0IGFk ZHJlc3MuICBUaGUgYXVkaW9fY29ubmVjdG9yIG11c3QgYmUgc2V0IGluCj4+Pj4+PiBpbnRlbF9h dWRpb19jb2RlY19lbmFibGUoKSwgdGh1cyBiYXNpY2FsbHkgaXQgbXVzdCBiZSBub24tTlVMTCBh dAo+Pj4+Pj4gaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2VsZCgpLCB0b28uCj4+Pj4+Pgo+Pj4+ Pgo+Pj4+PiBpbnRlbF9kaWdfcG9ydCBpcyAqbm90KiB0aGUgc2FtZSBvYmplY3QgaW4gdGhlc2Ug MiBwbGFjZXMuIER1cmluZwo+Pj4+PiBwbHVnaW4sIHNlZToKPj4+Pj4KPj4+Pj4gWyAgMTQ2Ljkz NDA5MV0gaW4gaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlOiBpbnRlbF9kaWdfcG9ydCBpcwo+Pj4+ PiBmZmZmODgwMGExZjU0MDAwCj4+Pj4+IFsgIDE0Ni45MzQxMjFdIGluIGk5MTVfYXVkaW9fY29t cG9uZW50X2dldF9lbGQ6IGludGVsX2RpZ19wb3J0IGlzCj4+Pj4+IGZmZmY4ODAyNDRmN2QwMDAK Pj4+Pj4KPj4+Pj4gc29ycnkgZm9yIHRoZSBzbG93IHJlc3BvbnNlcy4gSSdsbCB0cnkgdG8gZ28g YmFjayB0aGF0IGRpcmVjdGlvbiB1bmxlc3MKPj4+Pj4gYWdhaW4gc29tZW9uZSBjb21lcyB1cCB3 aXRoIG90aGVyIHN1Z2dlc3Rpb25zLgo+Pj4+Cj4+Pj4gVGhhbmtzLCB0aGlzIG1ha2VzIHNlbnNl LiAgSXQgaW1wbGllcyB0aGF0IHRoZSBkaWdpdGFsIHBvcnQgbWFwcGluZyBpcwo+Pj4+IHNvbWVo b3cgd3JvbmcuICBUaGVyZSBhcmUgdGhyZWUgcGxhY2VzIHNldHRpbmcgZGlnX3BvcnRfbWFwW10s IG9uZSBpbgo+Pj4+IGludGVsX2RkaV9pbml0KCksIG9uZSBpbiBpbnRlbF9kcF9pbml0KCkgYW5k IGFub3RoZXIgaW4KPj4+PiBpbnRlbF9oZG1pX2luaXQoKS4gIFRyeSB0byBjaGVjayB3aGljaCBm dW5jdGlvbiBjcmVhdGVzIHdoaWNoIG9iamVjdAo+Pj4+IGFzc2lnbmVkIHRvIHdoaWNoIHBvcnQg bnVtYmVyLCB0b2dldGhlciB3aXRoIGRybS5kZWJ1Zz0weDBlIGRlYnVnCj4+Pj4gbWVzc2FnZXMu Cj4+Pj4KPj4+IHdpdGhvdXQgdXNpbmcgZHJtLmRlYnVnPTB4MGUsIGJ1dCBieSBwcmludGluZyB0 aGUga21hbGxvYydlZCBvYmplY3RzIGluCj4+PiB0aG9zZSAzIGZ1bmN0aW9ucyB3aXRoIHBvcnRz LCBJIGZvdW5kOgo+Pj4KPj4+IDIgb2YgdGhlbSBhcmUgcnVubmluZywgb25seSBkdXJpbmcgYm9v dDoKPj4+Cj4+PiBbICAgIDIuMzIyODY1XSBpbnRlbF9oZG1pX2luaXQ6IGludGVsX2RpZ19wb3J0 IGlzIGZmZmY4ODAyNDI1NjQwMDAgIHBvcnQgMQo+Pj4gWyAgICAyLjMyMjk5OV0gaW50ZWxfZHBf aW5pdDogaW50ZWxfZGlnX3BvcnQgaXMgZmZmZjg4MDI0MmYzMDAwMCAgcG9ydCAxCj4+Pgo+Pj4g aXMgaXMgY29ycmVjdCBmb3IgdGhlbSB0byBoYXZlIGJvdGggcG9ydCAxPyBBbnkgbW9yZSBpZGVh cz8KPj4KPj4gQWRkaW5nIGludGVsLWdmeCBNTCB0byBDYy4KPj4KPj4gTWFydGluLCBpcyB0aGUg bWFjaGluZSBTYW5keUJyaWRnZSBvciBJdnlCcmlkZ2U/Cj4+Cj4+IEluIGFueXdheSBpdCdzIFBD SF9TUExJVCBhbmQgdGhlcmUgY2FuIGNhbGwgYm90aCBpbnRlbF9oZG1pX2luaXQoKSBhbmQgCj4+ IGludGVsX2RwX2luaXQoKSBmb3IgdGhlIHNhbWUgcG9ydCBhbHRob3VnaCBib3RoIGZ1bmN0aW9u cyBtYXAKPj4gaW50ZWxfZGlnX3BvcnRbXS4gIFRoZSBhc3N1bXB0aW9uIG9mIGludGVsX2RpZ19w b3J0W10gcmV2ZXJzZSBtYXBwaW5nCj4+IGlzIHRoYXQgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBp bnRlbF9kaWdfcG9ydCBhc3NpZ25lZCB0byBhIHBvcnQsIGJ1dAo+PiB0aGlzIGRvZXNuJ3QgbG9v ayBjb3JyZWN0Li4uCj4gCj4gT24gcHJlLUhTVyB0aGVyZSBjYW4gaW5kZWVkIGJlIHR3byBlbmNv ZGVycyBmb3IgdGhlIHNhbWUgcG9ydC4KPiBBbmQgSSdtIHBsYW5uaW5nIHRvIGNoYW5nZSBIU1cr IHRvIGZvbGxvdyB0aGF0IG1vZGVsIGFzIHdlbGwsCj4gYnV0IEkndmUgYmVlbiBidXN5IHdpdGgg b3RoZXIgc3R1ZmYgdG8gZmluaXNoIG9mZiB0aGF0IHdvcmsgWzFdCj4gCj4gWzFdIGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8yMDE1LURlY2VtYmVyLzA4 MjM4NC5odG1sCj4gCgpTbyB5b3VyIHdvcmsgd291bGRuJ3QgZml4IGhkbWktYXVkaW8gcHJlLUhT VyBoZXJlPwoKCkFueXdheXMsIGEgcXVpY2sgZml4IHdvdWxkIGJlIGdvb2QsIGFuZCBpZiBub3Qg dGhhdCwgcmVtZW1iZXIgbWFya2luZwpmdXR1cmUgY2hhbmdlcyB0aGF0IGZpeCB0aGlzLCBmb3Ig c3RhYmxlLgoKV2hhdCBpbXBsaWNhdGlvbnMgd291bGQgc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxv d2luZywgdGhhdCBUYWthc2hpCnN1Z2dlc3RlZCwgaGF2ZSBvbiBvdGhlciBzeXN0ZW1zPwoKY29t bWl0IDdiMjA5ODNjMDI5MjhjNTUzNzdiM2NmYTkyNzI1N2ExNzg5NmVjZWUKQXV0aG9yOiBNYXJ0 aW4gS2VwcGxpbmdlciA8bWFydGlua0Bwb3N0ZW8uZGU+CkRhdGU6ICAgVHVlIEZlYiAyMyAxODoy OTowNSAyMDE2ICswMTAwCgogICAgc291bmQ6IHBjaTogaGRhOiBzZXQgY29kZWNfaGFzX2Fjb21w IHRvIGZhbHNlIGR1ZSB0byBwZW5kaW5nIHJlZ3Jlc3Npb24KCiAgICB2NC41IGFuZCBpdCdzIHNp Z25pZmljYW50IGludGVsIGhkYSBjaGFuZ2VzIGJyZWFrIGF1ZGlvIG92ZXIgSERNSQogICAgZm9y IHNvbWUgY2FzZXMuIFRoaXMgaXMgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0byBiZSByZXZlcnRl ZCBpbgogICAgdGhlIGZ1dHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS2VwcGxpbmdl ciA8bWFydGlua0Bwb3N0ZW8uZGU+CgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9o ZG1pLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYwppbmRleCA4ZWU3OGRiLi42ZDZmMTA0 IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYworKysgYi9zb3VuZC9wY2kv aGRhL3BhdGNoX2hkbWkuYwpAQCAtMTU2LDcgKzE1Niw3IEBAIHN0cnVjdCBoZG1pX3NwZWMgewog ICAgICAgIGJvb2wgaTkxNV9ib3VuZDsgLyogd2FzIGk5MTUgYm91bmQgaW4gdGhpcyBkcml2ZXI/ ICovCiB9OwoKLSNpZmRlZiBDT05GSUdfU05EX0hEQV9JOTE1CisjaWYgMAogI2RlZmluZSBjb2Rl Y19oYXNfYWNvbXAoY29kZWMpIFwKICAgICAgICAoKGNvZGVjKS0+YnVzLT5jb3JlLmF1ZGlvX2Nv bXBvbmVudCAhPSBOVUxMKQogI2Vsc2UKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754647AbcBWTKb (ORCPT ); Tue, 23 Feb 2016 14:10:31 -0500 Received: from mout01.posteo.de ([185.67.36.65]:56852 "EHLO mout01.posteo.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753384AbcBWTK3 (ORCPT ); Tue, 23 Feb 2016 14:10:29 -0500 Subject: Re: [Intel-gfx] [BUG] [REGRESSION] [BISECTED] -rc1 breaks audio over HDMI for i915 To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Takashi Iwai References: <56BE0044.9080500@posteo.de> <56CAE1C5.4070107@posteo.de> <56CB1510.4010503@posteo.de> <56CB5A4A.90906@posteo.de> <56CB7F98.20807@posteo.de> <20160223171447.GL23290@intel.com> Cc: alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, perex@perex.cz, han.lu@intel.com, treding@nvidia.com, david.henningsson@canonical.com From: Martin Kepplinger X-Enigmail-Draft-Status: N1110 Message-ID: <56CCAE4E.3090009@posteo.de> Date: Tue, 23 Feb 2016 20:09:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.5.0 MIME-Version: 1.0 In-Reply-To: <20160223171447.GL23290@intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am 2016-02-23 um 18:14 schrieb Ville Syrjälä: > On Tue, Feb 23, 2016 at 05:57:40PM +0100, Takashi Iwai wrote: >> On Mon, 22 Feb 2016 22:37:28 +0100, >> Martin Kepplinger wrote: >>> >>> Am 2016-02-22 um 20:10 schrieb Takashi Iwai: >>>> 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. >>>> >>> without using drm.debug=0x0e, but by printing the kmalloc'ed objects in >>> those 3 functions with ports, I found: >>> >>> 2 of them are running, only during boot: >>> >>> [ 2.322865] intel_hdmi_init: intel_dig_port is ffff880242564000 port 1 >>> [ 2.322999] intel_dp_init: intel_dig_port is ffff880242f30000 port 1 >>> >>> is is correct for them to have both port 1? Any more ideas? >> >> Adding intel-gfx ML to Cc. >> >> Martin, is the machine SandyBridge or IvyBridge? >> >> In anyway it's PCH_SPLIT and there can call both intel_hdmi_init() and >> intel_dp_init() for the same port although both functions map >> intel_dig_port[]. The assumption of intel_dig_port[] reverse mapping >> is that there is only a single intel_dig_port assigned to a port, but >> this doesn't look correct... > > On pre-HSW there can indeed be two encoders for the same port. > And I'm planning to change HSW+ to follow that model as well, > but I've been busy with other stuff to finish off that work [1] > > [1] https://lists.freedesktop.org/archives/intel-gfx/2015-December/082384.html > So your work wouldn't fix hdmi-audio pre-HSW here? Anyways, a quick fix would be good, and if not that, remember marking future changes that fix this, for stable. What implications would something like the following, that Takashi suggested, have on other systems? commit 7b20983c02928c55377b3cfa927257a17896ecee Author: Martin Kepplinger Date: Tue Feb 23 18:29:05 2016 +0100 sound: pci: hda: set codec_has_acomp to false due to pending regression v4.5 and it's significant intel hda changes break audio over HDMI for some cases. This is a temporary workaround to be reverted in the future. Signed-off-by: Martin Kepplinger diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 8ee78db..6d6f104 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -156,7 +156,7 @@ struct hdmi_spec { bool i915_bound; /* was i915 bound in this driver? */ }; -#ifdef CONFIG_SND_HDA_I915 +#if 0 #define codec_has_acomp(codec) \ ((codec)->bus->core.audio_component != NULL) #else