From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH] drm/i915/bxt: Additional MIPI clock divider form B0 stepping onwards Date: Fri, 26 Feb 2016 22:19:26 +0530 Message-ID: <56D08216.2000507@intel.com> References: <87lh70efxb.fsf@intel.com> <1455556437-29267-1-git-send-email-m.deepak@intel.com> <877fi3f5al.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 25C326EB42 for ; Fri, 26 Feb 2016 16:57:38 +0000 (UTC) In-Reply-To: <877fi3f5al.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , Deepak M , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIFRodXJzZGF5IDE4IEZlYnJ1YXJ5IDIwMTYgMDI6MDAgQU0sIEphbmkgTmlrdWxhIHdyb3Rl Ogo+IE9uIE1vbiwgMTUgRmViIDIwMTYsIERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+IHdy b3RlOgo+PiBUaGUgTUlQSSBjbG9jayBjYWxjdWxhdGlvbnMgZm9yIHRoZSBhZGR0aW9uYWwgY2xv Y2sKPj4gYXJlIHJldmlzZWQgZnJvbSBCMCBzdGVwcGluZyBvbndhcmRzLCB0aGUgYml0IGRlZmlu aXRpb25zCj4+IGhhdmUgY2hhbmdlZCBjb21wYXJlZCB0byBvbGQgc3RlcHBpbmcuCj4+Cj4+IHYy OiBGaXhpbmcgY29tcGlsYXRpb24gd2FybmluZy4KPj4gdjM6IFJldGFpbmVkIHRoZSBvbGQgTWFj cm9zIChKYW5pKQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBEZWVwYWsgTSA8bS5kZWVwYWtAaW50ZWwu Y29tPgo+IFJldmlld2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgpU ZXN0ZWQtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KClRlc3RlZCBp dCBvbiBCWFQtVCB3aXRoIFRpYW5tYSBwYW5lbC4KPgo+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8IDk2ICsrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYyB8IDU2 ICsrKysrKysrKysrKysrLS0tLS0tLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9u cygrKSwgNjMgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBpbmRl eCAxNDQ1ODZlLi40ZTYxYjA2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gQEAg LTc2NjMsNTggKzc2NjMsNjIgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4+ICAgI2Rl ZmluZSAgQlhUX01JUElfRElWX1NISUZUKHBvcnQpCQlcCj4+ICAgCQkJX01JUElfUE9SVChwb3J0 LCBCWFRfTUlQSTFfRElWX1NISUZULCBcCj4+ICAgCQkJCQlCWFRfTUlQSTJfRElWX1NISUZUKQo+ PiAtLyogVmFyIGNsb2NrIGRpdmlkZXIgdG8gZ2VuZXJhdGUgVFggc291cmNlLiBSZXN1bHQgbXVz dCBiZSA8IDM5LjUgTSAqLwo+PiAtI2RlZmluZSAgQlhUX01JUEkxX0VTQ0xLX1ZBUl9ESVZfTUFT SwkJKDB4M0YgPDwgMjYpCj4+IC0jZGVmaW5lICBCWFRfTUlQSTJfRVNDTEtfVkFSX0RJVl9NQVNL CQkoMHgzRiA8PCAxMCkKPj4gLSNkZWZpbmUgIEJYVF9NSVBJX0VTQ0xLX1ZBUl9ESVZfTUFTSyhw b3J0KQlcCj4+IC0JCQlfTUlQSV9QT1JUKHBvcnQsIEJYVF9NSVBJMV9FU0NMS19WQVJfRElWX01B U0ssIFwKPj4gLQkJCQkJCUJYVF9NSVBJMl9FU0NMS19WQVJfRElWX01BU0spCj4+IC0KPj4gLSNk ZWZpbmUgIEJYVF9NSVBJX0VTQ0xLX1ZBUl9ESVYocG9ydCwgdmFsKQlcCj4+IC0JCQkodmFsIDw8 IEJYVF9NSVBJX0RJVl9TSElGVChwb3J0KSkKPj4gKwo+PiAgIC8qIFRYIGNvbnRyb2wgZGl2aWRl ciB0byBzZWxlY3QgYWN0dWFsIFRYIGNsb2NrIG91dHB1dCBmcm9tICg4eC92YXIpICovCj4+IC0j ZGVmaW5lICBCWFRfTUlQSTFfVFhfRVNDTEtfU0hJRlQJCTIxCj4+IC0jZGVmaW5lICBCWFRfTUlQ STJfVFhfRVNDTEtfU0hJRlQJCTUKPj4gKyNkZWZpbmUgIEJYVF9NSVBJMV9UWF9FU0NMS19TSElG VAkJMjYKPj4gKyNkZWZpbmUgIEJYVF9NSVBJMl9UWF9FU0NMS19TSElGVAkJMTAKPj4gICAjZGVm aW5lICBCWFRfTUlQSV9UWF9FU0NMS19TSElGVChwb3J0KQkJXAo+PiAgIAkJCV9NSVBJX1BPUlQo cG9ydCwgQlhUX01JUEkxX1RYX0VTQ0xLX1NISUZULCBcCj4+ICAgCQkJCQlCWFRfTUlQSTJfVFhf RVNDTEtfU0hJRlQpCj4+IC0jZGVmaW5lICBCWFRfTUlQSTFfVFhfRVNDTEtfRklYRElWX01BU0sJ CSgzIDw8IDIxKQo+PiAtI2RlZmluZSAgQlhUX01JUEkyX1RYX0VTQ0xLX0ZJWERJVl9NQVNLCQko MyA8PCA1KQo+PiArI2RlZmluZSAgQlhUX01JUEkxX1RYX0VTQ0xLX0ZJWERJVl9NQVNLCQkoMHgz RiA8PCAyNikKPj4gKyNkZWZpbmUgIEJYVF9NSVBJMl9UWF9FU0NMS19GSVhESVZfTUFTSwkJKDB4 M0YgPDwgMTApCj4+ICAgI2RlZmluZSAgQlhUX01JUElfVFhfRVNDTEtfRklYRElWX01BU0socG9y dCkJXAo+PiAgIAkJCV9NSVBJX1BPUlQocG9ydCwgQlhUX01JUEkxX1RYX0VTQ0xLX0ZJWERJVl9N QVNLLCBcCj4+IC0JCQkJCQlCWFRfTUlQSTJfVFhfRVNDTEtfRklYRElWX01BU0spCj4+IC0jZGVm aW5lICBCWFRfTUlQSV9UWF9FU0NMS184WERJVl9CWTIocG9ydCkJXAo+PiAtCQkoMHgwIDw8IEJY VF9NSVBJX1RYX0VTQ0xLX1NISUZUKHBvcnQpKQo+PiAtI2RlZmluZSAgQlhUX01JUElfVFhfRVND TEtfOFhESVZfQlk0KHBvcnQpCVwKPj4gLQkJKDB4MSA8PCBCWFRfTUlQSV9UWF9FU0NMS19TSElG VChwb3J0KSkKPj4gLSNkZWZpbmUgIEJYVF9NSVBJX1RYX0VTQ0xLXzhYRElWX0JZOChwb3J0KQlc Cj4+IC0JCSgweDIgPDwgQlhUX01JUElfVFhfRVNDTEtfU0hJRlQocG9ydCkpCj4+IC0vKiBSWCBj b250cm9sIGRpdmlkZXIgdG8gc2VsZWN0IGFjdHVhbCBSWCBjbG9jayBvdXRwdXQgZnJvbSA4eCov Cj4+IC0jZGVmaW5lICBCWFRfTUlQSTFfUlhfRVNDTEtfU0hJRlQJCTE5Cj4+IC0jZGVmaW5lICBC WFRfTUlQSTJfUlhfRVNDTEtfU0hJRlQJCTMKPj4gLSNkZWZpbmUgIEJYVF9NSVBJX1JYX0VTQ0xL X1NISUZUKHBvcnQpCQlcCj4+IC0JCQlfTUlQSV9QT1JUKHBvcnQsIEJYVF9NSVBJMV9SWF9FU0NM S19TSElGVCwgXAo+PiAtCQkJCQlCWFRfTUlQSTJfUlhfRVNDTEtfU0hJRlQpCj4+IC0jZGVmaW5l ICBCWFRfTUlQSTFfUlhfRVNDTEtfRklYRElWX01BU0sJCSgzIDw8IDE5KQo+PiAtI2RlZmluZSAg QlhUX01JUEkyX1JYX0VTQ0xLX0ZJWERJVl9NQVNLCQkoMyA8PCAzKQo+PiAtI2RlZmluZSAgQlhU X01JUElfUlhfRVNDTEtfRklYRElWX01BU0socG9ydCkJXAo+PiAtCQkoMyA8PCBCWFRfTUlQSV9S WF9FU0NMS19TSElGVChwb3J0KSkKPj4gLSNkZWZpbmUgIEJYVF9NSVBJX1JYX0VTQ0xLXzhYX0JZ Mihwb3J0KQlcCj4+IC0JCSgxIDw8IEJYVF9NSVBJX1JYX0VTQ0xLX1NISUZUKHBvcnQpKQo+PiAt I2RlZmluZSAgQlhUX01JUElfUlhfRVNDTEtfOFhfQlkzKHBvcnQpCVwKPj4gLQkJKDIgPDwgQlhU X01JUElfUlhfRVNDTEtfU0hJRlQocG9ydCkpCj4+IC0jZGVmaW5lICBCWFRfTUlQSV9SWF9FU0NM S184WF9CWTQocG9ydCkJXAo+PiAtCQkoMyA8PCBCWFRfTUlQSV9SWF9FU0NMS19TSElGVChwb3J0 KSkKPj4gLS8qIEJYVC1BIFdBOiBBbHdheXMgcHJvZyBEUEhZIGRpdmlkZXJzIHRvIDAwICovCj4+ IC0jZGVmaW5lICBCWFRfTUlQSTFfRFBIWV9ESVZfU0hJRlQJCTE2Cj4+IC0jZGVmaW5lICBCWFRf TUlQSTJfRFBIWV9ESVZfU0hJRlQJCTAKPj4gLSNkZWZpbmUgIEJYVF9NSVBJX0RQSFlfRElWX1NI SUZUKHBvcnQpCQlcCj4+IC0JCQlfTUlQSV9QT1JUKHBvcnQsIEJYVF9NSVBJMV9EUEhZX0RJVl9T SElGVCwgXAo+PiAtCQkJCQlCWFRfTUlQSTJfRFBIWV9ESVZfU0hJRlQpCj4+IC0jZGVmaW5lICBC WFRfTUlQSV8xX0RQSFlfRElWSURFUl9NQVNLCQkoMyA8PCAxNikKPj4gLSNkZWZpbmUgIEJYVF9N SVBJXzJfRFBIWV9ESVZJREVSX01BU0sJCSgzIDw8IDApCj4+IC0jZGVmaW5lICBCWFRfTUlQSV9E UEhZX0RJVklERVJfTUFTSyhwb3J0KQlcCj4+IC0JCSgzIDw8IEJYVF9NSVBJX0RQSFlfRElWX1NI SUZUKHBvcnQpKQo+PiArCQkJCQlCWFRfTUlQSTJfVFhfRVNDTEtfRklYRElWX01BU0spCj4+ICsj ZGVmaW5lICBCWFRfTUlQSV9UWF9FU0NMS19ESVZJREVSKHBvcnQsIHZhbCkJXAo+PiArCQkoKHZh bCAmIDB4M0YpIDw8IEJYVF9NSVBJX1RYX0VTQ0xLX1NISUZUKHBvcnQpKQo+PiArLyogUlggdXBw ZXIgY29udHJvbCBkaXZpZGVyIHRvIHNlbGVjdCBhY3R1YWwgUlggY2xvY2sgb3V0cHV0IGZyb20g OHgqLwo+PiArI2RlZmluZSAgQlhUX01JUEkxX1JYX0VTQ0xLX1VQUEVSX1NISUZUCQkyMQo+PiAr I2RlZmluZSAgQlhUX01JUEkyX1JYX0VTQ0xLX1VQUEVSX1NISUZUCQk1Cj4+ICsjZGVmaW5lICBC WFRfTUlQSV9SWF9FU0NMS19VUFBFUl9TSElGVChwb3J0KQkJXAo+PiArCQkJX01JUElfUE9SVChw b3J0LCBCWFRfTUlQSTFfUlhfRVNDTEtfVVBQRVJfU0hJRlQsIFwKPj4gKwkJCQkJQlhUX01JUEky X1JYX0VTQ0xLX1VQUEVSX1NISUZUKQo+PiArI2RlZmluZSAgQlhUX01JUEkxX1JYX0VTQ0xLX1VQ UEVSX0ZJWERJVl9NQVNLCQkoMyA8PCAyMSkKPj4gKyNkZWZpbmUgIEJYVF9NSVBJMl9SWF9FU0NM S19VUFBFUl9GSVhESVZfTUFTSwkJKDMgPDwgNSkKPj4gKyNkZWZpbmUgIEJYVF9NSVBJX1JYX0VT Q0xLX1VQUEVSX0ZJWERJVl9NQVNLKHBvcnQpIAlcCj4+ICsJCQlfTUlQSV9QT1JUKHBvcnQsIEJY VF9NSVBJMV9SWF9FU0NMS19VUFBFUl9GSVhESVZfTUFTSyxcCj4+ICsJCQkJCUJYVF9NSVBJMl9S WF9FU0NMS19VUFBFUl9GSVhESVZfTUFTSykKPj4gKyNkZWZpbmUgIEJYVF9NSVBJX1JYX0VTQ0xL X1VQUEVSX0RJVklERVIocG9ydCwgdmFsKQlcCj4+ICsJCSgodmFsICYgMykgPDwgQlhUX01JUElf UlhfRVNDTEtfVVBQRVJfU0hJRlQocG9ydCkpCj4+ICsvKiA4LzNYIGRpdmlkZXIgdG8gc2VsZWN0 IHRoZSBhY3R1YWwgOC8zWCBjbG9jayBvdXRwdXQgZnJvbSA4eCovCj4+ICsjZGVmaW5lICBCWFRf TUlQSTFfOFhfQlkzX1NISUZUICAgICAgICAgICAgICAgIDE5Cj4+ICsjZGVmaW5lICBCWFRfTUlQ STJfOFhfQlkzX1NISUZUICAgICAgICAgICAgICAgIDMKPj4gKyNkZWZpbmUgIEJYVF9NSVBJXzhY X0JZM19TSElGVChwb3J0KSAgICAgICAgICBcCj4+ICsJCQlfTUlQSV9QT1JUKHBvcnQsIEJYVF9N SVBJMV84WF9CWTNfU0hJRlQsIFwKPj4gKwkJCQkJQlhUX01JUEkyXzhYX0JZM19TSElGVCkKPj4g KyNkZWZpbmUgIEJYVF9NSVBJMV84WF9CWTNfRElWSURFUl9NQVNLICAgICAgICAgKDMgPDwgMTkp Cj4+ICsjZGVmaW5lICBCWFRfTUlQSTJfOFhfQlkzX0RJVklERVJfTUFTSyAgICAgICAgICgzIDw8 IDMpCj4+ICsjZGVmaW5lICBCWFRfTUlQSV84WF9CWTNfRElWSURFUl9NQVNLKHBvcnQpICAgIFwK Pj4gKwkJCV9NSVBJX1BPUlQocG9ydCwgQlhUX01JUEkxXzhYX0JZM19ESVZJREVSX01BU0ssIFwK Pj4gKwkJCQkJCUJYVF9NSVBJMl84WF9CWTNfRElWSURFUl9NQVNLKQo+PiArI2RlZmluZSAgQlhU X01JUElfOFhfQlkzX0RJVklERVIocG9ydCwgdmFsKSAgICBcCj4+ICsJCQkoKHZhbCAmIDMpIDw8 IEJYVF9NSVBJXzhYX0JZM19TSElGVChwb3J0KSkKPj4gKy8qIFJYIGxvd2VyIGNvbnRyb2wgZGl2 aWRlciB0byBzZWxlY3QgYWN0dWFsIFJYIGNsb2NrIG91dHB1dCBmcm9tIDh4Ki8KPj4gKyNkZWZp bmUgIEJYVF9NSVBJMV9SWF9FU0NMS19MT1dFUl9TSElGVAkJMTYKPj4gKyNkZWZpbmUgIEJYVF9N SVBJMl9SWF9FU0NMS19MT1dFUl9TSElGVAkJMAo+PiArI2RlZmluZSAgQlhUX01JUElfUlhfRVND TEtfTE9XRVJfU0hJRlQocG9ydCkJCVwKPj4gKwkJCV9NSVBJX1BPUlQocG9ydCwgQlhUX01JUEkx X1JYX0VTQ0xLX0xPV0VSX1NISUZULCBcCj4+ICsJCQkJCUJYVF9NSVBJMl9SWF9FU0NMS19MT1dF Ul9TSElGVCkKPj4gKyNkZWZpbmUgIEJYVF9NSVBJMV9SWF9FU0NMS19MT1dFUl9GSVhESVZfTUFT SwkJKDMgPDwgMTYpCj4+ICsjZGVmaW5lICBCWFRfTUlQSTJfUlhfRVNDTEtfTE9XRVJfRklYRElW X01BU0sJCSgzIDw8IDApCj4+ICsjZGVmaW5lICBCWFRfTUlQSV9SWF9FU0NMS19MT1dFUl9GSVhE SVZfTUFTSyhwb3J0KQlcCj4+ICsJCQlfTUlQSV9QT1JUKHBvcnQsIEJYVF9NSVBJMV9SWF9FU0NM S19MT1dFUl9GSVhESVZfTUFTSywgXAo+PiArCQkJCQlCWFRfTUlQSTJfUlhfRVNDTEtfTE9XRVJf RklYRElWX01BU0spCj4+ICsjZGVmaW5lICBCWFRfTUlQSV9SWF9FU0NMS19MT1dFUl9ESVZJREVS KHBvcnQsIHZhbCkJXAo+PiArCQkoKHZhbCAmIDMpIDw8IEJYVF9NSVBJX1JYX0VTQ0xLX0xPV0VS X1NISUZUKHBvcnQpKQo+PiArCj4+ICsjZGVmaW5lIFJYX0RJVklERVJfQklUXzFfMiAgICAgICAg ICAgICAgICAgICAgIDB4Mwo+PiArI2RlZmluZSBSWF9ESVZJREVSX0JJVF8zXzQgICAgICAgICAg ICAgICAgICAgICAweEMKPj4gICAKPj4gICAvKiBCWFQgTUlQSSBtb2RlIGNvbmZpZ3VyZSAqLwo+ PiAgICNkZWZpbmUgIF9CWFRfTUlQSUFfVFJBTlNfSEFDVElWRQkJCTB4NkIwRjgKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYwo+PiBpbmRleCBiYjVlOTVhLi4wMmFlYWU1IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMKPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCj4+IEBAIC0zNjIsMzUgKzM2Miw1 NyBAQCBzdGF0aWMgdm9pZCB2bHZfZHNpX3Jlc2V0X2Nsb2NrcyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwgZW51bSBwb3J0IHBvcnQpCj4+ICAgLyogUHJvZ3JhbSBCWFQgTWlwaSBjbG9j a3MgYW5kIGRpdmlkZXJzICovCj4+ICAgc3RhdGljIHZvaWQgYnh0X2RzaV9wcm9ncmFtX2Nsb2Nr cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCkKPj4gICB7Cj4+IC0JdTMy IHRtcDsKPj4gLQl1MzIgZGl2aWRlcjsKPj4gLQl1MzIgZHNpX3JhdGU7Cj4+IC0JdTMyIHBsbF9y YXRpbzsKPj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPj4gKwl1MzIgdG1wOwo+PiArCXUzMiBkc2lfcmF0ZSA9IDA7Cj4+ICsJdTMyIHBs bF9yYXRpbyA9IDA7Cj4+ICsJdTMyIHJ4X2RpdjsKPj4gKwl1MzIgdHhfZGl2Owo+PiArCXUzMiBy eF9kaXZfdXBwZXI7Cj4+ICsJdTMyIHJ4X2Rpdl9sb3dlcjsKPj4gKwl1MzIgbWlwaV84YnkzX2Rp dmlkZXI7Cj4+ICAgCj4+ICAgCS8qIENsZWFyIG9sZCBjb25maWd1cmF0aW9ucyAqLwo+PiAgIAl0 bXAgPSBJOTE1X1JFQUQoQlhUX01JUElfQ0xPQ0tfQ1RMKTsKPj4gICAJdG1wICY9IH4oQlhUX01J UElfVFhfRVNDTEtfRklYRElWX01BU0socG9ydCkpOwo+PiAtCXRtcCAmPSB+KEJYVF9NSVBJX1JY X0VTQ0xLX0ZJWERJVl9NQVNLKHBvcnQpKTsKPj4gLQl0bXAgJj0gfihCWFRfTUlQSV9FU0NMS19W QVJfRElWX01BU0socG9ydCkpOwo+PiAtCXRtcCAmPSB+KEJYVF9NSVBJX0RQSFlfRElWSURFUl9N QVNLKHBvcnQpKTsKPj4gKwl0bXAgJj0gfihCWFRfTUlQSV9SWF9FU0NMS19VUFBFUl9GSVhESVZf TUFTSyhwb3J0KSk7Cj4+ICsJdG1wICY9IH4oQlhUX01JUElfOFhfQlkzX0RJVklERVJfTUFTSyhw b3J0KSk7Cj4+ICsJdG1wICY9IH4oQlhUX01JUElfUlhfRVNDTEtfTE9XRVJfRklYRElWX01BU0so cG9ydCkpOwo+PiAgIAo+PiAgIAkvKiBHZXQgdGhlIGN1cnJlbnQgRFNJIHJhdGUoYWN0dWFsKSAq Lwo+PiAgIAlwbGxfcmF0aW8gPSBJOTE1X1JFQUQoQlhUX0RTSV9QTExfQ1RMKSAmCj4+ICAgCQkJ CUJYVF9EU0lfUExMX1JBVElPX01BU0s7Cj4+ICAgCWRzaV9yYXRlID0gKEJYVF9SRUZfQ0xPQ0tf S0haICogcGxsX3JhdGlvKSAvIDI7Cj4+ICAgCj4+IC0JLyogTWF4IHBvc3NpYmxlIG91dHB1dCBv ZiBjbG9jayBpcyAzOS41IE1IeiwgcHJvZ3JhbSB2YWx1ZSAtMSAqLwo+PiAtCWRpdmlkZXIgPSAo ZHNpX3JhdGUgLyBCWFRfTUFYX1ZBUl9PVVRQVVRfS0haKSAtIDE7Cj4+IC0JdG1wIHw9IEJYVF9N SVBJX0VTQ0xLX1ZBUl9ESVYocG9ydCwgZGl2aWRlcik7Cj4+ICsJLyoKPj4gKwkgKiB0eCBjbG9j ayBzaG91bGQgYmUgPD0gMjBNSHogYW5kIHRoZSBkaXYgdmFsdWUgbXVzdCBiZQo+PiArCSAqIHN1 YnRyYWN0ZWQgYnkgMSBhcyBwZXIgYnNwZWMKPj4gKwkgKi8KPj4gKwl0eF9kaXYgPSBESVZfUk9V TkRfVVAoZHNpX3JhdGUsIDIwMDAwKSAtIDE7Cj4+ICsJLyoKPj4gKwkgKiByeCBjbG9jayBzaG91 bGQgYmUgPD0gMTUwTUh6IGFuZCB0aGUgZGl2IHZhbHVlIG11c3QgYmUKPj4gKwkgKiBzdWJ0cmFj dGVkIGJ5IDEgYXMgcGVyIGJzcGVjCj4+ICsJICovCj4+ICsJcnhfZGl2ID0gRElWX1JPVU5EX1VQ KGRzaV9yYXRlLCAxNTAwMDApIC0gMTsKPj4gICAKPj4gICAJLyoKPj4gLQkgKiBUeCBlc2NhcGUg Y2xvY2sgbXVzdCBiZSBhcyBjbG9zZSB0byAyME1IeiBwb3NzaWJsZSwgYnV0IHNob3VsZAo+PiAt CSAqIG5vdCBleGNlZWQgaXQuIEhlbmNlIHNlbGVjdCBkaXZpZGUgYnkgMgo+PiArCSAqIHJ4IGRp dmlkZXIgdmFsdWUgbmVlZHMgdG8gYmUgdXBkYXRlZCBpbiB0aGUKPj4gKwkgKiB0d28gZGlmZmVy bnQgYml0IGZpZWxkcyBpbiB0aGUgcmVnaXN0ZXIgaGVuY2Ugc3BsaXR0aW5nIHRoZQo+PiArCSAq IHJ4IGRpdmlkZXIgdmFsdWUgYWNjb3JkaW5nbHkKPj4gICAJICovCj4+IC0JdG1wIHw9IEJYVF9N SVBJX1RYX0VTQ0xLXzhYRElWX0JZMihwb3J0KTsKPj4gKwlyeF9kaXZfbG93ZXIgPSByeF9kaXYg JiBSWF9ESVZJREVSX0JJVF8xXzI7Cj4+ICsJcnhfZGl2X3VwcGVyID0gKHJ4X2RpdiAmIFJYX0RJ VklERVJfQklUXzNfNCkgPj4gMjsKPj4gKwo+PiArCS8qIEFzIHBlciBicHNlYyBwcm9ncmFtIHRo ZSA4LzNYIGNsb2NrIGRpdmlkZXIgdG8gdGhlIGJlbG93IHZhbHVlICovCj4+ICsJaWYgKGRldl9w cml2LT52YnQuZHNpLmNvbmZpZy0+aXNfY21kX21vZGUpCj4+ICsJCW1pcGlfOGJ5M19kaXZpZGVy ID0gMHgyOwo+PiArCWVsc2UKPj4gKwkJbWlwaV84YnkzX2RpdmlkZXIgPSAweDM7Cj4+ICAgCj4+ IC0JdG1wIHw9IEJYVF9NSVBJX1JYX0VTQ0xLXzhYX0JZMyhwb3J0KTsKPj4gKwl0bXAgfD0gQlhU X01JUElfOFhfQlkzX0RJVklERVIocG9ydCwgbWlwaV84YnkzX2RpdmlkZXIpOwo+PiArCXRtcCB8 PSBCWFRfTUlQSV9UWF9FU0NMS19ESVZJREVSKHBvcnQsIHR4X2Rpdik7Cj4+ICsJdG1wIHw9IEJY VF9NSVBJX1JYX0VTQ0xLX0xPV0VSX0RJVklERVIocG9ydCwgcnhfZGl2X2xvd2VyKTsKPj4gKwl0 bXAgfD0gQlhUX01JUElfUlhfRVNDTEtfVVBQRVJfRElWSURFUihwb3J0LCByeF9kaXZfdXBwZXIp Owo+PiAgIAo+PiAgIAlJOTE1X1dSSVRFKEJYVF9NSVBJX0NMT0NLX0NUTCwgdG1wKTsKPj4gICB9 Cj4+IEBAIC01MTMsOSArNTM1LDkgQEAgc3RhdGljIHZvaWQgYnh0X2RzaV9yZXNldF9jbG9ja3Mo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGVudW0gcG9ydCBwb3J0KQo+PiAgIAkvKiBD bGVhciBvbGQgY29uZmlndXJhdGlvbnMgKi8KPj4gICAJdG1wID0gSTkxNV9SRUFEKEJYVF9NSVBJ X0NMT0NLX0NUTCk7Cj4+ICAgCXRtcCAmPSB+KEJYVF9NSVBJX1RYX0VTQ0xLX0ZJWERJVl9NQVNL KHBvcnQpKTsKPj4gLQl0bXAgJj0gfihCWFRfTUlQSV9SWF9FU0NMS19GSVhESVZfTUFTSyhwb3J0 KSk7Cj4+IC0JdG1wICY9IH4oQlhUX01JUElfRVNDTEtfVkFSX0RJVl9NQVNLKHBvcnQpKTsKPj4g LQl0bXAgJj0gfihCWFRfTUlQSV9EUEhZX0RJVklERVJfTUFTSyhwb3J0KSk7Cj4+ICsJdG1wICY9 IH4oQlhUX01JUElfUlhfRVNDTEtfVVBQRVJfRklYRElWX01BU0socG9ydCkpOwo+PiArCXRtcCAm PSB+KEJYVF9NSVBJXzhYX0JZM19ESVZJREVSX01BU0socG9ydCkpOwo+PiArCXRtcCAmPSB+KEJY VF9NSVBJX1JYX0VTQ0xLX0xPV0VSX0ZJWERJVl9NQVNLKHBvcnQpKTsKPj4gICAJSTkxNV9XUklU RShCWFRfTUlQSV9DTE9DS19DVEwsIHRtcCk7Cj4+ICAgCUk5MTVfV1JJVEUoTUlQSV9FT1RfRElT QUJMRShwb3J0KSwgQ0xPQ0tTVE9QKTsKPj4gICB9CgotLSAKVGhhbmtzLAotLVJhbQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==