From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 21/71] drm/i915/chv: Add update and enable pll for Cherryview Date: Tue, 29 Apr 2014 23:20:39 +0300 Message-ID: <1398802839.2817.26.camel@ideak-mobl> References: <1397039349-10639-1-git-send-email-ville.syrjala@linux.intel.com> <1397039349-10639-22-git-send-email-ville.syrjala@linux.intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 764B36EABD for ; Tue, 29 Apr 2014 13:21:01 -0700 (PDT) In-Reply-To: <1397039349-10639-22-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE0LTA0LTA5IGF0IDEzOjI4ICswMzAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbSB3cm90ZToKPiBGcm9tOiBDaG9uIE1pbmcgTGVlIDxjaG9uLm1pbmcubGVlQGludGVs LmNvbT4KPiAKPiBBZGRlZCBwcm9ncmFtbWluZyBQTEwgZm9yIENIViBiYXNlZCBvbiAiQXBwbGlj YXRpb24gbm90ZSBmb3IgMTI3MyBDSFYKPiBEaXNwbGF5IHBoeSIuCj4gCj4gdjI6ICAtQnJlYWsg dGhlIGNvbW1vbiBsYW5lIHJlc2V0IGludG8gYW5vdGhlciBwYXRjaC4KPiAgICAgIC1CcmVhayB0 aGUgY2xvY2sgY2FsY3VsYXRpb24gaW50byBhbm90aGVyIHBhdGNoLgo+IAo+ICAgICAtVGhlIGNo YW5nZXMgYXJlIGJhc2VkIG9uIFZpbGxlIHJldmlldy4KPiAgICAgLVJld29yayBiYXNlZCBvbiBE UElPIHJlZ2lzdGVyIGRlZmluZSBuYW1pbmcgY29udmVudGlvbiBjaGFuZ2UuCj4gICAgIC1CcmVh ayB0aGUgZHBpbyB3cml0ZSBpbnRvIGZldyBsaW5lcyB0byBpbXByb3ZlIHJlYWRhYmlsaXR5Lgo+ ICAgICAtQ29ycmVjdCB0aGUgdWRlbGF5IGR1cmluZyBjaHZfZW5hYmxlX3BsbC4KPiAgICAgLWNs ZWFuIHVwIHNvbWUgbWFnaWMgbnVtYmVycyB3aXRoIHNvbWUgbmV3IGRlZmluZS4KPiAgICAgLXBy b2dyYW0gdGhlIGFmYyByZWNhbCBiaXQgd2hpY2ggd2FzIG1pc3NlZC4KPiAKPiB2MzogQmFzZWQg b24gVmlsbGUgcmV2aWV3Cj4gCS0gIG1pbm9yIGNvcnJlY3Rpb24gb2YgdGhlIGJpdCBkZWZpbmF0 aW9uCj4gICAgIC0gYWRkIGRlYXNzZXJ0L3Byb3BhZ2F0ZSBkYXRhIGxhbmUgcmVzZXQKPiAKPiB2 NDogQ29ycmVjdGVkIHRoZSB1ZGVsYXkgYmV0d2VlbiBkY2xrcCBlbmFibGUgYW5kIHBsbCBlbmFi bGUuCj4gCU1pbm9yIGNvbW1lbnQgYW5kIGJldHRlciB3YXkgdG8gY2xlYXIgdGhlIFRYIGxhbmUg cmVzZXQuCj4gCj4gdjU6IFNxdWFzaCBpbiBmaXh1cCBmcm9tIFJhZmFlbCBCYXJiYWxoby4KPiAK PiBSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBDaG9uIE1pbmcgTGVlIDxjaG9uLm1pbmcubGVlQGludGVs LmNvbT4KCkEgY291cGxlIG9mIG5pdHBpY2tzIGJlbG93LCBmaXhpbmcgYW55L2FsbCBvZiB0aG9z ZSBpcyBvcHRpb25hbC4gVGhpcwpwYXRjaCBpcwpSZXZpZXdlZC1ieTogSW1yZSBEZWFrIDxpbXJl LmRlYWtAaW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCAgICAgIHwgIDcwICsrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgfCAxMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K PiAgMiBmaWxlcyBjaGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA4ZmNmNGVhLi43NWYzMWY1IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTY2OCw2ICs2NjgsMTIgQEAgZW51bSBwdW5pdF9w b3dlcl93ZWxsIHsKPiAgI2RlZmluZSBfVkxWX1BDU19EVzlfQ0gxCQkweDg0MjQKPiAgI2RlZmlu ZQlWTFZfUENTX0RXOShjaCkgX1BPUlQoY2gsIF9WTFZfUENTX0RXOV9DSDAsIF9WTFZfUENTX0RX OV9DSDEpCj4gIAo+ICsjZGVmaW5lIF9DSFZfUENTX0RXMTBfQ0gwCQkweDgyMjgKPiArI2RlZmlu ZSBfQ0hWX1BDU19EVzEwX0NIMQkJMHg4NDI4CgpOb3RlIHRoYXQgdGhlc2UgYXJlIGF0bSB1bnVz ZWQgKHRoZSBjb2RlIHVzZXMgaW5zdGVhZCB0aGUgc2luZ2xlCmFkZHJlc3NpbmcgdmVyc2lvbnMp LCBhbHRob3VnaCB0aGVzZSBncm91cCBhZGRyZXNzaW5nIHZlcnNpb25zIGNvdWxkIGJlCnVzZWQg dG9vLgoKPiArI2RlZmluZSAgIERQSU9fUENTX1NXSU5HX0NBTENfVFgwX1RYMgkoMTw8MzApCj4g KyNkZWZpbmUgICBEUElPX1BDU19TV0lOR19DQUxDX1RYMV9UWDMJKDE8PDMxKQo+ICsjZGVmaW5l IENIVl9QQ1NfRFcxMChjaCkgX1BPUlQoY2gsIF9DSFZfUENTX0RXMTBfQ0gwLCBfQ0hWX1BDU19E VzEwX0NIMSkKPiArCj4gICNkZWZpbmUgX1ZMVl9QQ1NfRFcxMV9DSDAJCTB4ODIyYwo+ICAjZGVm aW5lIF9WTFZfUENTX0RXMTFfQ0gxCQkweDg0MmMKPiAgI2RlZmluZSBWTFZfUENTX0RXMTEoY2gp IF9QT1JUKGNoLCBfVkxWX1BDU19EVzExX0NIMCwgX1ZMVl9QQ1NfRFcxMV9DSDEpCj4gQEAgLTY4 NiwxNCArNjkyLDIxIEBAIGVudW0gcHVuaXRfcG93ZXJfd2VsbCB7Cj4gIAo+ICAjZGVmaW5lIF9W TFZfVFhfRFcyX0NIMAkJCTB4ODI4OAo+ICAjZGVmaW5lIF9WTFZfVFhfRFcyX0NIMQkJCTB4ODQ4 OAo+ICsjZGVmaW5lICAgRFBJT19VTklRX1RSQU5TX1NDQUxFX1NISUZUCTgKPiArI2RlZmluZSAg IERQSU9fU1dJTkdfTUFSR0lOX1NISUZUCTE2Cj4gKyNkZWZpbmUgICBEUElPX1NXSU5HX01BUkdJ Tl9NQVNLCSgweGZmIDw8IERQSU9fU1dJTkdfTUFSR0lOX1NISUZUKQo+ICAjZGVmaW5lIFZMVl9U WF9EVzIoY2gpIF9QT1JUKGNoLCBfVkxWX1RYX0RXMl9DSDAsIF9WTFZfVFhfRFcyX0NIMSkKPiAg Cj4gICNkZWZpbmUgX1ZMVl9UWF9EVzNfQ0gwCQkJMHg4MjhjCj4gICNkZWZpbmUgX1ZMVl9UWF9E VzNfQ0gxCQkJMHg4NDhjCj4gKy8qIFRoZSBmb2xsb3dpbmcgYml0IGZvciBDSFYgcGh5ICovCj4g KyNkZWZpbmUgICBEUElPX1RYX1VOSVFfVFJBTlNfU0NBTEVfRU4JKDE8PDI3KQo+ICAjZGVmaW5l IFZMVl9UWF9EVzMoY2gpIF9QT1JUKGNoLCBfVkxWX1RYX0RXM19DSDAsIF9WTFZfVFhfRFczX0NI MSkKPiAgCj4gICNkZWZpbmUgX1ZMVl9UWF9EVzRfQ0gwCQkJMHg4MjkwCj4gICNkZWZpbmUgX1ZM Vl9UWF9EVzRfQ0gxCQkJMHg4NDkwCj4gKyNkZWZpbmUgICBEUElPX1NXSU5HX0RFRU1QSDlQNV9T SElGVAkyNAo+ICsjZGVmaW5lICAgRFBJT19TV0lOR19ERUVNUEg5UDVfTUFTSwkoMHhmZiA8PCBE UElPX1NXSU5HX0RFRU1QSDlQNV9TSElGVCkKPiAgI2RlZmluZSBWTFZfVFhfRFc0KGNoKSBfUE9S VChjaCwgX1ZMVl9UWF9EVzRfQ0gwLCBfVkxWX1RYX0RXNF9DSDEpCj4gIAo+ICAjZGVmaW5lIF9W TFZfVFgzX0RXNF9DSDAJCTB4NjkwCj4gQEAgLTcxMyw2ICs3MjYsNjIgQEAgZW51bSBwdW5pdF9w b3dlcl93ZWxsIHsKPiAgI2RlZmluZSBfVkxWX1RYX0RXMTRfQ0gxCQkweDg0YjgKPiAgI2RlZmlu ZSBWTFZfVFhfRFcxNChjaCkgX1BPUlQoY2gsIF9WTFZfVFhfRFcxNF9DSDAsIF9WTFZfVFhfRFcx NF9DSDEpCj4gIAo+ICsvKiBDSFYgZHBQaHkgcmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgX0NIVl9Q TExfRFcwX0NIMAkJMHg4MDAwCj4gKyNkZWZpbmUgX0NIVl9QTExfRFcwX0NIMQkJMHg4MTgwCj4g KyNkZWZpbmUgQ0hWX1BMTF9EVzAoY2gpIF9QSVBFKGNoLCBfQ0hWX1BMTF9EVzBfQ0gwLCBfQ0hW X1BMTF9EVzBfQ0gxKQo+ICsKPiArI2RlZmluZSBfQ0hWX1BMTF9EVzFfQ0gwCQkweDgwMDQKPiAr I2RlZmluZSBfQ0hWX1BMTF9EVzFfQ0gxCQkweDgxODQKPiArI2RlZmluZSAgIERQSU9fQ0hWX00x X0RJVl9CWV8yCQkoMCA8PCAwKQo+ICsjZGVmaW5lICAgRFBJT19DSFZfTl9ESVZfU0hJRlQJCSg4 KQoKSGVyZSBhbmQgYmVsb3cgZm9yIHNpbXBsZSBjb25zdGFudHMsIG5vIG5lZWQgZm9yIHRoZSAo KS4gCgo+ICsjZGVmaW5lIENIVl9QTExfRFcxKGNoKSBfUElQRShjaCwgX0NIVl9QTExfRFcxX0NI MCwgX0NIVl9QTExfRFcxX0NIMSkKPiArCj4gKyNkZWZpbmUgX0NIVl9QTExfRFcyX0NIMAkJMHg4 MDA4Cj4gKyNkZWZpbmUgX0NIVl9QTExfRFcyX0NIMQkJMHg4MTg4Cj4gKyNkZWZpbmUgQ0hWX1BM TF9EVzIoY2gpIF9QSVBFKGNoLCBfQ0hWX1BMTF9EVzJfQ0gwLCBfQ0hWX1BMTF9EVzJfQ0gxKQo+ ICsKPiArI2RlZmluZSBfQ0hWX1BMTF9EVzNfQ0gwCQkweDgwMGMKPiArI2RlZmluZSBfQ0hWX1BM TF9EVzNfQ0gxCQkweDgxOGMKPiArI2RlZmluZSAgRFBJT19DSFZfRkVFREZXRF9HQUlOCQkyCj4g KyNkZWZpbmUgIERQSU9fQ0hWX0ZJUlNUX01PRAkJKDAgPDwgOCkKPiArI2RlZmluZSAgRFBJT19D SFZfU0VDT05EX01PRAkJKDEgPDwgOCkKPiArI2RlZmluZSAgRFBJT19DSFZfRlJBQ19ESVZfRU4J CSgxIDw8IDE2KQo+ICsjZGVmaW5lIENIVl9QTExfRFczKGNoKSBfUElQRShjaCwgX0NIVl9QTExf RFczX0NIMCwgX0NIVl9QTExfRFczX0NIMSkKPiArCj4gKyNkZWZpbmUgX0NIVl9QTExfRFc2X0NI MAkJMHg4MDE4Cj4gKyNkZWZpbmUgX0NIVl9QTExfRFc2X0NIMQkJMHg4MTk4Cj4gKyNkZWZpbmUg ICBEUElPX0NIVl9QUk9QX0NPRUZGCQkoNSA8PCAwKQo+ICsjZGVmaW5lICAgRFBJT19DSFZfR0FJ Tl9DVFJMCQkoMiA8PCAxNikKClRoZXNlIG1hY3JvcyBjb21iaW5lIHRoZSBmaWVsZCBzaGlmdCBh bmQgZmllbGQgdmFsdWUsIGZvciBjb25zaXN0ZW5jeQpJJ2QgZGVmaW5lIGhlcmUgb25seSB0aGUg ZmllbGQgc2hpZnQgYW5kIHVzZSB0aGUgZmllbGQgdmFsdWUgaW5saW5lZCBpbgp0aGUgY29kZS4g Cgo+ICsjZGVmaW5lCSAgRFBJT19DSFZfSU5UX0NPRUZGX1NISUZUCTgKPiArI2RlZmluZSBDSFZf UExMX0RXNihjaCkgX1BJUEUoY2gsIF9DSFZfUExMX0RXNl9DSDAsIF9DSFZfUExMX0RXNl9DSDEp Cj4gKwo+ICsjZGVmaW5lIF9DSFZfQ01OX0RXMTNfQ0gwCQkweDgxMzQKPiArI2RlZmluZSBfQ0hW X0NNTl9EVzBfQ0gxCQkweDgwODAKPiArI2RlZmluZSAgIERQSU9fQ0hWX1MxX0RJVl9TRUxFQ1QJ KDIxKQo+ICsjZGVmaW5lICAgRFBJT19DSFZfUDFfU0hJRlQJCSgxMykgLyogMyBiaXRzICovCj4g KyNkZWZpbmUgICBEUElPX0NIVl9QMl9TSElGVAkJKDgpICAvKiA1IGJpdHMgKi8KPiArI2RlZmlu ZSAgIERQSU9fQ0hWX0tfRElWX1NISUZUCQkoNCkKPiArI2RlZmluZSAgIERQSU9fUExMX0xPQ0sJ CQkweDEKCigxIDw8IDApIGZvciBjb25zaXN0ZW5jeS4KCj4gKyNkZWZpbmUgICBEUElPX1BMTF9G UkVRTE9DSwkJMHgyCgooMSA8PCAxKQoKPiArI2RlZmluZSBDSFZfQ01OX0RXMTMoY2gpIF9QSVBF KGNoLCBfQ0hWX0NNTl9EVzEzX0NIMCwgX0NIVl9DTU5fRFcwX0NIMSkKPiArCj4gKyNkZWZpbmUg X0NIVl9DTU5fRFcxNF9DSDAJCTB4ODEzOAo+ICsjZGVmaW5lIF9DSFZfQ01OX0RXMV9DSDEJCTB4 ODA4NAo+ICsjZGVmaW5lICAgRFBJT19BRkNfUkVDQUwJCSgxIDw8IDE0KQo+ICsjZGVmaW5lICAg RFBJT19EQ0xLUF9FTgkJCSgxIDw8IDEzKQo+ICsjZGVmaW5lIENIVl9DTU5fRFcxNChjaCkgX1BJ UEUoY2gsIF9DSFZfQ01OX0RXMTRfQ0gwLCBfQ0hWX0NNTl9EVzFfQ0gxKQo+ICsKPiArI2RlZmlu ZSBDSFZfQ01OX0RXMzAJCQkweDgxNzgKPiArI2RlZmluZSAgIERQSU9fTFJDX0JZUEFTUwkJKDEg PDwgMykKPiArCj4gKyNkZWZpbmUgX1RYTEFORShjaCwgbGFuZSwgb2Zmc2V0KSAoKGNoID8gMHgy NDAwIDogMCkgKyBcCj4gKwkJCQkJKGxhbmUpICogMHgyMDAgKyAob2Zmc2V0KSkKClRoaXMgd29y a3MgdG9vLCBidXQgYWNjb3JkaW5nIHRvIHRoZSBQSFkgc3BlYyB0aGUgYmFzZSBhZGRyZXNzZXMg d291bGQKYmUgbW9yZSBwcmVjaXNlbHkgd3JpdHRlbiBhcwooKGNoID8gMHgyNDgwIDogMHg4MCkg KyAobGFuZSkgKiAweDIwMCArIChvZmZzZXQpKQoKLi4uIGFuZCB0aGVuCgo+ICsKPiArI2RlZmlu ZSBDSFZfVFhfRFcxMShjaCwgbGFuZSkgX1RYTEFORShjaCwgbGFuZSwgMHhhYykKCl9UWExBTkUo Y2gsIGxhbmUsIDB4MmMpCgo+ICsjZGVmaW5lICAgRFBJT19GUkNfTEFURU5DWV9TSEZJVAkoOCkK PiArI2RlZmluZSBDSFZfVFhfRFcxNChjaCwgbGFuZSkgX1RYTEFORShjaCwgbGFuZSwgMHhiOCkK Cl9UWExBTkUoY2gsIGxhbmUsIDB4MzgpCgotLUltcmUKCj4gKyNkZWZpbmUgICBEUElPX1VQQVJf U0hJRlQJCSgzMCkKCj4gIC8qCj4gICAqIEZlbmNlIHJlZ2lzdGVycwo+ICAgKi8KPiBAQCAtMTM4 Myw2ICsxNDUyLDcgQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKPiAgI2RlZmluZSAgIERQTExf TE9DS19WTFYJCQkoMTw8MTUpCj4gICNkZWZpbmUgICBEUExMX0lOVEVHUkFURURfQ1JJX0NMS19W TFYJKDE8PDE0KQo+ICAjZGVmaW5lICAgRFBMTF9JTlRFR1JBVEVEX0NMT0NLX1ZMVgkoMTw8MTMp Cj4gKyNkZWZpbmUgICBEUExMX1NTQ19SRUZfQ0xPQ0tfQ0hWCSgxPDwxMykKPiAgI2RlZmluZSAg IERQTExfUE9SVENfUkVBRFlfTUFTSwkJKDB4ZiA8PCA0KQo+ICAjZGVmaW5lICAgRFBMTF9QT1JU Ql9SRUFEWV9NQVNLCQkoMHhmKQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gaW5kZXggZDczZmVjNS4uMzZkNmUyMTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gQEAgLTE1NDksNiArMTU0OSw0OSBAQCBzdGF0aWMgdm9pZCB2bHZfZW5hYmxl X3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCXVkZWxheSgxNTApOyAvKiB3YWl0IGZv ciB3YXJtdXAgKi8KPiAgfQo+ICAKPiArc3RhdGljIHZvaWQgY2h2X2VuYWJsZV9wbGwoc3RydWN0 IGludGVsX2NydGMgKmNydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gKwlpbnQgcGlwZSA9IGNydGMtPnBpcGU7Cj4gKwllbnVtIGRwaW9fY2hh bm5lbCBwb3J0ID0gdmx2X3BpcGVfdG9fY2hhbm5lbChwaXBlKTsKPiArCWludCBkcGxsID0gRFBM TChjcnRjLT5waXBlKTsKPiArCXUzMiB0bXA7Cj4gKwo+ICsJYXNzZXJ0X3BpcGVfZGlzYWJsZWQo ZGV2X3ByaXYsIGNydGMtPnBpcGUpOwo+ICsKPiArCUJVR19PTighSVNfQ0hFUlJZVklFVyhkZXZf cHJpdi0+ZGV2KSk7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRwaW9fbG9jayk7Cj4g Kwo+ICsJLyogRW5hYmxlIGJhY2sgdGhlIDEwYml0IGNsb2NrIHRvIGRpc3BsYXkgY29udHJvbGxl ciAqLwo+ICsJdG1wID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgQ0hWX0NNTl9EVzE0 KHBvcnQpKTsKPiArCXRtcCB8PSBEUElPX0RDTEtQX0VOOwo+ICsJdmx2X2RwaW9fd3JpdGUoZGV2 X3ByaXYsIHBpcGUsIENIVl9DTU5fRFcxNChwb3J0KSwgdG1wKTsKPiArCj4gKwkvKgo+ICsJICog TmVlZCB0byB3YWl0ID4gMTAwbnMgYmV0d2VlbiBkY2xrcCBjbG9jayBlbmFibGUgYml0IGFuZCBQ TEwgZW5hYmxlLgo+ICsJICovCj4gKwl1ZGVsYXkoMSk7Cj4gKwo+ICsJLyogRW5hYmxlIFBMTCAq Lwo+ICsJdG1wID0gSTkxNV9SRUFEKGRwbGwpOwo+ICsJdG1wIHw9IERQTExfVkNPX0VOQUJMRTsK PiArCUk5MTVfV1JJVEUoZHBsbCwgdG1wKTsKPiArCj4gKwkvKiBDaGVjayBQTEwgaXMgbG9ja2Vk ICovCj4gKwlpZiAod2FpdF9mb3IoKChJOTE1X1JFQUQoZHBsbCkgJiBEUExMX0xPQ0tfVkxWKSA9 PSBEUExMX0xPQ0tfVkxWKSwgMSkpCj4gKwkJRFJNX0VSUk9SKCJQTEwgJWQgZmFpbGVkIHRvIGxv Y2tcbiIsIHBpcGUpOwo+ICsKPiArCS8qIERlYXNzZXJ0IHNvZnQgZGF0YSBsYW5lIHJlc2V0Ki8K PiArCXRtcCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1NfRFcwKHBvcnQp KTsKPiArCXRtcCB8PSAoRFBJT19QQ1NfVFhfTEFORTJfUkVTRVQgfCBEUElPX1BDU19UWF9MQU5F MV9SRVNFVCk7Cj4gKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDU19EVzAo cG9ydCksIHRtcCk7Cj4gKwo+ICsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwaW9fbG9j ayk7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGk5eHhfZW5hYmxlX3BsbChzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2Uu ZGV2Owo+IEBAIC00NTAzLDggKzQ1NDYsMTIgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRj X2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJaXNfZHNpID0gaW50ZWxfcGlw ZV9oYXNfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfRFNJKTsKPiAgCj4gLQlpZiAoIWlzX2RzaSkK PiAtCQl2bHZfZW5hYmxlX3BsbChpbnRlbF9jcnRjKTsKPiArCWlmICghaXNfZHNpKSB7Cj4gKwkJ aWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKPiArCQkJY2h2X2VuYWJsZV9wbGwoaW50ZWxfY3J0Yyk7 Cj4gKwkJZWxzZQo+ICsJCQl2bHZfZW5hYmxlX3BsbChpbnRlbF9jcnRjKTsKPiArCX0KPiAgCj4g IAlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQo+ICAJCWlmIChl bmNvZGVyLT5wcmVfZW5hYmxlKQo+IEBAIC01Mzg1LDYgKzU0MzIsODYgQEAgc3RhdGljIHZvaWQg dmx2X3VwZGF0ZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAltdXRleF91bmxvY2so JmRldl9wcml2LT5kcGlvX2xvY2spOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBjaHZfdXBkYXRl X3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCWludCBwaXBlID0gY3J0Yy0+cGlwZTsKPiArCWlu dCBkcGxsX3JlZyA9IERQTEwoY3J0Yy0+cGlwZSk7Cj4gKwllbnVtIGRwaW9fY2hhbm5lbCBwb3J0 ID0gdmx2X3BpcGVfdG9fY2hhbm5lbChwaXBlKTsKPiArCXUzMiB2YWwsIGxvb3BmaWx0ZXIsIGlu dGNvZWZmOwo+ICsJdTMyIGJlc3RuLCBiZXN0bTEsIGJlc3RtMiwgYmVzdHAxLCBiZXN0cDIsIGJl c3RtMl9mcmFjOwo+ICsJaW50IHJlZmNsazsKPiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ ZHBpb19sb2NrKTsKPiArCj4gKwliZXN0biA9IGNydGMtPmNvbmZpZy5kcGxsLm47Cj4gKwliZXN0 bTJfZnJhYyA9IGNydGMtPmNvbmZpZy5kcGxsLm0yICYgMHgzZmZmZmY7Cj4gKwliZXN0bTEgPSBj cnRjLT5jb25maWcuZHBsbC5tMTsKPiArCWJlc3RtMiA9IGNydGMtPmNvbmZpZy5kcGxsLm0yID4+ IDIyOwo+ICsJYmVzdHAxID0gY3J0Yy0+Y29uZmlnLmRwbGwucDE7Cj4gKwliZXN0cDIgPSBjcnRj LT5jb25maWcuZHBsbC5wMjsKPiArCj4gKwkvKgo+ICsJICogRW5hYmxlIFJlZmNsayBhbmQgU1ND Cj4gKwkgKi8KPiArCXZhbCA9IEk5MTVfUkVBRChkcGxsX3JlZyk7Cj4gKwl2YWwgfD0gKERQTExf U1NDX1JFRl9DTE9DS19DSFYgfCBEUExMX1JFRkFfQ0xLX0VOQUJMRV9WTFYpOwo+ICsJSTkxNV9X UklURShkcGxsX3JlZywgdmFsKTsKPiArCj4gKwkvKiBQcm9wYWdhdGUgc29mdCByZXNldCB0byBk YXRhIGxhbmUgcmVzZXQgKi8KPiArCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUs IFZMVl9QQ1NfRFcwKHBvcnQpKTsKPiArCXZhbCAmPSB+KERQSU9fUENTX1RYX0xBTkUyX1JFU0VU IHwgRFBJT19QQ1NfVFhfTEFORTFfUkVTRVQpOwo+ICsJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYs IHBpcGUsIFZMVl9QQ1NfRFcwKHBvcnQpLCB2YWwpOwo+ICsKPiArCS8qIERpc2FibGUgMTBiaXQg Y2xvY2sgdG8gZGlzcGxheSBjb250cm9sbGVyICovCj4gKwl2YWwgPSB2bHZfZHBpb19yZWFkKGRl dl9wcml2LCBwaXBlLCBDSFZfQ01OX0RXMTQocG9ydCkpOwo+ICsJdmFsICY9IH5EUElPX0RDTEtQ X0VOOwo+ICsJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9DTU5fRFcxNChwb3J0 KSwgdmFsKTsKPiArCj4gKwkvKiBwMSBhbmQgcDIgZGl2aWRlciAqLwo+ICsJdmx2X2RwaW9fd3Jp dGUoZGV2X3ByaXYsIHBpcGUsIENIVl9DTU5fRFcxMyhwb3J0KSwKPiArCQkJNSA8PCBEUElPX0NI Vl9TMV9ESVZfU0VMRUNUIHwKPiArCQkJYmVzdHAxIDw8IERQSU9fQ0hWX1AxX1NISUZUIHwKPiAr CQkJYmVzdHAyIDw8IERQSU9fQ0hWX1AyX1NISUZUIHwKPiArCQkJMSA8PCBEUElPX0NIVl9LX0RJ Vl9TSElGVCk7Cj4gKwo+ICsJLyogRmVlZGJhY2sgcG9zdC1kaXZpZGVyIC0gbTIgKi8KPiArCXZs dl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfUExMX0RXMChwb3J0KSwgYmVzdG0yKTsK PiArCj4gKwkvKiBGZWVkYmFjayByZWZjbGsgZGl2aWRlciAtIG4gYW5kIG0xICovCj4gKwl2bHZf ZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgQ0hWX1BMTF9EVzEocG9ydCksCj4gKwkJCURQSU9f Q0hWX00xX0RJVl9CWV8yIHwKPiArCQkJMSA8PCBEUElPX0NIVl9OX0RJVl9TSElGVCk7Cj4gKwo+ ICsJLyogTTIgZnJhY3Rpb24gZGl2aXNpb24gKi8KPiArCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2 LCBwaXBlLCBDSFZfUExMX0RXMihwb3J0KSwgYmVzdG0yX2ZyYWMpOwo+ICsKPiArCS8qIE0yIGZy YWN0aW9uIGRpdmlzaW9uIGVuYWJsZSAqLwo+ICsJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBp cGUsIENIVl9QTExfRFczKHBvcnQpLAo+ICsJCQlEUElPX0NIVl9GUkFDX0RJVl9FTiB8Cj4gKwkJ CURQSU9fQ0hWX0ZFRURGV0RfR0FJTik7Cj4gKwo+ICsJLyogTG9vcCBmaWx0ZXIgKi8KPiArCXJl ZmNsayA9IGk5eHhfZ2V0X3JlZmNsaygmY3J0Yy0+YmFzZSwgMCk7Cj4gKwlsb29wZmlsdGVyID0g RFBJT19DSFZfUFJPUF9DT0VGRiB8IERQSU9fQ0hWX0dBSU5fQ1RSTDsKPiArCWlmIChyZWZjbGsg PT0gMTAwMDAwKQo+ICsJCWludGNvZWZmID0gMTE7Cj4gKwllbHNlIGlmIChyZWZjbGsgPT0gMzg0 MDApCj4gKwkJaW50Y29lZmYgPSAxMDsKPiArCWVsc2UKPiArCQlpbnRjb2VmZiA9IDk7Cj4gKwls b29wZmlsdGVyIHw9IChpbnRjb2VmZiA8PCBEUElPX0NIVl9JTlRfQ09FRkZfU0hJRlQpOwo+ICsJ dmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9QTExfRFc2KHBvcnQpLCBsb29wZmls dGVyKTsKPiArCj4gKwkvKiBBRkMgUmVjYWwgKi8KPiArCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2 LCBwaXBlLCBDSFZfQ01OX0RXMTQocG9ydCksCj4gKwkJCXZsdl9kcGlvX3JlYWQoZGV2X3ByaXYs IHBpcGUsIENIVl9DTU5fRFcxNChwb3J0KSkgfAo+ICsJCQlEUElPX0FGQ19SRUNBTCk7Cj4gKwo+ ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBpb19sb2NrKTsKPiArfQo+ICsKPiAgc3RhdGlj IHZvaWQgaTl4eF91cGRhdGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkgICAg aW50ZWxfY2xvY2tfdCAqcmVkdWNlZF9jbG9jaywKPiAgCQkJICAgIGludCBudW1fY29ubmVjdG9y cykKPiBAQCAtNTc2OCw2ICs1ODk1LDggQEAgc3RhdGljIGludCBpOXh4X2NydGNfbW9kZV9zZXQo c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCWk4eHhfdXBkYXRlX3BsbChpbnRlbF9jcnRjLAo+ ICAJCQkJaGFzX3JlZHVjZWRfY2xvY2sgPyAmcmVkdWNlZF9jbG9jayA6IE5VTEwsCj4gIAkJCQlu dW1fY29ubmVjdG9ycyk7Cj4gKwl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJ CWNodl91cGRhdGVfcGxsKGludGVsX2NydGMpOwo+ICAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVX KGRldikpIHsKPiAgCQl2bHZfdXBkYXRlX3BsbChpbnRlbF9jcnRjKTsKPiAgCX0gZWxzZSB7CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK