From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 30.1/49] drm/i915/bxt: add display initialize/uninitialize sequence (PHY) Date: Wed, 15 Apr 2015 17:31:39 +0300 Message-ID: <20150415143139.GH1237@intel.com> References: <1426585215-8788-31-git-send-email-imre.deak@intel.com> <1429105378-12535-2-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 0EAFE6E381 for ; Wed, 15 Apr 2015 07:31:49 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1429105378-12535-2-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBcHIgMTUsIDIwMTUgYXQgMDQ6NDI6NTdQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEZyb206IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+Cj4gCj4g QWRkIFBIWSBzcGVjaWZpYyBkaXNwbGF5IGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGFzIHBlciBC U3BlYy4KPiAKPiBOb3RlIHRoYXQgdGhlIFBIWSBpbml0aWFsaXphdGlvbi91bmluaXRpYWxpemF0 aW9uIGFyZSBkb25lCj4gYXQgdGhlaXIgY3VycmVudCBwbGFjZSBvbmx5IGZvciBzaW1wbGljaXR5 LCBpbiBhIGZ1dHVyZSBwYXRjaCAtIHdoZW4gbW9yZQo+IG9mIHRoZSBydW50aW1lIFBNIGZlYXR1 cmVzIHdpbGwgYmUgZW5hYmxlZCAtIHRoZXNlIHdpbGwgYmUgbW92ZWQgdG8KPiBwb3dlciB3ZWxs IzEgYW5kIG1vZGVzZXQgZW5jb2RlciBlbmFibGluZy9kaXNhYmxpbmcgaG9va3MgcmVzcGVjdGl2 ZWx5Lgo+IAo+IFRoZSBjYWxsIHRvIHVuaW5pdGlhbGl6ZSB0aGUgUEhZIGR1cmluZyBzeXN0ZW0v cnVudGltZSBzdXNwZW5kIHdpbGwgYmUKPiBhZGRlZCBsYXRlciBpbiB0aGlzIHBhdGNoc2V0Lgo+ IAo+IHYxOiBBZGRlZCBmdW5jdGlvbiBkZWZpbml0aW9ucyBpbiBoZWFkZXIgZmlsZXMKPiB2Mjog SW1yZSdzIHJldmlldyBjb21tZW50cyBhZGRyZXNzZWQKPiAtIE1vdmVkIENEQ0xLIHJlbGF0ZWQg ZGVmaW5pdGlvbnMgdG8gaTkxNV9yZWcuaAo+IC0gUmVtb3ZlZCBkZWZpbnRpb25zIGZvciBDRENM SyBmcmVxdWVuY3kKPiAtIFNwbGl0IHVuaW5pdF9jZGNsaygpIGJ5IGFkZGluZyBhIHBoeV91bmlu aXQgZnVuY3Rpb24KPiAtIENhbGN1bGF0ZSBmcmVxIGFuZCBkZWNpbWFsIGJhc2VkIG9uIGlucHV0 IGZyZXF1ZW5jeQo+IC0gUHJvZ3JhbSBTU0EgcHJlY2hhcmdlIGJhc2VkIG9uIGlucHV0IGZyZXF1 ZW5jeQo+IC0gVXNlIHdhaXRfZm9yIDFtcyBpbnN0ZWFkIDIwMHVzIHVkZWxheSBmb3IgREUgUExM IGxvY2tpbmcKPiAtIFJlbW92ZWQgaW5pdGlhbCB2YWx1ZSBmb3IgZGl2aWRlciwgZnJlcSwgZGVj aW1hbCwgcmF0aW8uCj4gLSBSZXBsYWNlZCBwb2xsaW5nIGxvb3BzIHdpdGggd2FpdF9mb3IKPiAt IFBhcmFtZXRlcml6ZWQgbGF0ZW5jeSBvcHRpbSBzZXR0aW5nCj4gLSBGaXggdGhlIHBhcnRzIHdo ZXJlIERFIFBMTCBoYXMgdG8gYmUgZGlzYWJsZWQuCj4gLSBDYWxsIENEQ0xLIHNlbGVjdGlvbiBm cm9tIG1vZGUgc2V0Cj4gCj4gdjM6IChpbXJlKQo+IC0gYWRkIG5vdGUgYWJvdXQgdGhlIHBsYW4g dG8gbW92ZSB0aGUgY2RjbGsvcGh5IGluaXQgdG8gYSBiZXR0ZXIgcGxhY2UKPiAtIHRha2UgcnBz Lmh3X2xvY2sgYXJvdW5kIHBjb2RlIGFjY2Vzcwo+IC0gZml4IERESSBQSFkgdGltZW91dCB2YWx1 ZQo+IC0gc3F1YXNoIGluIFZhbmRhbmEncyAiUE9SVF9DTDJDTV9EVzZfQSBCVU4gZml4IiwKPiAg ICJEREkgUEhZIHByb2dyYW1taW5nIHJlZ2lzdGVyIGRlZm4iLCAiRG8gZGRpX3BoeV9pbml0IGFs d2F5cyIsCj4gLSBtb3ZlIFBIWSByZWdpc3RlciBtYWNyb3MgbmV4dCB0byB0aGUgY29ycmVzcG9u ZGluZyBDSFYvVkxWIG1hY3Jvcwo+IC0gbW92ZSBERSBQTEwgcmVnaXN0ZXIgbWFjcm9zIGhlcmUg ZnJvbSBhbm90aGVyIHBhdGNoIHNpbmNlIHRoZXkgYXJlCj4gICB1c2VkIGhlcmUgZmlyc3QKPiAt IGFkZCBCWFRfIHByZWZpeCB0byBDRENMSyBmbGFncwo+IC0gcy9DT01NT05fUkVTRVQvQ09NTU9O X1JFU0VUX0RJUy8gYW5kIGNsYXJpZnkgcmVsYXRlZCBjb2RlIGNvbW1lbnRzCj4gLSBmaXggaW5j b3JyZWN0IHJlYWQgdmFsdWUgZm9yIHRoZSBSTVcgb2YgQlhUX1BIWV9DVExfRkFNSUxZX0RESQo+ IC0gZml4IHVzaW5nIEdUX0RJU1BMQVlfRURQX1BPV0VSX09OIHZzLiBHVF9ESVNQTEFZX0RESV9Q T1dFUl9PTgo+ICAgd2hlbiBwb3dlcmluZyBvbiBEREkgcG9ydHMKPiAtIGZpeCBpbmNvcnJlY3Qg cG9ydCB3aGVuIHNldHRpbmcgQlhUX1BPUlRfVFhfRFcxNF9MTiBmb3IgRERJIHBvcnRzCj4gLSBh ZGQgbWlzc2luZyBtYXNraW5nIHdoZW4gcHJvZ3JhbW1pbmcgQ0RDTEtfRlJFUV9ERUNJTUFMCj4g LSBhZGQgbWlzc2luZyBwb3dlcmluZyBvbiBmb3IgRERJLUMgcG9ydCwgcmVuYW1lIE9DTDJfTERP RlVTRV9QV1JfRU4KPiAgIHRvIE9DTDJfTERPRlVTRV9QV1JfRElTIHRvIHJlZHVjZSBjb25mdXNp b24KPiAtIGFkZCBub3RlIGFib3V0IG1pc21hdGNoIHdpdGggYnNwZWMgaW4gdGhlIFBPUlRfUkVG X0RXNiBmaWVsZHMKPiAtIGZhY3RvciBvdXQgUEhZIGluaXQgY29kZSB0byBhIG5ldyBmdW5jdGlv biwgc28gd2UgY2FuIGNhbGwgaXQgZm9yCj4gICBQSFkxIGFuZCBQSFkwLCBpbnN0ZWFkIG9mIG9w ZW4tY29kaW5nIHRoZSBzYW1lCj4gCj4gdjQ6ICh2aWxsZSkKPiAtIHNwbGl0IHRoZSBDRENMSy9Q SFkgcGFydHMgaW50byB0d28gcGF0Y2hlcywgdXBkYXRlIGNvbW1pdCBtZXNzYWdlCj4gICBhY2Nv cmRpbmdseQo+IC0gdXNlIHRoZSBleGlzdGluZyBkcGlvX3BoeSBlbnVtIGluc3RlYWQgb2YgYWRk aW5nIGEgbmV3IG9uZSBmb3IgdGhlCj4gICBzYW1lIHB1cnBvc2UKPiAtIGZsaXAgdGhlIG1lYW5p bmcgb2YgUEhZcyBzbyB0aGF0IFBIWV9BIGlzIFBIWTEgYW5kIFBIWV9CQyBpcyBQSFkwIHRvCj4g ICBiZXR0ZXIgbWF0Y2ggQ0hWCj4gLSBzL0JYVF9QSFkvX0JYVF9QSFkvCj4gLSB1c2UgX1BJUEUg Zm9yIF9CWFRfUEhZIGluc3RlYWQgb2Ygb3Blbi1jb2RpbmcgaXQKPiAtIGRyb3AgXzBfMl8wX0dU VE1NQURSIHN1ZmZpeCBmcm9tIEJYVF9QX0NSX0dUX0RJU1BfUFdST04KPiAtIGRlZmluZSBHVF9E SVNQTEFZX1BPV0VSX09OIGluIGEgbW9yZSBzdGFuZGFyZCB3YXkKPiAtIG1ha2UgYSBub3RlIHRo YXQgdGhlIENIViBDb25maWdEQiBhbHNvIGRpc2FncmVlcyBhYm91dCBHUkNfQ09ERSBmaWVsZAo+ ICAgZGVmaW5pdGlvbnMKPiAtIGZpeCBsYW5lIG9wdGltaXphdGlvbiByZWZhY3RvcmluZyBmdW1i bGUgZnJvbSB2Mwo+IC0gYWRkIHBlciBQSFkgdW5pbml0IGZ1bmN0aW9ucyB0byBtYXRjaCB0aGUg aW5pdCBjb3VudGVycGFydHMKPiAKPiBTaWduZWQtb2ZmLWJ5OiBWYW5kYW5hIEthbm5hbiA8dmFu ZGFuYS5rYW5uYW5AaW50ZWwuY29tPiAodjIpCj4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxp bXJlLmRlYWtAaW50ZWwuY29tPgoKTG9va2luZyBPSy4gU3R1ZmZpbmcgc29tZS9hbGwgb2YgaXQg aW50byBhIHBvd2VyIHdlbGwgYW5kL29yIGludG8gdGhlCnBvcnQgZW5hYmxlL2Rpc2FibGUgY29k ZSBtYXkgYmUgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGxhdGVyLCBidXQgdGhpcwpzaG91bGQgYXQg bGVhc3QgZ2V0IGl0IHVwIGFuZCBydW5uaW5nIGZvciBub3cuCgpSZXZpZXdlZC1ieTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgIDk2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyB8IDEyNSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggfCAgIDIgKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDIyMyBpbnNlcnRpb25zKCsp Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggYzc5YmY4ZC4uMTkwM2UzNyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC0xMTE3LDYgKzExMTcsMTAyIEBAIGVudW0g c2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lICAgRFBJT19GUkNfTEFURU5DWV9TSEZJ VAk4Cj4gICNkZWZpbmUgQ0hWX1RYX0RXMTQoY2gsIGxhbmUpIF9UWExBTkUoY2gsIGxhbmUsIDB4 YjgpCj4gICNkZWZpbmUgICBEUElPX1VQQVJfU0hJRlQJCTMwCj4gKwo+ICsvKiBCWFQgUEhZIHJl Z2lzdGVycyAqLwo+ICsjZGVmaW5lIF9CWFRfUEhZKHBoeSwgYSwgYikJCV9QSVBFKChwaHkpLCAo YSksIChiKSkKPiArCj4gKyNkZWZpbmUgQlhUX1BfQ1JfR1RfRElTUF9QV1JPTgkJMHgxMzgwOTAK PiArI2RlZmluZSAgIEdUX0RJU1BMQVlfUE9XRVJfT04ocGh5KQkoMSA8PCAocGh5KSkKPiArCj4g KyNkZWZpbmUgX1BIWV9DVExfRkFNSUxZX0VEUAkJMHg2NEM4MAo+ICsjZGVmaW5lIF9QSFlfQ1RM X0ZBTUlMWV9EREkJCTB4NjRDOTAKPiArI2RlZmluZSAgIENPTU1PTl9SRVNFVF9ESVMJCSgxIDw8 IDMxKQo+ICsjZGVmaW5lIEJYVF9QSFlfQ1RMX0ZBTUlMWShwaHkpCQlfQlhUX1BIWSgocGh5KSwg X1BIWV9DVExfRkFNSUxZX0RESSwgXAo+ICsJCQkJCQkJX1BIWV9DVExfRkFNSUxZX0VEUCkKPiAr Cj4gKy8qIEJYVCBQSFkgY29tbW9uIGxhbmUgcmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgX1BPUlRf Q0wxQ01fRFcwX0EJCTB4MTYyMDAwCj4gKyNkZWZpbmUgX1BPUlRfQ0wxQ01fRFcwX0JDCQkweDZD MDAwCj4gKyNkZWZpbmUgICBQSFlfUE9XRVJfR09PRAkJKDEgPDwgMTYpCj4gKyNkZWZpbmUgQlhU X1BPUlRfQ0wxQ01fRFcwKHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9DTDFDTV9EVzBfQkMs IFwKPiArCQkJCQkJCV9QT1JUX0NMMUNNX0RXMF9BKQo+ICsKPiArI2RlZmluZSBfUE9SVF9DTDFD TV9EVzlfQQkJMHgxNjIwMjQKPiArI2RlZmluZSBfUE9SVF9DTDFDTV9EVzlfQkMJCTB4NkMwMjQK PiArI2RlZmluZSAgIElSRUYwUkNfT0ZGU0VUX1NISUZUCQk4Cj4gKyNkZWZpbmUgICBJUkVGMFJD X09GRlNFVF9NQVNLCQkoMHhGRiA8PCBJUkVGMFJDX09GRlNFVF9TSElGVCkKPiArI2RlZmluZSBC WFRfUE9SVF9DTDFDTV9EVzkocGh5KQkJX0JYVF9QSFkoKHBoeSksIF9QT1JUX0NMMUNNX0RXOV9C QywgXAo+ICsJCQkJCQkJX1BPUlRfQ0wxQ01fRFc5X0EpCj4gKwo+ICsjZGVmaW5lIF9QT1JUX0NM MUNNX0RXMTBfQQkJMHgxNjIwMjgKPiArI2RlZmluZSBfUE9SVF9DTDFDTV9EVzEwX0JDCQkweDZD MDI4Cj4gKyNkZWZpbmUgICBJUkVGMVJDX09GRlNFVF9TSElGVAkJOAo+ICsjZGVmaW5lICAgSVJF RjFSQ19PRkZTRVRfTUFTSwkJKDB4RkYgPDwgSVJFRjFSQ19PRkZTRVRfU0hJRlQpCj4gKyNkZWZp bmUgQlhUX1BPUlRfQ0wxQ01fRFcxMChwaHkpCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9DTDFDTV9E VzEwX0JDLCBcCj4gKwkJCQkJCQlfUE9SVF9DTDFDTV9EVzEwX0EpCj4gKwo+ICsjZGVmaW5lIF9Q T1JUX0NMMUNNX0RXMjhfQQkJMHgxNjIwNzAKPiArI2RlZmluZSBfUE9SVF9DTDFDTV9EVzI4X0JD CQkweDZDMDcwCj4gKyNkZWZpbmUgICBPQ0wxX1BPV0VSX0RPV05fRU4JCSgxIDw8IDIzKQo+ICsj ZGVmaW5lICAgRFcyOF9PTERPX0RZTl9QV1JfRE9XTl9FTgkoMSA8PCAyMikKPiArI2RlZmluZSAg IFNVU19DTEtfQ09ORklHCQkweDMKPiArI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9EVzI4KHBoeSkJ X0JYVF9QSFkoKHBoeSksIF9QT1JUX0NMMUNNX0RXMjhfQkMsIFwKPiArCQkJCQkJCV9QT1JUX0NM MUNNX0RXMjhfQSkKPiArCj4gKyNkZWZpbmUgX1BPUlRfQ0wxQ01fRFczMF9BCQkweDE2MjA3OAo+ ICsjZGVmaW5lIF9QT1JUX0NMMUNNX0RXMzBfQkMJCTB4NkMwNzgKPiArI2RlZmluZSAgIE9DTDJf TERPRlVTRV9QV1JfRElTCQkoMSA8PCA2KQo+ICsjZGVmaW5lIEJYVF9QT1JUX0NMMUNNX0RXMzAo cGh5KQlfQlhUX1BIWSgocGh5KSwgX1BPUlRfQ0wxQ01fRFczMF9CQywgXAo+ICsJCQkJCQkJX1BP UlRfQ0wxQ01fRFczMF9BKQo+ICsKPiArLyogRGVmaW5lZCBmb3IgUEhZMCBvbmx5ICovCj4gKyNk ZWZpbmUgQlhUX1BPUlRfQ0wyQ01fRFc2X0JDCQkweDZDMzU4Cj4gKyNkZWZpbmUgICBEVzZfT0xE T19EWU5fUFdSX0RPV05fRU4JKDEgPDwgMjgpCj4gKwo+ICsvKiBCWFQgUEhZIFJlZiByZWdpc3Rl cnMgKi8KPiArI2RlZmluZSBfUE9SVF9SRUZfRFczX0EJCQkweDE2MjE4Qwo+ICsjZGVmaW5lIF9Q T1JUX1JFRl9EVzNfQkMJCTB4NkMxOEMKPiArI2RlZmluZSAgIEdSQ19ET05FCQkJKDEgPDwgMjIp Cj4gKyNkZWZpbmUgQlhUX1BPUlRfUkVGX0RXMyhwaHkpCQlfQlhUX1BIWSgocGh5KSwgX1BPUlRf UkVGX0RXM19CQywgXAo+ICsJCQkJCQkJX1BPUlRfUkVGX0RXM19BKQo+ICsKPiArI2RlZmluZSBf UE9SVF9SRUZfRFc2X0EJCQkweDE2MjE5OAo+ICsjZGVmaW5lIF9QT1JUX1JFRl9EVzZfQkMJCTB4 NkMxOTgKPiArLyoKPiArICogRklYTUU6IEJTcGVjL0NIViBDb25maWdEQiBkaXNhZ3JlZXMgb24g dGhlIGZvbGxvd2luZyB0d28gZmllbGRzLCBmaXggdGhlbQo+ICsgKiBhZnRlciB0ZXN0aW5nLgo+ ICsgKi8KPiArI2RlZmluZSAgIEdSQ19DT0RFX1NISUZUCQkyMwo+ICsjZGVmaW5lICAgR1JDX0NP REVfTUFTSwkJCSgweDFGRiA8PCBHUkNfQ09ERV9TSElGVCkKPiArI2RlZmluZSAgIEdSQ19DT0RF X0ZBU1RfU0hJRlQJCTE2Cj4gKyNkZWZpbmUgICBHUkNfQ09ERV9GQVNUX01BU0sJCSgweDdGIDw8 IEdSQ19DT0RFX0ZBU1RfU0hJRlQpCj4gKyNkZWZpbmUgICBHUkNfQ09ERV9TTE9XX1NISUZUCQk4 Cj4gKyNkZWZpbmUgICBHUkNfQ09ERV9TTE9XX01BU0sJCSgweEZGIDw8IEdSQ19DT0RFX1NMT1df U0hJRlQpCj4gKyNkZWZpbmUgICBHUkNfQ09ERV9OT01fTUFTSwkJMHhGRgo+ICsjZGVmaW5lIEJY VF9QT1JUX1JFRl9EVzYocGh5KQkJX0JYVF9QSFkoKHBoeSksIF9QT1JUX1JFRl9EVzZfQkMsCVwK PiArCQkJCQkJICAgICAgX1BPUlRfUkVGX0RXNl9BKQo+ICsKPiArI2RlZmluZSBfUE9SVF9SRUZf RFc4X0EJCQkweDE2MjFBMAo+ICsjZGVmaW5lIF9QT1JUX1JFRl9EVzhfQkMJCTB4NkMxQTAKPiAr I2RlZmluZSAgIEdSQ19ESVMJCQkoMSA8PCAxNSkKPiArI2RlZmluZSAgIEdSQ19SRFlfT1ZSRAkJ CSgxIDw8IDEpCj4gKyNkZWZpbmUgQlhUX1BPUlRfUkVGX0RXOChwaHkpCQlfQlhUX1BIWSgocGh5 KSwgX1BPUlRfUkVGX0RXOF9CQywJXAo+ICsJCQkJCQkgICAgICBfUE9SVF9SRUZfRFc4X0EpCj4g Kwo+ICsvKiBCWFQgUEhZIFRYIHJlZ2lzdGVycyAqLwo+ICsjZGVmaW5lIF9CWFRfTEFORV9PRkZT RVQobGFuZSkgICAgICAgICAgICgoKGxhbmUpID4+IDEpICogMHgyMDAgKwlcCj4gKwkJCQkJICAo KGxhbmUpICYgMSkgKiAweDgwKQo+ICsKPiArI2RlZmluZSBfUE9SVF9UWF9EVzE0X0xOMF9BCQkw eDE2MjUzOAo+ICsjZGVmaW5lIF9QT1JUX1RYX0RXMTRfTE4wX0IJCTB4NkM1MzgKPiArI2RlZmlu ZSBfUE9SVF9UWF9EVzE0X0xOMF9DCQkweDZDOTM4Cj4gKyNkZWZpbmUgICBMQVRFTkNZX09QVElN X1NISUZUCQkzMAo+ICsjZGVmaW5lICAgTEFURU5DWV9PUFRJTQkJCSgxIDw8IExBVEVOQ1lfT1BU SU1fU0hJRlQpCj4gKyNkZWZpbmUgQlhUX1BPUlRfVFhfRFcxNF9MTihwb3J0LCBsYW5lKQkoX1BP UlQzKChwb3J0KSwgX1BPUlRfVFhfRFcxNF9MTjBfQSwgICBcCj4gKwkJCQkJCQlfUE9SVF9UWF9E VzE0X0xOMF9CLCAgIFwKPiArCQkJCQkJCV9QT1JUX1RYX0RXMTRfTE4wX0MpICsgXAo+ICsJCQkJ CSBfQlhUX0xBTkVfT0ZGU0VUKGxhbmUpKQo+ICsKPiAgLyoKPiAgICogRmVuY2UgcmVnaXN0ZXJz Cj4gICAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggMjVkNjk3Yi4uMzFjYWRi OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTE4NjQsNiArMTg2NCwxMzAg QEAgc3RhdGljIHZvaWQgc2tsX3NoYXJlZF9kcGxsc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgCX0KPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgYnJveHRvbl9waHlf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgZW51bSBk cGlvX3BoeSBwaHkpCj4gK3sKPiArCWVudW0gcG9ydCBwb3J0Owo+ICsJdWludDMyX3QgdmFsOwo+ ICsKPiArCXZhbCA9IEk5MTVfUkVBRChCWFRfUF9DUl9HVF9ESVNQX1BXUk9OKTsKPiArCXZhbCB8 PSBHVF9ESVNQTEFZX1BPV0VSX09OKHBoeSk7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QX0NSX0dUX0RJ U1BfUFdST04sIHZhbCk7Cj4gKwo+ICsJLyogQ29uc2lkZXJpbmcgMTBtcyB0aW1lb3V0IHVudGls IEJTcGVjIGlzIHVwZGF0ZWQgKi8KPiArCWlmICh3YWl0X2ZvcihJOTE1X1JFQUQoQlhUX1BPUlRf Q0wxQ01fRFcwKHBoeSkpICYgUEhZX1BPV0VSX0dPT0QsIDEwKSkKPiArCQlEUk1fRVJST1IoInRp bWVvdXQgZHVyaW5nIFBIWSVkIHBvd2VyIG9uXG4iLCBwaHkpOwo+ICsKPiArCWZvciAocG9ydCA9 ICAocGh5ID09IERQSU9fUEhZMCA/IFBPUlRfQiA6IFBPUlRfQSk7Cj4gKwkgICAgIHBvcnQgPD0g KHBoeSA9PSBEUElPX1BIWTAgPyBQT1JUX0MgOiBQT1JUX0EpOyBwb3J0KyspIHsKPiArCQlpbnQg bGFuZTsKPiArCj4gKwkJZm9yIChsYW5lID0gMDsgbGFuZSA8IDQ7IGxhbmUrKykgewo+ICsJCQl2 YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfVFhfRFcxNF9MTihwb3J0LCBsYW5lKSk7Cj4gKwkJCS8q Cj4gKwkJCSAqIE5vdGUgdGhhdCBvbiBDSFYgdGhpcyBmbGFnIGlzIGNhbGxlZCBVUEFSLCBidXQg aGFzCj4gKwkJCSAqIHRoZSBzYW1lIGZ1bmN0aW9uLgo+ICsJCQkgKi8KPiArCQkJdmFsICY9IH5M QVRFTkNZX09QVElNOwo+ICsJCQlpZiAobGFuZSAhPSAxKQo+ICsJCQkJdmFsIHw9IExBVEVOQ1lf T1BUSU07Cj4gKwo+ICsJCQlJOTE1X1dSSVRFKEJYVF9QT1JUX1RYX0RXMTRfTE4ocG9ydCwgbGFu ZSksIHZhbCk7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCS8qIFByb2dyYW0gUExMIFJjb21wIGNvZGUg b2Zmc2V0ICovCj4gKwl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfQ0wxQ01fRFc5KHBoeSkpOwo+ ICsJdmFsICY9IH5JUkVGMFJDX09GRlNFVF9NQVNLOwo+ICsJdmFsIHw9IDB4RTQgPDwgSVJFRjBS Q19PRkZTRVRfU0hJRlQ7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QT1JUX0NMMUNNX0RXOShwaHkpLCB2 YWwpOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9DTDFDTV9EVzEwKHBoeSkpOwo+ ICsJdmFsICY9IH5JUkVGMVJDX09GRlNFVF9NQVNLOwo+ICsJdmFsIHw9IDB4RTQgPDwgSVJFRjFS Q19PRkZTRVRfU0hJRlQ7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QT1JUX0NMMUNNX0RXMTAocGh5KSwg dmFsKTsKPiArCj4gKwkvKiBQcm9ncmFtIHBvd2VyIGdhdGluZyAqLwo+ICsJdmFsID0gSTkxNV9S RUFEKEJYVF9QT1JUX0NMMUNNX0RXMjgocGh5KSk7Cj4gKwl2YWwgfD0gT0NMMV9QT1dFUl9ET1dO X0VOIHwgRFcyOF9PTERPX0RZTl9QV1JfRE9XTl9FTiB8Cj4gKwkJU1VTX0NMS19DT05GSUc7Cj4g KwlJOTE1X1dSSVRFKEJYVF9QT1JUX0NMMUNNX0RXMjgocGh5KSwgdmFsKTsKPiArCj4gKwlpZiAo cGh5ID09IERQSU9fUEhZMCkgewo+ICsJCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9DTDJDTV9E VzZfQkMpOwo+ICsJCXZhbCB8PSBEVzZfT0xET19EWU5fUFdSX0RPV05fRU47Cj4gKwkJSTkxNV9X UklURShCWFRfUE9SVF9DTDJDTV9EVzZfQkMsIHZhbCk7Cj4gKwl9Cj4gKwo+ICsJdmFsID0gSTkx NV9SRUFEKEJYVF9QT1JUX0NMMUNNX0RXMzAocGh5KSk7Cj4gKwl2YWwgJj0gfk9DTDJfTERPRlVT RV9QV1JfRElTOwo+ICsJLyoKPiArCSAqIE9uIFBIWTEgZGlzYWJsZSBwb3dlciBvbiB0aGUgc2Vj b25kIGNoYW5uZWwsIHNpbmNlIG5vIHBvcnQgaXMKPiArCSAqIGNvbm5lY3RlZCB0aGVyZS4gT24g UEhZMCBib3RoIGNoYW5uZWxzIGhhdmUgYSBwb3J0LCBzbyBsZWF2ZSBpdAo+ICsJICogZW5hYmxl ZC4KPiArCSAqIFRPRE86IHBvcnQgQyBpcyBvbmx5IGNvbm5lY3RlZCBvbiBCWFQtUCwgc28gb24g QlhUMC8xIHdlIHNob3VsZAo+ICsJICogcG93ZXIgZG93biB0aGUgc2Vjb25kIGNoYW5uZWwgb24g UEhZMCBhcyB3ZWxsLgo+ICsJICovCj4gKwlpZiAocGh5ID09IERQSU9fUEhZMSkKPiArCQl2YWwg fD0gT0NMMl9MRE9GVVNFX1BXUl9ESVM7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QT1JUX0NMMUNNX0RX MzAocGh5KSwgdmFsKTsKPiArCj4gKwlpZiAocGh5ID09IERQSU9fUEhZMCkgewo+ICsJCXVpbnQz Ml90IGdyY19jb2RlOwo+ICsJCS8qCj4gKwkJICogUEhZMCBpc24ndCBjb25uZWN0ZWQgdG8gYW4g UkNPTVAgcmVzaXN0b3Igc28gY29weSBvdmVyCj4gKwkJICogdGhlIGNvcnJlc3BvbmRpbmcgY2Fs aWJyYXRlZCB2YWx1ZSBmcm9tIFBIWTEsIGFuZCBkaXNhYmxlCj4gKwkJICogdGhlIGF1dG9tYXRp YyBjYWxpYnJhdGlvbiBvbiBQSFkwLgo+ICsJCSAqLwo+ICsJCWlmICh3YWl0X2ZvcihJOTE1X1JF QUQoQlhUX1BPUlRfUkVGX0RXMyhEUElPX1BIWTEpKSAmIEdSQ19ET05FLAo+ICsJCQkgICAgIDEw KSkKPiArCQkJRFJNX0VSUk9SKCJ0aW1lb3V0IHdhaXRpbmcgZm9yIFBIWTEgR1JDXG4iKTsKPiAr Cj4gKwkJdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1JFRl9EVzYoRFBJT19QSFkxKSk7Cj4gKwkJ dmFsID0gKHZhbCAmIEdSQ19DT0RFX01BU0spID4+IEdSQ19DT0RFX1NISUZUOwo+ICsJCWdyY19j b2RlID0gdmFsIDw8IEdSQ19DT0RFX0ZBU1RfU0hJRlQgfAo+ICsJCQkgICB2YWwgPDwgR1JDX0NP REVfU0xPV19TSElGVCB8Cj4gKwkJCSAgIHZhbDsKPiArCQlJOTE1X1dSSVRFKEJYVF9QT1JUX1JF Rl9EVzYoRFBJT19QSFkwKSwgZ3JjX2NvZGUpOwo+ICsKPiArCQl2YWwgPSBJOTE1X1JFQUQoQlhU X1BPUlRfUkVGX0RXOChEUElPX1BIWTApKTsKPiArCQl2YWwgfD0gR1JDX0RJUyB8IEdSQ19SRFlf T1ZSRDsKPiArCQlJOTE1X1dSSVRFKEJYVF9QT1JUX1JFRl9EVzgoRFBJT19QSFkwKSwgdmFsKTsK PiArCX0KPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQoQlhUX1BIWV9DVExfRkFNSUxZKHBoeSkpOwo+ ICsJdmFsIHw9IENPTU1PTl9SRVNFVF9ESVM7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QSFlfQ1RMX0ZB TUlMWShwaHkpLCB2YWwpOwo+ICt9Cj4gKwo+ICt2b2lkIGJyb3h0b25fZGRpX3BoeV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArCS8qIEVuYWJsZSBQSFkxIGZpcnN0IHNpbmNl IGl0IHByb3ZpZGVzIFJjb21wIGZvciBQSFkwICovCj4gKwlicm94dG9uX3BoeV9pbml0KGRldi0+ ZGV2X3ByaXZhdGUsIERQSU9fUEhZMSk7Cj4gKwlicm94dG9uX3BoeV9pbml0KGRldi0+ZGV2X3By aXZhdGUsIERQSU9fUEhZMCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGJyb3h0b25fcGh5X3Vu aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgICAgICBlbnVt IGRwaW9fcGh5IHBoeSkKPiArewo+ICsJdWludDMyX3QgdmFsOwo+ICsKPiArCXZhbCA9IEk5MTVf UkVBRChCWFRfUEhZX0NUTF9GQU1JTFkocGh5KSk7Cj4gKwl2YWwgJj0gfkNPTU1PTl9SRVNFVF9E SVM7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QSFlfQ1RMX0ZBTUlMWShwaHkpLCB2YWwpOwo+ICt9Cj4g Kwo+ICt2b2lkIGJyb3h0b25fZGRpX3BoeV91bmluaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiArCj4gKwlicm94dG9uX3BoeV91bmluaXQoZGV2X3ByaXYsIERQSU9fUEhZMSk7Cj4g Kwlicm94dG9uX3BoeV91bmluaXQoZGV2X3ByaXYsIERQSU9fUEhZMCk7Cj4gKwo+ICsJLyogRklY TUU6IGRvIHRoaXMgaW4gYnJveHRvbl9waHlfdW5pbml0IHBlciBwaHkgKi8KPiArCUk5MTVfV1JJ VEUoQlhUX1BfQ1JfR1RfRElTUF9QV1JPTiwgMCk7Cj4gK30KPiArCj4gIHZvaWQgaW50ZWxfZGRp X3BsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTE4ODIsNiArMjAw Niw3IEBAIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g IAkJCURSTV9FUlJPUigiTENQTEwxIGlzIGRpc2FibGVkXG4iKTsKPiAgCX0gZWxzZSBpZiAoSVNf QlJPWFRPTihkZXYpKSB7Cj4gIAkJYnJveHRvbl9pbml0X2NkY2xrKGRldik7Cj4gKwkJYnJveHRv bl9kZGlfcGh5X2luaXQoZGV2KTsKPiAgCX0gZWxzZSB7Cj4gIAkJLyoKPiAgCQkgKiBUaGUgTENQ TEwgcmVnaXN0ZXIgc2hvdWxkIGJlIHR1cm5lZCBvbiBieSB0aGUgQklPUy4gRm9yIG5vdwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNWJhODhlYi4uNTI2Njk4NSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTExMTUsNiArMTExNSw4IEBAIHZvaWQgaHN3X2Rp c2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgYnJv eHRvbl9pbml0X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIGJyb3h0b25f dW5pbml0X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIGJyb3h0b25fc2V0 X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBmcmVxdWVuY3kpOwo+ICt2b2lkIGJy b3h0b25fZGRpX3BoeV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICt2b2lkIGJyb3h0 b25fZGRpX3BoeV91bmluaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZvaWQgaW50ZWxf ZHBfZ2V0X21fbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ICB2b2lkIGludGVsX2RwX3NldF9tX24oc3Ry dWN0IGludGVsX2NydGMgKmNydGMsIGVudW0gbGlua19tX25fc2V0IG1fbik7Cj4gLS0gCj4gMi4x LjAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==