From mboxrd@z Thu Jan 1 00:00:00 1970 From: Benjamin Herrenschmidt Subject: [PATCH 06/12] drm/ast: Base support for AST2500 Date: Fri, 24 Feb 2017 09:53:51 +1100 Message-ID: <20170223225357.9572-6-benh@kernel.crashing.org> References: <20170223225357.9572-1-benh@kernel.crashing.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) by gabe.freedesktop.org (Postfix) with ESMTPS id BEEF16E0D8 for ; Thu, 23 Feb 2017 23:17:25 +0000 (UTC) In-Reply-To: <20170223225357.9572-1-benh@kernel.crashing.org> 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: linuxppc-dev@ozlabs.org, airlied@redhat.com, eich@suse.come List-Id: dri-devel@lists.freedesktop.org RnJvbTogIlkuQy4gQ2hlbiIgPHljX2NoZW5AYXNwZWVkdGVjaC5jb20+CgpBZGQgZGV0ZWN0aW9u IGFuZCBtb2RlIHNldHRpbmcgdXBkYXRlcyBmb3IgQVNUMjUwMCBnZW5lcmF0aW9uIGNoaXAsCmNv ZGUgb3JpZ2luYWxseSBmcm9tIEFzcGVlZCBhbmQgc2xpZ2h0bHkgcmV3b3JrZWQgZm9yIGNvZGlu ZyBzdHlsZQptb3N0bHkgYnkgQmVuLiBUaGlzIGRvZXNuJ3QgY29udGFpbiB0aGUgQk1DIERSQU0g UE9TVCBjb2RlIHdoaWNoCmlzIGluIGEgc2VwYXJhdGUgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBZ LkMuIENoZW4gPHljX2NoZW5AYXNwZWVkdGVjaC5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbmphbWlu IEhlcnJlbnNjaG1pZHQgPGJlbmhAa2VybmVsLmNyYXNoaW5nLm9yZz4KLS0tCgp2Mi4gQWRkIDgw ME1oeiBkZWZhdWx0IG1jbGsgZm9yIEFTVDI1MDAKLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9kcnYuaCAgICB8ICAyICsrCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tYWluLmMgICB8IDMy ICsrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYyAg IHwgMzAgKysrKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90YWJs ZXMuaCB8IDU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDQgZmls ZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9h c3RfZHJ2LmgKaW5kZXggM2ZkOWQ2ZS4uZDFjMWQ1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FzdC9hc3RfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfZHJ2LmgKQEAg LTY0LDYgKzY0LDcgQEAgZW51bSBhc3RfY2hpcCB7CiAJQVNUMjE1MCwKIAlBU1QyMzAwLAogCUFT VDI0MDAsCisJQVNUMjUwMCwKIAlBU1QxMTgwLAogfTsKIApAQCAtODAsNiArODEsNyBAQCBlbnVt IGFzdF90eF9jaGlwIHsKICNkZWZpbmUgQVNUX0RSQU1fMUd4MzIgICAzCiAjZGVmaW5lIEFTVF9E UkFNXzJHeDE2ICAgNgogI2RlZmluZSBBU1RfRFJBTV80R3gxNiAgIDcKKyNkZWZpbmUgQVNUX0RS QU1fOEd4MTYgICA4CiAKIHN0cnVjdCBhc3RfZmJkZXY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hc3QvYXN0X21haW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21haW4uYwpp bmRleCBkMTk0YWYzLi5mMTk2NjlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9tYWluLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbWFpbi5jCkBAIC0xNDEsNyAr MTQxLDEwIEBAIHN0YXRpYyBpbnQgYXN0X2RldGVjdF9jaGlwKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGJvb2wgKm5lZWRfcG9zdCkKIAkJYXN0LT5jaGlwID0gQVNUMTEwMDsKIAkJRFJNX0lORk8o IkFTVCAxMTgwIGRldGVjdGVkXG4iKTsKIAl9IGVsc2UgewotCQlpZiAoZGV2LT5wZGV2LT5yZXZp c2lvbiA+PSAweDMwKSB7CisJCWlmIChkZXYtPnBkZXYtPnJldmlzaW9uID49IDB4NDApIHsKKwkJ CWFzdC0+Y2hpcCA9IEFTVDI1MDA7CisJCQlEUk1fSU5GTygiQVNUIDI1MDAgZGV0ZWN0ZWRcbiIp OworCQl9IGVsc2UgaWYgKGRldi0+cGRldi0+cmV2aXNpb24gPj0gMHgzMCkgewogCQkJYXN0LT5j aGlwID0gQVNUMjQwMDsKIAkJCURSTV9JTkZPKCJBU1QgMjQwMCBkZXRlY3RlZFxuIik7CiAJCX0g ZWxzZSBpZiAoZGV2LT5wZGV2LT5yZXZpc2lvbiA+PSAweDIwKSB7CkBAIC0xOTUsNiArMTk4LDkg QEAgc3RhdGljIGludCBhc3RfZGV0ZWN0X2NoaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9v bCAqbmVlZF9wb3N0KQogCQkJaWYgKGFzdC0+Y2hpcCA9PSBBU1QyNDAwICYmCiAJCQkgICAgKHNj dV9yZXYgJiAweDMwMCkgPT0gMHgxMDApIC8qIGFzdDE0MDAgKi8KIAkJCQlhc3QtPnN1cHBvcnRf d2lkZV9zY3JlZW4gPSB0cnVlOworCQkJaWYgKGFzdC0+Y2hpcCA9PSBBU1QyNTAwICYmCisJCQkg ICAgc2N1X3JldiA9PSAweDEwMCkgICAgICAgICAgIC8qIGFzdDI1MTAgKi8KKwkJCQlhc3QtPnN1 cHBvcnRfd2lkZV9zY3JlZW4gPSB0cnVlOwogCQl9CiAJCWJyZWFrOwogCX0KQEAgLTI4OSw3ICsy OTUsMTAgQEAgc3RhdGljIGludCBhc3RfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCWRlZmF1bHQ6CiAJCWFzdC0+ZHJhbV9idXNfd2lkdGggPSAxNjsKIAkJYXN0LT5kcmFt X3R5cGUgPSBBU1RfRFJBTV8xR3gxNjsKLQkJYXN0LT5tY2xrID0gMzk2OworCQlpZiAoYXN0LT5j aGlwID09IEFTVDI1MDApCisJCQlhc3QtPm1jbGsgPSA4MDA7CisJCWVsc2UKKwkJCWFzdC0+bWNs ayA9IDM5NjsKIAkJcmV0dXJuIDA7CiAJfQogCkBAIC0yOTgsNyArMzA3LDIzIEBAIHN0YXRpYyBp bnQgYXN0X2dldF9kcmFtX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAllbHNlCiAJCWFz dC0+ZHJhbV9idXNfd2lkdGggPSAzMjsKIAotCWlmIChhc3QtPmNoaXAgPT0gQVNUMjMwMCB8fCBh c3QtPmNoaXAgPT0gQVNUMjQwMCkgeworCWlmIChhc3QtPmNoaXAgPT0gQVNUMjUwMCkgeworCQlz d2l0Y2ggKG1jcl9jZmcgJiAweDAzKSB7CisJCWNhc2UgMDoKKwkJCWFzdC0+ZHJhbV90eXBlID0g QVNUX0RSQU1fMUd4MTY7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJY2FzZSAxOgorCQkJYXN0 LT5kcmFtX3R5cGUgPSBBU1RfRFJBTV8yR3gxNjsKKwkJCWJyZWFrOworCQljYXNlIDI6CisJCQlh c3QtPmRyYW1fdHlwZSA9IEFTVF9EUkFNXzRHeDE2OworCQkJYnJlYWs7CisJCWNhc2UgMzoKKwkJ CWFzdC0+ZHJhbV90eXBlID0gQVNUX0RSQU1fOEd4MTY7CisJCQlicmVhazsKKwkJfQorCX0gZWxz ZSBpZiAoYXN0LT5jaGlwID09IEFTVDIzMDAgfHwgYXN0LT5jaGlwID09IEFTVDI0MDApIHsKIAkJ c3dpdGNoIChtY3JfY2ZnICYgMHgwMykgewogCQljYXNlIDA6CiAJCQlhc3QtPmRyYW1fdHlwZSA9 IEFTVF9EUkFNXzUxMk14MTY7CkBAIC01MjEsNiArNTQ2LDcgQEAgaW50IGFzdF9kcml2ZXJfbG9h ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQogCSAgICBhc3Qt PmNoaXAgPT0gQVNUMjIwMCB8fAogCSAgICBhc3QtPmNoaXAgPT0gQVNUMjMwMCB8fAogCSAgICBh c3QtPmNoaXAgPT0gQVNUMjQwMCB8fAorCSAgICBhc3QtPmNoaXAgPT0gQVNUMjUwMCB8fAogCSAg ICBhc3QtPmNoaXAgPT0gQVNUMTE4MCkgewogCQlkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9 IDE5MjA7CiAJCWRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IDIwNDg7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF9tb2RlLmMKaW5kZXggMWZmNTk2ZS4uZTRkYjFjNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hc3QvYXN0X21vZGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMK QEAgLTI3MSw3ICsyNzEsMTEgQEAgc3RhdGljIHZvaWQgYXN0X3NldF9jcnRjX3JlZyhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2QKIHsKIAlzdHJ1Y3Qg YXN0X3ByaXZhdGUgKmFzdCA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJdTgganJlZzA1ID0g MCwganJlZzA3ID0gMCwganJlZzA5ID0gMCwganJlZ0FDID0gMCwganJlZ0FEID0gMCwganJlZ0FF ID0gMDsKLQl1MTYgdGVtcDsKKwl1MTYgdGVtcCwgcHJlY2FjaGUgPSAwOworCisJaWYgKChhc3Qt PmNoaXAgPT0gQVNUMjUwMCkgJiYKKwkgICAgKHZiaW9zX21vZGUtPmVuaF90YWJsZS0+ZmxhZ3Mg JiBBU1QyNTAwUHJlQ2F0Y2hDUlQpKQorCQlwcmVjYWNoZSA9IDQwOwogCiAJYXN0X3NldF9pbmRl eF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4MTEsIDB4N2YsIDB4MDApOwogCkBA IC0yOTcsMTIgKzMwMSwxMiBAQCBzdGF0aWMgdm9pZCBhc3Rfc2V0X2NydGNfcmVnKHN0cnVjdCBk cm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZAogCQlqcmVnQUQgfD0g MHgwMTsgIC8qIEhCRSBEWzVdICovCiAJYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9J T19DUlRDX1BPUlQsIDB4MDMsIDB4RTAsICh0ZW1wICYgMHgxZikpOwogCi0JdGVtcCA9IChtb2Rl LT5jcnRjX2hzeW5jX3N0YXJ0ID4+IDMpIC0gMTsKKwl0ZW1wID0gKChtb2RlLT5jcnRjX2hzeW5j X3N0YXJ0LXByZWNhY2hlKSA+PiAzKSAtIDE7CiAJaWYgKHRlbXAgJiAweDEwMCkKIAkJanJlZ0FD IHw9IDB4NDA7IC8qIEhSUyBEWzVdICovCiAJYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFT VF9JT19DUlRDX1BPUlQsIDB4MDQsIDB4MDAsIHRlbXApOwogCi0JdGVtcCA9ICgobW9kZS0+Y3J0 Y19oc3luY19lbmQgPj4gMykgLSAxKSAmIDB4M2Y7CisJdGVtcCA9ICgoKG1vZGUtPmNydGNfaHN5 bmNfZW5kLXByZWNhY2hlKSA+PiAzKSAtIDEpICYgMHgzZjsKIAlpZiAodGVtcCAmIDB4MjApCiAJ CWpyZWdBRCB8PSAweDA0OyAvKiBIUkUgRFs1XSAqLwogCWFzdF9zZXRfaW5kZXhfcmVnX21hc2so YXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweDA1LCAweDYwLCAodTgpKCh0ZW1wICYgMHgxZikgfCBq cmVnMDUpKTsKQEAgLTM2Myw2ICszNjcsMTEgQEAgc3RhdGljIHZvaWQgYXN0X3NldF9jcnRjX3Jl ZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2QKIAlh c3Rfc2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwgMHgwOSwgMHhkZiwg anJlZzA5KTsKIAlhc3Rfc2V0X2luZGV4X3JlZ19tYXNrKGFzdCwgQVNUX0lPX0NSVENfUE9SVCwg MHhBRSwgMHgwMCwgKGpyZWdBRSB8IDB4ODApKTsKIAorCWlmIChwcmVjYWNoZSkKKwkJYXN0X3Nl dF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YjYsIDB4M2YsIDB4ODAp OworCWVsc2UKKwkJYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQs IDB4YjYsIDB4M2YsIDB4MDApOworCiAJYXN0X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9J T19DUlRDX1BPUlQsIDB4MTEsIDB4N2YsIDB4ODApOwogfQogCkBAIC0zODMsMTIgKzM5MiwxNiBA QCBzdGF0aWMgdm9pZCBhc3Rfc2V0X2RjbGtfcmVnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptbwogCXN0cnVjdCBhc3RfcHJpdmF0ZSAqYXN0ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAljb25zdCBzdHJ1Y3QgYXN0X3ZiaW9zX2RjbGtfaW5mbyAqY2xrX2lu Zm87CiAKLQljbGtfaW5mbyA9ICZkY2xrX3RhYmxlW3ZiaW9zX21vZGUtPmVuaF90YWJsZS0+ZGNs a19pbmRleF07CisJaWYgKGFzdC0+Y2hpcCA9PSBBU1QyNTAwKQorCQljbGtfaW5mbyA9ICZkY2xr X3RhYmxlX2FzdDI1MDBbdmJpb3NfbW9kZS0+ZW5oX3RhYmxlLT5kY2xrX2luZGV4XTsKKwllbHNl CisJCWNsa19pbmZvID0gJmRjbGtfdGFibGVbdmJpb3NfbW9kZS0+ZW5oX3RhYmxlLT5kY2xrX2lu ZGV4XTsKIAogCWFzdF9zZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAw eGMwLCAweDAwLCBjbGtfaW5mby0+cGFyYW0xKTsKIAlhc3Rfc2V0X2luZGV4X3JlZ19tYXNrKGFz dCwgQVNUX0lPX0NSVENfUE9SVCwgMHhjMSwgMHgwMCwgY2xrX2luZm8tPnBhcmFtMik7CiAJYXN0 X3NldF9pbmRleF9yZWdfbWFzayhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YmIsIDB4MGYsCi0J CQkgICAgICAgKGNsa19pbmZvLT5wYXJhbTMgJiAweDgwKSB8ICgoY2xrX2luZm8tPnBhcmFtMyAm IDB4MykgPDwgNCkpOworCQkJICAgICAgIChjbGtfaW5mby0+cGFyYW0zICYgMHhjMCkgfAorCQkJ ICAgICAgICgoY2xrX2luZm8tPnBhcmFtMyAmIDB4MykgPDwgNCkpOwogfQogCiBzdGF0aWMgdm9p ZCBhc3Rfc2V0X2V4dF9yZWcoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSwKQEAgLTQyMSw3ICs0MzQsOCBAQCBzdGF0aWMgdm9pZCBhc3Rfc2V0X2V4 dF9yZWcoc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZQogCWFzdF9zZXRfaW5kZXhfcmVnX21hc2soYXN0LCBBU1RfSU9fQ1JUQ19QT1JULCAweGE4LCAw eGZkLCBqcmVnQTgpOwogCiAJLyogU2V0IFRocmVzaG9sZCAqLwotCWlmIChhc3QtPmNoaXAgPT0g QVNUMjMwMCB8fCBhc3QtPmNoaXAgPT0gQVNUMjQwMCkgeworCWlmIChhc3QtPmNoaXAgPT0gQVNU MjMwMCB8fCBhc3QtPmNoaXAgPT0gQVNUMjQwMCB8fAorCSAgICBhc3QtPmNoaXAgPT0gQVNUMjUw MCkgewogCQlhc3Rfc2V0X2luZGV4X3JlZyhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YTcsIDB4 NzgpOwogCQlhc3Rfc2V0X2luZGV4X3JlZyhhc3QsIEFTVF9JT19DUlRDX1BPUlQsIDB4YTYsIDB4 NjApOwogCX0gZWxzZSBpZiAoYXN0LT5jaGlwID09IEFTVDIxMDAgfHwKQEAgLTc5NCw3ICs4MDgs OSBAQCBzdGF0aWMgaW50IGFzdF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCiAJCWlmICgobW9kZS0+aGRpc3BsYXkgPT0gMTYwMCkgJiYgKG1vZGUtPnZkaXNwbGF5 ID09IDkwMCkpCiAJCQlyZXR1cm4gTU9ERV9PSzsKIAotCQlpZiAoKGFzdC0+Y2hpcCA9PSBBU1Qy MTAwKSB8fCAoYXN0LT5jaGlwID09IEFTVDIyMDApIHx8IChhc3QtPmNoaXAgPT0gQVNUMjMwMCkg fHwgKGFzdC0+Y2hpcCA9PSBBU1QyNDAwKSB8fCAoYXN0LT5jaGlwID09IEFTVDExODApKSB7CisJ CWlmICgoYXN0LT5jaGlwID09IEFTVDIxMDApIHx8IChhc3QtPmNoaXAgPT0gQVNUMjIwMCkgfHwK KwkJICAgIChhc3QtPmNoaXAgPT0gQVNUMjMwMCkgfHwgKGFzdC0+Y2hpcCA9PSBBU1QyNDAwKSB8 fAorCQkgICAgKGFzdC0+Y2hpcCA9PSBBU1QyNTAwKSB8fCAoYXN0LT5jaGlwID09IEFTVDExODAp KSB7CiAJCQlpZiAoKG1vZGUtPmhkaXNwbGF5ID09IDE5MjApICYmIChtb2RlLT52ZGlzcGxheSA9 PSAxMDgwKSkKIAkJCQlyZXR1cm4gTU9ERV9PSzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FzdC9hc3RfdGFibGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90YWJsZXMuaApp bmRleCBhNGRkZjkwLi41ZjRjMmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2Fz dF90YWJsZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90YWJsZXMuaApAQCAtNDcs NiArNDcsNyBAQAogI2RlZmluZSBTeW5jUE4JCQkoUFZTeW5jIHwgTkhTeW5jKQogI2RlZmluZSBT eW5jTlAJCQkoTlZTeW5jIHwgUEhTeW5jKQogI2RlZmluZSBTeW5jTk4JCQkoTlZTeW5jIHwgTkhT eW5jKQorI2RlZmluZSBBU1QyNTAwUHJlQ2F0Y2hDUlQJCTB4MDAwMDQwMDAKIAogLyogRENMSyBJ bmRleCAqLwogI2RlZmluZSBWQ0xLMjVfMTc1ICAgICAJCTB4MDAKQEAgLTEwOCw2ICsxMDksMzYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhc3RfdmJpb3NfZGNsa19pbmZvIGRjbGtfdGFibGVbXSA9 IHsKIAl7MHgzYiwgMHgyYywgMHg4MX0sCQkJLyogMUE6IFZDTEsxMThfMjUJKi8KIH07CiAKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgYXN0X3ZiaW9zX2RjbGtfaW5mbyBkY2xrX3RhYmxlX2FzdDI1MDBb XSA9IHsKKwl7MHgyQywgMHhFNywgMHgwM30sCQkJLyogMDA6IFZDTEsyNV8xNzUJKi8KKwl7MHg5 NSwgMHg2MiwgMHgwM30sCQkJLyogMDE6IFZDTEsyOF8zMjIJKi8KKwl7MHg2NywgMHg2MywgMHgw MX0sCQkJLyogMDI6IFZDTEszMV81CQkqLworCXsweDc2LCAweDYzLCAweDAxfSwJCQkvKiAwMzog VkNMSzM2CQkqLworCXsweEVFLCAweDY3LCAweDAxfSwJCQkvKiAwNDogVkNMSzQwCQkqLworCXsw eDgyLCAweDYyLCAweDAxfSwJCQkvKiAwNTogVkNMSzQ5XzUJCSovCisJezB4QzYsIDB4NjQsIDB4 MDF9LAkJCS8qIDA2OiBWQ0xLNTAJCSovCisJezB4OTQsIDB4NjIsIDB4MDF9LAkJCS8qIDA3OiBW Q0xLNTZfMjUJKi8KKwl7MHg4MCwgMHg2NCwgMHgwMH0sCQkJLyogMDg6IFZDTEs2NQkJKi8KKwl7 MHg3QiwgMHg2MywgMHgwMH0sCQkJLyogMDk6IFZDTEs3NQkJKi8KKwl7MHg2NywgMHg2MiwgMHgw MH0sCQkJLyogMEE6IFZDTEs3OF83NQkqLworCXsweDdDLCAweDYyLCAweDAwfSwJCQkvKiAwQjog VkNMSzk0XzUJCSovCisJezB4OEUsIDB4NjIsIDB4MDB9LAkJCS8qIDBDOiBWQ0xLMTA4CQkqLwor CXsweDg1LCAweDI0LCAweDAwfSwJCQkvKiAwRDogVkNMSzEzNQkJKi8KKwl7MHg2NywgMHgyMiwg MHgwMH0sCQkJLyogMEU6IFZDTEsxNTdfNQkqLworCXsweDZBLCAweDIyLCAweDAwfSwJCQkvKiAw RjogVkNMSzE2MgkJKi8KKwl7MHg0ZCwgMHg0YywgMHg4MH0sCQkJLyogMTA6IFZDTEsxNTQJCSov CisJezB4YTcsIDB4NzgsIDB4ODB9LAkJCS8qIDExOiBWQ0xLODMuNQkJKi8KKwl7MHgyOCwgMHg0 OSwgMHg4MH0sCQkJLyogMTI6IFZDTEsxMDYuNQkqLworCXsweDM3LCAweDQ5LCAweDgwfSwJCQkv KiAxMzogVkNMSzE0Ni4yNQkqLworCXsweDFmLCAweDQ1LCAweDgwfSwJCQkvKiAxNDogVkNMSzE0 OC41CSovCisJezB4NDcsIDB4NmMsIDB4ODB9LAkJCS8qIDE1OiBWQ0xLNzEJCSovCisJezB4MjUs IDB4NjUsIDB4ODB9LAkJCS8qIDE2OiBWQ0xLODguNzUJKi8KKwl7MHg1OCwgMHgwMSwgMHg0Mn0s CQkJLyogMTc6IFZDTEsxMTkJCSovCisJezB4MzIsIDB4NjcsIDB4ODB9LAkJCS8qIDE4OiBWQ0xL ODVfNQkJKi8KKwl7MHg2YSwgMHg2ZCwgMHg4MH0sCQkJLyogMTk6IFZDTEs5N183NQkqLworCXsw eDQ0LCAweDIwLCAweDQzfSwJCQkvKiAxQTogVkNMSzExOF8yNQkqLworfTsKKwogc3RhdGljIGNv bnN0IHN0cnVjdCBhc3RfdmJpb3Nfc3RkdGFibGUgdmJpb3Nfc3RkdGFibGVbXSA9IHsKIAkvKiBN RF8yXzNfNDAwICovCiAJewpAQCAtMjQ2LDEyICsyNzcsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBhc3RfdmJpb3NfZW5odGFibGUgcmVzXzEzNjB4NzY4W10gPSB7CiAJezE3OTIsIDEzNjAsIDY0 LCAxMTIsIDc5NSwgNzY4LCAzLCA2LCBWQ0xLODVfNSwJCS8qIDYwSHogKi8KIAkgKFN5bmNQUCB8 IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfCBOZXdNb2RlSW5m byksIDYwLCAxLCAweDM5IH0sCiAJezE3OTIsIDEzNjAsIDY0LCAxMTIsIDc5NSwgNzY4LCAzLCA2 LCBWQ0xLODVfNSwJICAgICAgICAgLyogZW5kICovCi0JIChTeW5jUFAgfCBDaGFyeDhEb3QgfCBM aW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwgTmV3TW9kZUluZm8pLCAweEZGLCAxLCAw eDM5IH0sCisJIChTeW5jUFAgfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3Jl ZW5Nb2RlIHwgTmV3TW9kZUluZm8gfAorCSAgQVNUMjUwMFByZUNhdGNoQ1JUKSwgMHhGRiwgMSwg MHgzOSB9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhc3RfdmJpb3NfZW5odGFibGUgcmVz XzE2MDB4OTAwW10gPSB7CiAJezE3NjAsIDE2MDAsIDQ4LCAzMiwgOTI2LCA5MDAsIDMsIDUsIFZD TEs5N183NSwJCS8qIDYwSHogQ1ZUIFJCICovCi0JIChTeW5jTlAgfCBDaGFyeDhEb3QgfCBMaW5l Q29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwgTmV3TW9kZUluZm8pLCA2MCwgMSwgMHgzQSB9 LAorCSAoU3luY05QIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9k ZSB8IE5ld01vZGVJbmZvIHwKKwkgIEFTVDI1MDBQcmVDYXRjaENSVCksIDYwLCAxLCAweDNBIH0s CiAJezIxMTIsIDE2MDAsIDg4LCAxNjgsIDkzNCwgOTAwLCAzLCA1LCBWQ0xLMTE4XzI1LAkvKiA2 MEh6IENWVCAqLwogCSAoU3luY1BOIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRl U2NyZWVuTW9kZSB8IE5ld01vZGVJbmZvKSwgNjAsIDIsIDB4M0EgfSwKIAl7MjExMiwgMTYwMCwg ODgsIDE2OCwgOTM0LCA5MDAsIDMsIDUsIFZDTEsxMThfMjUsCS8qIDYwSHogQ1ZUICovCkBAIC0y NjAsMTYgKzI5MywxOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFzdF92Ymlvc19lbmh0YWJsZSBy ZXNfMTYwMHg5MDBbXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhc3RfdmJpb3NfZW5odGFi bGUgcmVzXzE5MjB4MTA4MFtdID0gewogCXsyMjAwLCAxOTIwLCA4OCwgNDQsIDExMjUsIDEwODAs IDQsIDUsIFZDTEsxNDhfNSwJLyogNjBIeiAqLwotCSAoU3luY05QIHwgQ2hhcng4RG90IHwgTGlu ZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8IE5ld01vZGVJbmZvKSwgNjAsIDEsIDB4Mzgg fSwKKwkgKFN5bmNOUCB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1v ZGUgfCBOZXdNb2RlSW5mbyB8CisJICBBU1QyNTAwUHJlQ2F0Y2hDUlQpLCA2MCwgMSwgMHgzOCB9 LAogCXsyMjAwLCAxOTIwLCA4OCwgNDQsIDExMjUsIDEwODAsIDQsIDUsIFZDTEsxNDhfNSwJLyog NjBIeiAqLwotCSAoU3luY05QIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2Ny ZWVuTW9kZSB8IE5ld01vZGVJbmZvKSwgMHhGRiwgMSwgMHgzOCB9LAorCSAoU3luY05QIHwgQ2hh cng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8IE5ld01vZGVJbmZvIHwK KwkgIEFTVDI1MDBQcmVDYXRjaENSVCksIDB4RkYsIDEsIDB4MzggfSwKIH07CiAKIAogLyogMTY6 MTAgKi8KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXN0X3ZiaW9zX2VuaHRhYmxlIHJlc18xMjgweDgw MFtdID0gewogCXsxNDQwLCAxMjgwLCA0OCwgMzIsICA4MjMsICA4MDAsIDMsIDYsIFZDTEs3MSwJ CS8qIDYwSHogUkIgKi8KLQkgKFN5bmNOUCB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwg V2lkZVNjcmVlbk1vZGUgfCBOZXdNb2RlSW5mbyksIDYwLCAxLCAweDM1IH0sCisJIChTeW5jTlAg fCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwgTmV3TW9kZUlu Zm8gfAorCSAgQVNUMjUwMFByZUNhdGNoQ1JUKSwgNjAsIDEsIDB4MzUgfSwKIAl7MTY4MCwgMTI4 MCwgNzIsMTI4LCAgODMxLCAgODAwLCAzLCA2LCBWQ0xLODNfNSwJLyogNjBIeiAqLwogCSAoU3lu Y1BOIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8IE5ld01v ZGVJbmZvKSwgNjAsIDIsIDB4MzUgfSwKIAl7MTY4MCwgMTI4MCwgNzIsMTI4LCAgODMxLCAgODAw LCAzLCA2LCBWQ0xLODNfNSwJLyogNjBIeiAqLwpAQCAtMjc5LDcgKzMxNSw4IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYXN0X3ZiaW9zX2VuaHRhYmxlIHJlc18xMjgweDgwMFtdID0gewogCiBzdGF0 aWMgY29uc3Qgc3RydWN0IGFzdF92Ymlvc19lbmh0YWJsZSByZXNfMTQ0MHg5MDBbXSA9IHsKIAl7 MTYwMCwgMTQ0MCwgNDgsIDMyLCAgOTI2LCAgOTAwLCAzLCA2LCBWQ0xLODhfNzUsCS8qIDYwSHog UkIgKi8KLQkgKFN5bmNOUCB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVl bk1vZGUgfCBOZXdNb2RlSW5mbyksIDYwLCAxLCAweDM2IH0sCisJIChTeW5jTlAgfCBDaGFyeDhE b3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwgTmV3TW9kZUluZm8gfAorCSAg QVNUMjUwMFByZUNhdGNoQ1JUKSwgNjAsIDEsIDB4MzYgfSwKIAl7MTkwNCwgMTQ0MCwgODAsMTUy LCAgOTM0LCAgOTAwLCAzLCA2LCBWQ0xLMTA2XzUsCS8qIDYwSHogKi8KIAkgKFN5bmNQTiB8IENo YXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfCBOZXdNb2RlSW5mbyks IDYwLCAyLCAweDM2IH0sCiAJezE5MDQsIDE0NDAsIDgwLDE1MiwgIDkzNCwgIDkwMCwgMywgNiwg VkNMSzEwNl81LAkvKiA2MEh6ICovCkBAIC0yODgsNyArMzI1LDggQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBhc3RfdmJpb3NfZW5odGFibGUgcmVzXzE0NDB4OTAwW10gPSB7CiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYXN0X3ZiaW9zX2VuaHRhYmxlIHJlc18xNjgweDEwNTBbXSA9IHsKIAl7MTg0MCwg MTY4MCwgNDgsIDMyLCAxMDgwLCAxMDUwLCAzLCA2LCBWQ0xLMTE5LAkJLyogNjBIeiBSQiAqLwot CSAoU3luY05QIHwgQ2hhcng4RG90IHwgTGluZUNvbXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8 IE5ld01vZGVJbmZvKSwgNjAsIDEsIDB4MzcgfSwKKwkgKFN5bmNOUCB8IENoYXJ4OERvdCB8IExp bmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfCBOZXdNb2RlSW5mbyB8CisJICBBU1QyNTAw UHJlQ2F0Y2hDUlQpLCA2MCwgMSwgMHgzNyB9LAogCXsyMjQwLCAxNjgwLDEwNCwxNzYsIDEwODks IDEwNTAsIDMsIDYsIFZDTEsxNDZfMjUsCS8qIDYwSHogKi8KIAkgKFN5bmNQTiB8IENoYXJ4OERv dCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfCBOZXdNb2RlSW5mbyksIDYwLCAy LCAweDM3IH0sCiAJezIyNDAsIDE2ODAsMTA0LDE3NiwgMTA4OSwgMTA1MCwgMywgNiwgVkNMSzE0 Nl8yNSwJLyogNjBIeiAqLwpAQCAtMjk3LDkgKzMzNSwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGFzdF92Ymlvc19lbmh0YWJsZSByZXNfMTY4MHgxMDUwW10gPSB7CiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYXN0X3ZiaW9zX2VuaHRhYmxlIHJlc18xOTIweDEyMDBbXSA9IHsKIAl7MjA4MCwgMTky MCwgNDgsIDMyLCAxMjM1LCAxMjAwLCAzLCA2LCBWQ0xLMTU0LAkJLyogNjBIeiBSQiovCi0JIChT eW5jTlAgfCBDaGFyeDhEb3QgfCBMaW5lQ29tcGFyZU9mZiB8IFdpZGVTY3JlZW5Nb2RlIHwgTmV3 TW9kZUluZm8pLCA2MCwgMSwgMHgzNCB9LAorCSAoU3luY05QIHwgQ2hhcng4RG90IHwgTGluZUNv bXBhcmVPZmYgfCBXaWRlU2NyZWVuTW9kZSB8IE5ld01vZGVJbmZvIHwKKwkgIEFTVDI1MDBQcmVD YXRjaENSVCksIDYwLCAxLCAweDM0IH0sCiAJezIwODAsIDE5MjAsIDQ4LCAzMiwgMTIzNSwgMTIw MCwgMywgNiwgVkNMSzE1NCwJCS8qIDYwSHogUkIgKi8KLQkgKFN5bmNOUCB8IENoYXJ4OERvdCB8 IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNjcmVlbk1vZGUgfCBOZXdNb2RlSW5mbyksIDB4RkYsIDEs IDB4MzQgfSwKKwkgKFN5bmNOUCB8IENoYXJ4OERvdCB8IExpbmVDb21wYXJlT2ZmIHwgV2lkZVNj cmVlbk1vZGUgfCBOZXdNb2RlSW5mbyB8CisJICBBU1QyNTAwUHJlQ2F0Y2hDUlQpLCAweEZGLCAx LCAweDM0IH0sCiB9OwogCiAjZW5kaWYKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK