From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: Re: [PATCH 06/13] drm/i915/bdw: implement semaphore signal Date: Tue, 11 Feb 2014 14:22:37 -0800 Message-ID: <20140211222237.GD2219@bwidawsk.net> References: <1391025333-31587-1-git-send-email-benjamin.widawsky@intel.com> <1391025333-31587-7-git-send-email-benjamin.widawsky@intel.com> <20140130123817.GJ9454@intel.com> <20140211221104.GC2219@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bwidawsk.net (bwidawsk.net [166.78.191.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 14821FAB6B for ; Tue, 11 Feb 2014 14:22:52 -0800 (PST) Content-Disposition: inline In-Reply-To: <20140211221104.GC2219@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Ville =?utf-8?B?U3lyasOkbMOk?= Cc: Intel GFX , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMTEsIDIwMTQgYXQgMDI6MTE6MDRQTSAtMDgwMCwgQmVuIFdpZGF3c2t5IHdy b3RlOgo+IE9uIFRodSwgSmFuIDMwLCAyMDE0IGF0IDAyOjM4OjE3UE0gKzAyMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPiA+IE9uIFdlZCwgSmFuIDI5LCAyMDE0IGF0IDExOjU1OjI2QU0gLTA4 MDAsIEJlbiBXaWRhd3NreSB3cm90ZToKPiA+ID4gU2VtYXBob3JlIHNpZ25hbGxpbmcgd29ya3Mg c2ltaWxhcmx5IHRvIHByZXZpb3VzIEdFTnMgd2l0aCB0aGUgZXhjZXB0aW9uCj4gPiA+IHRoYXQg dGhlIHBlciByaW5nIG1haWxib3hlcyBubyBsb25nZXIgZXhpc3QuIEluc3RlYWQgeW91IG11c3Qg ZGVmaW5lCj4gPiA+IHlvdXIgb3duIHNwYWNlLCBzb21ld2hlcmUgaW4gdGhlIEdUVC4KPiA+ID4g Cj4gPiA+IFRoZSBjb21tZW50cyBpbiB0aGUgY29kZSBkZWZpbmUgdGhlIGxheW91dCBJJ3ZlIG9w dGVkIGZvciwgd2hpY2ggc2hvdWxkCj4gPiA+IGJlIGZhaXJseSBmdXR1cmUgcHJvb2YuIEllLiBJ IHRyaWVkIHRvIGRlZmluZSBvZmZzZXRzIGluIGFic3RyYWN0IHRlcm1zCj4gPiA+IChOVU1fUklO R1MsIHNlcW5vIHNpemUsIGV0YykuCj4gPiA+IAo+ID4gPiBOT1RFOiBJZiBvbmUgd2FudGVkIHRv IG1vdmUgdGhpcyB0byB0aGUgSFdTUCB0aGV5IGNvdWxkLiBJJ3ZlIGRlY2lkZWQKPiA+ID4gb25l IDRrIG9iamVjdCB3b3VsZCBiZSBlYXNpZXIgdG8gZGVhbCB3aXRoLCBhbmQgcHJvdmlkZSBwb3Rl bnRpYWwgd2lucwo+ID4gPiB3aXRoIGNhY2hlIGxvY2FsaXR5LCBidXQgdGhhdCdzIGFsbCBzcGVj dWxhdGl2ZS4KPiA+ID4gCj4gPiA+IHYyOiBVcGRhdGUgdGhlIG1hY3JvIHRvIG5vdCBuZWVkIHRo ZSBvdGhlciByaW5nJ3MgcmluZy0+aWQgKENocmlzKQo+ID4gPiBVcGRhdGUgdGhlIGNvbW1lbnQg dG8gdXNlIHRoZSBjb3JyZWN0IGZvcm11bGEgKENocmlzKQo+ID4gPiAKPiA+ID4gU2lnbmVkLW9m Zi1ieTogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0Pgo+ID4gPiAtLS0KPiA+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgMSArCj4gPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgfCAgIDUgKy0KPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8IDE5OSArKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIHwgIDM4ICsrKysrLQo+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9u cygrKSwgNDYgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiA+ID4gaW5kZXggMzY3M2JhMS4uZjUyMTA1OSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiA+IEBAIC0xMzgwLDYgKzEzODAsNyBAQCB0eXBlZGVmIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlIHsKPiA+ID4gIAo+ID4gPiAgCXN0cnVjdCBwY2lfZGV2ICpicmlkZ2VfZGV2 Owo+ID4gPiAgCXN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciByaW5nW0k5MTVfTlVNX1JJTkdTXTsK PiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc2VtYXBob3JlX29iajsKPiA+ID4g IAl1aW50MzJfdCBsYXN0X3NlcW5vLCBuZXh0X3NlcW5vOwo+ID4gPiAgCj4gPiA+ICAJZHJtX2Rt YV9oYW5kbGVfdCAqc3RhdHVzX3BhZ2VfZG1haDsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gPiA+IGluZGV4IGNiYmFmMjYuLjhiNzQ1ZGMgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+ID4gPiBAQCAtMjE2LDcgKzIxNiw3IEBACj4gPiA+ICAjZGVmaW5lICAgTUlf RElTUExBWV9GTElQX0lWQl9TUFJJVEVfQiAoMyA8PCAxOSkKPiA+ID4gICNkZWZpbmUgICBNSV9E SVNQTEFZX0ZMSVBfSVZCX1BMQU5FX0MgICg0IDw8IDE5KQo+ID4gPiAgI2RlZmluZSAgIE1JX0RJ U1BMQVlfRkxJUF9JVkJfU1BSSVRFX0MgKDUgPDwgMTkpCj4gPiA+IC0jZGVmaW5lIE1JX1NFTUFQ SE9SRV9NQk9YCU1JX0lOU1RSKDB4MTYsIDEpIC8qIGdlbjYrICovCj4gPiA+ICsjZGVmaW5lIE1J X1NFTUFQSE9SRV9NQk9YCU1JX0lOU1RSKDB4MTYsIDEpIC8qIGdlbjYsIGdlbjcgKi8KPiA+ID4g ICNkZWZpbmUgICBNSV9TRU1BUEhPUkVfR0xPQkFMX0dUVCAgICAoMTw8MjIpCj4gPiA+ICAjZGVm aW5lICAgTUlfU0VNQVBIT1JFX1VQREFURQkgICAgKDE8PDIxKQo+ID4gPiAgI2RlZmluZSAgIE1J X1NFTUFQSE9SRV9DT01QQVJFCSAgICAoMTw8MjApCj4gPiA+IEBAIC0yNDEsNiArMjQxLDggQEAK PiA+ID4gICNkZWZpbmUgICBNSV9SRVNUT1JFX0VYVF9TVEFURV9FTgkoMTw8MikKPiA+ID4gICNk ZWZpbmUgICBNSV9GT1JDRV9SRVNUT1JFCQkoMTw8MSkKPiA+ID4gICNkZWZpbmUgICBNSV9SRVNU T1JFX0lOSElCSVQJCSgxPDwwKQo+ID4gPiArI2RlZmluZSBNSV9TRU1BUEhPUkVfU0lHTkFMCU1J X0lOU1RSKDB4MWIsIDApIC8qIEdFTjgrICovCj4gPiA+ICsjZGVmaW5lICAgTUlfU0VNQVBIT1JF X1RBUkdFVChlbmdpbmUpCSgoZW5naW5lKTw8MTUpCj4gPiA+ICAjZGVmaW5lIE1JX1NUT1JFX0RX T1JEX0lNTQlNSV9JTlNUUigweDIwLCAxKQo+ID4gPiAgI2RlZmluZSAgIE1JX01FTV9WSVJUVUFM CSgxIDw8IDIyKSAvKiA5NjUrIG9ubHkgKi8KPiA+ID4gICNkZWZpbmUgTUlfU1RPUkVfRFdPUkRf SU5ERVgJTUlfSU5TVFIoMHgyMSwgMSkKPiA+ID4gQEAgLTMyOSw2ICszMzEsNyBAQAo+ID4gPiAg I2RlZmluZSAgIFBJUEVfQ09OVFJPTF9URVhUVVJFX0NBQ0hFX0lOVkFMSURBVEUJCSgxPDwxMCkg LyogR000NSsgb25seSAqLwo+ID4gPiAgI2RlZmluZSAgIFBJUEVfQ09OVFJPTF9JTkRJUkVDVF9T VEFURV9ESVNBQkxFCQkoMTw8OSkKPiA+ID4gICNkZWZpbmUgICBQSVBFX0NPTlRST0xfTk9USUZZ CQkJCSgxPDw4KQo+ID4gPiArI2RlZmluZSAgIFBJUEVfQ09OVFJPTF9GTFVTSF9FTkFCTEUJCQko MTw8NykgLyogZ2VuNysgKi8KPiA+ID4gICNkZWZpbmUgICBQSVBFX0NPTlRST0xfVkZfQ0FDSEVf SU5WQUxJREFURQkJKDE8PDQpCj4gPiA+ICAjZGVmaW5lICAgUElQRV9DT05UUk9MX0NPTlNUX0NB Q0hFX0lOVkFMSURBVEUJCSgxPDwzKQo+ID4gPiAgI2RlZmluZSAgIFBJUEVfQ09OVFJPTF9TVEFU RV9DQUNIRV9JTlZBTElEQVRFCQkoMTw8MikKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYwo+ID4gPiBpbmRleCAzN2FlMmIxLi5iNzUwODM1IDEwMDY0NAo+ID4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gPiA+IEBAIC02MTksNiAr NjE5LDEzIEBAIHN0YXRpYyBpbnQgaW5pdF9yZW5kZXJfcmluZyhzdHJ1Y3QgaW50ZWxfcmluZ19i dWZmZXIgKnJpbmcpCj4gPiA+ICBzdGF0aWMgdm9pZCByZW5kZXJfcmluZ19jbGVhbnVwKHN0cnVj dCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykKPiA+ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoZGV2X3ByaXYt PnNlbWFwaG9yZV9vYmopIHsKPiA+ID4gKwkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oZGV2 X3ByaXYtPnNlbWFwaG9yZV9vYmopOwo+ID4gPiArCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZSgmZGV2X3ByaXYtPnNlbWFwaG9yZV9vYmotPmJhc2UpOwo+ID4gPiArCQlkZXZfcHJpdi0+c2Vt YXBob3JlX29iaiA9IE5VTEw7Cj4gPiA+ICsJfQo+ID4gPiAgCj4gPiA+ICAJaWYgKHJpbmctPnNj cmF0Y2gub2JqID09IE5VTEwpCj4gPiA+ICAJCXJldHVybjsKPiA+ID4gQEAgLTYzMiw2ICs2Mzks ODYgQEAgc3RhdGljIHZvaWQgcmVuZGVyX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfcmluZ19i dWZmZXIgKnJpbmcpCj4gPiA+ICAJcmluZy0+c2NyYXRjaC5vYmogPSBOVUxMOwo+ID4gPiAgfQo+ ID4gPiAgCj4gPiA+ICtzdGF0aWMgaW50IGdlbjhfcmNzX3NpZ25hbChzdHJ1Y3QgaW50ZWxfcmlu Z19idWZmZXIgKnNpZ25hbGxlciwKPiA+ID4gKwkJCSAgIHVuc2lnbmVkIGludCBudW1fZHdvcmRz KQo+ID4gPiArewo+ID4gPiArI2RlZmluZSBNQk9YX1VQREFURV9EV09SRFMgOAo+ID4gPiArCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzaWduYWxsZXItPmRldjsKPiA+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gPiArCXN0cnVj dCBpbnRlbF9yaW5nX2J1ZmZlciAqd2FpdGVyOwo+ID4gPiArCWludCBpLCByZXQsIG51bV9yaW5n czsKPiA+ID4gKwo+ID4gPiArCW51bV9yaW5ncyA9IGh3ZWlnaHRfbG9uZyhJTlRFTF9JTkZPKGRl diktPnJpbmdfbWFzayk7Cj4gPiA+ICsJbnVtX2R3b3JkcyA9IChudW1fcmluZ3MtMSkgKiBNQk9Y X1VQREFURV9EV09SRFM7Cj4gPiAKPiA+IEFnYWluIG51bV9kd29yZHMgKz0KPiA+IAo+ID4gPiAr I3VuZGVmIE1CT1hfVVBEQVRFX0RXT1JEUwo+ID4gPiArCj4gPiA+ICsJLyogWFhYOiArIDQgZm9y IHRoZSBjYWxsZXIgKi8KPiA+ID4gKwlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHNpZ25hbGxlciwg bnVtX2R3b3JkcyArIDQpOwo+ID4gCj4gPiBhbmQgdGhlICs0IGdvZXMgYXdheS4KPiA+IAo+ID4g PiArCWlmIChyZXQpCj4gPiA+ICsJCXJldHVybiByZXQ7Cj4gPiA+ICsKPiA+ID4gKwlmb3JfZWFj aF9yaW5nKHdhaXRlciwgZGV2X3ByaXYsIGkpIHsKPiA+ID4gKwkJdTY0IGd0dF9vZmZzZXQgPSBz aWduYWxsZXItPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtpXTsKPiA+ID4gKwkJaWYgKGd0dF9vZmZz ZXQgPT0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRCkKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4g PiArCj4gPiA+ICsJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIEdGWF9PUF9QSVBFX0NPTlRS T0woNikpOwo+ID4gPiArCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBQSVBFX0NPTlRST0xf R0xPQkFMX0dUVF9JVkIgfAo+ID4gPiArCQkJCQkgICBQSVBFX0NPTlRST0xfUVdfV1JJVEUgfAo+ ID4gPiArCQkJCQkgICBQSVBFX0NPTlRST0xfRkxVU0hfRU5BQkxFKTsKPiA+ID4gKwkJaW50ZWxf cmluZ19lbWl0KHNpZ25hbGxlciwgbG93ZXJfMzJfYml0cyhndHRfb2Zmc2V0KSk7Cj4gPiA+ICsJ CWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIHVwcGVyXzMyX2JpdHMoZ3R0X29mZnNldCkpOwo+ ID4gPiArCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBzaWduYWxsZXItPm91dHN0YW5kaW5n X2xhenlfc2Vxbm8pOwo+ID4gPiArCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCAwKTsKPiA+ ID4gKwkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgTUlfU0VNQVBIT1JFX1NJR05BTCB8Cj4g PiA+ICsJCQkJCSAgIE1JX1NFTUFQSE9SRV9UQVJHRVQod2FpdGVyLT5pZCkpOwo+ID4gPiArCQlp bnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCAwKTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlX QVJOX09OKGkgIT0gbnVtX3JpbmdzKTsKPiA+ID4gKwo+ID4gPiArCXJldHVybiAwOwo+ID4gPiAr fQo+ID4gCj4gPiA8c25pcD4KPiAKPiBHb3QgdGhvc2UsIHRoYW5rcy4KPiAKPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gPiA+IGluZGV4IGM2OWFlMTAu LmYxZTdhNjYgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiA+ID4gQEAgLTExMSw2ICsxMTEsMzkgQEAgc3RydWN0ICBpbnRlbF9yaW5nX2J1ZmZl ciB7Cj4gPiA+ICAjZGVmaW5lIEk5MTVfRElTUEFUQ0hfUElOTkVEIDB4Mgo+ID4gPiAgCXZvaWQJ CSgqY2xlYW51cCkoc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nKTsKPiA+ID4gIAo+ID4g PiArCS8qIEdFTjggc2lnbmFsL3dhaXQgdGFibGUKPiA+ID4gKwkgKgkgIHNpZ25hbCB0byAgc2ln bmFsIHRvICAgIHNpZ25hbCB0byAgIHNpZ25hbCB0bwo+ID4gPiArCSAqCSAgICBSQ1MgICAgICAg ICBWQ1MgICAgICAgICAgQkNTICAgICAgICBWRUNTCj4gPiA+ICsJICogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gKwkgKiAg UkNTIHwgTk9QICgweDAwKSB8IEJDUyAoMHgwOCkgfCBWQ1MgKDB4MTApIHwgVkVDUyAoMHgxOCkg fAo+ID4gPiArCSAqCXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gPiArCSAqICBWQ1MgfCBSQ1MgKDB4MjApIHwgTk9QICgweDI4KSB8IEJD UyAoMHgzMCkgfCBWRUNTICgweDM4KSB8Cj4gPiA+ICsJICoJfC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ICsJICogIEJDUyB8IFJDUyAo MHg0MCkgfCBWQ1MgKDB4NDgpIHwgTk9QICgweDUwKSB8IFZFQ1MgKDB4NTgpIHwKPiA+ID4gKwkg Kgl8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiA+ID4gKwkgKiBWRUNTIHwgUkNTICgweDYwKSB8IFZDUyAoMHg2OCkgfCBCQ1MgKDB4NzApIHwg IE5PUCAoMHg3OCkgfAo+ID4gPiArCSAqCXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiArCSAqCj4gPiA+ICsJICogR2VuZXJhbGl6YXRp b246Cj4gPiA+ICsJICogIGYoeCwgeSkgOj0gKHgtPmlkICogTlVNX1JJTkdTICogc2Vxbm9fc2l6 ZSkgKyAoc2Vxbm9fc2l6ZSAqIHktPmlkKQo+ID4gPiArCSAqICBpZS4gdHJhbnNwb3NlIG9mIGco eCwgeSkKPiA+ID4gKwkgKgo+ID4gPiArCSAqCSBzeW5jIGZyb20gICBzeW5jIGZyb20gICAgc3lu YyBmcm9tICAgIHN5bmMgZnJvbQo+ID4gPiArCSAqCSAgICBSQ1MgICAgICAgICBWQ1MgICAgICAg ICAgQkNTICAgICAgICBWRUNTCj4gPiA+ICsJICogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gKwkgKiAgUkNTIHwgTk9QICgw eDAwKSB8IEJDUyAoMHgyMCkgfCBWQ1MgKDB4NDApIHwgVkVDUyAoMHg2MCkgfAo+ID4gPiArCSAq CXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ ID4gPiArCSAqICBWQ1MgfCBSQ1MgKDB4MDgpIHwgTk9QICgweDI4KSB8IEJDUyAoMHg0OCkgfCBW RUNTICgweDY4KSB8Cj4gPiA+ICsJICoJfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ICsJICogIEJDUyB8IFJDUyAoMHgxMCkgfCBWQ1Mg KDB4MzApIHwgTk9QICgweDUwKSB8IFZFQ1MgKDB4NjApIHwKPiA+ID4gKwkgKgl8LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gKwkgKiBW RUNTIHwgUkNTICgweDE4KSB8IFZDUyAoMHgzOCkgfCBCQ1MgKDB4NTgpIHwgIE5PUCAoMHg3OCkg fAo+ID4gPiArCSAqCXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID4gPiArCSAqCj4gPiA+ICsJICogR2VuZXJhbGl6YXRpb246Cj4gPiA+ICsJ ICogIGcoeCwgeSkgOj0gKHktPmlkICogTlVNX1JJTkdTICogc2Vxbm9fc2l6ZSkgKyAoc2Vxbm9f c2l6ZSAqIHgtPmlkKQo+ID4gPiArCSAqICBpZS4gdHJhbnNwb3NlIG9mIGYoeCwgeSkKPiA+ID4g KwkgKi8KPiA+ID4gIAlzdHJ1Y3Qgewo+ID4gPiAgCQl1MzIJc3luY19zZXFub1tJOTE1X05VTV9S SU5HUy0xXTsKPiA+ID4gIAkJLyogQUtBIHdhaXQoKSAqLwo+ID4gPiBAQCAtMTIwLDcgKzE1Mywx MCBAQCBzdHJ1Y3QgIGludGVsX3JpbmdfYnVmZmVyIHsKPiA+ID4gIAkJLyogb3VyIG1ib3ggd3Jp dHRlbiBieSBvdGhlcnMgKi8KPiA+ID4gIAkJdTMyCQltYm94W0k5MTVfTlVNX1JJTkdTXTsKPiA+ IAo+ID4gbWJveCBzaG91bGQgYWxzbyBnZXQgYSB1NjQgZnJpZW5kLCByaWdodD8KPiAKPiBtYm94 IHNob3VsZCBiZSBnZW42IG9ubHksIGdpdmVuIHRoZSBjaGFuZ2UgdG8gdXNpbmcgdGhlIGd0dCBv biBnZW44LiBJbgo+IHRoaXMgcG9pbnQgaW4gdGhlIHNlcmllcywgc2VtYXBob3JlcyBzaG91bGQg YmUgZm9yY2libHkgZGlzYWJsZWQgb24KPiBnZW44LCBzbyB0aGUgY29kZSBsb29rcyB3cm9uZywg YnV0IHRoZSBwYXRoIGNhbm5vdCBbc2hvdWxkIG5vdF0gYmUKPiB0YWtlbi4KPiAKPiBJIHN1cHBv c2UgSSBzaG91bGQga2lsbCB0aGUgaW5pdGlhbGl6YXRpb24gb2YgbWJveCBmb3IgZ2VuOCwgb3Ig c29tZWhvdwo+IGNvbnNvbGlkYXRlIHdpdGggYSB1bmlvbiB0byBwcmV2ZW50IGNvbmZ1c2lvbi4K PiAKCkp1c3QgdG8gY2xhcmlmeSBpdCBzaG91bGQgYmUKCmdlbjY6CnNpZ25hbCB1c2VzIHNpZ25h bF9tYm94IGZvciBzaWduYWwKd2FpdCB1c2VzIG1ib3gKCmdlbjg6CnNpZ25hbCB1c2VzIHNpZ25h bF9nZ3R0IGZvciBzaWduYWwKd2FpdCB1c2VzIGFyaXRobWV0aWMgdG8gZmlndXJlIG91dCB0aGUg b2Zmc2V0Cgo+ID4gCj4gPiA+ICAJCS8qIG1ib3hlcyB0aGlzIHJpbmcgc2lnbmFscyB0byAqLwo+ ID4gPiAtCQl1MzIJCXNpZ25hbF9tYm94W0k5MTVfTlVNX1JJTkdTXTsKPiA+ID4gKwkJdW5pb24g ewo+ID4gPiArCQkJdTMyCQlzaWduYWxfbWJveFtJOTE1X05VTV9SSU5HU107Cj4gPiA+ICsJCQl1 NjQJCXNpZ25hbF9nZ3R0W0k5MTVfTlVNX1JJTkdTXTsKPiA+ID4gKwkJfTsKPiA+ID4gIAo+ID4g PiAgCQkvKiBudW1fZHdvcmRzIGlzIHNwYWNlIHRoZSBjYWxsZXIgd2lsbCBuZWVkIGZvciBhdG9t aWMgdXBkYXRlICovCj4gPiA+ICAJCWludAkJKCpzaWduYWwpKHN0cnVjdCBpbnRlbF9yaW5nX2J1 ZmZlciAqc2lnbmFsbGVyLAo+ID4gPiAtLSAKPiA+ID4gMS44LjUuMwo+ID4gPiAKPiA+ID4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g PiA+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngKPiA+IAo+ID4gLS0gCj4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+IEludGVsIE9UQwo+IAo+IC0t IAo+IEJlbiBXaWRhd3NreSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKCi0t IApCZW4gV2lkYXdza3ksIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==