From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/dp: Use large transactions for I2C over AUX Date: Wed, 11 Feb 2015 14:05:21 +0200 Message-ID: <20150211120521.GS9152@intel.com> References: <1423593488-14470-1-git-send-email-simon.farnsworth@onelan.co.uk> 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 1522089C07 for ; Wed, 11 Feb 2015 04:05:26 -0800 (PST) Content-Disposition: inline In-Reply-To: <1423593488-14470-1-git-send-email-simon.farnsworth@onelan.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Simon Farnsworth Cc: Thierry Reding , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBGZWIgMTAsIDIwMTUgYXQgMDY6Mzg6MDhQTSArMDAwMCwgU2ltb24gRmFybnN3b3J0 aCB3cm90ZToKPiBPbGRlciBEaXNwbGF5UG9ydCB0byBEVkktRCBEdWFsIExpbmsgYWRhcHRlcnMg ZGVzaWduZWQgYnkgQml6bGluayBoYXZlIGJ1Z3MKPiBpbiB0aGVpciBJMkMgb3ZlciBBVVggaW1w bGVtZW50YXRpb24gKGZpeGVkIGluIG5ld2VyIHJldmlzaW9ucykuIFRoZXkgd29yawo+IGZpbmUg d2l0aCBXaW5kb3dzLCBidXQgZmFpbCB3aXRoIExpbnV4Lgo+IAo+IEl0IHR1cm5zIG91dCB0aGF0 IHRoZXkgY2Fubm90IGtlZXAgYW4gSTJDIHRyYW5zYWN0aW9uIG9wZW4gdW5sZXNzIHRoZQo+IHBy ZXZpb3VzIHJlYWQgd2FzIDE2IGJ5dGVzOyBzaG9ydGVyIHJlYWRzIGNhbiBvbmx5IGJlIGZvbGxv d2VkIGJ5IGEgemVybwo+IGJ5dGUgdHJhbnNmZXIgZW5kaW5nIHRoZSBJMkMgdHJhbnNhY3Rpb24u Cj4gCj4gQ29weSBXaW5kb3dzJ3MgYmVoYXZpb3VyLCBhbmQgcmVhZCAxNiBieXRlcyBhdCBhIHRp bWUuIElmIHdlIGdldCBhIHNob3J0Cj4gcmVwbHksIGFzc3VtZSB0aGF0IHRoZXJlJ3MgYSBoYXJk d2FyZSBib3R0bGVuZWNrLCBhbmQgc2hyaW5rIG91ciByZWFkIHNpemUKPiB0byBtYXRjaC4gRm9y IHRoaXMgcHVycG9zZSwgdXNlIHRoZSBhbGdvcml0aG0gaW4gdGhlIERpc3BsYXlQb3J0IDEuMiBz cGVjLAo+IGluIHRoZSBob3BlcyB0aGF0IGl0J2xsIGJlIGNsb3Nlc3QgdG8gd2hhdCBXaW5kb3dz IGRvZXMuCj4gCj4gQWxzbyBwcm92aWRlIGFuIHVuc2FmZSBtb2R1bGUgcGFyYW1ldGVyIGZvciB0 ZXN0aW5nIHNtYWxsZXIgdHJhbnNmZXIgc2l6ZXMsCj4gaW4gY2FzZSB0aGVyZSBhcmUgc2lua3Mg b3V0IHRoZXJlIHRoYXQgY2Fubm90IHdvcmsgd2l0aCBXaW5kb3dzLgo+IAo+IE5vdGUgYWxzbyB0 aGF0IGRlc3BpdGUgdGhlIHByZXZpb3VzIGNvbW1lbnQgaW4gZHJtX2RwX2kyY194ZmVyLCB0aGlz IHNwZWVkcwo+IHVwIG5hdGl2ZSBEUCBFRElEIHJlYWRzOyBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPiBmb3VuZAo+IHRoZSBmb2xsb3dpbmcgY2hhbmdlcyBp biBoaXMgdGVzdGluZzoKPiAKPiBEZXZpY2UgdW5kZXIgdGVzdDogICAgIG9sZCAgLT4gd2l0aCB0 aGlzIHBhdGNoCj4gRFAtPkRWSSAoT1VJIDAwMWNmOCk6ICA0MG1zIC0+IDM1bXMKPiBEUC0+VkdB IChPVUkgMDAyMmI5KTogIDQ1bXMgLT4gMzhtcwo+IFpvdGFjIERQLT4yeEhETUk6ICAgICAgMjVt cyAtPiAgNG1zCj4gQXN1cyBQQjI3OCBtb25pdG9yOiAgICAyMm1zIC0+ICAzbXMKPiAKPiBBIGJh Y2sgb2YgdGhlIGVudmVsb3BlIGNhbGN1bGF0aW9uIHNob3dzIHRoYXQgcGVhayB0aGVvcmV0aWNh bCB0cmFuc2ZlciByYXRlCj4gZm9yIDEgYnl0ZSByZWFkcyBpcyBhcm91bmQgNjAga2JpdC9zOyB3 aXRoIDE2IGJ5dGUgcmVhZHMsIHRoaXMgaW5jcmVhc2VzIHRvCj4gYXJvdW5kIDUwMCBrYml0L3Ms IHdoaWNoIGV4cGxhaW5zIHRoZSBpbmNyZWFzZSBpbiBzcGVlZC4KPiAKPiBCdWd6aWxsYTogaHR0 cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUyMjgKPiBUZXN0ZWQt Ynk6IEFpZGFuIE1hcmtzIDxhaWRhbmFtYXJrc0BnbWFpbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTog U2ltb24gRmFybnN3b3J0aCA8c2ltb24uZmFybnN3b3J0aEBvbmVsYW4uY28udWs+Cj4gLS0tCj4g Cj4gdjQgY2hhbmdlczoKPiAKPiAgKiBDaGFuZ2Ugc2hvcnQgcmVwbHkgYWxnb3JpdGhtIGFmdGVy IHN1Z2dlc3Rpb25zIGZyb20gVmlsbGUuCj4gCj4gICogRXhwYW5kZWQgY29tbWl0IG1lc3NhZ2Uu Cj4gCj4gICogTWFyayB0aGUgbW9kdWxlIHBhcmFtZXRlciB1bnNhZmUuCj4gCj4gICogVXNlIGNs YW1wKCkgdG8gYnJpbmcgdGhlIG1vZHVsZSBwYXJhbWV0ZXIgaW50byByYW5nZSB3aGVuIHVzZWQu Cj4gCj4gdjMgY2hhbmdlcywgYWZ0ZXIgZmVlZGJhY2sgZnJvbSBWaWxsZSBhbmQgbW9yZSB0ZXN0 aW5nIG9mIFdpbmRvd3M6Cj4gCj4gICogQ2hhbmdlIHRoZSBzaG9ydCByZXBseSBhbGdvcml0aG0g dG8gbWF0Y2ggVmlsbGUncyBkZXNjcmlwdGlvbiBvZiB0aGUKPiAgICBEaXNwbGF5UG9ydCAxLjIg c3BlYyB3b3JkaW5nLgo+IAo+ICAqIEFkZCBhIG1vZHVsZSBwYXJhbWV0ZXIgdG8gc2V0IHRoZSBk ZWZhdWx0IHRyYW5zZmVyIHNpemUgZm9yCj4gICAgZXhwZXJpbWVudHMuIFJlcXVlc3RlZCBvdmVy IElSQyBieSBWaWxsZS4KPiAKPiBOby1vbmUncyBiZWVuIGFibGUgdG8gZmluZCBhIGRldmljZSB0 aGF0IGRvZXMgc2hvcnQgcmVwbGllcywgYnV0IGV4cGVyaW1lbnRzCj4gc2hvdyB0aGF0IGJpZ2dl ciByZWFkcyBhcmUgZmFzdGVyIG9uIG1vc3QgZGV2aWNlcy4gVmlsbGUgZ290Ogo+IAo+ICBEUC0+ RFZJIChPVUkgMDAxY2Y4KTogIDQwbXMgLT4gMzVtcwo+ICBEUC0+VkdBIChPVUkgMDAyMmI5KTog IDQ1bXMgLT4gMzhtcwo+ICBab3RhYyBEUC0+MnhIRE1JOiAgICAgIDI1bXMgLT4gIDRtcwo+IAo+ IHYyIGNoYW5nZXMsIGFmdGVyIGZlZWRiYWNrIGZyb20gVGhpZXJyeSBhbmQgVmlsbGU6Cj4gCj4g ICogSGFuZGxlIHNob3J0IHJlcGxpZXMuIEkndmUgZGVjaWRlZCAoYXJiaXRyYXJpbHkpIHRoYXQg YSBzaG9ydCByZXBseQo+ICAgIHJlc3VsdHMgaW4gdXMgZHJvcHBpbmcgYmFjayB0byB0aGUgbmV3 bHkgY2hvc2VuIHNpemUgZm9yIHRoZSByZXN0IG9mIHRoaXMKPiAgICBJMkMgdHJhbnNhY3Rpb24u IFRodXMsIGdpdmVuIGFuIGF0dGVtcHQgdG8gcmVhZCB0aGUgZmlyc3QgMTYgYnl0ZXMgb2YKPiAg ICBFRElELCBhbmQgYSBzaW5rIHRoYXQgb25seSBkb2VzIDQgYnl0ZXMgb2YgYnVmZmVyaW5nLCB3 ZSB3aWxsIHNlZSB0aGUKPiAgICBmb2xsb3dpbmcgQVVYIHRyYW5zZmVycyBmb3IgdGhlIEVESUQg cmVhZCAoYWZ0ZXIgYWRkcmVzcyBpcyBzZXQpOgo+IAo+ICAgIDxzZXQgYWRkcmVzcywgYmxvY2sg ZXRjPgo+ICAgIFJlYWQgMTYgYnl0ZXMgZnJvbSBJMkMgb3ZlciBBVVguCj4gICAgUmVwbHkgd2l0 aCA0IGJ5dGVzCj4gICAgUmVhZCA0IGJ5dGVzCj4gICAgUmVwbHkgd2l0aCA0IGJ5dGVzCj4gICAg UmVhZCA0IGJ5dGVzCj4gICAgUmVwbHkgd2l0aCA0IGJ5dGVzCj4gICAgUmVhZCA0IGJ5dGVzCj4g ICAgUmVwbHkgd2l0aCA0IGJ5dGVzCj4gICAgPGVuZCBJMkMgdHJhbnNhY3Rpb24+Cj4gCj4gTm90 ZSB0aGF0IEkndmUgbm90IGxvb2tlZCBhdCBNU1Qgc3VwcG9ydCAtIEkgaGF2ZSBuZWl0aGVyIHRo ZSBEUCAxLjIgc3BlYwo+IG5vciBhbnkgTVNUIGJyYW5jaCBkZXZpY2VzLCBzbyBJIGNhbid0IHRl c3QgYW55dGhpbmcgSSB3cml0ZSBvciBjaGVjayBpdAo+IGFnYWluc3QgYSBzcGVjLiBJdCBsb29r cyBmcm9tIHRoZSBjb2RlLCBob3dldmVyLCBhcyBpZiBNU1QgaGFzIHRoZSBicmFuY2gKPiBkZXZp Y2UgZG8gdGhlIHNwbGl0IGZyb20gYSBiaWcgcmVxdWVzdCBpbnRvIHNtYWxsIHRyYW5zYWN0aW9u cy4KPiAKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyB8IDc2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9kcF9oZWxw ZXIuaCAgICAgfCAgNSArKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAx OCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKPiBpbmRleCA3OTk2OGUz Li4xMDVmZDY2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCj4gQEAgLTM5NiwxMSArMzk2 LDEzIEBAIHN0YXRpYyB1MzIgZHJtX2RwX2kyY19mdW5jdGlvbmFsaXR5KHN0cnVjdCBpMmNfYWRh cHRlciAqYWRhcHRlcikKPiAgICogcmV0cnlpbmcgdGhlIHRyYW5zYWN0aW9uIGFzIGFwcHJvcHJp YXRlLiAgSXQgaXMgYXNzdW1lZCB0aGF0IHRoZQo+ICAgKiBhdXgtPnRyYW5zZmVyIGZ1bmN0aW9u IGRvZXMgbm90IG1vZGlmeSBhbnl0aGluZyBpbiB0aGUgbXNnIG90aGVyIHRoYW4gdGhlCj4gICAq IHJlcGx5IGZpZWxkLgo+ICsgKgo+ICsgKiBSZXR1cm5zIGJ5dGVzIHRyYW5zZmVycmVkIG9uIHN1 Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgc3Rh dGljIGludCBkcm1fZHBfaTJjX2RvX21zZyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LCBzdHJ1Y3Qg ZHJtX2RwX2F1eF9tc2cgKm1zZykKPiAgewo+ICAJdW5zaWduZWQgaW50IHJldHJ5Owo+IC0JaW50 IGVycjsKPiArCWludCByZXQ7Cj4gIAo+ICAJLyoKPiAgCSAqIERQMS4yIHNlY3Rpb25zIDIuNy43 LjEuNS42LjEgYW5kIDIuNy43LjEuNi42LjE6IEEgRFAgU291cmNlIGRldmljZQo+IEBAIC00MDks MTQgKzQxMSwxNCBAQCBzdGF0aWMgaW50IGRybV9kcF9pMmNfZG9fbXNnKHN0cnVjdCBkcm1fZHBf YXV4ICphdXgsIHN0cnVjdCBkcm1fZHBfYXV4X21zZyAqbXNnKQo+ICAJICovCj4gIAlmb3IgKHJl dHJ5ID0gMDsgcmV0cnkgPCA3OyByZXRyeSsrKSB7Cj4gIAkJbXV0ZXhfbG9jaygmYXV4LT5od19t dXRleCk7Cj4gLQkJZXJyID0gYXV4LT50cmFuc2ZlcihhdXgsIG1zZyk7Cj4gKwkJcmV0ID0gYXV4 LT50cmFuc2ZlcihhdXgsIG1zZyk7Cj4gIAkJbXV0ZXhfdW5sb2NrKCZhdXgtPmh3X211dGV4KTsK PiAtCQlpZiAoZXJyIDwgMCkgewo+IC0JCQlpZiAoZXJyID09IC1FQlVTWSkKPiArCQlpZiAocmV0 IDwgMCkgewo+ICsJCQlpZiAocmV0ID09IC1FQlVTWSkKPiAgCQkJCWNvbnRpbnVlOwo+ICAKPiAt CQkJRFJNX0RFQlVHX0tNUygidHJhbnNhY3Rpb24gZmFpbGVkOiAlZFxuIiwgZXJyKTsKPiAtCQkJ cmV0dXJuIGVycjsKPiArCQkJRFJNX0RFQlVHX0tNUygidHJhbnNhY3Rpb24gZmFpbGVkOiAlZFxu IiwgcmV0KTsKPiArCQkJcmV0dXJuIHJldDsKPiAgCQl9Cj4gIAo+ICAKPiBAQCAtNDU3LDkgKzQ1 OSw3IEBAIHN0YXRpYyBpbnQgZHJtX2RwX2kyY19kb19tc2coc3RydWN0IGRybV9kcF9hdXggKmF1 eCwgc3RydWN0IGRybV9kcF9hdXhfbXNnICptc2cpCj4gIAkJCSAqIEJvdGggbmF0aXZlIEFDSyBh bmQgSTJDIEFDSyByZXBsaWVzIHJlY2VpdmVkLiBXZQo+ICAJCQkgKiBjYW4gYXNzdW1lIHRoZSB0 cmFuc2ZlciB3YXMgc3VjY2Vzc2Z1bC4KPiAgCQkJICovCj4gLQkJCWlmIChlcnIgPCBtc2ctPnNp emUpCj4gLQkJCQlyZXR1cm4gLUVQUk9UTzsKPiAtCQkJcmV0dXJuIDA7Cj4gKwkJCXJldHVybiBy ZXQ7Cj4gIAo+ICAJCWNhc2UgRFBfQVVYX0kyQ19SRVBMWV9OQUNLOgo+ICAJCQlEUk1fREVCVUdf S01TKCJJMkMgbmFja1xuIik7Cj4gQEAgLTQ4MiwxNCArNDgyLDU1IEBAIHN0YXRpYyBpbnQgZHJt X2RwX2kyY19kb19tc2coc3RydWN0IGRybV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9kcF9hdXhf bXNnICptc2cpCj4gIAlyZXR1cm4gLUVSRU1PVEVJTzsKPiAgfQo+ICAKPiArLyoKPiArICogS2Vl cCByZXRyeWluZyBkcm1fZHBfaTJjX2RvX21zZyB1bnRpbCBhbGwgZGF0YSBoYXMgYmVlbiB0cmFu c2ZlcnJlZC4KPiArICoKPiArICogUmV0dXJucyBhbiBlcnJvciBjb2RlIG9uIGZhaWx1cmUsIG9y IGEgcmVjb21tZW5kZWQgdHJhbnNmZXIgc2l6ZSBvbiBzdWNjZXNzLgo+ICsgKi8KPiArc3RhdGlj IGludCBkcm1fZHBfaTJjX2RyYWluX21zZyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LCBzdHJ1Y3Qg ZHJtX2RwX2F1eF9tc2cgKm9yaWdfbXNnKQoKb3JpZ19tc2cgc2hvdWxkIGJlIGNvbnN0IHRvIG1h a2Ugc3VyZSBzb21lb25lIGRvZXNuJ3QgY2hhbmdlIGl0IGJ5CmFjY2lkZW50IHNpbmNlIHRoYXQg d291bGQgYnJlYWsgZHJtX2RwX2kyY194ZmVyKCkuCgpPdGhlcndpc2UgbG9va3MgZ29vZCB0byBt ZSwgc28KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+CgpJIGFsc28gdGVzdGVkIHRoaXMgdmVyc2lvbiB3aXRoIGEgZmV3IGRvbmdsZXMg YW5kIGV2ZXJ5dGhpbmcgc2VlbXMgdG8Kd29yayBhcyBpbnRlbmRlZC4KCj4gK3sKPiArCWludCBl cnIsIHJldCA9IG9yaWdfbXNnLT5zaXplOwo+ICsJc3RydWN0IGRybV9kcF9hdXhfbXNnIG1zZyA9 ICpvcmlnX21zZzsKPiArCj4gKwl3aGlsZSAobXNnLnNpemUgPiAwKSB7Cj4gKwkJZXJyID0gZHJt X2RwX2kyY19kb19tc2coYXV4LCAmbXNnKTsKPiArCQlpZiAoZXJyIDw9IDApCj4gKwkJCXJldHVy biBlcnIgPT0gMCA/IC1FUFJPVE8gOiBlcnI7Cj4gKwo+ICsJCWlmIChlcnIgPCBtc2cuc2l6ZSAm JiBlcnIgPCByZXQpIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiUGFydGlhbCBJMkMgcmVwbHk6IHJl cXVlc3RlZCAlenUgYnl0ZXMgZ290ICVkIGJ5dGVzXG4iLAo+ICsJCQkJICAgICAgbXNnLnNpemUs IGVycik7Cj4gKwkJCXJldCA9IGVycjsKPiArCQl9Cj4gKwo+ICsJCW1zZy5zaXplIC09IGVycjsK PiArCQltc2cuYnVmZmVyICs9IGVycjsKPiArCX0KPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4g Kwo+ICsvKgo+ICsgKiBCaXpsaW5rIGRlc2lnbmVkIERQLT5EVkktRCBEdWFsIExpbmsgYWRhcHRl cnMgcmVxdWlyZSB0aGUgSTJDIG92ZXIgQVVYCj4gKyAqIHBhY2tldHMgdG8gYmUgYXMgbGFyZ2Ug YXMgcG9zc2libGUuIElmIG5vdCwgdGhlIEkyQyB0cmFuc2FjdGlvbnMgbmV2ZXIKPiArICogc3Vj Y2VlZC4gSGVuY2UgdGhlIGRlZmF1bHQgaXMgbWF4aW11bS4KPiArICovCj4gK3N0YXRpYyBpbnQg ZHBfYXV4X2kyY190cmFuc2Zlcl9zaXplIF9fcmVhZF9tb3N0bHkgPSBEUF9BVVhfTUFYX1BBWUxP QURfQllURVM7Cj4gK21vZHVsZV9wYXJhbV91bnNhZmUoZHBfYXV4X2kyY190cmFuc2Zlcl9zaXpl LCBpbnQsIDA2NDQpOwo+ICtNT0RVTEVfUEFSTV9ERVNDKGRwX2F1eF9pMmNfdHJhbnNmZXJfc2l6 ZSwKPiArCQkgIk51bWJlciBvZiBieXRlcyB0byB0cmFuc2ZlciBpbiBhIHNpbmdsZSBJMkMgb3Zl ciBEUCBBVVggQ0ggbWVzc2FnZSwgKDEtMTYsIGRlZmF1bHQgMTYpIik7Cj4gKwo+ICBzdGF0aWMg aW50IGRybV9kcF9pMmNfeGZlcihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHN0cnVjdCBp MmNfbXNnICptc2dzLAo+ICAJCQkgICBpbnQgbnVtKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RwX2F1 eCAqYXV4ID0gYWRhcHRlci0+YWxnb19kYXRhOwo+ICAJdW5zaWduZWQgaW50IGksIGo7Cj4gKwl1 bnNpZ25lZCB0cmFuc2Zlcl9zaXplOwo+ICAJc3RydWN0IGRybV9kcF9hdXhfbXNnIG1zZzsKPiAg CWludCBlcnIgPSAwOwo+ICAKPiArCWRwX2F1eF9pMmNfdHJhbnNmZXJfc2l6ZSA9IGNsYW1wKGRw X2F1eF9pMmNfdHJhbnNmZXJfc2l6ZSwgMSwgRFBfQVVYX01BWF9QQVlMT0FEX0JZVEVTKTsKPiAr Cj4gIAltZW1zZXQoJm1zZywgMCwgc2l6ZW9mKG1zZykpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkg PCBudW07IGkrKykgewo+IEBAIC01MDcsMjAgKzU0OCwxOSBAQCBzdGF0aWMgaW50IGRybV9kcF9p MmNfeGZlcihzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHN0cnVjdCBpMmNfbXNnICptc2dz LAo+ICAJCWVyciA9IGRybV9kcF9pMmNfZG9fbXNnKGF1eCwgJm1zZyk7Cj4gIAkJaWYgKGVyciA8 IDApCj4gIAkJCWJyZWFrOwo+IC0JCS8qCj4gLQkJICogTWFueSBoYXJkd2FyZSBpbXBsZW1lbnRh dGlvbnMgc3VwcG9ydCBGSUZPcyBsYXJnZXIgdGhhbiBhCj4gLQkJICogc2luZ2xlIGJ5dGUsIGJ1 dCBpdCBoYXMgYmVlbiBlbXBpcmljYWxseSBkZXRlcm1pbmVkIHRoYXQKPiAtCQkgKiB0cmFuc2Zl cnJpbmcgZGF0YSBpbiBsYXJnZXIgY2h1bmtzIGNhbiBhY3R1YWxseSBsZWFkIHRvCj4gLQkJICog ZGVjcmVhc2VkIHBlcmZvcm1hbmNlLiBUaGVyZWZvcmUgZWFjaCBtZXNzYWdlIGlzIHNpbXBseQo+ IC0JCSAqIHRyYW5zZmVycmVkIGJ5dGUtYnktYnl0ZS4KPiArCQkvKiBXZSB3YW50IGVhY2ggdHJh bnNhY3Rpb24gdG8gYmUgYXMgbGFyZ2UgYXMgcG9zc2libGUsIGJ1dAo+ICsJCSAqIHdlJ2xsIGdv IHRvIHNtYWxsZXIgc2l6ZXMgaWYgdGhlIGhhcmR3YXJlIGdpdmVzIHVzIGEKPiArCQkgKiBzaG9y dCByZXBseS4KPiAgCQkgKi8KPiAtCQlmb3IgKGogPSAwOyBqIDwgbXNnc1tpXS5sZW47IGorKykg ewo+ICsJCXRyYW5zZmVyX3NpemUgPSBkcF9hdXhfaTJjX3RyYW5zZmVyX3NpemU7Cj4gKwkJZm9y IChqID0gMDsgaiA8IG1zZ3NbaV0ubGVuOyBqICs9IG1zZy5zaXplKSB7Cj4gIAkJCW1zZy5idWZm ZXIgPSBtc2dzW2ldLmJ1ZiArIGo7Cj4gLQkJCW1zZy5zaXplID0gMTsKPiArCQkJbXNnLnNpemUg PSBtaW4odHJhbnNmZXJfc2l6ZSwgbXNnc1tpXS5sZW4gLSBqKTsKPiAgCj4gLQkJCWVyciA9IGRy bV9kcF9pMmNfZG9fbXNnKGF1eCwgJm1zZyk7Cj4gKwkJCWVyciA9IGRybV9kcF9pMmNfZHJhaW5f bXNnKGF1eCwgJm1zZyk7Cj4gIAkJCWlmIChlcnIgPCAwKQo+ICAJCQkJYnJlYWs7Cj4gKwkJCXRy YW5zZmVyX3NpemUgPSBlcnI7Cj4gIAkJfQo+ICAJCWlmIChlcnIgPCAwKQo+ICAJCQlicmVhazsK PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0v ZHJtX2RwX2hlbHBlci5oCj4gaW5kZXggMTFmOGM4NC4uNDQ0ZDUxYiAxMDA2NDQKPiAtLS0gYS9p bmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZHBfaGVs cGVyLmgKPiBAQCAtNDIsNiArNDIsOCBAQAo+ICAgKiAxLjIgZm9ybWFsbHkgaW5jbHVkZXMgYm90 aCBlRFAgYW5kIERQSSBkZWZpbml0aW9ucy4KPiAgICovCj4gIAo+ICsjZGVmaW5lIERQX0FVWF9N QVhfUEFZTE9BRF9CWVRFUwkxNgo+ICsKPiAgI2RlZmluZSBEUF9BVVhfSTJDX1dSSVRFCQkweDAK PiAgI2RlZmluZSBEUF9BVVhfSTJDX1JFQUQJCQkweDEKPiAgI2RlZmluZSBEUF9BVVhfSTJDX1NU QVRVUwkJMHgyCj4gQEAgLTUxOSw2ICs1MjEsOSBAQCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgewo+ ICAgKiB0cmFuc2FjdGlvbnMuIFRoZSBkcm1fZHBfYXV4X3JlZ2lzdGVyX2kyY19idXMoKSBmdW5j dGlvbiByZWdpc3RlcnMgYW4KPiAgICogSTJDIGFkYXB0ZXIgdGhhdCBjYW4gYmUgcGFzc2VkIHRv IGRybV9wcm9iZV9kZGMoKS4gVXBvbiByZW1vdmFsLCBkcml2ZXJzCj4gICAqIHNob3VsZCBjYWxs IGRybV9kcF9hdXhfdW5yZWdpc3Rlcl9pMmNfYnVzKCkgdG8gcmVtb3ZlIHRoZSBJMkMgYWRhcHRl ci4KPiArICogVGhlIEkyQyBhZGFwdGVyIHVzZXMgbG9uZyB0cmFuc2ZlcnMgYnkgZGVmYXVsdDsg aWYgYSBwYXJ0aWFsIHJlc3BvbnNlIGlzCj4gKyAqIHJlY2VpdmVkLCB0aGUgYWRhcHRlciB3aWxs IGRyb3AgZG93biB0byB0aGUgc2l6ZSBnaXZlbiBieSB0aGUgcGFydGlhbAo+ICsgKiByZXNwb25z ZSBmb3IgdGhpcyB0cmFuc2FjdGlvbiBvbmx5Lgo+ICAgKgo+ICAgKiBOb3RlIHRoYXQgdGhlIGF1 eCBoZWxwZXIgY29kZSBhc3N1bWVzIHRoYXQgdGhlIC50cmFuc2ZlcigpIGZ1bmN0aW9uCj4gICAq IG9ubHkgbW9kaWZpZXMgdGhlIHJlcGx5IGZpZWxkIG9mIHRoZSBkcm1fZHBfYXV4X21zZyBzdHJ1 Y3R1cmUuICBUaGUKPiAtLSAKPiAyLjEuMAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK