From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [Intel-gfx] [PATCH] drm/i915: Fix enc_to_dig_port() for MST encoders Date: Mon, 02 May 2016 11:11:31 -0400 Message-ID: <1462201891.22017.0.camel@redhat.com> References: <1461778466-17747-1-git-send-email-cpaul@redhat.com> <87h9emjm03.fsf@intel.com> <20160428104009.GZ4329@intel.com> <87vb31hqgw.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <87vb31hqgw.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jani Nikula , Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: Rob Clark , intel-gfx@lists.freedesktop.org, stable@vger.kernel.org, "open list:INTEL DRM DRIVERS (excluding Poulsbo, Moorestow...), linux-kernel@vger.kernel.org (open list)" , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SSBnYXZlIGEgc2hvcnQgdHJ5IGF0IGZpeGluZyBNU1QgYXVkaW8sIGJ1dCBpdCBkZWZpbml0ZWx5 IGxvb2tzIGxpa2UgaXQncyBnb2luZwp0byByZXF1aXJlIHF1aXRlIGEgYml0IG9mIHRyb3VibGVz aG9vdGluZyBhbmQgYSBmZXcgbW9yZSBwYXRjaGVzIDooLgoKU2luY2UgSSBjYW4ndCBmaW5kIGFu IGltbWVkaWF0ZSBmaXggdG8gYWN0dWFsbHkgbWFrZSBNU1QgYXVkaW8gd29yayBJJ20gdG90YWxs eQppbiBmYXZvciBvZiByZXZlcnRpbmcgdGhlIE1TVCBhdWRpbyBzdXBwb3J0IGZvciB0aGUgdGlt ZSBiZWluZwoKT24gVGh1LCAyMDE2LTA0LTI4IGF0IDE1OjIzICswMzAwLCBKYW5pIE5pa3VsYSB3 cm90ZToKPiBPbiBUaHUsIDI4IEFwciAyMDE2LCBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPiB3cm90ZToKPiA+IAo+ID4gT24gVGh1LCBBcHIgMjgsIDIwMTYg YXQgMDk6MTc6MDBBTSArMDMwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gPiA+IAo+ID4gPiBPbiBX ZWQsIDI3IEFwciAyMDE2LCBMeXVkZSA8Y3BhdWxAcmVkaGF0LmNvbT4gd3JvdGU6Cj4gPiA+ID4g Cj4gPiA+ID4gRm9yIE1TVCBlbmNvZGVycywgdGhlIGVuY29kZXIgc3RydWN0IGlzIHN0b3JlZCBp biB0aGUgaW50ZWxfZHBfbXN0Cj4gPiA+ID4gc3RydWN0LCBub3QgYSBpbnRlbF9kaWdpdGFsX3Bv cnQgc3RydWN0Lgo+ID4gPiA+IAo+ID4gPiA+IFRoaXMgZml4ZXMgaXNzdWVzIHdpdGggaG90cGx1 Z2dpbmcgTVNUIGRpc3BsYXlzIHRoYXQgc3VwcG9ydCBNU1QgYXVkaW8sCj4gPiA+ID4gd2hlcmUg aG90cGx1Z2dpbmcgaGFkIGEgc3VycHJpc2luZ2x5IGdvb2QgY2hhbmNlIG9mIGFjY2lkZW50YWxs eQo+ID4gPiA+IG92ZXJ3cml0aW5nIG90aGVyIHBhcnRzIG9mIHRoZSBrZXJuZWwgbGVhZGluZyB0 byBzZWVtaW5nbHkgdW5yZWxhdGVkCj4gPiA+ID4gYmFja3RyYWNlcyBpbiBzeXNmcywgZXh0NCwg ZXRjLgo+ID4gPiA+IAo+ID4gPiA+IENjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCj4gPiA+ID4g U2lnbmVkLW9mZi1ieTogTHl1ZGUgPGNwYXVsQHJlZGhhdC5jb20+Cj4gPiA+IFVnaC4gSnVzdCB1 Z2guCj4gPiA+IAo+ID4gPiBBdCBhIGdsYW5jZSwgaXQncyBwcm9iYWJseSB0aGlzIG9uZSB0aGF0 IHN0YXJ0cyBjYWxsaW5nCj4gPiA+IGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZSgpIGFuZCBpbnRl bF9hdWRpb19jb2RlY19kaXNhYmxlKCkgb24gRFAgTVNUOgo+ID4gPiAKPiA+ID4gY29tbWl0IDNk NTJjY2Y1MmYyYzUxZjYxM2U0MmU2NWJlMGYwNmU0ZTY3ODgwOTMKPiA+ID4gQXV0aG9yOiBMaWJp biBZYW5nIDxsaWJpbi55YW5nQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gRGF0ZTrCoMKgwqBXZWQg RGVjIDIgMTQ6MDk6NDQgMjAxNSArMDgwMAo+ID4gPiAKPiA+ID4gwqDCoMKgwqBkcm0vaTkxNTog c3RhcnQgYWRkaW5nIGRwIG1zdCBhdWRpbwo+ID4gPiAKPiA+ID4gd2hpY2ggaGFzIGJlZW4gdGhl cmUgc2luY2UgdjQuNS4gV291bGQgaXQgYmUgZmVhc2libGUgZm9yIHlvdSB0byByZXZlcnQKPiA+ ID4gdGhlIGNvbW1pdCBvciBjaGFuZ2UgaXQgc28gdGhhdCBpdCBzdG9wcyBjYWxsaW5nIHRoZSBh dWRpbyBjb2RlYwo+ID4gPiBlbmFibGUvZGlzYWJsZSwgdG8gdmVyaWZ5IHRoaXMgaXMgdGhlIGN1 bHByaXQ/IFNvIHdlIGNvdWxkIGFkZCBhIHByb3Blcgo+ID4gPiBGaXhlczogbGluZSB0b28uCj4g PiBJIGRvbid0IHBhcnRpY3VsYXJseSBsaWtlIG1ha2luZyBlbmNfdG9fZGlnX3BvcnQoKSB3b3Jr IG9uIE1TVCBlbmNvZGVycwo+ID4gYmVjYXVzZSBpdCdsbCBsaWtlbHkgcmVzdWx0IGluIHRoZSB3 cm9uZyB0aGluZyBhbnl3YXkuIEkgYWxyZWFkeSBhc2tlZAo+ID4gYmVmb3JlIGhvdyBNU1QgYXVk aW8gcG9ydCBoYW5kbGluZyBpcyBzdXBwb3NlZCB0byB3b3JrLCBidXQgbmV2ZXIgZ290Cj4gPiBh bnkgYW5zd2VyLiBSaWdodCBub3csIGlmIHlvdSBqdXN0IHVzZSB0aGUgLT5wcmltYXJ5IGRpZ19w b3J0IGluIHRoZQo+ID4gYXVkaW8gcGF0aHMsIHRoZXJlJ3Mgbm8gd2F5IGF1ZGlvIGNhbiB3b3Jr IGNvcnJlY3RseSB3aXRoIE1TVCwgYXQgbGVhc3QKPiA+IGlmIHlvdSBlbmFibGUgbXVsdGlwbGUg c3RyZWFtcyBvbiB0aGUgc2FtZSBwb3J0Lgo+ID4gCj4gPiBTbyB3aGF0IEkgd291bGQgZG8gaXMg anVzdCByZXZlcnQgdGhlIGF1ZGlvIGNhbGxzIGZyb20gdGhlIE1TVCBwYXRocyBhbmQKPiA+IGdv IGJhY2sgdG8gdGhlIGRyYXdpbmcgYm9hcmQuCj4gSSBkb24ndCBtaW5kIHRoYXQgYXBwcm9hY2gg ZWl0aGVyLgo+IAo+IEkgd2FzIHRoaW5raW5nIHdlIHNob3VsZCBwcm9iYWJseSBhZGQgc29tZSBk eW5hbWljIHR5cGUgY2hlY2tpbmcgdG8KPiBlbmNfdG9fZGlnX3BvcnQgdG8gY2F0Y2ggdGhpcyB0 eXBlIG9mIGJ1Z3MuCj4gCj4gQlIsCj4gSmFuaS4KPiAKPiA+IAo+ID4gCj4gPiA+IAo+ID4gPiAK PiA+ID4gVGhlIG5vbi1NU1QgYXdhcmUgZW5jX3RvX2RpZ19wb3J0KCkgY2FsbHMgb24gcGxhdGZv cm1zIHRoYXQgbWlnaHQgaGF2ZQo+ID4gPiBNU1Qgd2VyZSBhZGRlZCBpbjoKPiA+ID4gCj4gPiA+ IGNvbW1pdCA1MWUxZDgzY2FiOTk4ODcxNmFlNjg4MDFhNzIxZjRkZjBhYWEzNzRiCj4gPiA+IEF1 dGhvcjogRGF2aWQgSGVubmluZ3Nzb24gPGRhdmlkLmhlbm5pbmdzc29uQGNhbm9uaWNhbC5jb20+ Cj4gPiA+IERhdGU6wqDCoMKgV2VkIEF1ZyAxOSAxMDo0ODo1NiAyMDE1ICswMjAwCj4gPiA+IAo+ ID4gPiDCoMKgwqDCoGRybS9pOTE1OiBDYWxsIGF1ZGlvIHBpbi9FTEQgbm90aWZ5IGZ1bmN0aW9u Cj4gPiA+IAo+ID4gPiBhbmQ6Cj4gPiA+IAo+ID4gPiBjb21taXQgN2U4Mjc1YzJmMmJiYjM4NGUx OGFmMzcwNjZiOGIyZjMyYjdkMDkyZgo+ID4gPiBBdXRob3I6IExpYmluIFlhbmcgPGxpYmluLnlh bmdAaW50ZWwuY29tPgo+ID4gPiBEYXRlOsKgwqDCoEZyaSBTZXAgMjUgMDk6MzY6MTIgMjAxNSAr MDgwMAo+ID4gPiAKPiA+ID4gwqDCoMKgwqBkcm0vaTkxNTogc2V0IHByb3BlciBOL0NUUyBpbiBt b2Rlc2V0Cj4gPiA+IAo+ID4gPiBidXQgSSBkb24ndCB0aGluayB0aGUgY29kZWMgZW5hYmxlL2Rp c2FibGUgd2VyZSBjYWxsZWQgb24gTVNUIGF0IHRoYXQKPiA+ID4gdGltZS4KPiA+ID4gCj4gPiA+ IFNvbWUgb2YgdGhlIHByb2JsZW0gd2FzIHByb2JhYmx5IHNlZW4gYnkgVGFrYXNoaSBpbgo+ID4g PiAKPiA+ID4gY29tbWl0IDBiZGY1YTA1NjQ3YTY2ZGNjNjM5NDk4NmUwNjFkYWVhYzliMWNmOTYK PiA+ID4gQXV0aG9yOiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+Cj4gPiA+IERhdGU6wqDC oMKgTW9uIE5vdiAzMCAxODoxOTozOSAyMDE1ICswMTAwCj4gPiA+IAo+ID4gPiDCoMKgwqDCoGRy bS9pOTE1OiBBZGQgcmV2ZXJzZSBtYXBwaW5nIGJldHdlZW4gcG9ydCBhbmQgaW50ZWxfZW5jb2Rl cgo+ID4gPiAKPiA+ID4gd2hpY2ggaGFzIGEgY29tbWVudCAvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0 IGJlIE5VTEwgZm9yIERQIE1TVCAqLy4gTWF5YmUKPiA+ID4gdGhhdCBuZWVkcyB0byBiZSB1cGRh dGVkIHRvIERUUlQgdG9vLgo+ID4gPiAKPiA+ID4gCj4gPiA+IEx5dWRlLCB0aGFua3MgZm9yIHlv dXIgZWZmb3J0cyBpbiBEUCBNU1QgYXJlYS4gTXVjaCBhcHByZWNpYXRlZC4KPiA+ID4gCj4gPiA+ IAo+ID4gPiBCUiwKPiA+ID4gSmFuaS4KPiA+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ID4gPiAKPiA+ ID4gPiAtLS0KPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwgMTcg KysrKysrKysrKystLS0tLS0KPiA+ID4gPiDCoDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25z KCspLCA2IGRlbGV0aW9ucygtKQo+ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiA+ID4gPiBpbmRleCA0YzAyN2Q2Li44MWYyMjEyIDEwMDY0NAo+ID4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiBAQCAtOTE4LDE4ICs5MTgsMjMg QEAgaW50ZWxfYXR0YWNoZWRfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ID4gPiA+ICpj b25uZWN0b3IpCj4gPiA+ID4gwqAJcmV0dXJuIHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3Ip LT5lbmNvZGVyOwo+ID4gPiA+IMKgfQo+ID4gPiA+IMKgCj4gPiA+ID4gLXN0YXRpYyBpbmxpbmUg c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqCj4gPiA+ID4gLWVuY190b19kaWdfcG9ydChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gPiA+ID4gLXsKPiA+ID4gPiAtCXJldHVybiBjb250 YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCwKPiA+ID4gPiBiYXNl LmJhc2UpOwo+ID4gPiA+IC19Cj4gPiA+ID4gLQo+ID4gPiA+IMKgc3RhdGljIGlubGluZSBzdHJ1 Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKgo+ID4gPiA+IMKgZW5jX3RvX21zdChzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCj4gPiA+ID4gwqB7Cj4gPiA+ID4gwqAJcmV0dXJuIGNvbnRhaW5l cl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIsCj4gPiA+ID4gYmFzZS5i YXNlKTsKPiA+ID4gPiDCoH0KPiA+ID4gPiDCoAo+ID4gPiA+ICtzdGF0aWMgaW5saW5lIHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKgo+ID4gPiA+ICtlbmNfdG9fZGlnX3BvcnQoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlpZiAoZW5jb2Rlci0+ZW5j b2Rlcl90eXBlID09IERSTV9NT0RFX0VOQ09ERVJfRFBNU1QpCj4gPiA+ID4gKwkJcmV0dXJuIGVu Y190b19tc3QoZW5jb2RlciktPnByaW1hcnk7Cj4gPiA+ID4gKwllbHNlIHsKPiA+ID4gPiArCQly ZXR1cm4gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQsCj4g PiA+ID4gKwkJCQnCoMKgwqDCoGJhc2UuYmFzZSk7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gK30KPiA+ ID4gPiArCj4gPiA+ID4gwqBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kcCAqZW5jX3RvX2lu dGVsX2RwKHN0cnVjdCBkcm1fZW5jb2Rlcgo+ID4gPiA+ICplbmNvZGVyKQo+ID4gPiA+IMKgewo+ ID4gPiA+IMKgCXJldHVybiAmZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpLT5kcDsKPiA+ID4gLS3C oAo+ID4gPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIK PiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com ([209.132.183.28]:50305 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752309AbcEBPLc (ORCPT ); Mon, 2 May 2016 11:11:32 -0400 Message-ID: <1462201891.22017.0.camel@redhat.com> Subject: Re: [Intel-gfx] [PATCH] drm/i915: Fix enc_to_dig_port() for MST encoders From: Lyude Paul To: Jani Nikula , Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Rob Clark , David Airlie , Daniel Vetter , "open list:INTEL DRM DRIVERS (excluding Poulsbo, Moorestow...), " "linux-kernel@vger.kernel.org (open list)" , stable@vger.kernel.org Date: Mon, 02 May 2016 11:11:31 -0400 In-Reply-To: <87vb31hqgw.fsf@intel.com> References: <1461778466-17747-1-git-send-email-cpaul@redhat.com> <87h9emjm03.fsf@intel.com> <20160428104009.GZ4329@intel.com> <87vb31hqgw.fsf@intel.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: I gave a short try at fixing MST audio, but it definitely looks like it's going to require quite a bit of troubleshooting and a few more patches :(. Since I can't find an immediate fix to actually make MST audio work I'm totally in favor of reverting the MST audio support for the time being On Thu, 2016-04-28 at 15:23 +0300, Jani Nikula wrote: > On Thu, 28 Apr 2016, Ville Syrjälä wrote: > > > > On Thu, Apr 28, 2016 at 09:17:00AM +0300, Jani Nikula wrote: > > > > > > On Wed, 27 Apr 2016, Lyude wrote: > > > > > > > > For MST encoders, the encoder struct is stored in the intel_dp_mst > > > > struct, not a intel_digital_port struct. > > > > > > > > This fixes issues with hotplugging MST displays that support MST audio, > > > > where hotplugging had a surprisingly good chance of accidentally > > > > overwriting other parts of the kernel leading to seemingly unrelated > > > > backtraces in sysfs, ext4, etc. > > > > > > > > Cc: stable@vger.kernel.org > > > > Signed-off-by: Lyude > > > Ugh. Just ugh. > > > > > > At a glance, it's probably this one that starts calling > > > intel_audio_codec_enable() and intel_audio_codec_disable() on DP MST: > > > > > > commit 3d52ccf52f2c51f613e42e65be0f06e4e6788093 > > > Author: Libin Yang > > > Date:   Wed Dec 2 14:09:44 2015 +0800 > > > > > >     drm/i915: start adding dp mst audio > > > > > > which has been there since v4.5. Would it be feasible for you to revert > > > the commit or change it so that it stops calling the audio codec > > > enable/disable, to verify this is the culprit? So we could add a proper > > > Fixes: line too. > > I don't particularly like making enc_to_dig_port() work on MST encoders > > because it'll likely result in the wrong thing anyway. I already asked > > before how MST audio port handling is supposed to work, but never got > > any answer. Right now, if you just use the ->primary dig_port in the > > audio paths, there's no way audio can work correctly with MST, at least > > if you enable multiple streams on the same port. > > > > So what I would do is just revert the audio calls from the MST paths and > > go back to the drawing board. > I don't mind that approach either. > > I was thinking we should probably add some dynamic type checking to > enc_to_dig_port to catch this type of bugs. > > BR, > Jani. > > > > > > > > > > > > > > The non-MST aware enc_to_dig_port() calls on platforms that might have > > > MST were added in: > > > > > > commit 51e1d83cab9988716ae68801a721f4df0aaa374b > > > Author: David Henningsson > > > Date:   Wed Aug 19 10:48:56 2015 +0200 > > > > > >     drm/i915: Call audio pin/ELD notify function > > > > > > and: > > > > > > commit 7e8275c2f2bbb384e18af37066b8b2f32b7d092f > > > Author: Libin Yang > > > Date:   Fri Sep 25 09:36:12 2015 +0800 > > > > > >     drm/i915: set proper N/CTS in modeset > > > > > > but I don't think the codec enable/disable were called on MST at that > > > time. > > > > > > Some of the problem was probably seen by Takashi in > > > > > > commit 0bdf5a05647a66dcc6394986e061daeac9b1cf96 > > > Author: Takashi Iwai > > > Date:   Mon Nov 30 18:19:39 2015 +0100 > > > > > >     drm/i915: Add reverse mapping between port and intel_encoder > > > > > > which has a comment /* intel_encoder might be NULL for DP MST */. Maybe > > > that needs to be updated to DTRT too. > > > > > > > > > Lyude, thanks for your efforts in DP MST area. Much appreciated. > > > > > > > > > BR, > > > Jani. > > > > > > > > > > > > > > > > > --- > > > >  drivers/gpu/drm/i915/intel_drv.h | 17 +++++++++++------ > > > >  1 file changed, 11 insertions(+), 6 deletions(-) > > > > > > > > diff --git a/drivers/gpu/drm/i915/intel_drv.h > > > > b/drivers/gpu/drm/i915/intel_drv.h > > > > index 4c027d6..81f2212 100644 > > > > --- a/drivers/gpu/drm/i915/intel_drv.h > > > > +++ b/drivers/gpu/drm/i915/intel_drv.h > > > > @@ -918,18 +918,23 @@ intel_attached_encoder(struct drm_connector > > > > *connector) > > > >   return to_intel_connector(connector)->encoder; > > > >  } > > > >   > > > > -static inline struct intel_digital_port * > > > > -enc_to_dig_port(struct drm_encoder *encoder) > > > > -{ > > > > - return container_of(encoder, struct intel_digital_port, > > > > base.base); > > > > -} > > > > - > > > >  static inline struct intel_dp_mst_encoder * > > > >  enc_to_mst(struct drm_encoder *encoder) > > > >  { > > > >   return container_of(encoder, struct intel_dp_mst_encoder, > > > > base.base); > > > >  } > > > >   > > > > +static inline struct intel_digital_port * > > > > +enc_to_dig_port(struct drm_encoder *encoder) > > > > +{ > > > > + if (encoder->encoder_type == DRM_MODE_ENCODER_DPMST) > > > > + return enc_to_mst(encoder)->primary; > > > > + else { > > > > + return container_of(encoder, struct intel_digital_port, > > > > +     base.base); > > > > + } > > > > +} > > > > + > > > >  static inline struct intel_dp *enc_to_intel_dp(struct drm_encoder > > > > *encoder) > > > >  { > > > >   return &enc_to_dig_port(encoder)->dp; > > > --  > > > Jani Nikula, Intel Open Source Technology Center > > > _______________________________________________ > > > Intel-gfx mailing list > > > Intel-gfx@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx