From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: [PATCH 4/5] drm/panfrost: Add support for GPU heap allocations Date: Wed, 17 Jul 2019 12:33:51 -0600 Message-ID: <20190717183352.22519-4-robh@kernel.org> References: <20190717183352.22519-1-robh@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-io1-f65.google.com (mail-io1-f65.google.com [209.85.166.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id A5CC16E29C for ; Wed, 17 Jul 2019 18:33:59 +0000 (UTC) Received: by mail-io1-f65.google.com with SMTP id h6so47311575iom.7 for ; Wed, 17 Jul 2019 11:33:59 -0700 (PDT) In-Reply-To: <20190717183352.22519-1-robh@kernel.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: Boris Brezillon , Robin Murphy , Alyssa Rosenzweig , Tomeu Vizoso , Steven Price List-Id: dri-devel@lists.freedesktop.org VGhlIG1pZGdhcmQvYmlmcm9zdCBHUFVzIG5lZWQgdG8gYWxsb2NhdGUgR1BVIGhlYXAgbWVtb3J5 IHdoaWNoIGlzCmFsbG9jYXRlZCBvbiBHUFUgcGFnZSBmYXVsdHMgYW5kIG5vdCBwaW5uZWQgaW4g bWVtb3J5LiBUaGUgdmVuZG9yIGRyaXZlcgpjYWxscyB0aGlzIGZ1bmN0aW9uYWxpdHkgR1JPV19P Tl9HUEYuCgpUaGlzIGltcGxlbWVudGF0aW9uIGFzc3VtZXMgdGhhdCBCT3MgYWxsb2NhdGVkIHdp dGggdGhlClBBTkZST1NUX0JPX05PRVhFQyBmbGFnIGFyZSBuZXZlciBtbWFwcGVkIG9yIGV4cG9y dGVkLiBCb3RoIG9mIHRob3NlIG1heQphY3R1YWxseSB3b3JrLCBidXQgSSdtIHVuc3VyZSBpZiB0 aGVyZSdzIHNvbWUgaW50ZXJhY3Rpb24gdGhlcmUuIEl0CndvdWxkIGNhdXNlIHRoZSB3aG9sZSBv YmplY3QgdG8gYmUgcGlubmVkIGluIG1lbW9yeSB3aGljaCB3b3VsZCBkZWZlYXQKdGhlIHBvaW50 IG9mIHRoaXMuCgpPbiBmYXVsdHMsIHdlIG1hcCBpbiAyTUIgYXQgYSB0aW1lIGluIG9yZGVyIHRv IHV0aWxpemUgaHVnZSBwYWdlcyAoaWYKZW5hYmxlZCkuIEN1cnJlbnRseSwgb25jZSB3ZSd2ZSBt YXBwZWQgcGFnZXMgaW4sIHRoZXkgYXJlIG9ubHkgdW5tYXBwZWQKaWYgdGhlIEJPIGlzIGZyZWVk LiBPbmNlIHdlIGFkZCBzaHJpbmtlciBzdXBwb3J0LCB3ZSBjYW4gdW5tYXAgcGFnZXMKd2l0aCB0 aGUgc2hyaW5rZXIuCgpDYzogVG9tZXUgVml6b3NvIDx0b21ldS52aXpvc29AY29sbGFib3JhLmNv bT4KQ2M6IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5jb20+CkNj OiBSb2JpbiBNdXJwaHkgPHJvYmluLm11cnBoeUBhcm0uY29tPgpDYzogU3RldmVuIFByaWNlIDxz dGV2ZW4ucHJpY2VAYXJtLmNvbT4KQ2M6IEFseXNzYSBSb3Nlbnp3ZWlnIDxhbHlzc2FAcm9zZW56 d2VpZy5pbz4KU2lnbmVkLW9mZi1ieTogUm9iIEhlcnJpbmcgPHJvYmhAa2VybmVsLm9yZz4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvVE9ETyAgICAgICAgICAgfCAgIDIgLQogZHJpdmVy cy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2Rydi5jIHwgICAyICstCiBkcml2ZXJzL2dwdS9k cm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmMgfCAgMTQgKystCiBkcml2ZXJzL2dwdS9kcm0vcGFu ZnJvc3QvcGFuZnJvc3RfZ2VtLmggfCAgIDggKysKIGRyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9w YW5mcm9zdF9tbXUuYyB8IDExNCArKysrKysrKysrKysrKysrKysrKystLS0KIGluY2x1ZGUvdWFw aS9kcm0vcGFuZnJvc3RfZHJtLmggICAgICAgICB8ICAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDEy NSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcGFuZnJvc3QvVE9ETyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9UT0RPCmluZGV4 IGMyZTQ0YWRkMzdkOC4uNjQxMjliZjczOTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cGFuZnJvc3QvVE9ETworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvVE9ETwpAQCAtMTQs OCArMTQsNiBAQAogICBUaGUgaGFyZCBwYXJ0IGlzIGhhbmRsaW5nIHdoZW4gbW9yZSBhZGRyZXNz IHNwYWNlcyBhcmUgbmVlZGVkIHRoYW4gd2hhdAogICB0aGUgaC93IHByb3ZpZGVzLgogCi0tIFN1 cHBvcnQgcGlubmluZyBwYWdlcyBvbiBkZW1hbmQgKEdQVSBwYWdlIGZhdWx0cykuCi0KIC0gU3Vw cG9ydCB1c2Vyc3BhY2UgY29udHJvbGxlZCBHUFUgdmlydHVhbCBhZGRyZXNzZXMuIE5lZWRlZCBm b3IgVnVsa2FuLiAoVG9tZXUpCiAKIC0gU3VwcG9ydCBmb3IgbWFkdmlzZSBhbmQgYSBzaHJpbmtl ci4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYuYwppbmRleCBiOTFlOTkxYmM2 YTMuLjllODdkMDA2MDIwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0L3Bh bmZyb3N0X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9kcnYu YwpAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgaW50IHBhbmZyb3N0X2lvY3RsX2NyZWF0ZV9ibyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXN0cnVjdCBkcm1fcGFuZnJvc3Rf Y3JlYXRlX2JvICphcmdzID0gZGF0YTsKIAogCWlmICghYXJncy0+c2l6ZSB8fCBhcmdzLT5wYWQg fHwKLQkgICAgKGFyZ3MtPmZsYWdzICYgflBBTkZST1NUX0JPX05PRVhFQykpCisJICAgIChhcmdz LT5mbGFncyAmIH4oUEFORlJPU1RfQk9fTk9FWEVDIHwgUEFORlJPU1RfQk9fSEVBUCkpKQogCQly ZXR1cm4gLUVJTlZBTDsKIAogCWJvID0gcGFuZnJvc3RfZ2VtX2NyZWF0ZV93aXRoX2hhbmRsZShm aWxlLCBkZXYsIGFyZ3MtPnNpemUsIGFyZ3MtPmZsYWdzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmZyb3N0 L3BhbmZyb3N0X2dlbS5jCmluZGV4IDM3ZmZlYzgzOTFkYS4uNTI4Mzk2MDAwMDM4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3BhbmZyb3N0L3BhbmZyb3N0X2dlbS5jCkBAIC04Nyw3ICs4NywxMCBAQCBzdGF0 aWMgaW50IHBhbmZyb3N0X2dlbV9tYXAoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsIHN0 cnVjdCBwYW5mcm9zdF9nZW1fbwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyZXR1cm4g cGFuZnJvc3RfbW11X21hcChibyk7CisJaWYgKCFiby0+aXNfaGVhcCkKKwkJcmV0ID0gcGFuZnJv c3RfbW11X21hcChibyk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdHJ1Y3QgcGFuZnJvc3RfZ2Vt X29iamVjdCAqCkBAIC0xMDEsNyArMTA0LDExIEBAIHBhbmZyb3N0X2dlbV9jcmVhdGVfd2l0aF9o YW5kbGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCiAJc3RydWN0IGRybV9nZW1fc2htZW1f b2JqZWN0ICpzaG1lbTsKIAlzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqYm87CiAKLQlzaXpl ID0gcm91bmR1cChzaXplLCBQQUdFX1NJWkUpOworCS8qIFJvdW5kIHVwIGhlYXAgYWxsb2NhdGlv bnMgdG8gMk1CIHRvIGtlZXAgZmF1bHQgaGFuZGxpbmcgc2ltcGxlICovCisJaWYgKGZsYWdzICYg UEFORlJPU1RfQk9fSEVBUCkKKwkJc2l6ZSA9IHJvdW5kdXAoc2l6ZSwgU1pfMk0pOworCWVsc2UK KwkJc2l6ZSA9IHJvdW5kdXAoc2l6ZSwgUEFHRV9TSVpFKTsKIAogCXNobWVtID0gZHJtX2dlbV9z aG1lbV9jcmVhdGVfd2l0aF9oYW5kbGUoZmlsZV9wcml2LCBkZXYsIHNpemUsIGhhbmRsZSk7CiAJ aWYgKElTX0VSUihzaG1lbSkpCkBAIC0xMDksNiArMTE2LDkgQEAgcGFuZnJvc3RfZ2VtX2NyZWF0 ZV93aXRoX2hhbmRsZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKIAogCWJvID0gdG9fcGFu ZnJvc3RfYm8oJnNobWVtLT5iYXNlKTsKIAliby0+bm9leGVjID0gISEoZmxhZ3MgJiBQQU5GUk9T VF9CT19OT0VYRUMpOworCWJvLT5pc19oZWFwID0gISEoZmxhZ3MgJiBQQU5GUk9TVF9CT19IRUFQ KTsKKwlpZiAoYm8tPmlzX2hlYXApCisJCWJvLT5ub2V4ZWMgPSB0cnVlOwogCiAJcmV0ID0gcGFu ZnJvc3RfZ2VtX21hcChwZmRldiwgYm8pOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmggYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJv c3QvcGFuZnJvc3RfZ2VtLmgKaW5kZXggMTMyZjAyMzk5YjdiLi5jNTAwY2E2YjkwNzIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9nZW0uaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfZ2VtLmgKQEAgLTEzLDYgKzEzLDcgQEAgc3Ry dWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgewogCXN0cnVjdCBkcm1fbW1fbm9kZSBub2RlOwogCWJv b2wgaXNfbWFwcGVkCQk6MTsKIAlib29sIG5vZXhlYwkJOjE7CisJYm9vbCBpc19oZWFwCQk6MTsK IH07CiAKIHN0YXRpYyBpbmxpbmUKQEAgLTIxLDYgKzIyLDEzIEBAIHN0cnVjdCAgcGFuZnJvc3Rf Z2VtX29iamVjdCAqdG9fcGFuZnJvc3RfYm8oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiAJ cmV0dXJuIGNvbnRhaW5lcl9vZih0b19kcm1fZ2VtX3NobWVtX29iaihvYmopLCBzdHJ1Y3QgcGFu ZnJvc3RfZ2VtX29iamVjdCwgYmFzZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUKK3N0cnVjdCAgcGFu ZnJvc3RfZ2VtX29iamVjdCAqZHJtX21tX25vZGVfdG9fcGFuZnJvc3RfYm8oc3RydWN0IGRybV9t bV9ub2RlICpub2RlKQoreworCXJldHVybiBjb250YWluZXJfb2Yobm9kZSwgc3RydWN0IHBhbmZy b3N0X2dlbV9vYmplY3QsIG5vZGUpOworfQorCisKIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqcGFu ZnJvc3RfZ2VtX2NyZWF0ZV9vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNp emUpOwogCiBzdHJ1Y3QgcGFuZnJvc3RfZ2VtX29iamVjdCAqCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfbW11LmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZnJv c3QvcGFuZnJvc3RfbW11LmMKaW5kZXggZDE4NDg0YTA3YmZhLi4zYjk1YzcwMjcxODggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5mcm9zdC9wYW5mcm9zdF9tbXUuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vcGFuZnJvc3QvcGFuZnJvc3RfbW11LmMKQEAgLTMsNiArMyw3IEBACiAvKiBD b3B5cmlnaHQgKEMpIDIwMTkgQXJtIEx0ZC4gKi8KICNpbmNsdWRlIDxsaW51eC9iaXRmaWVsZC5o PgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcu aD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgog I2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgpAQCAtMTAsNiArMTEsNyBAQAogI2luY2x1ZGUgPGxp bnV4L2lvbW11Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVk ZSA8bGludXgvcG1fcnVudGltZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NobWVtX2ZzLmg+CiAjaW5j bHVkZSA8bGludXgvc2l6ZXMuaD4KIAogI2luY2x1ZGUgInBhbmZyb3N0X2RldmljZS5oIgpAQCAt MjU3LDEyICsyNTksMTIgQEAgdm9pZCBwYW5mcm9zdF9tbXVfdW5tYXAoc3RydWN0IHBhbmZyb3N0 X2dlbV9vYmplY3QgKmJvKQogCQlzaXplX3QgdW5tYXBwZWRfcGFnZTsKIAkJc2l6ZV90IHBnc2l6 ZSA9IGdldF9wZ3NpemUoaW92YSwgbGVuIC0gdW5tYXBwZWRfbGVuKTsKIAotCQl1bm1hcHBlZF9w YWdlID0gb3BzLT51bm1hcChvcHMsIGlvdmEsIHBnc2l6ZSk7Ci0JCWlmICghdW5tYXBwZWRfcGFn ZSkKLQkJCWJyZWFrOwotCi0JCWlvdmEgKz0gdW5tYXBwZWRfcGFnZTsKLQkJdW5tYXBwZWRfbGVu ICs9IHVubWFwcGVkX3BhZ2U7CisJCWlmIChvcHMtPmlvdmFfdG9fcGh5cyhvcHMsIGlvdmEpKSB7 CisJCQl1bm1hcHBlZF9wYWdlID0gb3BzLT51bm1hcChvcHMsIGlvdmEsIHBnc2l6ZSk7CisJCQlX QVJOX09OKHVubWFwcGVkX3BhZ2UgIT0gcGdzaXplKTsKKwkJfQorCQlpb3ZhICs9IHBnc2l6ZTsK KwkJdW5tYXBwZWRfbGVuICs9IHBnc2l6ZTsKIAl9CiAKIAltbXVfaHdfZG9fb3BlcmF0aW9uKHBm ZGV2LCAwLCBiby0+bm9kZS5zdGFydCA8PCBQQUdFX1NISUZULApAQCAtMjk4LDYgKzMwMCw4NiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11X2dhdGhlcl9vcHMgbW11X3RsYl9vcHMgPSB7CiAJ LnRsYl9zeW5jCT0gbW11X3RsYl9zeW5jX2NvbnRleHQsCiB9OwogCitzdGF0aWMgc3RydWN0IGRy bV9tbV9ub2RlICphZGRyX3RvX2RybV9tbV9ub2RlKHN0cnVjdCBwYW5mcm9zdF9kZXZpY2UgKnBm ZGV2LCBpbnQgYXMsIHU2NCBhZGRyKQoreworCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZTsKKwl1 NjQgb2Zmc2V0ID0gYWRkciA+PiBQQUdFX1NISUZUOworCisJZHJtX21tX2Zvcl9lYWNoX25vZGUo bm9kZSwgJnBmZGV2LT5tbSkgeworCQlpZiAob2Zmc2V0ID49IG5vZGUtPnN0YXJ0ICYmIG9mZnNl dCA8IChub2RlLT5zdGFydCArIG5vZGUtPnNpemUpKQorCQkJcmV0dXJuIG5vZGU7CisJfQorCXJl dHVybiBOVUxMOworfQorCisjZGVmaW5lIE5VTV9GQVVMVF9QQUdFUyAoU1pfMk0gLyBQQUdFX1NJ WkUpCisKK2ludCBwYW5mcm9zdF9tbXVfbWFwX2ZhdWx0X2FkZHIoc3RydWN0IHBhbmZyb3N0X2Rl dmljZSAqcGZkZXYsIGludCBhcywgdTY0IGFkZHIpCit7CisJaW50IHJldCwgaTsKKwlzdHJ1Y3Qg ZHJtX21tX25vZGUgKm5vZGU7CisJc3RydWN0IHBhbmZyb3N0X2dlbV9vYmplY3QgKmJvOworCXN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOworCXBnb2ZmX3QgcGFnZV9vZmZzZXQ7CisJc3Ry dWN0IHNnX3RhYmxlIHNndCA9IHt9OworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisKKwlub2RlID0g YWRkcl90b19kcm1fbW1fbm9kZShwZmRldiwgYXMsIGFkZHIpOworCWlmICghbm9kZSkKKwkJcmV0 dXJuIC1FTk9FTlQ7CisKKwlibyA9IGRybV9tbV9ub2RlX3RvX3BhbmZyb3N0X2JvKG5vZGUpOwor CWlmICghYm8tPmlzX2hlYXApIHsKKwkJZGV2X1dBUk4ocGZkZXYtPmRldiwgIm1hdGNoaW5nIEJP IGlzIG5vdCBoZWFwIHR5cGUgKEdQVSBWQSA9ICVsbHgpIiwKKwkJCSBub2RlLT5zdGFydCA8PCBQ QUdFX1NISUZUKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCS8qIEFzc3VtZSAyTUIgYWxpZ25t ZW50IGFuZCBzaXplIG11bHRpcGxlICovCisJYWRkciAmPSB+KCh1NjQpU1pfMk0gLSAxKTsKKwlw YWdlX29mZnNldCA9IGFkZHIgPj4gUEFHRV9TSElGVDsKKwlwYWdlX29mZnNldCAtPSBub2RlLT5z dGFydDsKKworCXBhZ2VzID0ga3ZtYWxsb2NfYXJyYXkoTlVNX0ZBVUxUX1BBR0VTLCBzaXplb2Yo c3RydWN0IHBhZ2UgKiksIEdGUF9LRVJORUwpOworCWlmICghcGFnZXMpCisJCXJldHVybiAtRU5P TUVNOworCisJbWFwcGluZyA9IGJvLT5iYXNlLmJhc2UuZmlscC0+Zl9tYXBwaW5nOworCW1hcHBp bmdfc2V0X3VuZXZpY3RhYmxlKG1hcHBpbmcpOworCisJZm9yIChpID0gMDsgaSA8IE5VTV9GQVVM VF9QQUdFUzsgaSsrKSB7CisJCXBhZ2VzW2ldID0gc2htZW1fcmVhZF9tYXBwaW5nX3BhZ2UobWFw cGluZywgcGFnZV9vZmZzZXQgKyBpKTsKKwkJaWYgKElTX0VSUihwYWdlc1tpXSkpIHsKKwkJCXJl dCA9IFBUUl9FUlIocGFnZXNbaV0pOworCQkJZ290byBlcnJfcGFnZXM7CisJCX0KKwl9CisKKwly ZXQgPSBzZ19hbGxvY190YWJsZV9mcm9tX3BhZ2VzKCZzZ3QsIHBhZ2VzLCBOVU1fRkFVTFRfUEFH RVMsIDAsCisJCQkJCVNaXzJNLCBHRlBfS0VSTkVMKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycl9w YWdlczsKKworCWlmIChkbWFfbWFwX3NnKHBmZGV2LT5kZXYsIHNndC5zZ2wsIHNndC5uZW50cywg RE1BX0JJRElSRUNUSU9OQUwpID09IDApIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBlcnJf bWFwOworCX0KKworCW1tdV9tYXBfc2cocGZkZXYsIGFkZHIsIElPTU1VX1dSSVRFIHwgSU9NTVVf UkVBRCB8IElPTU1VX05PRVhFQywgJnNndCk7CisKKwltbXVfd3JpdGUocGZkZXYsIE1NVV9JTlRf Q0xFQVIsIEJJVChhcykpOworCWJvLT5pc19tYXBwZWQgPSB0cnVlOworCisJZGV2X2RiZyhwZmRl di0+ZGV2LCAibWFwcGVkIHBhZ2UgZmF1bHQgQCAlbGx4IiwgYWRkcik7CisKKwlyZXR1cm4gMDsK KworZXJyX21hcDoKKwlzZ19mcmVlX3RhYmxlKCZzZ3QpOworZXJyX3BhZ2VzOgorCWt2ZnJlZShw YWdlcyk7CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGNvbnN0IGNoYXIgKmFjY2Vzc190eXBl X25hbWUoc3RydWN0IHBhbmZyb3N0X2RldmljZSAqcGZkZXYsCiAJCXUzMiBmYXVsdF9zdGF0dXMp CiB7CkBAIC0zMjMsMTMgKzQwNSwxMSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGFuZnJvc3RfbW11 X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHBhbmZyb3N0X2Rl dmljZSAqcGZkZXYgPSBkYXRhOwogCXUzMiBzdGF0dXMgPSBtbXVfcmVhZChwZmRldiwgTU1VX0lO VF9TVEFUKTsKLQlpbnQgaTsKKwlpbnQgaSwgcmV0OwogCiAJaWYgKCFzdGF0dXMpCiAJCXJldHVy biBJUlFfTk9ORTsKIAotCWRldl9lcnIocGZkZXYtPmRldiwgIm1tdSBpcnEgc3RhdHVzPSV4XG4i LCBzdGF0dXMpOwotCiAJZm9yIChpID0gMDsgc3RhdHVzOyBpKyspIHsKIAkJdTMyIG1hc2sgPSBC SVQoaSkgfCBCSVQoaSArIDE2KTsKIAkJdTY0IGFkZHI7CkBAIC0zNTAsNiArNDMwLDE3IEBAIHN0 YXRpYyBpcnFyZXR1cm5fdCBwYW5mcm9zdF9tbXVfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAq ZGF0YSkKIAkJYWNjZXNzX3R5cGUgPSAoZmF1bHRfc3RhdHVzID4+IDgpICYgMHgzOwogCQlzb3Vy Y2VfaWQgPSAoZmF1bHRfc3RhdHVzID4+IDE2KTsKIAorCQkvKiBQYWdlIGZhdWx0IG9ubHkgKi8K KwkJaWYgKChzdGF0dXMgJiBtYXNrKSA9PSBCSVQoaSkpIHsKKwkJCVdBUk5fT04oZXhjZXB0aW9u X3R5cGUgPCAweEMxIHx8IGV4Y2VwdGlvbl90eXBlID4gMHhDNCk7CisKKwkJCXJldCA9IHBhbmZy b3N0X21tdV9tYXBfZmF1bHRfYWRkcihwZmRldiwgaSwgYWRkcik7CisJCQlpZiAoIXJldCkgewor CQkJCXN0YXR1cyAmPSB+bWFzazsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCiAJCS8qIHRl cm1pbmFsIGZhdWx0LCBwcmludCBpbmZvIGFib3V0IHRoZSBmYXVsdCAqLwogCQlkZXZfZXJyKHBm ZGV2LT5kZXYsCiAJCQkiVW5oYW5kbGVkIFBhZ2UgZmF1bHQgaW4gQVMlZCBhdCBWQSAweCUwMTZs bFhcbiIKQEAgLTM5MSw4ICs0ODIsOSBAQCBpbnQgcGFuZnJvc3RfbW11X2luaXQoc3RydWN0IHBh bmZyb3N0X2RldmljZSAqcGZkZXYpCiAJaWYgKGlycSA8PSAwKQogCQlyZXR1cm4gLUVOT0RFVjsK IAotCWVyciA9IGRldm1fcmVxdWVzdF9pcnEocGZkZXYtPmRldiwgaXJxLCBwYW5mcm9zdF9tbXVf aXJxX2hhbmRsZXIsCi0JCQkgICAgICAgSVJRRl9TSEFSRUQsICJtbXUiLCBwZmRldik7CisJZXJy ID0gZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycShwZmRldi0+ZGV2LCBpcnEsIE5VTEwsCisJCQkJ CXBhbmZyb3N0X21tdV9pcnFfaGFuZGxlciwKKwkJCQkJSVJRRl9PTkVTSE9ULCAibW11IiwgcGZk ZXYpOwogCiAJaWYgKGVycikgewogCQlkZXZfZXJyKHBmZGV2LT5kZXYsICJmYWlsZWQgdG8gcmVx dWVzdCBtbXUgaXJxIik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3BhbmZyb3N0X2Ry bS5oIGIvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0uaAppbmRleCAxN2ZiNWQyMDBmN2Eu LjkxNTBkZDc1YWFkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9wYW5mcm9zdF9kcm0u aAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL3BhbmZyb3N0X2RybS5oCkBAIC04Myw2ICs4Myw3IEBA IHN0cnVjdCBkcm1fcGFuZnJvc3Rfd2FpdF9ibyB7CiB9OwogCiAjZGVmaW5lIFBBTkZST1NUX0JP X05PRVhFQwkxCisjZGVmaW5lIFBBTkZST1NUX0JPX0hFQVAJMgogCiAvKioKICAqIHN0cnVjdCBk cm1fcGFuZnJvc3RfY3JlYXRlX2JvIC0gaW9jdGwgYXJndW1lbnQgZm9yIGNyZWF0aW5nIFBhbmZy b3N0IEJPcy4KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs