From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915/bxt: Additional MIPI clock divider form B0 stepping onwards Date: Thu, 04 Feb 2016 15:57:52 +0200 Message-ID: <87lh70efxb.fsf@intel.com> References: <201602031358.39xFct71%fengguang.wu@intel.com> <1454498205-5983-1-git-send-email-m.deepak@intel.com> <87wpqkein5.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id B8B516E145 for ; Thu, 4 Feb 2016 05:58:03 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Deepak, M" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwNCBGZWIgMjAxNiwgIkRlZXBhaywgTSIgPG0uZGVlcGFrQGludGVsLmNvbT4gd3Jv dGU6Cj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IEphbmkgTmlrdWxhIFtt YWlsdG86amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tXQo+PiBTZW50OiBUaHVyc2RheSwgRmVi cnVhcnkgNCwgMjAxNiA2OjI5IFBNCj4+IFRvOiBEZWVwYWssIE0gPG0uZGVlcGFrQGludGVsLmNv bT47IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gQ2M6IERlZXBhaywgTSA8bS5k ZWVwYWtAaW50ZWwuY29tPgo+PiBTdWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW1BBVENIXSBkcm0v aTkxNS9ieHQ6IEFkZGl0aW9uYWwgTUlQSSBjbG9jayBkaXZpZGVyCj4+IGZvcm0gQjAgc3RlcHBp bmcgb253YXJkcwo+PiAKPj4gT24gV2VkLCAwMyBGZWIgMjAxNiwgRGVlcGFrIE0gPG0uZGVlcGFr QGludGVsLmNvbT4gd3JvdGU6Cj4+ID4gVGhlIE1JUEkgY2xvY2sgY2FsY3VsYXRpb25zIGZvciB0 aGUgYWRkdGlvbmFsIGNsb2NrIGFyZSByZXZpc2VkIGZyb20KPj4gPiBCMCBzdGVwcGluZyBvbndh cmRzLCB0aGUgYml0IGRlZmluaXRpb25zIGhhdmUgY2hhbmdlZCBjb21wYXJlZCB0byBvbGQKPj4g PiBzdGVwcGluZy4KPj4gPgo+PiA+IHYyOiBGaXhpbmcgY29tcGlsYXRpb24gd2FybmluZy4KPj4g Cj4+IFdoeSBkaWQgeW91IG1vdmUgYW5kIHJlbmFtZSBldmVyeXRoaW5nIHdoZW4gaXQgd2FzIG5v dCBuZWVkZWQ/Cj4+IAo+PiBCUiwKPj4gSmFuaS4KPj4gCj4gW0RlZXBhaywgTV0gSSBoYXZlIGRl bGV0ZWQgdGhlIG9sZCBtYWNybyBhbmQgYWRkZWQgdGhlIG5ldyBhcyBwZXIgdGhlIG5ldyBkZWZp bml0aW9ucy4gV2l0aCB0aGUgbmV3IGJpdCBmaWVsZHMgbm90aGluZyB3YXMgbWF0Y2hpbmcgYXMg dGhhdCBvZiB0aGUgb2xkLiAKCkl0J3Mgbm90IG5vdGhpbmcuIFBsZW50eSBvZiBtYXNrcyBhbmQg c2hpZnRzIG1hdGNoZWQsIGJ1dCB5b3UgaGFkCnJlbmFtZWQgdGhlIGRlZmluZXMuCgpCZXNpZGVz LCBwbGVhc2UgZG9uJ3QgbW92ZSB0aGUgZGVmaW5pdGlvbnMgd2hlcmUgdGhleSBkb24ndCBiZWxv bmcuIFdlCmFsc28gaGF2ZSB0aGUgY29udmVudGlvbiBvZiBzcGVjaWZ5aW5nIHRoZSBiaXRzIGZy b20gaGlnaGVzdCB0byBsb3dlc3QuCgo+PiAKPj4gPgo+PiA+IFNpZ25lZC1vZmYtYnk6IERlZXBh ayBNIDxtLmRlZXBha0BpbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmggICAgICB8IDEwNCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ PiAtLS0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jIHwgIDY0 ICsrKysrKysrKysrKysrLS0tLS0tLQo+PiA+ICAyIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlv bnMoKyksIDczIGRlbGV0aW9ucygtKQo+PiA+Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggaW5kZXggYzBiZDY5MS4uMjU2OGYzNSAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+PiA+IEBAIC03NjM4LDYgKzc2MzgsNTcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxs cyB7Cj4+ID4KPj4gPiAgLyogTUlQSSBEU0kgcmVnaXN0ZXJzICovCj4+ID4KPj4gPiArI2RlZmlu ZSAgQlhUX01JUEkxX1JYX0xPV0VSX1NISUZUCQkxNgo+PiA+ICsjZGVmaW5lICBCWFRfTUlQSTJf UlhfTE9XRVJfU0hJRlQJCTAKPj4gPiArI2RlZmluZSAgQlhUX01JUElfUlhfTE9XRVJfU0hJRlQo cG9ydCkJXAo+PiA+ICsJCQlfTUlQSV9QT1JUKHBvcnQsIEJYVF9NSVBJMV9SWF9MT1dFUl9TSElG VCwgXAo+PiA+ICsJCQkJQlhUX01JUEkyX1JYX0xPV0VSX1NISUZUKQo+PiA+ICsjZGVmaW5lICBC WFRfTUlQSTFfUlhfTE9XRVJfRElWSURFUl9NQVNLCSgzIDw8IDE2KQo+PiA+ICsjZGVmaW5lICBC WFRfTUlQSTJfUlhfTE9XRVJfRElWSURFUl9NQVNLCSgzIDw8IDApCj4+ID4gKyNkZWZpbmUgIEJY VF9NSVBJX1JYX0xPV0VSX0RJVklERVJfTUFTSyhwb3J0KQlcCj4+ID4gKwkJCSgzIDw8IEJYVF9N SVBJX1JYX0xPV0VSX1NISUZUKHBvcnQpKQo+PiA+ICsjZGVmaW5lICBCWFRfTUlQSV9SWF9MT1dF Ul9ESVZJREVSKHBvcnQsIHZhbCkJXAo+PiA+ICsJCQkoKHZhbCAmIDMpIDw8IEJYVF9NSVBJX1JY X0xPV0VSX1NISUZUKHBvcnQpKQo+PiA+ICsKPj4gPiArI2RlZmluZSAgQlhUX01JUEkxXzhYX0JZ M19TSElGVAkJMTkKPj4gPiArI2RlZmluZSAgQlhUX01JUEkyXzhYX0JZM19TSElGVAkJMwo+PiA+ ICsjZGVmaW5lICBCWFRfTUlQSV84WF9CWTNfU0hJRlQocG9ydCkgICAgICAgICAgXAo+PiA+ICsJ CQlfTUlQSV9QT1JUKHBvcnQsIEJYVF9NSVBJMV84WF9CWTNfU0hJRlQsIFwKPj4gPiArCQkJCUJY VF9NSVBJMl84WF9CWTNfU0hJRlQpCj4+ID4gKyNkZWZpbmUgIEJYVF9NSVBJMV84WF9CWTNfRElW SURFUl9NQVNLCQkoMyA8PCAxOSkKPj4gPiArI2RlZmluZSAgQlhUX01JUEkyXzhYX0JZM19ESVZJ REVSX01BU0sJCSgzIDw8IDMpCj4+ID4gKyNkZWZpbmUgIEJYVF9NSVBJXzhYX0JZM19ESVZJREVS X01BU0socG9ydCkJXAo+PiA+ICsJCQkoMyA8PCBCWFRfTUlQSV84WF9CWTNfU0hJRlQocG9ydCkp Cj4+ID4gKyNkZWZpbmUgIEJYVF9NSVBJXzhYX0JZM19ESVZJREVSKHBvcnQsIHZhbCkJXAo+PiA+ ICsJCQkoKHZhbCAmIDMpIDw8IEJYVF9NSVBJXzhYX0JZM19TSElGVChwb3J0KSkKPj4gPiArCj4+ ID4gKyNkZWZpbmUgIEJYVF9NSVBJMV9SWF9VUFBFUl9TSElGVAkJMjEKPj4gPiArI2RlZmluZSAg QlhUX01JUEkyX1JYX1VQUEVSX1NISUZUCQk1Cj4+ID4gKyNkZWZpbmUgIEJYVF9NSVBJX1JYX1VQ UEVSX1NISUZUKHBvcnQpCVwKPj4gPiArCQkJX01JUElfUE9SVChwb3J0LCBCWFRfTUlQSTFfUlhf VVBQRVJfU0hJRlQsIFwKPj4gPiArCQkJCUJYVF9NSVBJMl9SWF9VUFBFUl9TSElGVCkKPj4gPiAr I2RlZmluZSAgQlhUX01JUEkxX1JYX1VQUEVSX0RJVklERVJfTUFTSwkoMyA8PCAyMSkKPj4gPiAr I2RlZmluZSAgQlhUX01JUEkyX1JYX1VQUEVSX0RJVklERVJfTUFTSwkoMyA8PCA1KQo+PiA+ICsj ZGVmaW5lICBCWFRfTUlQSV9SWF9VUFBFUl9ESVZJREVSX01BU0socG9ydCkJXAo+PiA+ICsJCQko MyA8PCBCWFRfTUlQSV9SWF9VUFBFUl9TSElGVChwb3J0KSkKPj4gPiArI2RlZmluZSAgQlhUX01J UElfUlhfVVBQRVJfRElWSURFUihwb3J0LCB2YWwpCVwKPj4gPiArCQkJKCh2YWwgJiAzKSA8PCBC WFRfTUlQSV9SWF9VUFBFUl9TSElGVChwb3J0KSkKPj4gPiArCj4+ID4gKyNkZWZpbmUgIEJYVF9N SVBJMV9UWF9TSElGVAkJCTI2Cj4+ID4gKyNkZWZpbmUgIEJYVF9NSVBJMl9UWF9TSElGVAkJCTEw Cj4+ID4gKyNkZWZpbmUgIEJYVF9NSVBJX1RYX1NISUZUKHBvcnQpCQlcCj4+ID4gKwkJX01JUElf UE9SVChwb3J0LCBCWFRfTUlQSTFfVFhfU0hJRlQsIFwKPj4gPiArCQkJCUJYVF9NSVBJMl9UWF9T SElGVCkKPj4gPiArI2RlZmluZSAgQlhUX01JUEkxX1RYX0RJVklERVJfTUFTSwkJKDB4M0YgPDwg MjYpCj4+ID4gKyNkZWZpbmUgIEJYVF9NSVBJMl9UWF9ESVZJREVSX01BU0sJCSgweDNGIDw8IDEw KQo+PiA+ICsjZGVmaW5lICBCWFRfTUlQSV9UWF9ESVZJREVSX01BU0socG9ydCkJCVwKPj4gPiAr CQkJKDB4M0YgPDwgQlhUX01JUElfVFhfU0hJRlQocG9ydCkpCj4+ID4gKyNkZWZpbmUgIEJYVF9N SVBJX1RYX0RJVklERVIocG9ydCwgdmFsKQlcCj4+ID4gKwkJCSgodmFsICYgMHgzRikgPDwgQlhU X01JUElfVFhfU0hJRlQocG9ydCkpCj4+ID4gKwo+PiA+ICsjZGVmaW5lIFJYX0RJVklERVJfQklU XzFfMgkJCTB4Mwo+PiA+ICsjZGVmaW5lIFJYX0RJVklERVJfQklUXzNfNAkJCTB4Qwo+PiA+ICsK Pj4gPiAgI2RlZmluZSBfTUlQSV9QT1JUKHBvcnQsIGEsIGMpCV9QT1JUMyhwb3J0LCBhLCAwLCBj KQkvKiBwb3J0cyBBCj4+IGFuZCBDIG9ubHkgKi8KPj4gPiAgI2RlZmluZSBfTU1JT19NSVBJKHBv cnQsIGEsIGMpCV9NTUlPKF9NSVBJX1BPUlQocG9ydCwgYSwgYykpCj4+ID4KPj4gPiBAQCAtNzY1 MCw1OSArNzcwMSw2IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+PiA+ICAjZGVmaW5l ICBCWFRfTUlQSV9ESVZfU0hJRlQocG9ydCkJCVwKPj4gPiAgCQkJX01JUElfUE9SVChwb3J0LCBC WFRfTUlQSTFfRElWX1NISUZULCBcCj4+ID4gIAkJCQkJQlhUX01JUEkyX0RJVl9TSElGVCkKPj4g PiAtLyogVmFyIGNsb2NrIGRpdmlkZXIgdG8gZ2VuZXJhdGUgVFggc291cmNlLiBSZXN1bHQgbXVz dCBiZSA8IDM5LjUgTSAqLwo+PiA+IC0jZGVmaW5lICBCWFRfTUlQSTFfRVNDTEtfVkFSX0RJVl9N QVNLCQkoMHgzRiA8PCAyNikKPj4gPiAtI2RlZmluZSAgQlhUX01JUEkyX0VTQ0xLX1ZBUl9ESVZf TUFTSwkJKDB4M0YgPDwgMTApCj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJX0VTQ0xLX1ZBUl9ESVZf TUFTSyhwb3J0KQlcCj4+ID4gLQkJCV9NSVBJX1BPUlQocG9ydCwKPj4gQlhUX01JUEkxX0VTQ0xL X1ZBUl9ESVZfTUFTSywgXAo+PiA+IC0KPj4gCUJYVF9NSVBJMl9FU0NMS19WQVJfRElWX01BU0sp Cj4+ID4gLQo+PiA+IC0jZGVmaW5lICBCWFRfTUlQSV9FU0NMS19WQVJfRElWKHBvcnQsIHZhbCkJ XAo+PiA+IC0JCQkodmFsIDw8IEJYVF9NSVBJX0RJVl9TSElGVChwb3J0KSkKPj4gPiAtLyogVFgg Y29udHJvbCBkaXZpZGVyIHRvIHNlbGVjdCBhY3R1YWwgVFggY2xvY2sgb3V0cHV0IGZyb20gKDh4 L3ZhcikgKi8KPj4gPiAtI2RlZmluZSAgQlhUX01JUEkxX1RYX0VTQ0xLX1NISUZUCQkyMQo+PiA+ IC0jZGVmaW5lICBCWFRfTUlQSTJfVFhfRVNDTEtfU0hJRlQJCTUKPj4gPiAtI2RlZmluZSAgQlhU X01JUElfVFhfRVNDTEtfU0hJRlQocG9ydCkJCVwKPj4gPiAtCQkJX01JUElfUE9SVChwb3J0LCBC WFRfTUlQSTFfVFhfRVNDTEtfU0hJRlQsIFwKPj4gPiAtCQkJCQlCWFRfTUlQSTJfVFhfRVNDTEtf U0hJRlQpCj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJMV9UWF9FU0NMS19GSVhESVZfTUFTSwkJKDMg PDwgMjEpCj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJMl9UWF9FU0NMS19GSVhESVZfTUFTSwkJKDMg PDwgNSkKPj4gPiAtI2RlZmluZSAgQlhUX01JUElfVFhfRVNDTEtfRklYRElWX01BU0socG9ydCkJ XAo+PiA+IC0JCQlfTUlQSV9QT1JUKHBvcnQsCj4+IEJYVF9NSVBJMV9UWF9FU0NMS19GSVhESVZf TUFTSywgXAo+PiA+IC0KPj4gCUJYVF9NSVBJMl9UWF9FU0NMS19GSVhESVZfTUFTSykKPj4gPiAt I2RlZmluZSAgQlhUX01JUElfVFhfRVNDTEtfOFhESVZfQlkyKHBvcnQpCVwKPj4gPiAtCQkoMHgw IDw8IEJYVF9NSVBJX1RYX0VTQ0xLX1NISUZUKHBvcnQpKQo+PiA+IC0jZGVmaW5lICBCWFRfTUlQ SV9UWF9FU0NMS184WERJVl9CWTQocG9ydCkJXAo+PiA+IC0JCSgweDEgPDwgQlhUX01JUElfVFhf RVNDTEtfU0hJRlQocG9ydCkpCj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJX1RYX0VTQ0xLXzhYRElW X0JZOChwb3J0KQlcCj4+ID4gLQkJKDB4MiA8PCBCWFRfTUlQSV9UWF9FU0NMS19TSElGVChwb3J0 KSkKPj4gPiAtLyogUlggY29udHJvbCBkaXZpZGVyIHRvIHNlbGVjdCBhY3R1YWwgUlggY2xvY2sg b3V0cHV0IGZyb20gOHgqLwo+PiA+IC0jZGVmaW5lICBCWFRfTUlQSTFfUlhfRVNDTEtfU0hJRlQJ CTE5Cj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJMl9SWF9FU0NMS19TSElGVAkJMwo+PiA+IC0jZGVm aW5lICBCWFRfTUlQSV9SWF9FU0NMS19TSElGVChwb3J0KQkJXAo+PiA+IC0JCQlfTUlQSV9QT1JU KHBvcnQsIEJYVF9NSVBJMV9SWF9FU0NMS19TSElGVCwgXAo+PiA+IC0JCQkJCUJYVF9NSVBJMl9S WF9FU0NMS19TSElGVCkKPj4gPiAtI2RlZmluZSAgQlhUX01JUEkxX1JYX0VTQ0xLX0ZJWERJVl9N QVNLCQkoMyA8PCAxOSkKPj4gPiAtI2RlZmluZSAgQlhUX01JUEkyX1JYX0VTQ0xLX0ZJWERJVl9N QVNLCQkoMyA8PCAzKQo+PiA+IC0jZGVmaW5lICBCWFRfTUlQSV9SWF9FU0NMS19GSVhESVZfTUFT Syhwb3J0KQlcCj4+ID4gLQkJKDMgPDwgQlhUX01JUElfUlhfRVNDTEtfU0hJRlQocG9ydCkpCj4+ ID4gLSNkZWZpbmUgIEJYVF9NSVBJX1JYX0VTQ0xLXzhYX0JZMihwb3J0KQlcCj4+ID4gLQkJKDEg PDwgQlhUX01JUElfUlhfRVNDTEtfU0hJRlQocG9ydCkpCj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJ X1JYX0VTQ0xLXzhYX0JZMyhwb3J0KQlcCj4+ID4gLQkJKDIgPDwgQlhUX01JUElfUlhfRVNDTEtf U0hJRlQocG9ydCkpCj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJX1JYX0VTQ0xLXzhYX0JZNChwb3J0 KQlcCj4+ID4gLQkJKDMgPDwgQlhUX01JUElfUlhfRVNDTEtfU0hJRlQocG9ydCkpCj4+ID4gLS8q IEJYVC1BIFdBOiBBbHdheXMgcHJvZyBEUEhZIGRpdmlkZXJzIHRvIDAwICovCj4+ID4gLSNkZWZp bmUgIEJYVF9NSVBJMV9EUEhZX0RJVl9TSElGVAkJMTYKPj4gPiAtI2RlZmluZSAgQlhUX01JUEky X0RQSFlfRElWX1NISUZUCQkwCj4+ID4gLSNkZWZpbmUgIEJYVF9NSVBJX0RQSFlfRElWX1NISUZU KHBvcnQpCQlcCj4+ID4gLQkJCV9NSVBJX1BPUlQocG9ydCwgQlhUX01JUEkxX0RQSFlfRElWX1NI SUZULCBcCj4+ID4gLQkJCQkJQlhUX01JUEkyX0RQSFlfRElWX1NISUZUKQo+PiA+IC0jZGVmaW5l ICBCWFRfTUlQSV8xX0RQSFlfRElWSURFUl9NQVNLCQkoMyA8PCAxNikKPj4gPiAtI2RlZmluZSAg QlhUX01JUElfMl9EUEhZX0RJVklERVJfTUFTSwkJKDMgPDwgMCkKPj4gPiAtI2RlZmluZSAgQlhU X01JUElfRFBIWV9ESVZJREVSX01BU0socG9ydCkJXAo+PiA+IC0JCSgzIDw8IEJYVF9NSVBJX0RQ SFlfRElWX1NISUZUKHBvcnQpKQo+PiA+IC0KPj4gPiAgLyogQlhUIE1JUEkgbW9kZSBjb25maWd1 cmUgKi8KPj4gPiAgI2RlZmluZSAgX0JYVF9NSVBJQV9UUkFOU19IQUNUSVZFCQkJMHg2QjBGOAo+ PiA+ICAjZGVmaW5lICBfQlhUX01JUElDX1RSQU5TX0hBQ1RJVkUJCQkweDZCOEY4Cj4+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYwo+PiA+IGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCj4+ID4gaW5kZXggYmI1ZTk1YS4uNzQz NTExNSAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxs LmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMKPj4gPiBA QCAtMzYyLDM1ICszNjIsNTkgQEAgc3RhdGljIHZvaWQgdmx2X2RzaV9yZXNldF9jbG9ja3Moc3Ry dWN0Cj4+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgZW51bSBwb3J0IHBvcnQpCj4+ID4gIC8q IFByb2dyYW0gQlhUIE1pcGkgY2xvY2tzIGFuZCBkaXZpZGVycyAqLyAgc3RhdGljIHZvaWQKPj4g PiBieHRfZHNpX3Byb2dyYW1fY2xvY2tzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9y dCBwb3J0KSAgewo+PiA+IC0JdTMyIHRtcDsKPj4gPiAtCXUzMiBkaXZpZGVyOwo+PiA+IC0JdTMy IGRzaV9yYXRlOwo+PiA+IC0JdTMyIHBsbF9yYXRpbzsKPj4gPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ID4gKwl1MzIgdG1wOwo+PiA+ ICsJdTMyIGRzaV9yYXRlID0gMDsKPj4gPiArCXUzMiBwbGxfcmF0aW8gPSAwOwo+PiA+ICsJdTMy IHJ4X2RpdjsKPj4gPiArCXUzMiB0eF9kaXY7Cj4+ID4gKwl1MzIgcnhfZGl2X3VwcGVyOwo+PiA+ ICsJdTMyIHJ4X2Rpdl9sb3dlcjsKPj4gPiArCXUzMiBtaXBpXzhieTNfZGl2aWRlcjsKPj4gPgo+ PiA+ICAJLyogQ2xlYXIgb2xkIGNvbmZpZ3VyYXRpb25zICovCj4+ID4gIAl0bXAgPSBJOTE1X1JF QUQoQlhUX01JUElfQ0xPQ0tfQ1RMKTsKPj4gPiAtCXRtcCAmPSB+KEJYVF9NSVBJX1RYX0VTQ0xL X0ZJWERJVl9NQVNLKHBvcnQpKTsKPj4gPiAtCXRtcCAmPSB+KEJYVF9NSVBJX1JYX0VTQ0xLX0ZJ WERJVl9NQVNLKHBvcnQpKTsKPj4gPiAtCXRtcCAmPSB+KEJYVF9NSVBJX0VTQ0xLX1ZBUl9ESVZf TUFTSyhwb3J0KSk7Cj4+ID4gLQl0bXAgJj0gfihCWFRfTUlQSV9EUEhZX0RJVklERVJfTUFTSyhw b3J0KSk7Cj4+ID4gKwl0bXAgJj0gfihCWFRfTUlQSV84WF9CWTNfRElWSURFUl9NQVNLKHBvcnQp KTsKPj4gPiArCXRtcCAmPSB+KEJYVF9NSVBJX1JYX0xPV0VSX0RJVklERVJfTUFTSyhwb3J0KSk7 Cj4+ID4gKwl0bXAgJj0gfihCWFRfTUlQSV9SWF9VUFBFUl9ESVZJREVSX01BU0socG9ydCkpOwo+ PiA+ICsJdG1wICY9IH4oQlhUX01JUElfVFhfRElWSURFUl9NQVNLKHBvcnQpKTsKPj4gPgo+PiA+ ICAJLyogR2V0IHRoZSBjdXJyZW50IERTSSByYXRlKGFjdHVhbCkgKi8KPj4gPiAgCXBsbF9yYXRp byA9IEk5MTVfUkVBRChCWFRfRFNJX1BMTF9DVEwpICYKPj4gPiAtCQkJCUJYVF9EU0lfUExMX1JB VElPX01BU0s7Cj4+ID4gKwkJCQkJQlhUX0RTSV9QTExfUkFUSU9fTUFTSzsKPj4gPiArCj4+ID4g KwkvKiBUbyBnZXQgOFggY2xvY2ssIGRpdmlkZSByZWZfZnJlcSAqIHBsbCByYXRpbyBieSAyIGFz IHBlciBic3BlYyAqLwo+PiA+ICAJZHNpX3JhdGUgPSAoQlhUX1JFRl9DTE9DS19LSFogKiBwbGxf cmF0aW8pIC8gMjsKPj4gPgo+PiA+IC0JLyogTWF4IHBvc3NpYmxlIG91dHB1dCBvZiBjbG9jayBp cyAzOS41IE1IeiwgcHJvZ3JhbSB2YWx1ZSAtMSAqLwo+PiA+IC0JZGl2aWRlciA9IChkc2lfcmF0 ZSAvIEJYVF9NQVhfVkFSX09VVFBVVF9LSFopIC0gMTsKPj4gPiAtCXRtcCB8PSBCWFRfTUlQSV9F U0NMS19WQVJfRElWKHBvcnQsIGRpdmlkZXIpOwo+PiA+ICsJLyoKPj4gPiArCSAqIHR4IGNsb2Nr IHNob3VsZCBiZSA8PSAyME1IeiBhbmQgdGhlIGRpdiB2YWx1ZSBtdXN0IGJlCj4+ID4gKwkgKiBz dWJ0cmFjdGVkIGJ5IDEgYXMgcGVyIGJzcGVjCj4+ID4gKwkgKi8KPj4gPiArCXR4X2RpdiA9IERJ Vl9ST1VORF9VUChkc2lfcmF0ZSwgMjAwMDApIC0gMTsKPj4gPiArCS8qCj4+ID4gKwkgKiByeCBj bG9jayBzaG91bGQgYmUgPD0gMTUwTUh6IGFuZCB0aGUgZGl2IHZhbHVlIG11c3QgYmUKPj4gPiAr CSAqIHN1YnRyYWN0ZWQgYnkgMSBhcyBwZXIgYnNwZWMKPj4gPiArCSAqLwo+PiA+ICsJcnhfZGl2 ID0gRElWX1JPVU5EX1VQKGRzaV9yYXRlLCAxNTAwMDApIC0gMTsKPj4gPgo+PiA+ICAJLyoKPj4g PiAtCSAqIFR4IGVzY2FwZSBjbG9jayBtdXN0IGJlIGFzIGNsb3NlIHRvIDIwTUh6IHBvc3NpYmxl LCBidXQgc2hvdWxkCj4+ID4gLQkgKiBub3QgZXhjZWVkIGl0LiBIZW5jZSBzZWxlY3QgZGl2aWRl IGJ5IDIKPj4gPiArCSAqIHJ4IGRpdmlkZXIgdmFsdWUgbmVlZHMgdG8gYmUgdXBkYXRlZCBpbiB0 aGUKPj4gPiArCSAqIHR3byBkaWZmZXJudCBiaXQgZmllbGRzIGluIHRoZSByZWdpc3RlciBoZW5j ZSBzcGxpdHRpbmcgdGhlCj4+ID4gKwkgKiByeCBkaXZpZGVyIHZhbHVlIGFjY29yZGluZ2x5Cj4+ ID4gIAkgKi8KPj4gPiAtCXRtcCB8PSBCWFRfTUlQSV9UWF9FU0NMS184WERJVl9CWTIocG9ydCk7 Cj4+ID4gKwlyeF9kaXZfbG93ZXIgPSByeF9kaXYgJiBSWF9ESVZJREVSX0JJVF8xXzI7Cj4+ID4g KwlyeF9kaXZfdXBwZXIgPSAocnhfZGl2ICYgUlhfRElWSURFUl9CSVRfM180KSA+PiAyOwo+PiA+ ICsKPj4gPiArCS8qIEFzIHBlciBicHNlYyBwcm9ncmFtIHRoZSA4LzNYIGNsb2NrIGRpdmlkZXIg dG8gdGhlIGJlbG93IHZhbHVlICovCj4+ID4gKwlpZiAoZGV2X3ByaXYtPnZidC5kc2kuY29uZmln LT5pc19jbWRfbW9kZSkKPj4gPiArCQltaXBpXzhieTNfZGl2aWRlciA9IDB4MjsKPj4gPiArCWVs c2UKPj4gPiArCQltaXBpXzhieTNfZGl2aWRlciA9IDB4MzsKPj4gPgo+PiA+IC0JdG1wIHw9IEJY VF9NSVBJX1JYX0VTQ0xLXzhYX0JZMyhwb3J0KTsKPj4gPiArCXRtcCB8PSBCWFRfTUlQSV84WF9C WTNfRElWSURFUihwb3J0LCBtaXBpXzhieTNfZGl2aWRlcik7Cj4+ID4gKwl0bXAgfD0gQlhUX01J UElfVFhfRElWSURFUihwb3J0LCB0eF9kaXYpOwo+PiA+ICsJdG1wIHw9IEJYVF9NSVBJX1JYX0xP V0VSX0RJVklERVIocG9ydCwgcnhfZGl2X2xvd2VyKTsKPj4gPiArCXRtcCB8PSBCWFRfTUlQSV9S WF9VUFBFUl9ESVZJREVSKHBvcnQsIHJ4X2Rpdl91cHBlcik7Cj4+ID4KPj4gPiAgCUk5MTVfV1JJ VEUoQlhUX01JUElfQ0xPQ0tfQ1RMLCB0bXApOyAgfSBAQCAtNTEyLDEwICs1MzYsMTAKPj4gQEAg c3RhdGljCj4+ID4gdm9pZCBieHRfZHNpX3Jlc2V0X2Nsb2NrcyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwgZW51bSBwb3J0Cj4+ID4gcG9ydCkKPj4gPgo+PiA+ICAJLyogQ2xlYXIgb2xk IGNvbmZpZ3VyYXRpb25zICovCj4+ID4gIAl0bXAgPSBJOTE1X1JFQUQoQlhUX01JUElfQ0xPQ0tf Q1RMKTsKPj4gPiAtCXRtcCAmPSB+KEJYVF9NSVBJX1RYX0VTQ0xLX0ZJWERJVl9NQVNLKHBvcnQp KTsKPj4gPiAtCXRtcCAmPSB+KEJYVF9NSVBJX1JYX0VTQ0xLX0ZJWERJVl9NQVNLKHBvcnQpKTsK Pj4gPiAtCXRtcCAmPSB+KEJYVF9NSVBJX0VTQ0xLX1ZBUl9ESVZfTUFTSyhwb3J0KSk7Cj4+ID4g LQl0bXAgJj0gfihCWFRfTUlQSV9EUEhZX0RJVklERVJfTUFTSyhwb3J0KSk7Cj4+ID4gKwl0bXAg Jj0gfihCWFRfTUlQSV84WF9CWTNfRElWSURFUl9NQVNLKHBvcnQpKTsKPj4gPiArCXRtcCAmPSB+ KEJYVF9NSVBJX1JYX0xPV0VSX0RJVklERVJfTUFTSyhwb3J0KSk7Cj4+ID4gKwl0bXAgJj0gfihC WFRfTUlQSV9SWF9VUFBFUl9ESVZJREVSX01BU0socG9ydCkpOwo+PiA+ICsJdG1wICY9IH4oQlhU X01JUElfVFhfRElWSURFUl9NQVNLKHBvcnQpKTsKPj4gPiAgCUk5MTVfV1JJVEUoQlhUX01JUElf Q0xPQ0tfQ1RMLCB0bXApOwo+PiA+ICAJSTkxNV9XUklURShNSVBJX0VPVF9ESVNBQkxFKHBvcnQp LCBDTE9DS1NUT1ApOyAgfQo+PiAKPj4gLS0KPj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291 cmNlIFRlY2hub2xvZ3kgQ2VudGVyCgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNl IFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==