From: Eric Anholt Subject: [PATCH 3/3] drm/vc4: Add support for SAND modifier. Date: Fri, 16 Mar 2018 15:04:35 -0700 Message-ID: <20180316220435.31416-3-eric@anholt.net> References: <20180316220435.31416-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from anholt.net (anholt.net [50.246.234.109]) by gabe.freedesktop.org (Postfix) with ESMTP id 512436EC05 for ; Fri, 16 Mar 2018 22:04:40 +0000 (UTC) In-Reply-To: <20180316220435.31416-1-eric@anholt.net> 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: Dave Stevenson , Boris Brezillon , Maxime Ripard , linux-kernel@vger.kernel.org, Daniel Stone List-Id: dri-devel@lists.freedesktop.org RnJvbTogRGF2ZSBTdGV2ZW5zb24gPGRhdmUuc3RldmVuc29uQHJhc3BiZXJyeXBpLm9yZz4KClRo aXMgaXMgdGhlIGZvcm1hdCBnZW5lcmF0ZWQgYnkgVkM0J3MgSC4yNjQgZW5naW5lLCBhbmQgcHJl ZmVycmVkIGJ5CnRoZSBJU1AgYXMgd2VsbC4gIEJ5IGRpc3BsYXlpbmcgU0FORCBidWZmZXJzIGRp cmVjdGx5LCB3ZSBjYW4gYXZvaWQKbmVlZGluZyB0byB1c2UgdGhlIElTUCB0byByZXdyaXRlIHRo ZSBTQU5EIEguMjY0IG91dHB1dCB0byBsaW5lYXIKYmVmb3JlIGRpc3BsYXkuCgpUaGlzIGlzIGEg am9pbnQgZWZmb3J0IGJ5IERhdmUgU3RldmVuc29uICh3aG8gd3JvdGUgdGhlIGluaXRpYWwgcGF0 Y2gKYW5kIERSTSBkZW1vKSBhbmQgRXJpYyBBbmhvbHQgKGRybV9mb3VyY2MuaCBnZW5lcmFsaXph dGlvbiwgc2FmZXR5CmNoZWNrcywgUkdCQSBzdXBwb3J0KS4KCnYyOiBNYWtlIHRoZSBwYXJhbWV0 ZXIgbWFjcm8gZ2l2ZSBhbGwgb2YgdGhlIG1pZGRsZSA0OCBiaXRzIChzdWdnZXN0ZWQKICAgIGJ5 IERhbmllbHMpLiAgRml4IGZvdXJjY19tb2RfYnJvYWRjb21fbW9kKCkncyBiaXRzL3NoaWZ0IGJl aW5nCiAgICBzd2FwcGVkLiAgTWFyayBOVjEyLzIxIGFzIHN1cHBvcnRlZCwgbm90IFlVVjQyMC4K ClNpZ25lZC1vZmYtYnk6IERhdmUgU3RldmVuc29uIDxkYXZlLnN0ZXZlbnNvbkByYXNwYmVycnlw aS5vcmc+ClNpZ25lZC1vZmYtYnk6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+CkNjOiBE YW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+CkNjOiBEYW5pZWwgU3RvbmUgPGRhbmllbHNA Y29sbGFib3JhLmNvbT4KQ2M6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGJvb3Rs aW4uY29tPgpDYzogTWF4aW1lIFJpcGFyZCA8bWF4aW1lLnJpcGFyZEBib290bGluLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jIHwgODQgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3JlZ3MuaCAg fCAgNiArKysKIGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oICAgfCA1OSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFu ZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUuYwppbmRleCBiYTAwYzE0Zjk4OWEu LjA2ZWM2ZmIwOGZlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxhbmUu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCkBAIC00NjYsMTEgKzQ2Niwx MyBAQCBzdGF0aWMgaW50IHZjNF9wbGFuZV9tb2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5mYjsKIAl1MzIgY3RsMF9v ZmZzZXQgPSB2YzRfc3RhdGUtPmRsaXN0X2NvdW50OwogCWNvbnN0IHN0cnVjdCBodnNfZm9ybWF0 ICpmb3JtYXQgPSB2YzRfZ2V0X2h2c19mb3JtYXQoZmItPmZvcm1hdC0+Zm9ybWF0KTsKKwl1NjQg YmFzZV9mb3JtYXRfbW9kID0gZm91cmNjX21vZF9icm9hZGNvbV9tb2QoZmItPm1vZGlmaWVyKTsK IAlpbnQgbnVtX3BsYW5lcyA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhmb3JtYXQtPmRybSk7CiAJ Ym9vbCBjb3ZlcnNfc2NyZWVuOwogCXUzMiBzY2wwLCBzY2wxLCBwaXRjaDA7CiAJdTMyIGxibV9z aXplLCB0aWxpbmc7CiAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwl1MzIgaHZzX2Zvcm1hdCA9 IGZvcm1hdC0+aHZzOwogCWludCByZXQsIGk7CiAKIAlyZXQgPSB2YzRfcGxhbmVfc2V0dXBfY2xp cHBpbmdfYW5kX3NjYWxpbmcoc3RhdGUpOwpAQCAtNTEwLDcgKzUxMiw3IEBAIHN0YXRpYyBpbnQg dmM0X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzY2wxID0gdmM0 X2dldF9zY2xfZmllbGQoc3RhdGUsIDApOwogCX0KIAotCXN3aXRjaCAoZmItPm1vZGlmaWVyKSB7 CisJc3dpdGNoIChiYXNlX2Zvcm1hdF9tb2QpIHsKIAljYXNlIERSTV9GT1JNQVRfTU9EX0xJTkVB UjoKIAkJdGlsaW5nID0gU0NBTEVSX0NUTDBfVElMSU5HX0xJTkVBUjsKIAkJcGl0Y2gwID0gVkM0 X1NFVF9GSUVMRChmYi0+cGl0Y2hlc1swXSwgU0NBTEVSX1NSQ19QSVRDSCk7CkBAIC01MzMsNiAr NTM1LDQ5IEBAIHN0YXRpYyBpbnQgdmM0X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCQlicmVhazsKIAl9CiAKKwljYXNlIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NB TkQ2NDoKKwljYXNlIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQxMjg6CisJY2FzZSBEUk1f Rk9STUFUX01PRF9CUk9BRENPTV9TQU5EMjU2OiB7CisJCXVpbnQzMl90IHBhcmFtID0gZm91cmNj X21vZF9icm9hZGNvbV9wYXJhbShmYi0+bW9kaWZpZXIpOworCisJCS8qIENvbHVtbi1iYXNlZCBO VjEyIG9yIFJHQkEuCisJCSAqLworCQlpZiAoZmItPmZvcm1hdC0+bnVtX3BsYW5lcyA+IDEpIHsK KwkJCWlmIChodnNfZm9ybWF0ICE9IEhWU19QSVhFTF9GT1JNQVRfWUNCQ1JfWVVWNDIwXzJQTEFO RSkgeworCQkJCURSTV9ERUJVR19LTVMoIlNBTkQgZm9ybWF0IG9ubHkgdmFsaWQgZm9yIE5WMTIv MjEiKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKwkJCWh2c19mb3JtYXQgPSBIVlNfUElY RUxfRk9STUFUX0gyNjQ7CisJCX0gZWxzZSB7CisJCQlpZiAoYmFzZV9mb3JtYXRfbW9kID09IERS TV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQyNTYpIHsKKwkJCQlEUk1fREVCVUdfS01TKCJTQU5E MjU2IGZvcm1hdCBvbmx5IHZhbGlkIGZvciBILjI2NCIpOworCQkJCXJldHVybiAtRUlOVkFMOwor CQkJfQorCQl9CisKKwkJc3dpdGNoIChiYXNlX2Zvcm1hdF9tb2QpIHsKKwkJY2FzZSBEUk1fRk9S TUFUX01PRF9CUk9BRENPTV9TQU5ENjQ6CisJCQl0aWxpbmcgPSBTQ0FMRVJfQ1RMMF9USUxJTkdf NjRCOworCQkJYnJlYWs7CisJCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDEyODoK KwkJCXRpbGluZyA9IFNDQUxFUl9DVEwwX1RJTElOR18xMjhCOworCQkJYnJlYWs7CisJCWNhc2Ug RFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDI1NjoKKwkJCXRpbGluZyA9IFNDQUxFUl9DVEww X1RJTElOR18yNTZCX09SX1Q7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9 CisKKwkJaWYgKHBhcmFtID4gU0NBTEVSX1RJTEVfSEVJR0hUX01BU0spIHsKKwkJCURSTV9ERUJV R19LTVMoIlNBTkQgaGVpZ2h0IHRvbyBsYXJnZSAoJWQpXG4iLCBwYXJhbSk7CisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJfQorCisJCXBpdGNoMCA9IFZDNF9TRVRfRklFTEQocGFyYW0sIFNDQUxFUl9U SUxFX0hFSUdIVCk7CisJCWJyZWFrOworCX0KKwogCWRlZmF1bHQ6CiAJCURSTV9ERUJVR19LTVMo IlVuc3VwcG9ydGVkIEZCIHRpbGluZyBmbGFnIDB4JTE2bGx4IiwKIAkJCSAgICAgIChsb25nIGxv bmcpZmItPm1vZGlmaWVyKTsKQEAgLTU0Myw3ICs1ODgsNyBAQCBzdGF0aWMgaW50IHZjNF9wbGFu ZV9tb2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl2YzRfZGxpc3Rfd3JpdGUodmM0 X3N0YXRlLAogCQkJU0NBTEVSX0NUTDBfVkFMSUQgfAogCQkJKGZvcm1hdC0+cGl4ZWxfb3JkZXIg PDwgU0NBTEVSX0NUTDBfT1JERVJfU0hJRlQpIHwKLQkJCShmb3JtYXQtPmh2cyA8PCBTQ0FMRVJf Q1RMMF9QSVhFTF9GT1JNQVRfU0hJRlQpIHwKKwkJCShodnNfZm9ybWF0IDw8IFNDQUxFUl9DVEww X1BJWEVMX0ZPUk1BVF9TSElGVCkgfAogCQkJVkM0X1NFVF9GSUVMRCh0aWxpbmcsIFNDQUxFUl9D VEwwX1RJTElORykgfAogCQkJKHZjNF9zdGF0ZS0+aXNfdW5pdHkgPyBTQ0FMRVJfQ1RMMF9VTklU WSA6IDApIHwKIAkJCVZDNF9TRVRfRklFTEQoc2NsMCwgU0NBTEVSX0NUTDBfU0NMMCkgfApAQCAt NTk3LDggKzY0MiwxMyBAQCBzdGF0aWMgaW50IHZjNF9wbGFuZV9tb2RlX3NldChzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKIAogCS8qIFBpdGNoIHdvcmQgMS8yICovCiAJZm9yIChpID0gMTsgaSA8 IG51bV9wbGFuZXM7IGkrKykgewotCQl2YzRfZGxpc3Rfd3JpdGUodmM0X3N0YXRlLAotCQkJCVZD NF9TRVRfRklFTEQoZmItPnBpdGNoZXNbaV0sIFNDQUxFUl9TUkNfUElUQ0gpKTsKKwkJaWYgKGh2 c19mb3JtYXQgIT0gSFZTX1BJWEVMX0ZPUk1BVF9IMjY0KSB7CisJCQl2YzRfZGxpc3Rfd3JpdGUo dmM0X3N0YXRlLAorCQkJCQlWQzRfU0VUX0ZJRUxEKGZiLT5waXRjaGVzW2ldLAorCQkJCQkJICAg ICAgU0NBTEVSX1NSQ19QSVRDSCkpOworCQl9IGVsc2UgeworCQkJdmM0X2RsaXN0X3dyaXRlKHZj NF9zdGF0ZSwgcGl0Y2gwKTsKKwkJfQogCX0KIAogCS8qIENvbG9yc3BhY2UgY29udmVyc2lvbiB3 b3JkcyAqLwpAQCAtODc4LDEzICs5MjgsMzAgQEAgc3RhdGljIGJvb2wgdmM0X2Zvcm1hdF9tb2Rf c3VwcG9ydGVkKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWNhc2UgRFJNX0ZPUk1BVF9CR1I1 NjU6CiAJY2FzZSBEUk1fRk9STUFUX0FSR0IxNTU1OgogCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMTU1 NToKLQkJcmV0dXJuIHRydWU7CisJCXN3aXRjaCAoZm91cmNjX21vZF9icm9hZGNvbV9tb2QobW9k aWZpZXIpKSB7CisJCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTElORUFSOgorCQljYXNlIERSTV9GT1JN QVRfTU9EX0JST0FEQ09NX1ZDNF9UX1RJTEVEOgorCQljYXNlIERSTV9GT1JNQVRfTU9EX0JST0FE Q09NX1NBTkQ2NDoKKwkJY2FzZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMTI4OgorCQkJ cmV0dXJuIHRydWU7CisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwljYXNlIERS TV9GT1JNQVRfTlYxMjoKKwljYXNlIERSTV9GT1JNQVRfTlYyMToKKwkJc3dpdGNoIChmb3VyY2Nf bW9kX2Jyb2FkY29tX21vZChtb2RpZmllcikpIHsKKwkJY2FzZSBEUk1fRk9STUFUX01PRF9MSU5F QVI6CisJCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDY0OgorCQljYXNlIERSTV9G T1JNQVRfTU9EX0JST0FEQ09NX1NBTkQxMjg6CisJCWNhc2UgRFJNX0ZPUk1BVF9NT0RfQlJPQURD T01fU0FORDI1NjoKKwkJCXJldHVybiB0cnVlOworCQlkZWZhdWx0OgorCQkJcmV0dXJuIGZhbHNl OworCQl9CiAJY2FzZSBEUk1fRk9STUFUX1lVVjQyMjoKIAljYXNlIERSTV9GT1JNQVRfWVZVNDIy OgogCWNhc2UgRFJNX0ZPUk1BVF9ZVVY0MjA6CiAJY2FzZSBEUk1fRk9STUFUX1lWVTQyMDoKLQlj YXNlIERSTV9GT1JNQVRfTlYxMjoKLQljYXNlIERSTV9GT1JNQVRfTlYyMToKIAljYXNlIERSTV9G T1JNQVRfTlYxNjoKIAljYXNlIERSTV9GT1JNQVRfTlY2MToKIAlkZWZhdWx0OgpAQCAtOTE0LDYg Kzk4MSw5IEBAIHN0cnVjdCBkcm1fcGxhbmUgKnZjNF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJdW5zaWduZWQgaTsKIAlzdGF0aWMgY29uc3QgdWludDY0X3QgbW9kaWZpZXJz W10gPSB7CiAJCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1ZDNF9UX1RJTEVELAorCQlEUk1fRk9S TUFUX01PRF9CUk9BRENPTV9TQU5EMTI4LAorCQlEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5E NjQsCisJCURSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1NBTkQyNTYsCiAJCURSTV9GT1JNQVRfTU9E X0xJTkVBUiwKIAkJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAogCX07CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9yZWdzLmggYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9yZWdz LmgKaW5kZXggNGFmM2UyOWQwNzZhLi5mYjhhZjE5ZjEyYmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X3JlZ3MuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9yZWdz LmgKQEAgLTEwMzAsNiArMTAzMCwxMiBAQCBlbnVtIGh2c19waXhlbF9mb3JtYXQgewogI2RlZmlu ZSBTQ0FMRVJfU1JDX1BJVENIX01BU0sJCQlWQzRfTUFTSygxNSwgMCkKICNkZWZpbmUgU0NBTEVS X1NSQ19QSVRDSF9TSElGVAkJCTAKIAorLyogUElUQ0gwLzEvMiBmaWVsZHMgZm9yIHRpbGVkIChT QU5EKS4gKi8KKyNkZWZpbmUgU0NBTEVSX1RJTEVfU0tJUF8wX01BU0sJCQlWQzRfTUFTSygxOCwg MTYpCisjZGVmaW5lIFNDQUxFUl9USUxFX1NLSVBfMF9TSElGVAkJMTYKKyNkZWZpbmUgU0NBTEVS X1RJTEVfSEVJR0hUX01BU0sJCQlWQzRfTUFTSygxNSwgMCkKKyNkZWZpbmUgU0NBTEVSX1RJTEVf SEVJR0hUX1NISUZUCQkwCisKIC8qIFBJVENIMCBmaWVsZHMgZm9yIFQtdGlsZWQuICovCiAjZGVm aW5lIFNDQUxFUl9QSVRDSDBfVElMRV9XSURUSF9MX01BU0sJCVZDNF9NQVNLKDIyLCAxNikKICNk ZWZpbmUgU0NBTEVSX1BJVENIMF9USUxFX1dJRFRIX0xfU0hJRlQJMTYKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fZm91cmNj LmgKaW5kZXggZTA0NjEzZDMwYTEzLi42NGJmNjdhYmZmN2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv dWFwaS9kcm0vZHJtX2ZvdXJjYy5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5o CkBAIC0zODQsNiArMzg0LDIzIEBAIGV4dGVybiAiQyIgewogI2RlZmluZSBEUk1fRk9STUFUX01P RF9OVklESUFfMTZCWDJfQkxPQ0tfVEhJUlRZVFdPX0dPQiBcCiAJZm91cmNjX21vZF9jb2RlKE5W SURJQSwgMHgxNSkKIAorLyoKKyAqIFNvbWUgQnJvYWRjb20gbW9kaWZpZXJzIHRha2UgcGFyYW1l dGVycywgZm9yIGV4YW1wbGUgdGhlIG51bWJlciBvZgorICogdmVydGljYWwgbGluZXMgaW4gdGhl IGltYWdlLiBSZXNlcnZlIHRoZSBsb3dlciAzMiBiaXRzIGZvciBtb2RpZmllcgorICogdHlwZSwg YW5kIHRoZSBuZXh0IDI0IGJpdHMgZm9yIHBhcmFtZXRlcnMuIFRvcCA4IGJpdHMgYXJlIHRoZQor ICogdmVuZG9yIGNvZGUuCisgKi8KKyNkZWZpbmUgX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFt X3NoaWZ0IDgKKyNkZWZpbmUgX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFtX2JpdHMgNDgKKyNk ZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9jb2RlKHZhbCwgcGFyYW1zKSBcCisJZm91cmNjX21v ZF9jb2RlKEJST0FEQ09NLCAoKCgoX191NjQpcGFyYW1zKSA8PCBfX2ZvdXJjY19tb2RfYnJvYWRj b21fcGFyYW1fc2hpZnQpIHwgdmFsKSkKKyNkZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9wYXJh bShtKSBcCisJKChpbnQpKCgobSkgPj4gX19mb3VyY2NfbW9kX2Jyb2FkY29tX3BhcmFtX3NoaWZ0 KSAmCVwKKwkgICAgICAgKCgxVUxMIDw8IF9fZm91cmNjX21vZF9icm9hZGNvbV9wYXJhbV9iaXRz KSAtIDEpKSkKKyNkZWZpbmUgZm91cmNjX21vZF9icm9hZGNvbV9tb2QobSkgXAorCSgobSkgJiB+ KCgoMVVMTCA8PCBfX2ZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW1fYml0cykgLSAxKSA8PAlcCisJ CSBfX2ZvdXJjY19tb2RfYnJvYWRjb21fcGFyYW1fc2hpZnQpKQorCiAvKgogICogQnJvYWRjb20g VkM0ICJUIiBmb3JtYXQKICAqCkBAIC00MDUsNiArNDIyLDQ4IEBAIGV4dGVybiAiQyIgewogICov CiAjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09NX1ZDNF9UX1RJTEVEIGZvdXJjY19tb2Rf Y29kZShCUk9BRENPTSwgMSkKIAorLyoKKyAqIEJyb2FkY29tIFNBTkQgZm9ybWF0CisgKgorICog VGhpcyBpcyB0aGUgbmF0aXZlIGZvcm1hdCB0aGF0IHRoZSBILjI2NCBjb2RlYyBibG9jayB1c2Vz LiAgRm9yIFZDNAorICogSFZTLCBpdCBpcyBvbmx5IHZhbGlkIGZvciBILjI2NCAoTlYxMi8yMSkg YW5kIFJHQkEgbW9kZXMuCisgKgorICogVGhlIGltYWdlIGNhbiBiZSBjb25zaWRlcmVkIHRvIGJl IHNwbGl0IGludG8gY29sdW1ucywgYW5kIHRoZQorICogY29sdW1ucyBhcmUgcGxhY2VkIGNvbnNl Y3V0aXZlbHkgaW50byBtZW1vcnkuICBUaGUgd2lkdGggb2YgdGhvc2UKKyAqIGNvbHVtbnMgY2Fu IGJlIGVpdGhlciAzMiwgNjQsIDEyOCwgb3IgMjU2IHBpeGVscywgYnV0IGluIHByYWN0aWNlCisg KiBvbmx5IDEyOCBwaXhlbCBjb2x1bW5zIGFyZSB1c2VkLgorICoKKyAqIFRoZSBwaXRjaCBiZXR3 ZWVuIHRoZSBzdGFydCBvZiBlYWNoIGNvbHVtbiBpcyBzZXQgdG8gb3B0aW1hbGx5CisgKiBzd2l0 Y2ggYmV0d2VlbiBTRFJBTSBiYW5rcy4gVGhpcyBpcyBwYXNzZWQgYXMgdGhlIG51bWJlciBvZiBs aW5lcworICogb2YgY29sdW1uIHdpZHRoIGluIHRoZSBtb2RpZmllciAod2UgY2FuJ3QgdXNlIHRo ZSBzdHJpZGUgdmFsdWUgZHVlCisgKiB0byB2YXJpb3VzIGNvcmUgY2hlY2tzIHRoYXQgbG9vayBh dCBpdCAsIHNvIHlvdSBzaG91bGQgc2V0IHRoZQorICogc3RyaWRlIHRvIHdpZHRoKmNwcCkuCisg KgorICogTm90ZSB0aGF0IHRoZSBjb2x1bW4gaGVpZ2h0IGZvciB0aGlzIGZvcm1hdCBtb2RpZmll ciBpcyB0aGUgc2FtZQorICogZm9yIGFsbCBvZiB0aGUgcGxhbmVzLCBhc3N1bWluZyB0aGF0IGVh Y2ggY29sdW1uIGNvbnRhaW5zIGJvdGggWQorICogYW5kIFVWLiAgU29tZSBTQU5ELXVzaW5nIGhh cmR3YXJlIHN0b3JlcyBVViBpbiBhIHNlcGFyYXRlIHRpbGVkCisgKiBpbWFnZSBmcm9tIFkgdG8g cmVkdWNlIHRoZSBjb2x1bW4gaGVpZ2h0LCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkCisgKiB3aXRo IHRoZXNlIG1vZGlmaWVycy4KKyAqLworCisjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0JST0FEQ09N X1NBTkQzMl9DT0xfSEVJR0hUKHYpIFwKKwlmb3VyY2NfbW9kX2Jyb2FkY29tX2NvZGUoMiwgdikK KyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDY0X0NPTF9IRUlHSFQodikgXAor CWZvdXJjY19tb2RfYnJvYWRjb21fY29kZSgzLCB2KQorI2RlZmluZSBEUk1fRk9STUFUX01PRF9C Uk9BRENPTV9TQU5EMTI4X0NPTF9IRUlHSFQodikgXAorCWZvdXJjY19tb2RfYnJvYWRjb21fY29k ZSg0LCB2KQorI2RlZmluZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMjU2X0NPTF9IRUlH SFQodikgXAorCWZvdXJjY19tb2RfYnJvYWRjb21fY29kZSg1LCB2KQorCisjZGVmaW5lIERSTV9G T1JNQVRfTU9EX0JST0FEQ09NX1NBTkQzMiBcCisJRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FO RDMyX0NPTF9IRUlHSFQoMCkKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDY0 IFwKKwlEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5ENjRfQ09MX0hFSUdIVCgwKQorI2RlZmlu ZSBEUk1fRk9STUFUX01PRF9CUk9BRENPTV9TQU5EMTI4IFwKKwlEUk1fRk9STUFUX01PRF9CUk9B RENPTV9TQU5EMTI4X0NPTF9IRUlHSFQoMCkKKyNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfQlJPQURD T01fU0FORDI1NiBcCisJRFJNX0ZPUk1BVF9NT0RfQlJPQURDT01fU0FORDI1Nl9DT0xfSEVJR0hU KDApCisKICNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogfQogI2VuZGlmCi0tIAoyLjE2LjIKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=