From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Pietrasiewicz Subject: [PATCHv3/RFC 1/4] drm/arm: Factor out generic afbc helpers Date: Thu, 21 Nov 2019 18:22:44 +0100 Message-ID: <20191121172247.31150-2-andrzej.p@collabora.com> References: <20191119083429.GA2881@jamwan02-TSP300> <20191121172247.31150-1-andrzej.p@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4CC716F4B6 for ; Thu, 21 Nov 2019 17:22:58 +0000 (UTC) In-Reply-To: <20191121172247.31150-1-andrzej.p@collabora.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Ayan Halder , kernel@collabora.com, David Airlie , Liviu Dudau , James Wang , Mihail Atanassov , Sean Paul List-Id: dri-devel@lists.freedesktop.org VGhlc2UgYXJlIHVzZWZ1bCBmb3Igb3RoZXIgdXNlcnMgb2YgYWZiYywgZS5nLiByb2NrY2hpcC4K ClNpZ25lZC1vZmYtYnk6IEFuZHJ6ZWogUGlldHJhc2lld2ljeiA8YW5kcnplai5wQGNvbGxhYm9y YS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9kcm1fYWZiYy5jICAgICAgICB8IDg0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMgICAgICB8IDExICsrKy0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyB8IDcxICsrKysrKysrKysrKysrKysr KysrKysrKystCiBpbmNsdWRlL2RybS9kcm1fYWZiYy5oICAgICAgICAgICAgfCAzNSArKysrKysr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE5OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fYWZiYy5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vZHJtX2FmYmMuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQppbmRleCBkOWJjYzlm MmEwYTQuLjNhNThmMzBiODNhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxl CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpAQCAtNDQsNyArNDQsNyBAQCBkcm1fa21z X2hlbHBlci15IDo9IGRybV9jcnRjX2hlbHBlci5vIGRybV9kcF9oZWxwZXIubyBkcm1fZHNjLm8g ZHJtX3Byb2JlX2hlbHBlcgogCQlkcm1fc2ltcGxlX2ttc19oZWxwZXIubyBkcm1fbW9kZXNldF9o ZWxwZXIubyBcCiAJCWRybV9zY2RjX2hlbHBlci5vIGRybV9nZW1fZnJhbWVidWZmZXJfaGVscGVy Lm8gXAogCQlkcm1fYXRvbWljX3N0YXRlX2hlbHBlci5vIGRybV9kYW1hZ2VfaGVscGVyLm8gXAot CQlkcm1fZm9ybWF0X2hlbHBlci5vIGRybV9zZWxmX3JlZnJlc2hfaGVscGVyLm8KKwkJZHJtX2Zv cm1hdF9oZWxwZXIubyBkcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5vIGRybV9hZmJjLm8KIAogZHJt X2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgKz0gYnJpZGdlL3BhbmVsLm8K IGRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9o ZWxwZXIubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hZmJjLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2FmYmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmYzMDhjNDcxOTU0NgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YWZiYy5jCkBAIC0wLDAgKzEsODQgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwt Mi4wCisvKgorICogKEMpIDIwMTkgQ29sbGFib3JhIEx0ZC4KKyAqCisgKiBhdXRob3I6IEFuZHJ6 ZWogUGlldHJhc2lld2ljeiA8YW5kcnplai5wQGNvbGxhYm9yYS5jb20+CisgKgorICovCisjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CisKKyNpbmNsdWRlIDxkcm0vZHJtX2FmYmMuaD4KKyNpbmNs dWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5j bHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21vZGUuaD4KKyNpbmNsdWRl IDxkcm0vZHJtX3ByaW50Lmg+CisKKy8qKgorICogZHJtX2FmYmNfZ2V0X3N1cGVyYmxrX3doIC0g ZXh0cmFjdCBhZmJjIGJsb2NrIHdpZHRoL2hlaWdodCBmcm9tIG1vZGlmaWVyCisgKiBAbW9kaWZp ZXI6IHRoZSBtb2RpZmllciB0byBiZSBsb29rZWQgYXQKKyAqIEB3OiBhZGRyZXNzIG9mIGEgcGxh Y2UgdG8gc3RvcmUgdGhlIGJsb2NrIHdpZHRoCisgKiBAaDogYWRkcmVzcyBvZiBhIHBsYWNlIHRv IHN0b3JlIHRoZSBibG9jayBoZWlnaHQKKyAqCisgKiBSZXR1cm5zOiB0cnVlIGlmIHRoZSBtb2Rp ZmllciBkZXNjcmliZXMgYSBzdXBwb3J0ZWQgYmxvY2sgc2l6ZQorICovCitib29sIGRybV9hZmJj X2dldF9zdXBlcmJsa193aCh1NjQgbW9kaWZpZXIsIHUzMiAqdywgdTMyICpoKQoreworCXN3aXRj aCAobW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV9NQVNLKSB7CisJY2FzZSBB RkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV8xNngxNjoKKwkJKncgPSAxNjsKKwkJKmggPSAxNjsK KwkJYnJlYWs7CisJY2FzZSBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV8zMng4OgorCQkqdyA9 IDMyOworCQkqaCA9IDg7CisJCWJyZWFrOworCWNhc2UgQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJ WkVfNjR4NDoKKwkJLyogZmFsbCB0aHJvdWdoICovCisJY2FzZSBBRkJDX0ZPUk1BVF9NT0RfQkxP Q0tfU0laRV8zMng4XzY0eDQ6CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWRlZmF1bHQ6CisJCURS TV9ERUJVR19LTVMoIkludmFsaWQgQUZCQ19GT1JNQVRfTU9EX0JMT0NLX1NJWkU6ICVsbGQuXG4i LAorCQkJICAgICAgbW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0laRV9NQVNLKTsK KwkJcmV0dXJuIGZhbHNlOworCX0KKwlyZXR1cm4gdHJ1ZTsKK30KK0VYUE9SVF9TWU1CT0xfR1BM KGRybV9hZmJjX2dldF9zdXBlcmJsa193aCk7CisKKy8qKgorICogZHJtX2FmYmNfZ2V0X3BhcmFt ZXRlcnMgLSBleHRyYWN0IGFmYmMgcGFyYW1ldGVycyBmcm9tIG1vZGUgY29tbWFuZAorICogQG1v ZGVfY21kOiBtb2RlIGNvbW1hbmQgdG8gYmUgbG9va2VkIGF0CisgKiBAYWZiYzogYWRkcmVzcyBv ZiBhIHN0cnVjdCB0byBiZSBmaWxsZWQgaW4KKyAqLwordm9pZCBkcm1fYWZiY19nZXRfcGFyYW1l dGVycyhjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCisJCQkgICAgIHN0 cnVjdCBkcm1fYWZiYyAqYWZiYykKK3sKKwlkcm1fYWZiY19nZXRfc3VwZXJibGtfd2gobW9kZV9j bWQtPm1vZGlmaWVyWzBdLAorCQkJCSAmYWZiYy0+dGlsZV93LCAmYWZiYy0+dGlsZV9oKTsKKwlh ZmJjLT53aWR0aCA9IG1vZGVfY21kLT5waXRjaGVzWzBdOworCWFmYmMtPmhlaWdodCA9CisJCURJ Vl9ST1VORF9VUChtb2RlX2NtZC0+aGVpZ2h0LCBhZmJjLT50aWxlX2gpICogYWZiYy0+dGlsZV9o OworCWFmYmMtPm9mZnNldCA9IG1vZGVfY21kLT5vZmZzZXRzWzBdOworfQorRVhQT1JUX1NZTUJP TChkcm1fYWZiY19nZXRfcGFyYW1ldGVycyk7CisKKy8qKgorICogZHJtX2lzX2FmYmMgLSB0ZXN0 IGlmIHRoZSBtb2RpZmllciBkZXNjcmliZXMgYW4gYWZiYyBidWZmZXIKKyAqIEBtb2RpZmllciAt IG1vZGlmaWVyIHRvIGJlIHRlc3RlZAorICoKKyAqIFJldHVybnM6IHRydWUgaWYgdGhlIG1vZGlm aWVyIGRlc2NyaWJlcyBhbiBhZmJjIGJ1ZmZlcgorICovCitib29sIGRybV9pc19hZmJjKHU2NCBt b2RpZmllcikKK3sKKwkvKiBpcyBpdCBBUk0gQUZCQz8gKi8KKwlpZiAoKG1vZGlmaWVyICYgRFJN X0ZPUk1BVF9NT0RfQVJNX0FGQkMoMCkpID09IDApCisJCXJldHVybiBmYWxzZTsKKworCS8qIEJs b2NrIHNpemUgbXVzdCBiZSBrbm93biAqLworCWlmICgobW9kaWZpZXIgJiBBRkJDX0ZPUk1BVF9N T0RfQkxPQ0tfU0laRV9NQVNLKSA9PSAwKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1 ZTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9pc19hZmJjKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZm91cmNjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCmlu ZGV4IGM2MzAwNjRjY2Y0MS4uOGQ5ZjE5N2NjMGFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZvdXJjYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKQEAgLTI3 LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9r ZXJuZWwuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fYWZiYy5oPgogI2luY2x1ZGUgPGRybS9kcm1f ZGV2aWNlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KIApAQCAtMzIyLDggKzMyMywx NCBAQCBkcm1fZ2V0X2Zvcm1hdF9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB7CiAJY29u c3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAqaW5mbyA9IE5VTEw7CiAKLQlpZiAoZGV2LT5tb2Rl X2NvbmZpZy5mdW5jcy0+Z2V0X2Zvcm1hdF9pbmZvKQotCQlpbmZvID0gZGV2LT5tb2RlX2NvbmZp Zy5mdW5jcy0+Z2V0X2Zvcm1hdF9pbmZvKG1vZGVfY21kKTsKKwkvKiBieXBhc3MgZHJpdmVyIGNh bGxiYWNrIGlmIGFmYmMgKi8KKwlpZiAoIWRybV9pc19hZmJjKG1vZGVfY21kLT5tb2RpZmllclsw XSkpCisJCWlmIChkZXYtPm1vZGVfY29uZmlnLmZ1bmNzLT5nZXRfZm9ybWF0X2luZm8pIHsKKwkJ CWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgKmZ1bmNzOworCisJCQlmdW5jcyA9 IGRldi0+bW9kZV9jb25maWcuZnVuY3M7CisJCQlpbmZvID0gZnVuY3MtPmdldF9mb3JtYXRfaW5m byhtb2RlX2NtZCk7CisJCX0KIAogCWlmICghaW5mbykKIAkJaW5mbyA9IGRybV9mb3JtYXRfaW5m byhtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwppbmRl eCA1NzU2NDMxOGNlZWEuLjMwM2VlYTYyNGEwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9mcmFtZWJ1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIu YwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUg PGxpbnV4L3VhY2Nlc3MuaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fYWZiYy5oPgogI2luY2x1ZGUg PGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfdWFwaS5oPgogI2lu Y2x1ZGUgPGRybS9kcm1fYXV0aC5oPgpAQCAtMzEsNiArMzIsNyBAQAogI2luY2x1ZGUgPGRybS9k cm1fZmlsZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2Ry bV9mcmFtZWJ1ZmZlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZ2VtLmg+CiAjaW5jbHVkZSA8ZHJt L2RybV9wcmludC5oPgogI2luY2x1ZGUgPGRybS9kcm1fdXRpbC5oPgogCkBAIC0xNjgsNyArMTcw LDY5IEBAIHN0YXRpYyBpbnQgZmJfcGxhbmVfaGVpZ2h0KGludCBoZWlnaHQsCiAJcmV0dXJuIERJ Vl9ST1VORF9VUChoZWlnaHQsIGZvcm1hdC0+dnN1Yik7CiB9CiAKK3N0YXRpYyBpbnQgYWZiY19j aGVjayhzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJICAgICAgY29uc3Qgc3RydWN0IGRy bV9tb2RlX2ZiX2NtZDIgKnIsIGludCBpLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1h dF9pbmZvICppbmZvKQoreworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOworCWludCBicHAg PSBpbmZvLT5jcHBbMF0gKiA4OworCWludCB0aWxlczsKKwl1MzIgdywgaCwgaGVpZ2h0LCB0aWxl X3N6LCBhZmJjX3NpemU7CisJaW50IHJlc3VsdCA9IDA7CisKKwlpZiAoaSkgeworCQlEUk1fREVC VUdfS01TKCJBRkJDIHN1cHBvcnRlZCBvbmx5IGZvciBwbGFuZSAwXG4iKTsKKworCQlyZXR1cm4g MTsKKwl9CisKKwkvKiBnZXQgdGlsZSB3L2ggKi8KKwlpZiAoIWRybV9hZmJjX2dldF9zdXBlcmJs a193aChyLT5tb2RpZmllclswXSwgJncsICZoKSkKKwkJcmV0dXJuIDE7CisKKwkvKiBwaXRjaCBt dXN0IGJlIGRpdmlzaWJsZSBieSB0aWxlIHdpZHRoICovCisJaWYgKHItPnBpdGNoZXNbMF0gJSB3 KSB7CisJCURSTV9ERUJVR19LTVMoIkludmFsaWQgcGl0Y2ggZm9yIHBsYW5lICVkXG4iLCBpKTsK KworCQlyZXR1cm4gMTsKKwl9CisKKwlvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZmlsZV9w cml2LCByLT5oYW5kbGVzWzBdKTsKKwlpZiAoIW9iaikgeworCQlEUk1fREVCVUdfS01TKCJGYWls ZWQgdG8gbG9va3VwIEdFTSBvYmplY3RcbiIpOworCisJCXJldHVybiAxOworCX0KKworCS8qIGVz dGltYXRlIGhlaWdodCBiYXNlZCBvbiB0aWxlIHNpemUgYW5kIGhlaWdodCBmcm9tIHVzZXJzcGFj ZSAqLworCWhlaWdodCA9IERJVl9ST1VORF9VUChyLT5oZWlnaHQsIGgpICogaDsKKworCXRpbGVz ID0gKHItPnBpdGNoZXNbMF0gLyB3KSAqIChoZWlnaHQgLyBoKTsKKwlhZmJjX3NpemUgPSBBTElH Tih0aWxlcyAqIEFGQkNfSEVBREVSX1NJWkUsIEFGQkNfU1VQRVJCTEtfQUxJR05NRU5UKTsKKwor CXRpbGVfc3ogPSAoYnBwICogdyAqIGgpIC8gQklUU19QRVJfQllURTsKKwlhZmJjX3NpemUgKz0g dGlsZXMgKiBBTElHTih0aWxlX3N6LCBBRkJDX1NVUEVSQkxLX0FMSUdOTUVOVCk7CisKKwlyZXN1 bHQgPSBvYmotPnNpemUgPCBhZmJjX3NpemU7CisKKwlkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2Nr ZWQob2JqKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbnQgbW9kaWZpZXJfY2hl Y2soc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkgIGNvbnN0IHN0cnVjdCBkcm1fbW9k ZV9mYl9jbWQyICpyLCBpbnQgaSwKKwkJCSAgY29uc3Qgc3RydWN0IGRybV9mb3JtYXRfaW5mbyAq aW5mbykKK3sKKwkvKiBub24tYWZiYyBmb3JtYXQgKi8KKwlpZiAoIWRybV9pc19hZmJjKHItPm1v ZGlmaWVyW2ldKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gYWZiY19jaGVjayhmaWxlX3ByaXYs IHIsIGksIGluZm8pOworfQorCiBzdGF0aWMgaW50IGZyYW1lYnVmZmVyX2NoZWNrKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCisJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAogCQkJ ICAgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqcikKIHsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2Zvcm1hdF9pbmZvICppbmZvOwpAQCAtMjA0LDYgKzI2OCw5IEBAIHN0YXRpYyBpbnQgZnJh bWVidWZmZXJfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJdW5zaWduZWQgaW50IGJs b2NrX3NpemUgPSBpbmZvLT5jaGFyX3Blcl9ibG9ja1tpXTsKIAkJdTY0IG1pbl9waXRjaCA9IGRy bV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgaSwgd2lkdGgpOwogCisJCWlmIChkcm1faXNf YWZiYyhyLT5tb2RpZmllcltpXSkpCisJCQlibG9ja19zaXplID0gMDsKKwogCQlpZiAoIWJsb2Nr X3NpemUgJiYgKHItPm1vZGlmaWVyW2ldID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUikpIHsKIAkJ CURSTV9ERUJVR19LTVMoIkZvcm1hdCByZXF1aXJlcyBub24tbGluZWFyIG1vZGlmaWVyIGZvciBw bGFuZSAlZFxuIiwgaSk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTI1Myw2ICszMjAsOCBAQCBz dGF0aWMgaW50IGZyYW1lYnVmZmVyX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQli cmVhazsKIAogCQlkZWZhdWx0OgorCQkJaWYgKG1vZGlmaWVyX2NoZWNrKGZpbGVfcHJpdiwgciwg aSwgaW5mbykpCisJCQkJcmV0dXJuIC1FSU5WQUw7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTMx Nyw3ICszODYsNyBAQCBkcm1faW50ZXJuYWxfZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCX0KIAotCXJldCA9IGZy YW1lYnVmZmVyX2NoZWNrKGRldiwgcik7CisJcmV0ID0gZnJhbWVidWZmZXJfY2hlY2soZGV2LCBm aWxlX3ByaXYsIHIpOwogCWlmIChyZXQpCiAJCXJldHVybiBFUlJfUFRSKHJldCk7CiAKZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hZmJjLmggYi9pbmNsdWRlL2RybS9kcm1fYWZiYy5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZmI0ZDQ1NDlmNzdlCi0tLSAv ZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2FmYmMuaApAQCAtMCwwICsxLDM1IEBACisv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCsgKi8KKy8qCisgKiAoQykgMjAxOSBD b2xsYWJvcmEgTHRkLgorICoKKyAqIGF1dGhvcjogQW5kcnplaiBQaWV0cmFzaWV3aWN6IDxhbmRy emVqLnBAY29sbGFib3JhLmNvbT4KKyAqCisgKi8KKyNpZm5kZWYgX19EUk1fQUZCQ19IX18KKyNk ZWZpbmUgX19EUk1fQUZCQ19IX18KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKK3N0cnVj dCBkcm1fZGV2aWNlOworc3RydWN0IGRybV9tb2RlX2ZiX2NtZDI7CitzdHJ1Y3QgZHJtX2dlbV9v YmplY3Q7CisKK3N0cnVjdCBkcm1fYWZiYyB7CisJdTMyIHRpbGVfdzsKKwl1MzIgdGlsZV9oOwor CXUzMiB3aWR0aDsKKwl1MzIgaGVpZ2h0OworCXUzMiBvZmZzZXQ7Cit9OworCisjZGVmaW5lIEFG QkNfSEVBREVSX1NJWkUJCTE2CisjZGVmaW5lIEFGQkNfU1VQRVJCTEtfQUxJR05NRU5UCQkxMjgK KworYm9vbCBkcm1fYWZiY19nZXRfc3VwZXJibGtfd2godTY0IG1vZGlmaWVyLCB1MzIgKncsIHUz MiAqaCk7CisKK3ZvaWQgZHJtX2FmYmNfZ2V0X3BhcmFtZXRlcnMoY29uc3Qgc3RydWN0IGRybV9t b2RlX2ZiX2NtZDIgKm1vZGVfY21kLAorCQkJICAgICBzdHJ1Y3QgZHJtX2FmYmMgKmFmYmMpOwor Citib29sIGRybV9pc19hZmJjKHU2NCBtb2RpZmllcik7CisKKyNlbmRpZiAvKiBfX0RSTV9BRkJD X0hfXyAqLwotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWw=