From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v3,2/2] dmaengine: Add metadata_ops for dma_async_tx_descriptor From: Peter Ujfalusi Message-Id: <20180912064512.27306-3-peter.ujfalusi@ti.com> Date: Wed, 12 Sep 2018 09:45:12 +0300 To: dan.j.williams@intel.com, vkoul@kernel.org Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, lars@metafoo.de, radheys@xilinx.com List-ID: VGhlIG1ldGFkYXRhIGlzIGJlc3QgZGVzY3JpYmVkIGFzIHNpZGUgYmFuZCBkYXRhIG9yIHBhcmFt ZXRlcnMgdHJhdmVsaW5nCmFsb25nc2lkZSB0aGUgZGF0YSBETUFkIGJ5IHRoZSBETUEgZW5naW5l LiBJdCBpcyBkYXRhCndoaWNoIGlzIHVuZGVyc3Rvb2QgYnkgdGhlIHBlcmlwaGVyYWwgYW5kIHRo ZSBwZXJpcGhlcmFsIGRyaXZlciBvbmx5LCB0aGUKRE1BIGVuZ2luZSBzZWUgaXQgb25seSBhcyBk YXRhIGJsb2NrIGFuZCBpdCBpcyBub3QgaW50ZXJwcmV0aW5nIGl0IGluIGFueQp3YXkuCgpUaGUg bWV0YWRhdGEgY2FuIGJlIGRpZmZlcmVudCBwZXIgZGVzY3JpcHRvciBhcyBpdCBpcyBhIHBhcmFt ZXRlciBmb3IgdGhlCmRhdGEgYmVpbmcgdHJhbnNmZXJyZWQuCgpJZiB0aGUgRE1BIHN1cHBvcnRz IHBlciBkZXNjcmlwdG9yIG1ldGFkYXRhIGl0IGNhbiBpbXBsZW1lbnQgdGhlIGF0dGFjaCwKZ2V0 X3B0ci9zZXRfbGVuIGNhbGxiYWNrcy4KCkNsaWVudCBkcml2ZXJzIG11c3Qgb25seSB1c2UgZWl0 aGVyIGF0dGFjaCBvciBnZXRfcHRyL3NldF9sZW4gdG8gYXZvaWQKbWlzY29uZmlndXJhdGlvbi4K CkNsaWVudCBkcml2ZXIgY2FuIGNoZWNrIGlmIGEgZ2l2ZW4gbWV0YWRhdGEgbW9kZSBpcyBzdXBw b3J0ZWQgYnkgdGhlCmNoYW5uZWwgZHVyaW5nIHByb2JlIHRpbWUgd2l0aApkbWFlbmdpbmVfaXNf bWV0YWRhdGFfbW9kZV9zdXBwb3J0ZWQoY2hhbiwgREVTQ19NRVRBREFUQV9DTElFTlQpOwpkbWFl bmdpbmVfaXNfbWV0YWRhdGFfbW9kZV9zdXBwb3J0ZWQoY2hhbiwgREVTQ19NRVRBREFUQV9FTkdJ TkUpOwoKYW5kIGJhc2VkIG9uIHRoaXMgaW5mb3JtYXRpb24gY2FuIHVzZSBlaXRoZXIgbW9kZS4K CldyYXBwZXJzIGFyZSBhbHNvIGFkZGVkIGZvciB0aGUgbWV0YWRhdGFfb3BzLgoKVG8gYmUgdXNl ZCBpbiBERVNDX01FVEFEQVRBX0NMSUVOVCBtb2RlOgpkbWFlbmdpbmVfZGVzY19hdHRhY2hfbWV0 YWRhdGEoKQoKVG8gYmUgdXNlZCBpbiBERVNDX01FVEFEQVRBX0VOR0lORSBtb2RlOgpkbWFlbmdp bmVfZGVzY19nZXRfbWV0YWRhdGFfcHRyKCkKZG1hZW5naW5lX2Rlc2Nfc2V0X21ldGFkYXRhX2xl bigpCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBVamZhbHVzaSA8cGV0ZXIudWpmYWx1c2lAdGkuY29t PgotLS0KIGRyaXZlcnMvZG1hL2RtYWVuZ2luZS5jICAgfCAgNzMgKysrKysrKysrKysrKysrKysr KysrKysrKysKIGluY2x1ZGUvbGludXgvZG1hZW5naW5lLmggfCAxMDggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTgxIGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9kbWFlbmdpbmUuYyBiL2RyaXZlcnMvZG1hL2Rt YWVuZ2luZS5jCmluZGV4IGYxYTQ0MWFiMzk1ZC4uMjdiNmQ3YzJkOGEwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2RtYS9kbWFlbmdpbmUuYworKysgYi9kcml2ZXJzL2RtYS9kbWFlbmdpbmUuYwpAQCAt MTMwNiw2ICsxMzA2LDc5IEBAIHZvaWQgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3JfaW5pdChzdHJ1 Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnR4LAogfQogRVhQT1JUX1NZTUJPTChkbWFfYXN5 bmNfdHhfZGVzY3JpcHRvcl9pbml0KTsKIAorc3RhdGljIGlubGluZSBpbnQgZGVzY19jaGVja19h bmRfc2V0X21ldGFkYXRhX21vZGUoCisJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpk ZXNjLCBlbnVtIGRtYV9kZXNjX21ldGFkYXRhX21vZGUgbW9kZSkKK3sKKwkvKiBNYWtlIHN1cmUg dGhhdCB0aGUgbWV0YWRhdGEgbW9kZSBpcyBub3QgbWl4ZWQgKi8KKwlpZiAoIWRlc2MtPmRlc2Nf bWV0YWRhdGFfbW9kZSkgeworCQlpZiAoZG1hZW5naW5lX2lzX21ldGFkYXRhX21vZGVfc3VwcG9y dGVkKGRlc2MtPmNoYW4sIG1vZGUpKQorCQkJZGVzYy0+ZGVzY19tZXRhZGF0YV9tb2RlID0gbW9k ZTsKKwkJZWxzZQorCQkJcmV0dXJuIC1FTk9UU1VQUDsKKwl9IGVsc2UgaWYgKGRlc2MtPmRlc2Nf bWV0YWRhdGFfbW9kZSAhPSBtb2RlKSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVy biAwOworfQorCitpbnQgZG1hZW5naW5lX2Rlc2NfYXR0YWNoX21ldGFkYXRhKHN0cnVjdCBkbWFf YXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywKKwkJCQkgICB2b2lkICpkYXRhLCBzaXplX3QgbGVu KQoreworCWludCByZXQ7CisKKwlpZiAoIWRlc2MpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0 ID0gZGVzY19jaGVja19hbmRfc2V0X21ldGFkYXRhX21vZGUoZGVzYywgREVTQ19NRVRBREFUQV9D TElFTlQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAoIWRlc2MtPm1ldGFkYXRh X29wcyB8fCAhZGVzYy0+bWV0YWRhdGFfb3BzLT5hdHRhY2gpCisJCXJldHVybiAtRU5PVFNVUFA7 CisKKwlyZXR1cm4gZGVzYy0+bWV0YWRhdGFfb3BzLT5hdHRhY2goZGVzYywgZGF0YSwgbGVuKTsK K30KK0VYUE9SVF9TWU1CT0xfR1BMKGRtYWVuZ2luZV9kZXNjX2F0dGFjaF9tZXRhZGF0YSk7CisK K3ZvaWQgKmRtYWVuZ2luZV9kZXNjX2dldF9tZXRhZGF0YV9wdHIoc3RydWN0IGRtYV9hc3luY190 eF9kZXNjcmlwdG9yICpkZXNjLAorCQkJCSAgICAgIHNpemVfdCAqcGF5bG9hZF9sZW4sIHNpemVf dCAqbWF4X2xlbikKK3sKKwlpbnQgcmV0OworCisJaWYgKCFkZXNjKQorCQlyZXR1cm4gRVJSX1BU UigtRUlOVkFMKTsKKworCXJldCA9IGRlc2NfY2hlY2tfYW5kX3NldF9tZXRhZGF0YV9tb2RlKGRl c2MsIERFU0NfTUVUQURBVEFfRU5HSU5FKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gRVJSX1BUUihy ZXQpOworCisJaWYgKCFkZXNjLT5tZXRhZGF0YV9vcHMgfHwgIWRlc2MtPm1ldGFkYXRhX29wcy0+ Z2V0X3B0cikKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT1RTVVBQKTsKKworCXJldHVybiBkZXNjLT5t ZXRhZGF0YV9vcHMtPmdldF9wdHIoZGVzYywgcGF5bG9hZF9sZW4sIG1heF9sZW4pOworfQorRVhQ T1JUX1NZTUJPTF9HUEwoZG1hZW5naW5lX2Rlc2NfZ2V0X21ldGFkYXRhX3B0cik7CisKK2ludCBk bWFlbmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVuKHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3Jp cHRvciAqZGVzYywKKwkJCQkgICAgc2l6ZV90IHBheWxvYWRfbGVuKQoreworCWludCByZXQ7CisK KwlpZiAoIWRlc2MpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0ID0gZGVzY19jaGVja19hbmRf c2V0X21ldGFkYXRhX21vZGUoZGVzYywgREVTQ19NRVRBREFUQV9FTkdJTkUpOworCWlmIChyZXQp CisJCXJldHVybiByZXQ7CisKKwlpZiAoIWRlc2MtPm1ldGFkYXRhX29wcyB8fCAhZGVzYy0+bWV0 YWRhdGFfb3BzLT5zZXRfbGVuKQorCQlyZXR1cm4gLUVOT1RTVVBQOworCisJcmV0dXJuIGRlc2Mt Pm1ldGFkYXRhX29wcy0+c2V0X2xlbihkZXNjLCBwYXlsb2FkX2xlbik7Cit9CitFWFBPUlRfU1lN Qk9MX0dQTChkbWFlbmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVuKTsKKwogLyogZG1hX3dhaXRf Zm9yX2FzeW5jX3R4IC0gc3BpbiB3YWl0IGZvciBhIHRyYW5zYWN0aW9uIHRvIGNvbXBsZXRlCiAg KiBAdHg6IGluLWZsaWdodCB0cmFuc2FjdGlvbiB0byB3YWl0IG9uCiAgKi8KZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvZG1hZW5naW5lLmggYi9pbmNsdWRlL2xpbnV4L2RtYWVuZ2luZS5oCmlu ZGV4IDNkYjgzM2E4YzU0Mi4uMTBmZjcxYjEzZWVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L2RtYWVuZ2luZS5oCisrKyBiL2luY2x1ZGUvbGludXgvZG1hZW5naW5lLmgKQEAgLTIzMSw2ICsy MzEsNTggQEAgdHlwZWRlZiBzdHJ1Y3QgeyBERUNMQVJFX0JJVE1BUChiaXRzLCBETUFfVFhfVFlQ RV9FTkQpOyB9IGRtYV9jYXBfbWFza190OwogICogQGJ5dGVzX3RyYW5zZmVycmVkOiBieXRlIGNv dW50ZXIKICAqLwogCisvKioKKyAqIGVudW0gZG1hX2Rlc2NfbWV0YWRhdGFfbW9kZSAtIHBlciBk ZXNjcmlwdG9yIG1ldGFkYXRhIG1vZGUgdHlwZXMgc3VwcG9ydGVkCisgKiBAREVTQ19NRVRBREFU QV9DTElFTlQgLSB0aGUgbWV0YWRhdGEgYnVmZmVyIGlzIGFsbG9jYXRlZC9wcm92aWRlZCBieSB0 aGUKKyAqICBjbGllbnQgZHJpdmVyIGFuZCBpdCBpcyBhdHRhY2hlZCAodmlhIHRoZSBkbWFlbmdp bmVfZGVzY19hdHRhY2hfbWV0YWRhdGEoKQorICogIGhlbHBlcikgdG8gdGhlIGRlc2NyaXB0b3Iu CisgKgorICogQ2xpZW50IGRyaXZlcnMgaW50ZXJlc3RlZCB0byB1c2UgdGhpcyBtb2RlIGNhbiBm b2xsb3c6CisgKiAtIERNQV9NRU1fVE9fREVWIC8gREVWX01FTV9UT19NRU06CisgKiAgIDEuIHBy ZXBhcmUgdGhlIGRlc2NyaXB0b3IgKGRtYWVuZ2luZV9wcmVwXyopCisgKgljb25zdHJ1Y3QgdGhl IG1ldGFkYXRhIGluIHRoZSBjbGllbnQncyBidWZmZXIKKyAqICAgMi4gdXNlIGRtYWVuZ2luZV9k ZXNjX2F0dGFjaF9tZXRhZGF0YSgpIHRvIGF0dGFjaCB0aGUgYnVmZmVyIHRvIHRoZQorICoJZGVz Y3JpcHRvcgorICogICAzLiBzdWJtaXQgdGhlIHRyYW5zZmVyCisgKiAtIERNQV9ERVZfVE9fTUVN OgorICogICAxLiBwcmVwYXJlIHRoZSBkZXNjcmlwdG9yIChkbWFlbmdpbmVfcHJlcF8qKQorICog ICAyLiB1c2UgZG1hZW5naW5lX2Rlc2NfYXR0YWNoX21ldGFkYXRhKCkgdG8gYXR0YWNoIHRoZSBi dWZmZXIgdG8gdGhlCisgKglkZXNjcmlwdG9yCisgKiAgIDMuIHN1Ym1pdCB0aGUgdHJhbnNmZXIK KyAqICAgNC4gd2hlbiB0aGUgdHJhbnNmZXIgaXMgY29tcGxldGVkLCB0aGUgbWV0YWRhdGEgc2hv dWxkIGJlIGF2YWlsYWJsZSBpbiB0aGUKKyAqCWF0dGFjaGVkIGJ1ZmZlcgorICoKKyAqIEBERVND X01FVEFEQVRBX0VOR0lORSAtIHRoZSBtZXRhZGF0YSBidWZmZXIgaXMgYWxsb2NhdGVkL21hbmFn ZWQgYnkgdGhlIERNQQorICogIGRyaXZlci4gVGhlIGNsaWVudCBkcml2ZXIgY2FuIGFzayBmb3Ig dGhlIHBvaW50ZXIsIG1heGltdW0gc2l6ZSBhbmQgdGhlCisgKiAgY3VycmVudGx5IHVzZWQgc2l6 ZSBvZiB0aGUgbWV0YWRhdGEgYW5kIGNhbiBkaXJlY3RseSB1cGRhdGUgb3IgcmVhZCBpdC4KKyAq ICBkbWFlbmdpbmVfZGVzY19nZXRfbWV0YWRhdGFfcHRyKCkgYW5kIGRtYWVuZ2luZV9kZXNjX3Nl dF9tZXRhZGF0YV9sZW4oKSBpcworICogIHByb3ZpZGVkIGFzIGhlbHBlciBmdW5jdGlvbnMuCisg KgorICogQ2xpZW50IGRyaXZlcnMgaW50ZXJlc3RlZCB0byB1c2UgdGhpcyBtb2RlIGNhbiBmb2xs b3c6CisgKiAtIERNQV9NRU1fVE9fREVWIC8gREVWX01FTV9UT19NRU06CisgKiAgIDEuIHByZXBh cmUgdGhlIGRlc2NyaXB0b3IgKGRtYWVuZ2luZV9wcmVwXyopCisgKiAgIDIuIHVzZSBkbWFlbmdp bmVfZGVzY19nZXRfbWV0YWRhdGFfcHRyKCkgdG8gZ2V0IHRoZSBwb2ludGVyIHRvIHRoZSBlbmdp bmUncworICoJbWV0YWRhdGEgYXJlYQorICogICAzLiB1cGRhdGUgdGhlIG1ldGFkYXRhIGF0IHRo ZSBwb2ludGVyCisgKiAgIDQuIHVzZSBkbWFlbmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVuKCkg IHRvIHRlbGwgdGhlIERNQSBlbmdpbmUgdGhlIGFtb3VudAorICoJb2YgZGF0YSB0aGUgY2xpZW50 IGhhcyBwbGFjZWQgaW50byB0aGUgbWV0YWRhdGEgYnVmZmVyCisgKiAgIDUuIHN1Ym1pdCB0aGUg dHJhbnNmZXIKKyAqIC0gRE1BX0RFVl9UT19NRU06CisgKiAgIDEuIHByZXBhcmUgdGhlIGRlc2Ny aXB0b3IgKGRtYWVuZ2luZV9wcmVwXyopCisgKiAgIDIuIHN1Ym1pdCB0aGUgdHJhbnNmZXIKKyAq ICAgMy4gb24gdHJhbnNmZXIgY29tcGxldGlvbiwgdXNlIGRtYWVuZ2luZV9kZXNjX2dldF9tZXRh ZGF0YV9wdHIoKSB0byBnZXQgdGhlCisgKglwb2ludGVyIHRvIHRoZSBlbmdpbmUncyBtZXRhZGF0 YSBhcmUKKyAqICAgNC4gUmVhZCBvdXQgdGhlIG1ldGFkYXRlIGZyb20gdGhlIHBvaW50ZXIKKyAq CisgKiBOb3RlOiB0aGUgdHdvIG1vZGUgaXMgbm90IGNvbXBhdGlibGUgYW5kIGNsaWVudHMgbXVz dCB1c2Ugb25lIG1vZGUgZm9yIGEKKyAqIGRlc2NyaXB0b3IuCisgKi8KK2VudW0gZG1hX2Rlc2Nf bWV0YWRhdGFfbW9kZSB7CisJREVTQ19NRVRBREFUQV9OT05FID0gMCwKKwlERVNDX01FVEFEQVRB X0NMSUVOVCA9IEJJVCgwKSwKKwlERVNDX01FVEFEQVRBX0VOR0lORSA9IEJJVCgxKSwKK307CisK IHN0cnVjdCBkbWFfY2hhbl9wZXJjcHUgewogCS8qIHN0YXRzICovCiAJdW5zaWduZWQgbG9uZyBt ZW1jcHlfY291bnQ7CkBAIC00OTQsNiArNTQ2LDE4IEBAIHN0cnVjdCBkbWFlbmdpbmVfdW5tYXBf ZGF0YSB7CiAJZG1hX2FkZHJfdCBhZGRyWzBdOwogfTsKIAorc3RydWN0IGRtYV9hc3luY190eF9k ZXNjcmlwdG9yOworCitzdHJ1Y3QgZG1hX2Rlc2NyaXB0b3JfbWV0YWRhdGFfb3BzIHsKKwlpbnQg KCphdHRhY2gpKHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywgdm9pZCAqZGF0 YSwKKwkJICAgICAgc2l6ZV90IGxlbik7CisKKwl2b2lkICooKmdldF9wdHIpKHN0cnVjdCBkbWFf YXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywKKwkJCSBzaXplX3QgKnBheWxvYWRfbGVuLCBzaXpl X3QgKm1heF9sZW4pOworCWludCAoKnNldF9sZW4pKHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3Jp cHRvciAqZGVzYywKKwkJICAgICAgIHNpemVfdCBwYXlsb2FkX2xlbik7Cit9OworCiAvKioKICAq IHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAtIGFzeW5jIHRyYW5zYWN0aW9uIGRlc2Ny aXB0b3IKICAqIC0tLWRtYSBnZW5lcmljIG9mZmxvYWQgZmllbGRzLS0tCkBAIC01MDcsNiArNTcx LDExIEBAIHN0cnVjdCBkbWFlbmdpbmVfdW5tYXBfZGF0YSB7CiAgKiBkZXNjcmlwdG9yIHBlbmRp bmcuIFRvIGJlIHB1c2hlZCBvbiAuaXNzdWVfcGVuZGluZygpIGNhbGwKICAqIEBjYWxsYmFjazog cm91dGluZSB0byBjYWxsIGFmdGVyIHRoaXMgb3BlcmF0aW9uIGlzIGNvbXBsZXRlCiAgKiBAY2Fs bGJhY2tfcGFyYW06IGdlbmVyYWwgcGFyYW1ldGVyIHRvIHBhc3MgdG8gdGhlIGNhbGxiYWNrIHJv dXRpbmUKKyAqIEBkZXNjX21ldGFkYXRhX21vZGU6IGNvcmUgbWFuYWdlZCBtZXRhZGF0YSBtb2Rl IHRvIHByb3RlY3QgbWl4ZWQgdXNlIG9mCisgKglERVNDX01FVEFEQVRBX0NMSUVOVCBvciBERVND X01FVEFEQVRBX0VOR0lORS4gT3RoZXJ3aXNlCisgKglERVNDX01FVEFEQVRBX05PTkUKKyAqIEBt ZXRhZGF0YV9vcHM6IERNQSBkcml2ZXIgcHJvdmlkZWQgbWV0YWRhdGEgbW9kZSBvcHMsIG5lZWQg dG8gYmUgc2V0IGJ5IHRoZQorICoJRE1BIGRyaXZlciBpZiBtZXRhZGF0YSBtb2RlIGlzIHN1cHBv cnRlZCB3aXRoIHRoZSBkZXNjcmlwdG9yCiAgKiAtLS1hc3luY190eCBhcGkgc3BlY2lmaWMgZmll bGRzLS0tCiAgKiBAbmV4dDogYXQgY29tcGxldGlvbiBzdWJtaXQgdGhpcyBkZXNjcmlwdG9yCiAg KiBAcGFyZW50OiBwb2ludGVyIHRvIHRoZSBuZXh0IGxldmVsIHVwIGluIHRoZSBkZXBlbmRlbmN5 IGNoYWluCkBAIC01MjMsNiArNTkyLDggQEAgc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9y IHsKIAlkbWFfYXN5bmNfdHhfY2FsbGJhY2tfcmVzdWx0IGNhbGxiYWNrX3Jlc3VsdDsKIAl2b2lk ICpjYWxsYmFja19wYXJhbTsKIAlzdHJ1Y3QgZG1hZW5naW5lX3VubWFwX2RhdGEgKnVubWFwOwor CWVudW0gZG1hX2Rlc2NfbWV0YWRhdGFfbW9kZSBkZXNjX21ldGFkYXRhX21vZGU7CisJc3RydWN0 IGRtYV9kZXNjcmlwdG9yX21ldGFkYXRhX29wcyAqbWV0YWRhdGFfb3BzOwogI2lmZGVmIENPTkZJ R19BU1lOQ19UWF9FTkFCTEVfQ0hBTk5FTF9TV0lUQ0gKIAlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rl c2NyaXB0b3IgKm5leHQ7CiAJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpwYXJlbnQ7 CkBAIC02ODUsNiArNzU2LDcgQEAgc3RydWN0IGRtYV9maWx0ZXIgewogICogQGdsb2JhbF9ub2Rl OiBsaXN0X2hlYWQgZm9yIGdsb2JhbCBkbWFfZGV2aWNlX2xpc3QKICAqIEBmaWx0ZXI6IGluZm9y bWF0aW9uIGZvciBkZXZpY2Uvc2xhdmUgdG8gZmlsdGVyIGZ1bmN0aW9uL3BhcmFtIG1hcHBpbmcK ICAqIEBjYXBfbWFzazogb25lIG9yIG1vcmUgZG1hX2NhcGFiaWxpdHkgZmxhZ3MKKyAqIEBkZXNj X21ldGFkYXRhX21vZGVzOiBzdXBwb3J0ZWQgbWV0YWRhdGEgbW9kZXMgYnkgdGhlIERNQSBkZXZp Y2UKICAqIEBtYXhfeG9yOiBtYXhpbXVtIG51bWJlciBvZiB4b3Igc291cmNlcywgMCBpZiBubyBj YXBhYmlsaXR5CiAgKiBAbWF4X3BxOiBtYXhpbXVtIG51bWJlciBvZiBQUSBzb3VyY2VzIGFuZCBQ US1jb250aW51ZSBjYXBhYmlsaXR5CiAgKiBAY29weV9hbGlnbjogYWxpZ25tZW50IHNoaWZ0IGZv ciBtZW1jcHkgb3BlcmF0aW9ucwpAQCAtNzQ5LDYgKzgyMSw3IEBAIHN0cnVjdCBkbWFfZGV2aWNl IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGdsb2JhbF9ub2RlOwogCXN0cnVjdCBkbWFfZmlsdGVyIGZp bHRlcjsKIAlkbWFfY2FwX21hc2tfdCAgY2FwX21hc2s7CisJZW51bSBkbWFfZGVzY19tZXRhZGF0 YV9tb2RlIGRlc2NfbWV0YWRhdGFfbW9kZXM7CiAJdW5zaWduZWQgc2hvcnQgbWF4X3hvcjsKIAl1 bnNpZ25lZCBzaG9ydCBtYXhfcHE7CiAJZW51bSBkbWFlbmdpbmVfYWxpZ25tZW50IGNvcHlfYWxp Z247CkBAIC05MzUsNiArMTAwOCw0MSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfYXN5bmNf dHhfZGVzY3JpcHRvciAqZG1hZW5naW5lX3ByZXBfZG1hX21lbWNweSgKIAkJCQkJCSAgICBsZW4s IGZsYWdzKTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGRtYWVuZ2luZV9pc19tZXRhZGF0YV9t b2RlX3N1cHBvcnRlZChzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4sCisJCWVudW0gZG1hX2Rlc2NfbWV0 YWRhdGFfbW9kZSBtb2RlKQoreworCWlmICghY2hhbikKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0 dXJuICEhKGNoYW4tPmRldmljZS0+ZGVzY19tZXRhZGF0YV9tb2RlcyAmIG1vZGUpOworfQorCisj aWZkZWYgQ09ORklHX0RNQV9FTkdJTkUKK2ludCBkbWFlbmdpbmVfZGVzY19hdHRhY2hfbWV0YWRh dGEoc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLAorCQkJCSAgIHZvaWQgKmRh dGEsIHNpemVfdCBsZW4pOwordm9pZCAqZG1hZW5naW5lX2Rlc2NfZ2V0X21ldGFkYXRhX3B0cihz dHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmRlc2MsCisJCQkJICAgICAgc2l6ZV90ICpw YXlsb2FkX2xlbiwgc2l6ZV90ICptYXhfbGVuKTsKK2ludCBkbWFlbmdpbmVfZGVzY19zZXRfbWV0 YWRhdGFfbGVuKHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywKKwkJCQkgICAg c2l6ZV90IHBheWxvYWRfbGVuKTsKKyNlbHNlIC8qIENPTkZJR19ETUFfRU5HSU5FICovCitzdGF0 aWMgaW5saW5lIGludCBkbWFlbmdpbmVfZGVzY19hdHRhY2hfbWV0YWRhdGEoCisJCXN0cnVjdCBk bWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKK3sK KwlyZXR1cm4gLUVJTlZBTDsKK30KK3N0YXRpYyBpbmxpbmUgdm9pZCAqZG1hZW5naW5lX2Rlc2Nf Z2V0X21ldGFkYXRhX3B0cigKKwkJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNj LCBzaXplX3QgKnBheWxvYWRfbGVuLAorCQlzaXplX3QgKm1heF9sZW4pCit7CisJcmV0dXJuIE5V TEw7Cit9CitzdGF0aWMgaW5saW5lIGludCBkbWFlbmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVu KAorCQlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmRlc2MsIHNpemVfdCBwYXlsb2Fk X2xlbikKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKyNlbmRpZiAvKiBDT05GSUdfRE1BX0VOR0lO RSAqLworCiAvKioKICAqIGRtYWVuZ2luZV90ZXJtaW5hdGVfYWxsKCkgLSBUZXJtaW5hdGUgYWxs IGFjdGl2ZSBETUEgdHJhbnNmZXJzCiAgKiBAY2hhbjogVGhlIGNoYW5uZWwgZm9yIHdoaWNoIHRv IHRlcm1pbmF0ZSB0aGUgdHJhbnNmZXJzCg==