From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v2 17/29] drm: bridge: dw-hdmi: Refactor PHY power handling Date: Tue, 20 Dec 2016 15:50:34 +0200 Message-ID: <17861036.j3qVTS9FcC@avalon> References: <20161220013400.28317-1-laurent.pinchart+renesas@ideasonboard.com> <20161220013400.28317-18-laurent.pinchart+renesas@ideasonboard.com> <20161220114553.GS14217@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F52B6EE4B for ; Tue, 20 Dec 2016 13:50:06 +0000 (UTC) In-Reply-To: <20161220114553.GS14217@n2100.armlinux.org.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Russell King - ARM Linux Cc: Fabio Estevam , Jose Abreu , Laurent Pinchart , Kieran Bingham , dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, Ulrich Hecht , Andy Yan , Vladimir Zapolskiy List-Id: dri-devel@lists.freedesktop.org SGkgUnVzc2VsbCwKClRoYW5rIHlvdSBmb3IgdGhlIHJldmlldy4KCk9uIFR1ZXNkYXkgMjAgRGVj IDIwMTYgMTE6NDU6NTMgUnVzc2VsbCBLaW5nIC0gQVJNIExpbnV4IHdyb3RlOgo+IE9uIFR1ZSwg RGVjIDIwLCAyMDE2IGF0IDAzOjMzOjQ4QU0gKzAyMDAsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6 Cj4gPiBJbnN0ZWFkIG9mIHNwcmVhZGluZyB2ZXJzaW9uLWRlcGVuZGVudCBQSFkgcG93ZXIgaGFu ZGxpbmcgY29kZSBhcm91bmQsCj4gPiBncm91cCBpdCBpbiB0d28gZnVuY3Rpb25zIHRvIHBvd2Vy IHRoZSBQSFkgb24gYW5kIG9mZiBhbmQgdXNlIHRoZW0KPiA+IHRocm91Z2ggdGhlIGRyaXZlci4K PiA+IAo+ID4gUG93ZXJpbmcgb2ZmIHRoZSBQSFkgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc2V0 dXAgcGhhc2UgaXMgY3VycmVudGx5Cj4gPiBzcGxpdCBpbiB0d28gbG9jYXRpb25zIGZvciBmaXJz dCBhbmQgc2Vjb25kIGdlbmVyYXRpb24gUEhZcywgZ3JvdXAgYWxsCj4gPiB0aGUgb3BlcmF0aW9u cyBpbiB0aGUgZHdfaGRtaV9waHlfaW5pdCgpIGZ1bmN0aW9uLgo+IAo+IFRoaXMgY2hhbmdlcyB0 aGUgYmVoYXZpb3VyIG9mIHRoZSBkcml2ZXIuCgpJdCBkb2VzLCBidXQgc2xpZ2h0bHkgb25seSAo SSdtIG9mIGNvdXJzZSB2ZXJ5IGF3YXJlIHRoYXQgc2xpZ2h0bHkgY2FuIGVhc2lseSAKYmUgd2F5 IHRvbyBtdWNoIDotKSkuCgpMZXQncyBhbmFseXNlIHRoZSBkaWZmZXJlbmNlcywgc3RhcnRpbmcg d2l0aCBQSFkgaW5pdGlhbGl6YXRpb24gaW4gCmR3X2hkbWlfcGh5X2luaXQoKS4gQmVmb3JlIHRo aXMgcGF0Y2gsIHRoZSBmdW5jdGlvbiBjYWxscwoKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjsg aSsrKSB7CiAgICAgICAgICAgICAgICBkd19oZG1pX3BoeV9zZWxfZGF0YV9lbl9wb2woaGRtaSwg MSk7CiAgICAgICAgICAgICAgICBkd19oZG1pX3BoeV9zZWxfaW50ZXJmYWNlX2NvbnRyb2woaGRt aSwgMCk7CiAgICAgICAgICAgICAgICBkd19oZG1pX3BoeV9lbmFibGVfdG1kcyhoZG1pLCAwKTsK ICAgICAgICAgICAgICAgIGR3X2hkbWlfcGh5X2VuYWJsZV9wb3dlcmRvd24oaGRtaSwgdHJ1ZSk7 CgogICAgICAgICAgICAgICAgLyogRW5hYmxlIENTQyAqLwogICAgICAgICAgICAgICAgcmV0ID0g aGRtaV9waHlfY29uZmlndXJlKGhkbWksIGNzY29uKTsKICAgICAgICAgICAgICAgIGlmIChyZXQp CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQoKYW5kIGhkbWlf cGh5X2NvbmZpZ3VyZSgpIHN0YXJ0cyB3aXRoIChJJ3ZlIHJlbW92ZWQgbGluZXMgdGhhdCBkb24n dCB0b3VjaCB0aGUgCmhhcmR3YXJlKQoKICAgICAgICAvKiBFbmFibGUgY3NjIHBhdGggKi8KICAg ICAgICBpZiAoY3Njb24pCiAgICAgICAgICAgICAgICB2YWwgPSBIRE1JX01DX0ZMT1dDVFJMX0ZF RURfVEhST1VHSF9PRkZfQ1NDX0lOX1BBVEg7CiAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg dmFsID0gSERNSV9NQ19GTE9XQ1RSTF9GRUVEX1RIUk9VR0hfT0ZGX0NTQ19CWVBBU1M7CgogICAg ICAgIGhkbWlfd3JpdGViKGhkbWksIHZhbCwgSERNSV9NQ19GTE9XQ1RSTCk7CgogICAgICAgIC8q IGdlbjIgdHggcG93ZXIgb2ZmICovCiAgICAgICAgZHdfaGRtaV9waHlfZ2VuMl90eHB3cm9uKGhk bWksIDApOwoKICAgICAgICAvKiBnZW4yIHBkZHEgKi8KICAgICAgICBkd19oZG1pX3BoeV9nZW4y X3BkZHEoaGRtaSwgMSk7CgpBZnRlciB0aGUgY2hhbmdlLCBkd19oZG1pX3BoeV9pbml0KCkgY2Fs bHMKCiAgICAgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewogICAgICAgICAgICAgICAgZHdf aGRtaV9waHlfc2VsX2RhdGFfZW5fcG9sKGhkbWksIDEpOwogICAgICAgICAgICAgICAgZHdfaGRt aV9waHlfc2VsX2ludGVyZmFjZV9jb250cm9sKGhkbWksIDApOwoKICAgICAgICAgICAgICAgIC8q IEVuYWJsZSBDU0MgKi8KICAgICAgICAgICAgICAgIHJldCA9IGhkbWlfcGh5X2NvbmZpZ3VyZSho ZG1pLCBjc2Nvbik7CiAgICAgICAgICAgICAgICBpZiAocmV0KQogICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gcmV0OwogICAgICAgIH0KCmFuZCBoZG1pX3BoeV9jb25maWd1cmUoKSBzdGFy dHMgd2l0aAoKICAgICAgICAvKiBFbmFibGUgY3NjIHBhdGggKi8KICAgICAgICBpZiAoY3Njb24p CiAgICAgICAgICAgICAgICB2YWwgPSBIRE1JX01DX0ZMT1dDVFJMX0ZFRURfVEhST1VHSF9PRkZf Q1NDX0lOX1BBVEg7CiAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgdmFsID0gSERNSV9NQ19G TE9XQ1RSTF9GRUVEX1RIUk9VR0hfT0ZGX0NTQ19CWVBBU1M7CgogICAgICAgIGhkbWlfd3JpdGVi KGhkbWksIHZhbCwgSERNSV9NQ19GTE9XQ1RSTCk7CgogICAgICAgIGR3X2hkbWlfcGh5X3Bvd2Vy X29mZihoZG1pKTsKCndpdGggZHdfaGRtaV9waHlfcG93ZXJfb2ZmKCkgZGVmaW5lZCBhcwoKICAg ICAgICBpZiAoaGRtaS0+cGh5LT5nZW4gPT0gMSkgewogICAgICAgICAgICAgICAgZHdfaGRtaV9w aHlfZW5hYmxlX3RtZHMoaGRtaSwgMCk7CiAgICAgICAgICAgICAgICBkd19oZG1pX3BoeV9lbmFi bGVfcG93ZXJkb3duKGhkbWksIHRydWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg ICBkd19oZG1pX3BoeV9nZW4yX3R4cHdyb24oaGRtaSwgMCk7CiAgICAgICAgICAgICAgICBkd19o ZG1pX3BoeV9nZW4yX3BkZHEoaGRtaSwgMSk7CiAgICAgICAgfQoKVGhpcyBwYXRjaCB0aHVzIGNo YW5nZXMgdGhlIGJlaGF2aW91ciBpbiB0d28gd2F5czoKCi0gTW92ZSB0aGUgZHdfaGRtaV9waHlf ZW5hYmxlX3RtZHMoKSBhbmQgZHdfaGRtaV9waHlfZW5hYmxlX3Bvd2VyZG93bigpIGNhbGxzIAph ZnRlciBDU0MgY29uZmlndXJhdGlvbiAoSERNSV9NQ19GTE9XQ1RSTCkuCgotIE9ubHkgdG91Y2gg dGhlIHBvd2VyIGJpdHMgcmVsYXRlZCB0byB0aGUgUEhZIGdlbmVyYXRpb24uCgpJIGJlbGlldmUg dGhlIGZpcnN0IGNoYW5nZSB0byBiZSBoYXJtbGVzcy4gRnVydGhlcm1vcmUsIGdpdmVuIHRoYXQg dGhlIGkuTVg2IAphbmQgUm9ja2NoaXAgU29DcyB1c2UgYSBHZW4yIFBIWSwgdGhlIFRNRFMgYW5k IFBPV0VSRE9XTiBiaXRzIHNob3VsZCBiZSBuby0Kb3BzLCBzbyBpdCBzaG91bGQgaGF2ZSBubyBl ZmZlY3QgYXQgYWxsIG9uIHRob3NlIHBsYXRmb3Jtcy4KCkkgYWxzbyBiZWxpZXZlIHRoZSBzZWNv bmQgY2hhbmdlIHRvIGJlIGhhcm1sZXNzIGFzIHRoZSBUTURTIGFuZCBQT1dFUkRPV04gYml0cyAK c2hvdWxkIGJlIG5vLW9wcyBvbiBpLk1YNiBhbmQgUm9ja2NoaXAuIEkgaGF2ZSB0ZXN0ZWQgdGhp cyBwYXRjaCBzZXJpZXMgb24gClJLMzI4OCBhbmQgaS5NWDZRIGFuZCBoYXZlbid0IG5vdGljZWQg YW55IHJlZ3Jlc3Npb24uCgpUaGUgcG93ZXIgb24gcGF0aCBzaG91bGQgc2ltaWxhcmx5IGJlIGZp bmUgdG9vLCBhcyB0aGUgY2hhbmdlCgotICAgICAgIGR3X2hkbWlfcGh5X2VuYWJsZV9wb3dlcmRv d24oaGRtaSwgZmFsc2UpOwotCi0gICAgICAgLyogdG9nZ2xlIFRNRFMgZW5hYmxlICovCi0gICAg ICAgZHdfaGRtaV9waHlfZW5hYmxlX3RtZHMoaGRtaSwgMCk7Ci0gICAgICAgZHdfaGRtaV9waHlf ZW5hYmxlX3RtZHMoaGRtaSwgMSk7Ci0KLSAgICAgICAvKiBnZW4yIHR4IHBvd2VyIG9uICovCi0g ICAgICAgZHdfaGRtaV9waHlfZ2VuMl90eHB3cm9uKGhkbWksIDEpOwotICAgICAgIGR3X2hkbWlf cGh5X2dlbjJfcGRkcShoZG1pLCAwKTsKKyAgICAgICBkd19oZG1pX3BoeV9wb3dlcl9vbihoZG1p KTsKCnJlc3VsdHMgaW4KCnN0YXRpYyB2b2lkIGR3X2hkbWlfcGh5X3Bvd2VyX29uKHN0cnVjdCBk d19oZG1pICpoZG1pKQp7CglpZiAoaGRtaS0+cGh5LT5nZW4gPT0gMSkgewoJCWR3X2hkbWlfcGh5 X2VuYWJsZV9wb3dlcmRvd24oaGRtaSwgZmFsc2UpOwoKCQkvKiBUb2dnbGUgVE1EUyBlbmFibGUu ICovCgkJZHdfaGRtaV9waHlfZW5hYmxlX3RtZHMoaGRtaSwgMCk7CgkJZHdfaGRtaV9waHlfZW5h YmxlX3RtZHMoaGRtaSwgMSk7Cgl9IGVsc2UgewoJCWR3X2hkbWlfcGh5X2dlbjJfdHhwd3Jvbiho ZG1pLCAxKTsKCQlkd19oZG1pX3BoeV9nZW4yX3BkZHEoaGRtaSwgMCk7Cgl9Cn0KCndoaWNoIHNw bGl0cyB0aGUgR2VuMS9HZW4yIGNvZGUgYnV0IGRvZXNuJ3QgcmVvcmRlciBhbnl0aGluZy4KClRo ZSBsYXN0IGNoYW5nZSBpcyBpbiBkd19oZG1pX3BoeV9kaXNhYmxlKCksIHNlZSBiZWxvdy4KCj4g PiArc3RhdGljIHZvaWQgZHdfaGRtaV9waHlfcG93ZXJfb2ZmKHN0cnVjdCBkd19oZG1pICpoZG1p KQo+ID4gK3sKPiA+ICsJaWYgKGhkbWktPnBoeS0+Z2VuID09IDEpIHsKPiA+ICsJCWR3X2hkbWlf cGh5X2VuYWJsZV90bWRzKGhkbWksIDApOwo+ID4gKwkJZHdfaGRtaV9waHlfZW5hYmxlX3Bvd2Vy ZG93bihoZG1pLCB0cnVlKTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCWR3X2hkbWlfcGh5X2dlbjJf dHhwd3JvbihoZG1pLCAwKTsKPiA+ICsJCWR3X2hkbWlfcGh5X2dlbjJfcGRkcShoZG1pLCAxKTsK PiA+ICsJfQo+ID4gK30KPiA+IAo+ID4gQEAgLTEyOTAsOSArMTMwMiw3IEBAIHN0YXRpYyB2b2lk IGR3X2hkbWlfcGh5X2Rpc2FibGUoc3RydWN0IGR3X2hkbWkKPiA+ICpoZG1pKQo+ID4gIAlpZiAo IWhkbWktPnBoeV9lbmFibGVkKQo+ID4gIAkJcmV0dXJuOwo+ID4gCj4gPiAtCWR3X2hkbWlfcGh5 X2VuYWJsZV90bWRzKGhkbWksIDApOwo+ID4gLQlkd19oZG1pX3BoeV9lbmFibGVfcG93ZXJkb3du KGhkbWksIHRydWUpOwo+ID4gLQo+ID4gKwlkd19oZG1pX3BoeV9wb3dlcl9vZmYoaGRtaSk7Cj4g Cj4gVGhpcyBtYWtlcyBkd19oZG1pX3BoeV9kaXNhYmxlKCkgcG93ZXIgZG93biBhIGdlbjIgcGh5 LgoKVGhhdCdzIGNvcnJlY3QuCgo+IFRoZSBpTVg2IGhhcyBhIERXX0hETUlfUEhZX0RXQ19IRE1J XzNEX1RYX1BIWSBwaHksIHdoaWNoIHlvdSBsaXN0IGFzIGEKPiBnZW4yIHBoeS4KClRvIHRoZSBi ZXN0IG9mIG15IGtub3dsZWRnZSwgYmFzZWQgb24gdGhlIGRvY3VtZW50YXRpb24gSSd2ZSBiZWVu IGFibGUgdG8gCmdhdGhlciwgdGhlIGluZm9ybWF0aW9uIEkndmUgcmVjZWl2ZWQgZnJvbSBkaWZm ZXJlbnQgZGV2ZWxvcGVycyBhbmQgdGhlIHRlc3RzIApJJ3ZlIHBlcmZvcm1lZCBzbyBmYXIsIHRo aXMgaXMgdGhlIGNhc2UuCgo+IEkndmUgYmVlbiBjYXJyeWluZyB0aGlzIGNoYW5nZSBmb3IgYSB3 aGlsZSwgd2hpY2ggSSd2ZSBoYWQKPiB0byByZXZlcnQgKGFuZCBmaW5hbGx5IGV4cHVuZ2UpLCBh cyBpdCBjYXVzZXMgcHJvYmxlbXMgb24gaU1YNjoKPiAKPiBAQCAtMTExMiw2ICsxMTEyLDE0IEBA IHN0YXRpYyB2b2lkIGR3X2hkbWlfcGh5X2Rpc2FibGUoc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4g aWYgKCFoZG1pLT5waHlfZW5hYmxlZCkKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+IAo+ICsg ICAgICAgLyogQWN0dWFsbHkgc2V0IHRoZSBwaHkgaW50byBsb3cgcG93ZXIgbW9kZSAqLwo+ICsg ICAgICAgZHdfaGRtaV9waHlfZ2VuMl90eHB3cm9uKGhkbWksIDApOwo+ICsKPiArICAgICAgIC8q IEZJWE1FOiBXZSBzaG91bGQgd2FpdCBmb3IgVFhfUkVBRFkgdG8gYmUgZGVhc3NlcnRlZCAqLwo+ ICsKPiArICAgICAgIGR3X2hkbWlfcGh5X2dlbjJfcGRkcShoZG1pLCAxKTsKPiArCj4gKyAgICAg ICAvKiBUaGlzIGFwcGVhcnMgdG8gaGF2ZSBubyBlZmZlY3Qgb24gaU1YNiAqLwo+ICAgICAgICAg ZHdfaGRtaV9waHlfZW5hYmxlX3RtZHMoaGRtaSwgMCk7Cj4gICAgICAgICBkd19oZG1pX3BoeV9l bmFibGVfcG93ZXJkb3duKGhkbWksIHRydWUpOwo+IAo+IFNvLCBJIHRoaW5rIHlvdXIgY2hhbmdl IGhlcmUgd2lsbCBjYXVzZSBwcm9ibGVtcyBmb3IgaU1YNi4KPiAKPiBGcm9tIHdoYXQgSSByZW1l bWJlciwgaXQgc2VlbXMgdGhhdCBpTVg2IGhhcyBpc3N1ZXMgd2l0aCBSWFNFTlNFL0hQRAo+IGJv dW5jaW5nIHdoZW4gdGhlIFBIWSBpcyBwb3dlcmVkIGRvd24uICBJIGNhbid0IHByb21pc2Ugd2hl biBJJ2xsIGJlCj4gYWJsZSB0byBjaGVjayBmb3IgdGhhdCBhZ2Fpbi4KClRoZSBjdXJyZW50IGNv ZGUgaXMgc3VwcG9zZWQgdG8gcG93ZXIgdGhlIFBIWSBkb3duIGluIGR3X2hkbWlfcGh5X2Rpc2Fi bGUoKSAKYnV0IGRvZXNuJ3QgZG8gc28gYXMgaXQgb25seSBoYW5kbGVzIEdlbjEgUEhZIHNpZ25h bHMgdGhlcmUuIEdlbjIgUEhZcyB0aHVzIAphbHdheXMgc3RheSBlbmFibGVkLgoKSWYgdGhpcyBj YXVzZXMgYW4gaXNzdWUgb24gaS5NWDYgcmVsYXRlZCB0byBSWFNFTlNFIGFuZCBIUEQsIEkgdGhp bmsgaXQgc2hvdWxkIApiZSBoYW5kbGVkIGJ5IGV4cGxpY2l0bHkgc2tpcHBpbmcgcG93ZXIgZG93 biBpbiBkd19oZG1pX3BoeV9kaXNhYmxlKCkgaW5zdGVhZCAKb2YgcHJldGVuZGluZyB3ZSBwb3dl ciB0aGUgUEhZIGRvd24uIFRoaXMgY291bGQgYmUgYWNoaWV2ZWQgdGhyb3VnaCBhIHF1aXJrIApm bGFnIGlmIHRoZSBpc3N1ZSBpcyBzcGVjaWZpYyB0byBpLk1YNiwgb3IgYmFzZWQgb24gdGhlIFBI WSBtb2RlbCBpZiB0aGUgaXNzdWUgCmlzIHByZXNlbnQgaW4gYWxsIERXX0hETUlfUEhZX0RXQ19I RE1JXzNEX1RYX1BIWV9IRUFDIFBIWXMuIEpvc2UsIHdvdWxkIHlvdSAKaGFwcGVuIHRvIGJlIGF3 YXJlIG9mIFJYU0VOU0UvSFBEIGlzc3VlcyB3aGVuIHRoZSBQSFkgaXMgZGlzYWJsZWQgPwoKSWYg dGhlcmUncyBhbiBlYXN5IHdheSB0byByZXByb2R1Y2UgdGhlIHByb2JsZW0gb24gaS5NWDZRIEkg Y2FuIHRyeSBsb2NhbGx5LiBJIAp1bmZvcnR1bmF0ZWx5IGRvbid0IGhhdmUgYWNjZXNzIHRvIGku TVg2REwuCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=