From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v2 2/3] drm: Add CRTC background color property (v2) Date: Tue, 13 Nov 2018 15:21:48 -0800 Message-ID: <20181113232149.22753-3-matthew.d.roper@intel.com> References: <20181113232149.22753-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181113232149.22753-1-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org, wei.c.li@intel.com, harish.krupo.kps@intel.com List-Id: dri-devel@lists.freedesktop.org U29tZSBkaXNwbGF5IGNvbnRyb2xsZXJzIGNhbiBiZSBwcm9ncmFtbWVkIHRvIHByZXNlbnQgbm9u LWJsYWNrIGNvbG9ycwpmb3IgcGl4ZWxzIG5vdCBjb3ZlcmVkIGJ5IGFueSBwbGFuZSAob3IgcGl4 ZWxzIGNvdmVyZWQgYnkgdGhlCnRyYW5zcGFyZW50IHJlZ2lvbnMgb2YgaGlnaGVyIHBsYW5lcyku ICBDb21wb3NpdG9ycyB0aGF0IHdhbnQgYSBVSSB3aXRoCmEgc29saWQgY29sb3IgYmFja2dyb3Vu ZCBjYW4gcG90ZW50aWFsbHkgc2F2ZSBtZW1vcnkgYmFuZHdpZHRoIGJ5CnNldHRpbmcgdGhlIENS VEMgYmFja2dyb3VuZCBwcm9wZXJ0eSBhbmQgdXNpbmcgc21hbGxlciBwbGFuZXMgdG8gZGlzcGxh eQp0aGUgcmVzdCBvZiB0aGUgY29udGVudC4KClRvIGF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIGRp ZmZlcmVudCB3YXlzIG9mIGVuY29kaW5nIFJHQiBkYXRhLCB3ZQpkZWZpbmUgYSBzdGFuZGFyZCA2 NC1iaXQgZm9ybWF0IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoaXMgcHJvcGVydHkncwp2YWx1 ZS4gIEhlbHBlciBmdW5jdGlvbnMgYW5kIG1hY3JvcyBhcmUgcHJvdmlkZWQgdG8gZ2VuZXJhdGUg YW5kIGRpc3NlY3QKdmFsdWVzIGluIHRoaXMgc3RhbmRhcmQgZm9ybWF0IHdpdGggdmFyeWluZyBj b21wb25lbnQgcHJlY2lzaW9uIHZhbHVlcy4KCnYyOgogLSBTd2FwIGludGVybmFsIHJlcHJlc2Vu dGF0aW9uJ3MgYmx1ZSBhbmQgcmVkIGJpdHMgdG8gbWFrZSBpdCBlYXNpZXIKICAgdG8gcmVhZCBp ZiBwcmludGVkIG91dC4gIChWaWxsZSkKIC0gRG9jdW1lbnQgYmdjb2xvciBwcm9wZXJ0eSBpbiBk cm1fYmxlbmQuYy4gIChTZWFuIFBhdWwpCiAtIHMvYmFja2dyb3VuZF9jb2xvci9iZ2NvbG9yLyBm b3IgY29uc2lzdGVuY3kgYmV0d2VlbiBwcm9wZXJ0eSBuYW1lIGFuZAogICB2YWx1ZSBzdG9yYWdl IGZpZWxkLiAgKFNlYW4gUGF1bCkKIC0gQWRkIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdG8gYXR0 YWNoIHByb3BlcnR5IHRvIGEgZ2l2ZW4gY3J0Yy4KCkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCkNjOiB3ZWkuYy5saUBpbnRlbC5jb20KQ2M6IGhhcmlzaC5rcnVwby5rcHNAaW50 ZWwuY29tCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PgpDYzogU2VhbiBQYXVsIDxzZWFuQHBvb3JseS5ydW4+ClNpZ25lZC1vZmYtYnk6IE1hdHQgUm9w ZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfc3RhdGVfaGVscGVyLmMgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191 YXBpLmMgICAgICAgICB8ICA1ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMgICAg ICAgICAgICAgICB8IDIxICsrKysrKysrKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9tb2RlX2NvbmZpZy5jICAgICAgICAgfCAgNiArKysrKysKIGluY2x1ZGUvZHJtL2RybV9ibGVu ZC5oICAgICAgICAgICAgICAgICAgIHwgIDEgKwogaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAg ICAgICAgICAgICAgICAgfCAxNyArKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX21v ZGVfY29uZmlnLmggICAgICAgICAgICAgfCAgNSArKysrKwogaW5jbHVkZS91YXBpL2RybS9kcm1f bW9kZS5oICAgICAgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrKwogOCBm aWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMKaW5kZXggM2JhOTk2MDY5ZDY5Li4yZjhj NTU2NjgwODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hl bHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCkBA IC0xMDEsNiArMTAxLDcgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRl X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdGF0ZS0+cGxhbmVzX2NoYW5nZWQgPSBm YWxzZTsKIAlzdGF0ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0gZmFsc2U7CiAJc3RhdGUtPmNvbG9y X21nbXRfY2hhbmdlZCA9IGZhbHNlOworCXN0YXRlLT5iZ2NvbG9yX2NoYW5nZWQgPSBmYWxzZTsK IAlzdGF0ZS0+enBvc19jaGFuZ2VkID0gZmFsc2U7CiAJc3RhdGUtPmNvbW1pdCA9IE5VTEw7CiAJ c3RhdGUtPmV2ZW50ID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX3VhcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwppbmRleCA4NmFj MzM5MjJiMDkuLmI5NWE1NWE3NzhlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfdWFwaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwpAQCAt NDY3LDYgKzQ2Nyw5IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAogCQlzZXRfb3V0X2Zl bmNlX2Zvcl9jcnRjKHN0YXRlLT5zdGF0ZSwgY3J0YywgZmVuY2VfcHRyKTsKKwl9IGVsc2UgaWYg KHByb3BlcnR5ID09IGNvbmZpZy0+Ymdjb2xvcl9wcm9wZXJ0eSkgeworCQlzdGF0ZS0+Ymdjb2xv ciA9IHZhbDsKKwkJc3RhdGUtPmJnY29sb3JfY2hhbmdlZCA9IHRydWU7CiAJfSBlbHNlIGlmIChj cnRjLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewogCQlyZXR1cm4gY3J0Yy0+ZnVuY3Mt PmF0b21pY19zZXRfcHJvcGVydHkoY3J0Yywgc3RhdGUsIHByb3BlcnR5LCB2YWwpOwogCX0gZWxz ZSB7CkBAIC00OTksNiArNTAyLDggQEAgZHJtX2F0b21pY19jcnRjX2dldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCSp2YWwgPSAoc3RhdGUtPmdhbW1hX2x1dCkgPyBzdGF0ZS0+ Z2FtbWFfbHV0LT5iYXNlLmlkIDogMDsKIAllbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnBy b3Bfb3V0X2ZlbmNlX3B0cikKIAkJKnZhbCA9IDA7CisJZWxzZSBpZiAocHJvcGVydHkgPT0gY29u ZmlnLT5iZ2NvbG9yX3Byb3BlcnR5KQorCQkqdmFsID0gc3RhdGUtPmJnY29sb3I7CiAJZWxzZSBp ZiAoY3J0Yy0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkpCiAJCXJldHVybiBjcnRjLT5mdW5j cy0+YXRvbWljX2dldF9wcm9wZXJ0eShjcnRjLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7CiAJZWxz ZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9ibGVuZC5jCmluZGV4IDBjNzhjYTM4NmNiZS4uN2M3M2NiODM4NzRhIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9ibGVuZC5jCkBAIC0xNzUsOSArMTc1LDE2IEBACiAgKgkJIHBsYW5lIGRvZXMgbm90IGV4cG9z ZSB0aGUgImFscGhhIiBwcm9wZXJ0eSwgdGhlbiB0aGlzIGlzCiAgKgkJIGFzc3VtZWQgdG8gYmUg MS4wCiAgKgotICogTm90ZSB0aGF0IGFsbCB0aGUgcHJvcGVydHkgZXh0ZW5zaW9ucyBkZXNjcmli ZWQgaGVyZSBhcHBseSBlaXRoZXIgdG8gdGhlCi0gKiBwbGFuZSBvciB0aGUgQ1JUQyAoZS5nLiBm b3IgdGhlIGJhY2tncm91bmQgY29sb3IsIHdoaWNoIGN1cnJlbnRseSBpcyBub3QKLSAqIGV4cG9z ZWQgYW5kIGFzc3VtZWQgdG8gYmUgYmxhY2spLgorICogVGhlIHByb3BlcnR5IGV4dGVuc2lvbnMg ZGVzY3JpYmVkIGFib3ZlIGFsbCBhcHBseSB0byB0aGUgcGxhbmUuICBEcml2ZXJzCisgKiBtYXkg YWxzbyBleHBvc2UgdGhlIGZvbGxvd2luZyBjcnRjIHByb3BlcnR5IGV4dGVuc2lvbjoKKyAqCisg KiBiZ2NvbG9yOgorICoJQmFja2dyb3VuZCBjb2xvciBpcyBzZXR1cCB3aXRoIGRybV9jcnRjX2Fk ZF9iZ2NvbG9yX3Byb3BlcnR5KCkuICBJdAorICoJY29udHJvbHMgdGhlIFJHQiBjb2xvciBvZiBh IGZ1bGwtc2NyZWVuLCBmdWxseS1vcGFxdWUgbGF5ZXIgdGhhdCBleGlzdHMKKyAqCWJlbG93IGFs bCBwbGFuZXMuICBUaGlzIGNvbG9yIHdpbGwgYmUgdXNlZCBmb3IgcGl4ZWxzIG5vdCBjb3ZlcmVk IGJ5CisgKglhbnkgcGxhbmUgYW5kIG1heSBhbHNvIGJlIGJsZW5kZWQgd2l0aCBwbGFuZSBjb250 ZW50cyBhcyBhbGxvd2VkIGJ5IGEKKyAqCXBsYW5lJ3MgYWxwaGEgdmFsdWVzLiAgVGhlIGJhY2tn cm91bmQgY29sb3IgZGVmYXVsdHMgdG8gYmxhY2ssIGFuZCBpcworICoJYXNzdW1lZCB0byBiZSBi bGFjayBmb3IgZHJpdmVycyB0aGF0IGRvIG5vdCBleHBvc2UgdGhpcyBwcm9wZXJ0eS4KICAqLwog CiAvKioKQEAgLTU5MywzICs2MDAsMTEgQEAgaW50IGRybV9wbGFuZV9jcmVhdGVfYmxlbmRfbW9k ZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlyZXR1cm4gMDsKIH0KIEVYUE9S VF9TWU1CT0woZHJtX3BsYW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KTsKKwordm9pZCBk cm1fY3J0Y19hZGRfYmdjb2xvcl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJ ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNydGMtPmJhc2UsCisJCQkJICAgY3J0Yy0+ZGV2 LT5tb2RlX2NvbmZpZy5iZ2NvbG9yX3Byb3BlcnR5LAorCQkJCSAgIGRybV9yZ2JhKDE2LCAwLCAw LCAwLCAweGZmZmYpKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2NydGNfYWRkX2JnY29sb3JfcHJv cGVydHkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCmluZGV4IGVlODA3ODhmMmM0MC4uNzVl Mzc2NzU1MTc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCkBAIC0zNTIsNiArMzUyLDEy IEBAIHN0YXRpYyBpbnQgZHJtX21vZGVfY3JlYXRlX3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIC1FTk9NRU07CiAJZGV2LT5tb2RlX2NvbmZpZy5t b2RpZmllcnNfcHJvcGVydHkgPSBwcm9wOwogCisJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVf cmFuZ2UoZGV2LCAwLCAiQkFDS0dST1VORF9DT0xPUiIsCisJCQkJCSAwLCBHRU5NQVNLX1VMTCg2 MywgMCkpOworCWlmICghcHJvcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJZGV2LT5tb2RlX2NvbmZp Zy5iZ2NvbG9yX3Byb3BlcnR5ID0gcHJvcDsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaCBiL2luY2x1ZGUvZHJtL2RybV9ibGVuZC5oCmluZGV4 IDg4YmRmZWMzYmQ4OC4uOWUyNTM4ZGQ3YjlhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f YmxlbmQuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaApAQCAtNTgsNCArNTgsNSBAQCBp bnQgZHJtX2F0b21pY19ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJ ICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIGludCBkcm1fcGxhbmVfY3Jl YXRlX2JsZW5kX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJCSB1 bnNpZ25lZCBpbnQgc3VwcG9ydGVkX21vZGVzKTsKK3ZvaWQgZHJtX2NydGNfYWRkX2JnY29sb3Jf cHJvcGVydHkoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKaW5kZXggYjIxNDM3 YmM5NWJmLi5kNzhmODJmOTU0ZTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgK KysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaApAQCAtMTY4LDYgKzE2OCwxMSBAQCBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgewogCSAqIGRyaXZlcnMgdG8gc3RlZXIgdGhlIGF0b21pYyBjb21taXQg Y29udHJvbCBmbG93LgogCSAqLwogCWJvb2wgY29sb3JfbWdtdF9jaGFuZ2VkIDogMTsKKwkvKioK KwkgKiBAYmdjb2xvcl9jaGFuZ2VkOiBCYWNrZ3JvdW5kIGNvbG9yIHZhbHVlIGhhcyBjaGFuZ2Vk LiAgVXNlZCBieQorCSAqIGRyaXZlcnMgdG8gc3RlZXIgdGhlIGF0b21pYyBjb21taXQgY29udHJv bCBmbG93LgorCSAqLworCWJvb2wgYmdjb2xvcl9jaGFuZ2VkIDogMTsKIAogCS8qKgogCSAqIEBu b192Ymxhbms6CkBAIC0yNzQsNiArMjc5LDE4IEBAIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB7CiAJ ICovCiAJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQ7CiAKKwkvKioKKwkgKiBA Ymdjb2xvcjoKKwkgKgorCSAqIFJHQiB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIHBpcGUncyBiYWNr Z3JvdW5kIGNvbG9yLiAgVGhlIGJhY2tncm91bmQKKwkgKiBjb2xvciAoYWthICJjYW52YXMgY29s b3IiKSBvZiBhIHBpcGUgaXMgdGhlIGNvbG9yIHRoYXQgd2lsbCBiZSB1c2VkCisJICogZm9yIHBp eGVscyBub3QgY292ZXJlZCBieSBhIHBsYW5lLCBvciBjb3ZlcmVkIGJ5IHRyYW5zcGFyZW50IHBp eGVscworCSAqIG9mIGEgcGxhbmUuICBUaGUgdmFsdWUgaGVyZSBzaG91bGQgYmUgYnVpbHQgdmlh IGRybV9yZ2JhKCk7CisJICogaW5kaXZpZHVhbCBjb2xvciBjb21wb25lbnRzIGNhbiBiZSBleHRy YWN0ZWQgd2l0aCBkZXNpcmVkIHByZWNpc2lvbgorCSAqIHZpYSB0aGUgRFJNX1JHQkFfKigpIG1h Y3Jvcy4KKwkgKi8KKwl1NjQgYmdjb2xvcjsKKwogCS8qKgogCSAqIEB0YXJnZXRfdmJsYW5rOgog CSAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUv ZHJtL2RybV9tb2RlX2NvbmZpZy5oCmluZGV4IDVkYmVhYmRiYWY5MS4uOGI2ODZkMjI4ZmViIDEw MDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAorKysgYi9pbmNsdWRlL2Ry bS9kcm1fbW9kZV9jb25maWcuaApAQCAtODEzLDYgKzgxMywxMSBAQCBzdHJ1Y3QgZHJtX21vZGVf Y29uZmlnIHsKIAkgKi8KIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICp3cml0ZWJhY2tfb3V0X2ZlbmNl X3B0cl9wcm9wZXJ0eTsKIAorCS8qKgorCSAqIEBiZ2NvbG9yX3Byb3BlcnR5OiBSR0JBIGJhY2tn cm91bmQgY29sb3IgZm9yIENSVEMuCisJICovCisJc3RydWN0IGRybV9wcm9wZXJ0eSAqYmdjb2xv cl9wcm9wZXJ0eTsKKwogCS8qIGR1bWIgaW9jdGwgcGFyYW1ldGVycyAqLwogCXVpbnQzMl90IHBy ZWZlcnJlZF9kZXB0aCwgcHJlZmVyX3NoYWRvdzsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCmluZGV4IGQzZTBm ZTMxZWZjNS4uN2M0ZjkwMmFhMjkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9t b2RlLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCkBAIC04ODgsNiArODg4LDMy IEBAIHN0cnVjdCBkcm1fbW9kZV9yZXZva2VfbGVhc2UgewogCV9fdTMyIGxlc3NlZV9pZDsKIH07 CiAKKy8qCisgKiBQdXQgUkdCQSB2YWx1ZXMgaW50byBhIHN0YW5kYXJkIDY0LWJpdCByZXByZXNl bnRhdGlvbiB0aGF0IGNhbiBiZSB1c2VkCisgKiBmb3IgaW9jdGwgcGFyYW1ldGVycywgaW50ZXIt ZHJpdmVyIGNvbW1tdW5pY2F0aW9uLCBldGMuICBJZiB0aGUgY29tcG9uZW50CisgKiB2YWx1ZXMg YmVpbmcgcHJvdmlkZWQgY29udGFpbiBsZXNzIHRoYW4gMTYgYml0cyBvZiBwcmVjaXNpb24sIHRo ZXknbGwKKyAqIGJlIHNoaWZ0ZWQgaW50byB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXRzLgorICov CitzdGF0aWMgaW5saW5lIF9fdTY0Citkcm1fcmdiYShfX3U4IGJwYywgX191MTYgcmVkLCBfX3Ux NiBncmVlbiwgX191MTYgYmx1ZSwgX191MTYgYWxwaGEpCit7CisJaW50IG1zYl9zaGlmdCA9IDE2 IC0gYnBjOworCisJcmV0dXJuIChfX3U2NClhbHBoYSA8PCBtc2Jfc2hpZnQgPDwgNDggfAorCSAg ICAgICAoX191NjQpcmVkICAgPDwgbXNiX3NoaWZ0IDw8IDMyIHwKKwkgICAgICAgKF9fdTY0KWdy ZWVuIDw8IG1zYl9zaGlmdCA8PCAxNiB8CisJICAgICAgIChfX3U2NClibHVlICA8PCBtc2Jfc2hp ZnQ7Cit9CisKKy8qCisgKiBFeHRyYWN0IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMgb2Yg YSBzcGVjaWZpYyBjb2xvciBjb21wb25lbnQgZnJvbSBhCisgKiBzdGFuZGFyZCA2NC1iaXQgUkdC QSB2YWx1ZS4KKyAqLworI2RlZmluZSBEUk1fUkdCQV9CTFVFKGMsIG51bWJpdHMpICAoX191MTYp KChjICYgMHhGRkZGdWxsKSAgICAgPj4gKDE2LW51bWJpdHMpKQorI2RlZmluZSBEUk1fUkdCQV9H UkVFTihjLCBudW1iaXRzKSAoX191MTYpKChjICYgMHhGRkZGdWxsPDwxNikgPj4gKDMyLW51bWJp dHMpKQorI2RlZmluZSBEUk1fUkdCQV9SRUQoYywgbnVtYml0cykgICAoX191MTYpKChjICYgMHhG RkZGdWxsPDwzMikgPj4gKDQ4LW51bWJpdHMpKQorI2RlZmluZSBEUk1fUkdCQV9BTFBIQShjLCBu dW1iaXRzKSAoX191MTYpKChjICYgMHhGRkZGdWxsPDw0OCkgPj4gKDY0LW51bWJpdHMpKQorCiAj aWYgZGVmaW5lZChfX2NwbHVzcGx1cykKIH0KICNlbmRpZgotLSAKMi4xNC40CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK