From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 06/10] drm: Conslidate blending properties in drm_blend.[hc] Date: Wed, 31 Aug 2016 18:09:09 +0200 Message-ID: <20160831160913.12991-7-daniel.vetter@ffwll.ch> References: <20160831160913.12991-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1567B6E7B2 for ; Wed, 31 Aug 2016 16:09:29 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id w207so4090110wmw.0 for ; Wed, 31 Aug 2016 09:09:29 -0700 (PDT) In-Reply-To: <20160831160913.12991-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SW1vIHpwb3MsIHJvdGF0YXRpb24sIGJsZW5kaW5nIGVxIChvbmNlIHdlIGhhdmUgaXQpIGFuZCBh bGwgdGhhdApzaG91bGQgYmUgaW4gZHJtX2JsZW5kLmMsIHNpbmNlIHRob3NlIGFyZSBhbGwgYWJv dXQgaG93IGV4YWN0bHkgdGhlCnBpeGVscyBhcmUgcmVuZGVyZWQgb250byB0aGUgQ1JUQydzIHZp c2libGUgYXJlYS4gQWxzbyBub3RpY2VkIHRoYXQKb25lIGV4cG9ydGVkIGZ1bmN0aW9uIGFjY2lk ZW50YWxseSBlbmRlZCB1cCBpbiBkcm1fY3J0Y19pbnRlcm5hbC5oLAptb3ZlIGl0IHRvIHRoZSBy aWdodCBwbGFjZSB0b28uCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMgICAgICAgICB8 IDUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2NydGMuYyAgICAgICAgICB8IDQ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmggfCAgMyAtLQogaW5jbHVkZS9kcm0vZHJt X2JsZW5kLmggICAgICAgICAgICAgfCA1OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICB8IDI3ICstLS0tLS0t LS0tLS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCA4MCBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fYmxlbmQuaAoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YmxlbmQuYwppbmRleCAwODEzYjdlMDIxYmUuLmFiMzkyNDVhMjFjNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9ibGVuZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQu YwpAQCAtMjUsMTIgKzI1LDU5IEBACiAgKi8KICNpbmNsdWRlIDxkcm0vZHJtUC5oPgogI2luY2x1 ZGUgPGRybS9kcm1fYXRvbWljLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+CisjaW5jbHVk ZSA8ZHJtL2RybV9ibGVuZC5oPgogI2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgogI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zb3J0Lmg+CiAKLSNpbmNsdWRlICJkcm1f aW50ZXJuYWwuaCIKK3N0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9tb2RlX2NyZWF0ZV9yb3RhdGlv bl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkJICAgICAgIHVuc2lnbmVk IGludCBzdXBwb3J0ZWRfcm90YXRpb25zKQoreworCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3By b3BfZW51bV9saXN0IHByb3BzW10gPSB7CisJCXsgX19idWlsdGluX2ZmcyhEUk1fUk9UQVRFXzAp IC0gMSwgICAicm90YXRlLTAiIH0sCisJCXsgX19idWlsdGluX2ZmcyhEUk1fUk9UQVRFXzkwKSAt IDEsICAicm90YXRlLTkwIiB9LAorCQl7IF9fYnVpbHRpbl9mZnMoRFJNX1JPVEFURV8xODApIC0g MSwgInJvdGF0ZS0xODAiIH0sCisJCXsgX19idWlsdGluX2ZmcyhEUk1fUk9UQVRFXzI3MCkgLSAx LCAicm90YXRlLTI3MCIgfSwKKwkJeyBfX2J1aWx0aW5fZmZzKERSTV9SRUZMRUNUX1gpIC0gMSwg ICJyZWZsZWN0LXgiIH0sCisJCXsgX19idWlsdGluX2ZmcyhEUk1fUkVGTEVDVF9ZKSAtIDEsICAi cmVmbGVjdC15IiB9LAorCX07CisKKwlyZXR1cm4gZHJtX3Byb3BlcnR5X2NyZWF0ZV9iaXRtYXNr KGRldiwgMCwgInJvdGF0aW9uIiwKKwkJCQkJICAgcHJvcHMsIEFSUkFZX1NJWkUocHJvcHMpLAor CQkJCQkgICBzdXBwb3J0ZWRfcm90YXRpb25zKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX21vZGVf Y3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KTsKKworLyoqCisgKiBkcm1fcm90YXRpb25fc2ltcGxp ZnkoKSAtIFRyeSB0byBzaW1wbGlmeSB0aGUgcm90YXRpb24KKyAqIEByb3RhdGlvbjogUm90YXRp b24gdG8gYmUgc2ltcGxpZmllZAorICogQHN1cHBvcnRlZF9yb3RhdGlvbnM6IFN1cHBvcnRlZCBy b3RhdGlvbnMKKyAqCisgKiBBdHRlbXB0IHRvIHNpbXBsaWZ5IHRoZSByb3RhdGlvbiB0byBhIGZv cm0gdGhhdCBpcyBzdXBwb3J0ZWQuCisgKiBFZy4gaWYgdGhlIGhhcmR3YXJlIHN1cHBvcnRzIGV2 ZXJ5dGhpbmcgZXhjZXB0IERSTV9SRUZMRUNUX1gKKyAqIG9uZSBjb3VsZCBjYWxsIHRoaXMgZnVu Y3Rpb24gbGlrZSB0aGlzOgorICoKKyAqIGRybV9yb3RhdGlvbl9zaW1wbGlmeShyb3RhdGlvbiwg RFJNX1JPVEFURV8wIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICBEUk1fUk9UQVRFXzkwIHwg RFJNX1JPVEFURV8xODAgfAorICogICAgICAgICAgICAgICAgICAgICAgIERSTV9ST1RBVEVfMjcw IHwgRFJNX1JFRkxFQ1RfWSk7CisgKgorICogdG8gZWxpbWluYXRlIHRoZSBEUk1fUk9UQVRFX1gg ZmxhZy4gRGVwZW5kaW5nIG9uIHdoYXQga2luZCBvZgorICogdHJhbnNmb3JtcyB0aGUgaGFyZHdh cmUgc3VwcG9ydHMsIHRoaXMgZnVuY3Rpb24gbWF5IG5vdAorICogYmUgYWJsZSB0byBwcm9kdWNl IGEgc3VwcG9ydGVkIHRyYW5zZm9ybSwgc28gdGhlIGNhbGxlciBzaG91bGQKKyAqIGNoZWNrIHRo ZSByZXN1bHQgYWZ0ZXJ3YXJkcy4KKyAqLwordW5zaWduZWQgaW50IGRybV9yb3RhdGlvbl9zaW1w bGlmeSh1bnNpZ25lZCBpbnQgcm90YXRpb24sCisJCQkJICAgdW5zaWduZWQgaW50IHN1cHBvcnRl ZF9yb3RhdGlvbnMpCit7CisJaWYgKHJvdGF0aW9uICYgfnN1cHBvcnRlZF9yb3RhdGlvbnMpIHsK KwkJcm90YXRpb24gXj0gRFJNX1JFRkxFQ1RfWCB8IERSTV9SRUZMRUNUX1k7CisJCXJvdGF0aW9u ID0gKHJvdGF0aW9uICYgRFJNX1JFRkxFQ1RfTUFTSykgfAorCQkgICAgICAgICAgIEJJVCgoZmZz KHJvdGF0aW9uICYgRFJNX1JPVEFURV9NQVNLKSArIDEpICUgNCk7CisJfQorCisJcmV0dXJuIHJv dGF0aW9uOworfQorRVhQT1JUX1NZTUJPTChkcm1fcm90YXRpb25fc2ltcGxpZnkpOwogCiAvKioK ICAqIGRybV9wbGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0eSAtIGNyZWF0ZSBtdXRhYmxlIHpwb3Mg cHJvcGVydHkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jcnRjLmMKaW5kZXggOWVmNzk1NTAzMmRiLi5lNTIyOWI0OGQ1ZDUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fY3J0Yy5jCkBAIC0xMjE4LDM3ICsxMjE4LDYgQEAgaW50IGRybV9tb2RlX2Rlc3Ryb3lf ZHVtYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogfQogCiAvKioKLSAqIGRybV9yb3Rh dGlvbl9zaW1wbGlmeSgpIC0gVHJ5IHRvIHNpbXBsaWZ5IHRoZSByb3RhdGlvbgotICogQHJvdGF0 aW9uOiBSb3RhdGlvbiB0byBiZSBzaW1wbGlmaWVkCi0gKiBAc3VwcG9ydGVkX3JvdGF0aW9uczog U3VwcG9ydGVkIHJvdGF0aW9ucwotICoKLSAqIEF0dGVtcHQgdG8gc2ltcGxpZnkgdGhlIHJvdGF0 aW9uIHRvIGEgZm9ybSB0aGF0IGlzIHN1cHBvcnRlZC4KLSAqIEVnLiBpZiB0aGUgaGFyZHdhcmUg c3VwcG9ydHMgZXZlcnl0aGluZyBleGNlcHQgRFJNX1JFRkxFQ1RfWAotICogb25lIGNvdWxkIGNh bGwgdGhpcyBmdW5jdGlvbiBsaWtlIHRoaXM6Ci0gKgotICogZHJtX3JvdGF0aW9uX3NpbXBsaWZ5 KHJvdGF0aW9uLCBEUk1fUk9UQVRFXzAgfAotICogICAgICAgICAgICAgICAgICAgICAgIERSTV9S T1RBVEVfOTAgfCBEUk1fUk9UQVRFXzE4MCB8Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgRFJN X1JPVEFURV8yNzAgfCBEUk1fUkVGTEVDVF9ZKTsKLSAqCi0gKiB0byBlbGltaW5hdGUgdGhlIERS TV9ST1RBVEVfWCBmbGFnLiBEZXBlbmRpbmcgb24gd2hhdCBraW5kIG9mCi0gKiB0cmFuc2Zvcm1z IHRoZSBoYXJkd2FyZSBzdXBwb3J0cywgdGhpcyBmdW5jdGlvbiBtYXkgbm90Ci0gKiBiZSBhYmxl IHRvIHByb2R1Y2UgYSBzdXBwb3J0ZWQgdHJhbnNmb3JtLCBzbyB0aGUgY2FsbGVyIHNob3VsZAot ICogY2hlY2sgdGhlIHJlc3VsdCBhZnRlcndhcmRzLgotICovCi11bnNpZ25lZCBpbnQgZHJtX3Jv dGF0aW9uX3NpbXBsaWZ5KHVuc2lnbmVkIGludCByb3RhdGlvbiwKLQkJCQkgICB1bnNpZ25lZCBp bnQgc3VwcG9ydGVkX3JvdGF0aW9ucykKLXsKLQlpZiAocm90YXRpb24gJiB+c3VwcG9ydGVkX3Jv dGF0aW9ucykgewotCQlyb3RhdGlvbiBePSBEUk1fUkVGTEVDVF9YIHwgRFJNX1JFRkxFQ1RfWTsK LQkJcm90YXRpb24gPSAocm90YXRpb24gJiBEUk1fUkVGTEVDVF9NQVNLKSB8Ci0JCSAgICAgICAg ICAgQklUKChmZnMocm90YXRpb24gJiBEUk1fUk9UQVRFX01BU0spICsgMSkgJSA0KTsKLQl9Ci0K LQlyZXR1cm4gcm90YXRpb247Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9yb3RhdGlvbl9zaW1wbGlm eSk7Ci0KLS8qKgogICogZHJtX21vZGVfY29uZmlnX2luaXQgLSBpbml0aWFsaXplIERSTSBtb2Rl X2NvbmZpZ3VyYXRpb24gc3RydWN0dXJlCiAgKiBAZGV2OiBEUk0gZGV2aWNlCiAgKgpAQCAtMTM2 NCwyNCArMTMzMyw2IEBAIHZvaWQgZHJtX21vZGVfY29uZmlnX2NsZWFudXAoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIH0KIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfY29uZmlnX2NsZWFudXApOwog Ci1zdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkcm1fbW9kZV9jcmVhdGVfcm90YXRpb25fcHJvcGVydHko c3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgc3VwcG9y dGVkX3JvdGF0aW9ucykKLXsKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1fbGlz dCBwcm9wc1tdID0gewotCQl7IF9fYnVpbHRpbl9mZnMoRFJNX1JPVEFURV8wKSAtIDEsICAgInJv dGF0ZS0wIiB9LAotCQl7IF9fYnVpbHRpbl9mZnMoRFJNX1JPVEFURV85MCkgLSAxLCAgInJvdGF0 ZS05MCIgfSwKLQkJeyBfX2J1aWx0aW5fZmZzKERSTV9ST1RBVEVfMTgwKSAtIDEsICJyb3RhdGUt MTgwIiB9LAotCQl7IF9fYnVpbHRpbl9mZnMoRFJNX1JPVEFURV8yNzApIC0gMSwgInJvdGF0ZS0y NzAiIH0sCi0JCXsgX19idWlsdGluX2ZmcyhEUk1fUkVGTEVDVF9YKSAtIDEsICAicmVmbGVjdC14 IiB9LAotCQl7IF9fYnVpbHRpbl9mZnMoRFJNX1JFRkxFQ1RfWSkgLSAxLCAgInJlZmxlY3QteSIg fSwKLQl9OwotCi0JcmV0dXJuIGRybV9wcm9wZXJ0eV9jcmVhdGVfYml0bWFzayhkZXYsIDAsICJy b3RhdGlvbiIsCi0JCQkJCSAgIHByb3BzLCBBUlJBWV9TSVpFKHByb3BzKSwKLQkJCQkJICAgc3Vw cG9ydGVkX3JvdGF0aW9ucyk7Ci19Ci1FWFBPUlRfU1lNQk9MKGRybV9tb2RlX2NyZWF0ZV9yb3Rh dGlvbl9wcm9wZXJ0eSk7Ci0KIC8qKgogICogRE9DOiBUaWxlIGdyb3VwCiAgKgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2NydGNfaW50ZXJuYWwuaAppbmRleCBkNTM4YzJjYzQ4ZjMuLjhjYWEwODhkYWEyZCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmgKQEAgLTE2NCw5ICsxNjQsNiBAQCBpbnQgZHJt X2F0b21pY19yZW1vdmVfZmIoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwogaW50IGRybV9t b2Rlc2V0X3JlZ2lzdGVyX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgZHJtX21v ZGVzZXRfdW5yZWdpc3Rlcl9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKLS8qIGRybV9i bGVuZC5jICovCi1pbnQgZHJtX2F0b21pY19ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAotCQkJICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIAogLyog ZHJtX3BsYW5lLmMgKi8KIGludCBkcm1fcGxhbmVfcmVnaXN0ZXJfYWxsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2JsZW5kLmggYi9pbmNsdWRl L2RybS9kcm1fYmxlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu Ljg2OGYwMzY0ZTkzOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJtL2RybV9ibGVuZC5o CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgSW50ZWwgQ29ycG9y YXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0cmlidXRl LCBhbmQgc2VsbCB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKKyAqIGRvY3VtZW50YXRpb24gZm9yIGFu eSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLCBwcm92aWRlZCB0aGF0Cisg KiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyBhbmQgdGhh dCBib3RoIHRoYXQgY29weXJpZ2h0CisgKiBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UgYXBwZWFyIGluIHN1cHBvcnRpbmcgZG9jdW1lbnRhdGlvbiwgYW5kCisgKiB0aGF0IHRoZSBu YW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBv cgorICogcHVibGljaXR5IHBlcnRhaW5pbmcgdG8gZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2Fy ZSB3aXRob3V0IHNwZWNpZmljLAorICogd3JpdHRlbiBwcmlvciBwZXJtaXNzaW9uLiAgVGhlIGNv cHlyaWdodCBob2xkZXJzIG1ha2Ugbm8gcmVwcmVzZW50YXRpb25zCisgKiBhYm91dCB0aGUgc3Vp dGFiaWxpdHkgb2YgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UuICBJdCBpcyBwcm92aWRl ZCAiYXMKKyAqIGlzIiB3aXRob3V0IGV4cHJlc3Mgb3IgaW1wbGllZCB3YXJyYW50eS4KKyAqCisg KiBUSEUgQ09QWVJJR0hUIEhPTERFUlMgRElTQ0xBSU0gQUxMIFdBUlJBTlRJRVMgV0lUSCBSRUdB UkQgVE8gVEhJUyBTT0ZUV0FSRSwKKyAqIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUywgSU4gTk8KKyAqIEVWRU5UIFNIQUxMIFRI RSBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBJTkRJUkVDVCBP UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVT VUxUSU5HIEZST00gTE9TUyBPRiBVU0UsCisgKiBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SIE9USEVSCisgKiBUT1JUSU9VUyBB Q1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBF UkZPUk1BTkNFCisgKiBPRiBUSElTIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX19EUk1fQkxF TkRfSF9fCisjZGVmaW5lIF9fRFJNX0JMRU5EX0hfXworCisjaW5jbHVkZSA8bGludXgvbGlzdC5o PgorI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CisKK3N0cnVjdCBkcm1fZGV2aWNlOworc3RydWN0 IGRybV9hdG9taWNfc3RhdGU7CisKKy8qCisgKiBSb3RhdGlvbiBwcm9wZXJ0eSBiaXRzLiBEUk1f Uk9UQVRFXzxkZWdyZWVzPiByb3RhdGVzIHRoZSBpbWFnZSBieSB0aGUKKyAqIHNwZWNpZmllZCBh bW91bnQgaW4gZGVncmVlcyBpbiBjb3VudGVyIGNsb2Nrd2lzZSBkaXJlY3Rpb24uIERSTV9SRUZM RUNUX1ggYW5kCisgKiBEUk1fUkVGTEVDVF9ZIHJlZmxlY3RzIHRoZSBpbWFnZSBhbG9uZyB0aGUg c3BlY2lmaWVkIGF4aXMgcHJpb3IgdG8gcm90YXRpb24KKyAqLworI2RlZmluZSBEUk1fUk9UQVRF XzAJQklUKDApCisjZGVmaW5lIERSTV9ST1RBVEVfOTAJQklUKDEpCisjZGVmaW5lIERSTV9ST1RB VEVfMTgwCUJJVCgyKQorI2RlZmluZSBEUk1fUk9UQVRFXzI3MAlCSVQoMykKKyNkZWZpbmUgRFJN X1JPVEFURV9NQVNLIChEUk1fUk9UQVRFXzAgICB8IERSTV9ST1RBVEVfOTAgfCBcCisJCQkgRFJN X1JPVEFURV8xODAgfCBEUk1fUk9UQVRFXzI3MCkKKyNkZWZpbmUgRFJNX1JFRkxFQ1RfWAlCSVQo NCkKKyNkZWZpbmUgRFJNX1JFRkxFQ1RfWQlCSVQoNSkKKyNkZWZpbmUgRFJNX1JFRkxFQ1RfTUFT SyAoRFJNX1JFRkxFQ1RfWCB8IERSTV9SRUZMRUNUX1kpCisKK3N0cnVjdCBkcm1fcHJvcGVydHkg KmRybV9tb2RlX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAorCQkJCQkJICAgICAgIHVuc2lnbmVkIGludCBzdXBwb3J0ZWRfcm90YXRpb25zKTsKK3Vuc2ln bmVkIGludCBkcm1fcm90YXRpb25fc2ltcGxpZnkodW5zaWduZWQgaW50IHJvdGF0aW9uLAorCQkJ CSAgIHVuc2lnbmVkIGludCBzdXBwb3J0ZWRfcm90YXRpb25zKTsKKworaW50IGRybV9wbGFuZV9j cmVhdGVfenBvc19wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICB1bnNp Z25lZCBpbnQgenBvcywKKwkJCQkgICB1bnNpZ25lZCBpbnQgbWluLCB1bnNpZ25lZCBpbnQgbWF4 KTsKK2ludCBkcm1fcGxhbmVfY3JlYXRlX3pwb3NfaW1tdXRhYmxlX3Byb3BlcnR5KHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAorCQkJCQkgICAgIHVuc2lnbmVkIGludCB6cG9zKTsKK2ludCBkcm1f YXRvbWljX25vcm1hbGl6ZV96cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgICBz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCA4NmUxM2E1 OTBjOGYuLjFmYWNmZWViMDEzOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAor KysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8 ZHJtL2RybV9icmlkZ2UuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KICNpbmNsdWRlIDxk cm0vZHJtX3BsYW5lLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9ibGVuZC5oPgogCiBzdHJ1Y3QgZHJt X2RldmljZTsKIHN0cnVjdCBkcm1fbW9kZV9zZXQ7CkBAIC02MywyMSArNjQsNiBAQCBzdGF0aWMg aW5saW5lIHVpbnQ2NF90IEk2NDJVNjQoaW50NjRfdCB2YWwpCiAJcmV0dXJuICh1aW50NjRfdCkq KCh1aW50NjRfdCAqKSZ2YWwpOwogfQogCi0vKgotICogUm90YXRpb24gcHJvcGVydHkgYml0cy4g RFJNX1JPVEFURV88ZGVncmVlcz4gcm90YXRlcyB0aGUgaW1hZ2UgYnkgdGhlCi0gKiBzcGVjaWZp ZWQgYW1vdW50IGluIGRlZ3JlZXMgaW4gY291bnRlciBjbG9ja3dpc2UgZGlyZWN0aW9uLiBEUk1f UkVGTEVDVF9YIGFuZAotICogRFJNX1JFRkxFQ1RfWSByZWZsZWN0cyB0aGUgaW1hZ2UgYWxvbmcg dGhlIHNwZWNpZmllZCBheGlzIHByaW9yIHRvIHJvdGF0aW9uCi0gKi8KLSNkZWZpbmUgRFJNX1JP VEFURV8wCUJJVCgwKQotI2RlZmluZSBEUk1fUk9UQVRFXzkwCUJJVCgxKQotI2RlZmluZSBEUk1f Uk9UQVRFXzE4MAlCSVQoMikKLSNkZWZpbmUgRFJNX1JPVEFURV8yNzAJQklUKDMpCi0jZGVmaW5l IERSTV9ST1RBVEVfTUFTSyAoRFJNX1JPVEFURV8wICAgfCBEUk1fUk9UQVRFXzkwIHwgXAotCQkJ IERSTV9ST1RBVEVfMTgwIHwgRFJNX1JPVEFURV8yNzApCi0jZGVmaW5lIERSTV9SRUZMRUNUX1gJ QklUKDQpCi0jZGVmaW5lIERSTV9SRUZMRUNUX1kJQklUKDUpCi0jZGVmaW5lIERSTV9SRUZMRUNU X01BU0sgKERSTV9SRUZMRUNUX1ggfCBEUk1fUkVGTEVDVF9ZKQotCiAvKiBkYXRhIGNvcnJlc3Bv bmRzIHRvIGRpc3BsYXlpZCB2ZW5kL3Byb2Qvc2VyaWFsICovCiBzdHJ1Y3QgZHJtX3RpbGVfZ3Jv dXAgewogCXN0cnVjdCBrcmVmIHJlZmNvdW50OwpAQCAtMTM1MSwyMiArMTMzNywxMSBAQCBleHRl cm4gc3RydWN0IGRybV90aWxlX2dyb3VwICpkcm1fbW9kZV9nZXRfdGlsZV9ncm91cChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogZXh0ZXJuIHZvaWQgZHJtX21vZGVfcHV0X3RpbGVfZ3JvdXAoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICBzdHJ1Y3QgZHJtX3RpbGVfZ3JvdXAgKnRnKTsK IAotZXh0ZXJuIHN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9tb2RlX2NyZWF0ZV9yb3RhdGlvbl9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJCSAgICAgIHVuc2lnbmVkIGlu dCBzdXBwb3J0ZWRfcm90YXRpb25zKTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgZHJtX3JvdGF0aW9u X3NpbXBsaWZ5KHVuc2lnbmVkIGludCByb3RhdGlvbiwKLQkJCQkJICB1bnNpZ25lZCBpbnQgc3Vw cG9ydGVkX3JvdGF0aW9ucyk7CiBleHRlcm4gdm9pZCBkcm1fY3J0Y19lbmFibGVfY29sb3JfbWdt dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgICAgIHVpbnQgZGVnYW1tYV9sdXRfc2l6 ZSwKIAkJCQkgICAgICAgYm9vbCBoYXNfY3RtLAogCQkJCSAgICAgICB1aW50IGdhbW1hX2x1dF9z aXplKTsKIAotaW50IGRybV9wbGFuZV9jcmVhdGVfenBvc19wcm9wZXJ0eShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKLQkJCQkgICB1bnNpZ25lZCBpbnQgenBvcywKLQkJCQkgICB1bnNpZ25lZCBp bnQgbWluLCB1bnNpZ25lZCBpbnQgbWF4KTsKLQotaW50IGRybV9wbGFuZV9jcmVhdGVfenBvc19p bW11dGFibGVfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkJCSAgICAgdW5z aWduZWQgaW50IHpwb3MpOwotCiAvKiBIZWxwZXJzICovCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBk cm1fY3J0YyAqZHJtX2NydGNfZmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXVpbnQzMl90 IGlkKQotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=