From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 1/5] drm/amdgpu: add AMDGPU_GEM_CREATE_VRAM_LINEAR flag v2 Date: Mon, 29 Aug 2016 11:20:20 +0200 Message-ID: <1472462424-3052-2-git-send-email-deathsimple@vodafone.de> References: <1472462424-3052-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1472462424-3052-1-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKQWRkIGEg ZmxhZyBub3RpbmcgdGhhdCBhIEJPIG11c3QgYmUgY3JlYXRlZCB1c2luZyBsaW5lYXIgVlJBTQph bmQgc2V0IHRoaXMgZmxhZyBvbiBhbGwgaW4ga2VybmVsIHVzZXJzIHdoZXJlIGFwcHJvcHJpYXRl LgoKSG9wZWZ1bGx5IEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuCgp2MjogYWRkIGl0IGluIGEg ZmV3IG1vcmUgcGxhY2VzLCBmaXggQ1BVIG1hcHBpbmcuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3Rp YW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1LmggICAgICAgIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2Nncy5jICAgIHwgIDYgKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3MuYyAgICAgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8ICAzICsrLQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMgICAgIHwgIDMgKystCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyB8IDEyICsrKysrKysrKystLQogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgIHwgIDMgKystCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMgICAgfCAxMCArKysrKysrKy0tCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmMgICAgfCAgOSArKysrKysrLS0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAgICB8ICA2ICsrKystLQogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYyAgICAgIHwgIDkgKysrKysrLS0tCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jICAgICAgfCAgNiArKysrLS0KIGluY2x1 ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oICAgICAgICAgICAgICB8ICAyICsrCiAxNCBmaWxlcyBj aGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdS5oCmluZGV4IDU0NTc4OWYuLmIyZDk1YTkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdS5oCkBAIC0yNDk5LDYgKzI0OTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg YW1kZ3B1X2FjcGlfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikgeyB9CiBzdHJ1Y3Qg YW1kZ3B1X2JvX3ZhX21hcHBpbmcgKgogYW1kZ3B1X2NzX2ZpbmRfbWFwcGluZyhzdHJ1Y3QgYW1k Z3B1X2NzX3BhcnNlciAqcGFyc2VyLAogCQkgICAgICAgdWludDY0X3QgYWRkciwgc3RydWN0IGFt ZGdwdV9ibyAqKmJvKTsKK2ludCBhbWRncHVfY3NfbWFrZV9ib3NfbGluZWFyKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwYXJzZXIpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FNRF9EQUwp CiBpbnQgYW1kZ3B1X2RtX2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 ICk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY2dzLmMKaW5kZXggMDQwOTkzYy4u YzJkZmNkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nn cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jZ3MuYwpAQCAtMTQ2 LDcgKzE0Niw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nnc19hbGxvY19ncHVfbWVtKHN0cnVjdCBj Z3NfZGV2aWNlICpjZ3NfZGV2aWNlLAogCXN3aXRjaCh0eXBlKSB7CiAJY2FzZSBDR1NfR1BVX01F TV9UWVBFX19WSVNJQkxFX0NPTlRJR19GQjoKIAljYXNlIENHU19HUFVfTUVNX1RZUEVfX1ZJU0lC TEVfRkI6Ci0JCWZsYWdzID0gQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRDsK KwkJZmxhZ3MgPSBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVEIHwKKwkJCUFN REdQVV9HRU1fQ1JFQVRFX1ZSQU1fTElORUFSOwogCQlkb21haW4gPSBBTURHUFVfR0VNX0RPTUFJ Tl9WUkFNOwogCQlpZiAobWF4X29mZnNldCA+IGFkZXYtPm1jLnJlYWxfdnJhbV9zaXplKQogCQkJ cmV0dXJuIC1FSU5WQUw7CkBAIC0xNTcsNyArMTU4LDggQEAgc3RhdGljIGludCBhbWRncHVfY2dz X2FsbG9jX2dwdV9tZW0oc3RydWN0IGNnc19kZXZpY2UgKmNnc19kZXZpY2UsCiAJCWJyZWFrOwog CWNhc2UgQ0dTX0dQVV9NRU1fVFlQRV9fSU5WSVNJQkxFX0NPTlRJR19GQjoKIAljYXNlIENHU19H UFVfTUVNX1RZUEVfX0lOVklTSUJMRV9GQjoKLQkJZmxhZ3MgPSBBTURHUFVfR0VNX0NSRUFURV9O T19DUFVfQUNDRVNTOworCQlmbGFncyA9IEFNREdQVV9HRU1fQ1JFQVRFX05PX0NQVV9BQ0NFU1Mg fAorCQkJQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9MSU5FQVI7CiAJCWRvbWFpbiA9IEFNREdQVV9H RU1fRE9NQUlOX1ZSQU07CiAJCWlmIChhZGV2LT5tYy52aXNpYmxlX3ZyYW1fc2l6ZSA8IGFkZXYt Pm1jLnJlYWxfdnJhbV9zaXplKSB7CiAJCQlwbGFjZS5mcGZuID0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKaW5kZXggYjBlMTFjYS4uMTA4NDA4YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKQEAgLTEwOTcsMyArMTA5NywzNCBAQCBhbWRncHVfY3Nf ZmluZF9tYXBwaW5nKHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwYXJzZXIsCiAKIAlyZXR1cm4g TlVMTDsKIH0KKworLyoqCisgKiBhbWRncHVfY3NfbWFrZV9ib3NfbGluZWFyIC0gbWFyayBhbGwg Qk9zIGluIHRoaXMgQ1MgYXMgbGluZWFyCisgKgorICogQHBhcnNlcjogY29tbWFuZCBzdWJtaXNz aW9uIHBhcnNlciBjb250ZXh0CisgKgorICogSGVscGVyIGZvciBVVkQvVkNFIFZNIGVtdWxhdGlv biwgbWFyayBhbGwgQk9zIGluIHRoaXMgQ1MgYXMgbGluZWFyLgorICovCitpbnQgYW1kZ3B1X2Nz X21ha2VfYm9zX2xpbmVhcihzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyKQoreworCXVu c2lnbmVkIGk7CisJaW50IHI7CisKKwlpZiAoIXBhcnNlci0+Ym9fbGlzdCkKKwkJcmV0dXJuIDA7 CisKKwlmb3IgKGkgPSAwOyBpIDwgcGFyc2VyLT5ib19saXN0LT5udW1fZW50cmllczsgaSsrKSB7 CisJCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gcGFyc2VyLT5ib19saXN0LT5hcnJheVtpXS5yb2Jq OworCisJCWlmIChiby0+ZmxhZ3MgfD0gQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9MSU5FQVIpCisJ CQljb250aW51ZTsKKworCQliby0+ZmxhZ3MgfD0gQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9MSU5F QVI7CisJCWFtZGdwdV90dG1fcGxhY2VtZW50X2Zyb21fZG9tYWluKGJvLCBiby0+YWxsb3dlZF9k b21haW5zKTsKKwkJciA9IHR0bV9ib192YWxpZGF0ZSgmYm8tPnRibywgJmJvLT5wbGFjZW1lbnQs IGZhbHNlLCBmYWxzZSk7CisJCWlmICh1bmxpa2VseShyKSkKKwkJCXJldHVybiByOworCX0KKwor CXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5j CmluZGV4IDFiMzFhN2MuLjM4ZjUzMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2aWNlLmMKQEAgLTI1Niw3ICsyNTYsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV92cmFt X3NjcmF0Y2hfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoYWRldi0+dnJh bV9zY3JhdGNoLnJvYmogPT0gTlVMTCkgewogCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCBB TURHUFVfR1BVX1BBR0VfU0laRSwKIAkJCQkgICAgIFBBR0VfU0laRSwgdHJ1ZSwgQU1ER1BVX0dF TV9ET01BSU5fVlJBTSwKLQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVR VUlSRUQsCisJCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVEIHwK KwkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fTElORUFSLAogCQkJCSAgICAgTlVMTCwg TlVMTCwgJmFkZXYtPnZyYW1fc2NyYXRjaC5yb2JqKTsKIAkJaWYgKHIpIHsKIAkJCXJldHVybiBy OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZiLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYwppbmRleCBlNjk0Yzk5Li5lZmE5 Yjc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmIuYwpAQCAtMTIwLDcgKzEy MCw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1ZmJfY3JlYXRlX3Bpbm5lZF9vYmplY3Qoc3RydWN0IGFt ZGdwdV9mYmRldiAqcmZiZGV2LAogCWFsaWduZWRfc2l6ZSA9IEFMSUdOKHNpemUsIFBBR0VfU0la RSk7CiAJcmV0ID0gYW1kZ3B1X2dlbV9vYmplY3RfY3JlYXRlKGFkZXYsIGFsaWduZWRfc2l6ZSwg MCwKIAkJCQkgICAgICAgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKLQkJCQkgICAgICAgQU1ER1BV X0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCwKKwkJCQkgICAgICAgQU1ER1BVX0dFTV9D UkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCQkJICAgICAgIEFNREdQVV9HRU1fQ1JFQVRF X1ZSQU1fTElORUFSLAogCQkJCSAgICAgICB0cnVlLCAmZ29iaik7CiAJaWYgKHJldCkgewogCQlw cmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBhbGxvY2F0ZSBmcmFtZWJ1ZmZlciAoJWQpXG4iLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKaW5kZXggMGZlZWEzNC4uYjU5 ODJhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2FydC5jCkBAIC0xMjYs NyArMTI2LDggQEAgaW50IGFtZGdwdV9nYXJ0X3RhYmxlX3ZyYW1fYWxsb2Moc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJaWYgKGFkZXYtPmdhcnQucm9iaiA9PSBOVUxMKSB7CiAJCXIgPSBh bWRncHVfYm9fY3JlYXRlKGFkZXYsIGFkZXYtPmdhcnQudGFibGVfc2l6ZSwKIAkJCQkgICAgIFBB R0VfU0laRSwgdHJ1ZSwgQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKLQkJCQkgICAgIEFNREdQVV9H RU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkJICAgICBBTURHUFVfR0VNX0NSRUFU RV9DUFVfQUNDRVNTX1JFUVVJUkVEIHwKKwkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1f TElORUFSLAogCQkJCSAgICAgTlVMTCwgTlVMTCwgJmFkZXYtPmdhcnQucm9iaik7CiAJCWlmIChy KSB7CiAJCQlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmpl Y3QuYwppbmRleCBiMTc3MzRlLi42ZjgzOTA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X29iamVjdC5jCkBAIC0yNDcsNyArMjQ3LDggQEAgaW50IGFtZGdwdV9ib19jcmVh dGVfa2VybmVsKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCWludCByOwogCiAJciA9IGFt ZGdwdV9ib19jcmVhdGUoYWRldiwgc2l6ZSwgYWxpZ24sIHRydWUsIGRvbWFpbiwKLQkJCSAgICAg QU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCwKKwkJCSAgICAgQU1ER1BVX0dF TV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRF X1ZSQU1fTElORUFSLAogCQkJICAgICBOVUxMLCBOVUxMLCBib19wdHIpOwogCWlmIChyKSB7CiAJ CWRldl9lcnIoYWRldi0+ZGV2LCAiKCVkKSBmYWlsZWQgdG8gYWxsb2NhdGUga2VybmVsIGJvXG4i LCByKTsKQEAgLTYxNyw2ICs2MTgsOCBAQCBpbnQgYW1kZ3B1X2JvX3Bpbl9yZXN0cmljdGVkKHN0 cnVjdCBhbWRncHVfYm8gKmJvLCB1MzIgZG9tYWluLAogCiAJCXJldHVybiAwOwogCX0KKworCWJv LT5mbGFncyB8PSBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0xJTkVBUjsKIAlhbWRncHVfdHRtX3Bs YWNlbWVudF9mcm9tX2RvbWFpbihibywgZG9tYWluKTsKIAlmb3IgKGkgPSAwOyBpIDwgYm8tPnBs YWNlbWVudC5udW1fcGxhY2VtZW50OyBpKyspIHsKIAkJLyogZm9yY2UgdG8gcGluIGludG8gdmlz aWJsZSB2aWRlbyByYW0gKi8KQEAgLTg1NCw3ICs4NTcsOSBAQCBpbnQgYW1kZ3B1X2JvX2ZhdWx0 X3Jlc2VydmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAKIAlzaXplID0g Ym8tPm1lbS5udW1fcGFnZXMgPDwgUEFHRV9TSElGVDsKIAlvZmZzZXQgPSBiby0+bWVtLnN0YXJ0 IDw8IFBBR0VfU0hJRlQ7Ci0JaWYgKChvZmZzZXQgKyBzaXplKSA8PSBhZGV2LT5tYy52aXNpYmxl X3ZyYW1fc2l6ZSkKKwkvKiBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBtYXAgc2NhdHRlcmVkIFZS QU0gdG8gdGhlIENQVSAqLworCWlmICgob2Zmc2V0ICsgc2l6ZSkgPD0gYWRldi0+bWMudmlzaWJs ZV92cmFtX3NpemUgJiYKKwkgICAgKGFiby0+ZmxhZ3MgJiBBTURHUFVfR0VNX0NSRUFURV9WUkFN X0xJTkVBUikpCiAJCXJldHVybiAwOwogCiAJLyogQ2FuJ3QgbW92ZSBhIHBpbm5lZCBCTyB0byB2 aXNpYmxlIFZSQU0gKi8KQEAgLTg2Miw2ICs4NjcsNyBAQCBpbnQgYW1kZ3B1X2JvX2ZhdWx0X3Jl c2VydmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJCXJldHVybiAtRUlO VkFMOwogCiAJLyogaHVycmFoIHRoZSBtZW1vcnkgaXMgbm90IHZpc2libGUgISAqLworCWFiby0+ ZmxhZ3MgfD0gQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9MSU5FQVI7CiAJYW1kZ3B1X3R0bV9wbGFj ZW1lbnRfZnJvbV9kb21haW4oYWJvLCBBTURHUFVfR0VNX0RPTUFJTl9WUkFNKTsKIAlscGZuID0J YWRldi0+bWMudmlzaWJsZV92cmFtX3NpemUgPj4gUEFHRV9TSElGVDsKIAlmb3IgKGkgPSAwOyBp IDwgYWJvLT5wbGFjZW1lbnQubnVtX3BsYWNlbWVudDsgaSsrKSB7CkBAIC05MjAsNiArOTI2LDgg QEAgdTY0IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHN0cnVjdCBhbWRncHVfYm8gKmJvKQogCVdBUk5f T05fT05DRShiby0+dGJvLm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfU1lTVEVNKTsKIAlXQVJOX09O X09OQ0UoIXd3X211dGV4X2lzX2xvY2tlZCgmYm8tPnRiby5yZXN2LT5sb2NrKSAmJgogCQkgICAg ICFiby0+cGluX2NvdW50KTsKKwlXQVJOX09OX09OQ0UoYm8tPnRiby5tZW0ubWVtX3R5cGUgPT0g VFRNX1BMX1ZSQU0gJiYKKwkJICAgICAhKGJvLT5mbGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX1ZS QU1fTElORUFSKSk7CiAKIAlyZXR1cm4gYm8tPnRiby5vZmZzZXQ7CiB9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKaW5kZXggZTJmNmE0Ni4uZWE0ODBiYiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwpAQCAtMTAyNCw3ICsxMDI0LDggQEAgaW50 IGFtZGdwdV90dG1faW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCXIgPSBhbWRn cHVfYm9fY3JlYXRlKGFkZXYsIDI1NiAqIDEwMjQsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCSAgICAg QU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKLQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FD Q0VTU19SRVFVSVJFRCwKKwkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFV SVJFRCB8CisJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fTElORUFSLAogCQkJICAgICBO VUxMLCBOVUxMLCAmYWRldi0+c3RvbGxlbl92Z2FfbWVtb3J5KTsKIAlpZiAocikgewogCQlyZXR1 cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYwppbmRleCA1ODg4ZThh Li41ZjUzODBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dXZkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCkBAIC04 OTEsNiArODkxLDEwIEBAIGludCBhbWRncHVfdXZkX3JpbmdfcGFyc2VfY3Moc3RydWN0IGFtZGdw dV9jc19wYXJzZXIgKnBhcnNlciwgdWludDMyX3QgaWJfaWR4KQogCQlyZXR1cm4gLUVJTlZBTDsK IAl9CiAKKwlyID0gYW1kZ3B1X2NzX21ha2VfYm9zX2xpbmVhcihwYXJzZXIpOworCWlmIChyKQor CQlyZXR1cm4gcjsKKwogCWN0eC5wYXJzZXIgPSBwYXJzZXI7CiAJY3R4LmJ1Zl9zaXplcyA9IGJ1 Zl9zaXplczsKIAljdHguaWJfaWR4ID0gaWJfaWR4OwpAQCAtMTAwNyw3ICsxMDExLDggQEAgaW50 IGFtZGdwdV91dmRfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50 MzJfdCBoYW5kbGUsCiAKIAlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCAxMDI0LCBQQUdFX1NJ WkUsIHRydWUsCiAJCQkgICAgIEFNREdQVV9HRU1fRE9NQUlOX1ZSQU0sCi0JCQkgICAgIEFNREdQ VV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkgICAgIEFNREdQVV9HRU1fQ1JF QVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAorCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9WUkFN X0xJTkVBUiwKIAkJCSAgICAgTlVMTCwgTlVMTCwgJmJvKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7 CkBAIC0xMDU2LDcgKzEwNjEsOCBAQCBpbnQgYW1kZ3B1X3V2ZF9nZXRfZGVzdHJveV9tc2coc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBoYW5kbGUsCiAKIAlyID0gYW1kZ3B1X2Jv X2NyZWF0ZShhZGV2LCAxMDI0LCBQQUdFX1NJWkUsIHRydWUsCiAJCQkgICAgIEFNREdQVV9HRU1f RE9NQUlOX1ZSQU0sCi0JCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlS RUQsCisJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAorCQkJ ICAgICBBTURHUFVfR0VNX0NSRUFURV9WUkFNX0xJTkVBUiwKIAkJCSAgICAgTlVMTCwgTlVMTCwg JmJvKTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdmNlLmMKaW5kZXggOWI3MWQ2Yy4uYmI5N2E4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92Y2UuYwpAQCAtMTU3LDcgKzE1Nyw4IEBAIGludCBhbWRncHVfdmNlX3N3X2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIAogCXIg PSBhbWRncHVfYm9fY3JlYXRlKGFkZXYsIHNpemUsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCSAgICAg QU1ER1BVX0dFTV9ET01BSU5fVlJBTSwKLQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FD Q0VTU19SRVFVSVJFRCwKKwkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFV SVJFRCB8CisJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fTElORUFSLAogCQkJICAgICBO VUxMLCBOVUxMLCAmYWRldi0+dmNlLnZjcHVfYm8pOwogCWlmIChyKSB7CiAJCWRldl9lcnIoYWRl di0+ZGV2LCAiKCVkKSBmYWlsZWQgdG8gYWxsb2NhdGUgVkNFIGJvXG4iLCByKTsKQEAgLTYzNCw3 ICs2MzUsMTEgQEAgaW50IGFtZGdwdV92Y2VfcmluZ19wYXJzZV9jcyhzdHJ1Y3QgYW1kZ3B1X2Nz X3BhcnNlciAqcCwgdWludDMyX3QgaWJfaWR4KQogCXVpbnQzMl90IGFsbG9jYXRlZCA9IDA7CiAJ dWludDMyX3QgdG1wLCBoYW5kbGUgPSAwOwogCXVpbnQzMl90ICpzaXplID0gJnRtcDsKLQlpbnQg aSwgciA9IDAsIGlkeCA9IDA7CisJaW50IGksIHIsIGlkeCA9IDA7CisKKwlyID0gYW1kZ3B1X2Nz X21ha2VfYm9zX2xpbmVhcihwKTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CiAKIAl3aGlsZSAoaWR4 IDwgaWItPmxlbmd0aF9kdykgewogCQl1aW50MzJfdCBsZW4gPSBhbWRncHVfZ2V0X2liX3ZhbHVl KHAsIGliX2lkeCwgaWR4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKaW5k ZXggNzY2MGY4Mi4uZWExYmQ2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zt LmMKQEAgLTEzOTgsNyArMTM5OCw4IEBAIGludCBhbWRncHVfdm1fYm9fbWFwKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LAogCQkJCSAgICAgQU1ER1BVX0dQVV9QQUdFX1NJWkUsIHRydWUsCiAJ CQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAogCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVB VEVfTk9fQ1BVX0FDQ0VTUyB8Ci0JCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9TSEFET1csCisJ CQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9TSEFET1cgfAorCQkJCSAgICAgQU1ER1BVX0dFTV9D UkVBVEVfVlJBTV9MSU5FQVIsCiAJCQkJICAgICBOVUxMLCByZXN2LCAmcHQpOwogCQlpZiAocikK IAkJCWdvdG8gZXJyb3JfZnJlZTsKQEAgLTE1OTgsNyArMTU5OSw4IEBAIGludCBhbWRncHVfdm1f aW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0pCiAJ ciA9IGFtZGdwdV9ib19jcmVhdGUoYWRldiwgcGRfc2l6ZSwgYWxpZ24sIHRydWUsCiAJCQkgICAg IEFNREdQVV9HRU1fRE9NQUlOX1ZSQU0sCiAJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX05PX0NQ VV9BQ0NFU1MgfAotCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9TSEFET1csCisJCQkgICAgIEFN REdQVV9HRU1fQ1JFQVRFX1NIQURPVyB8CisJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1f TElORUFSLAogCQkJICAgICBOVUxMLCBOVUxMLCAmdm0tPnBhZ2VfZGlyZWN0b3J5KTsKIAlpZiAo cikKIAkJZ290byBlcnJvcl9mcmVlX3NjaGVkX2VudGl0eTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nZnhfdjdfMC5jCmluZGV4IGYwNTVkNDkuLjE1MTdhOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ2Z4X3Y3XzAuYwpAQCAtMzIxMyw3ICszMjEzLDggQEAgc3RhdGljIGludCBnZnhfdjdf MF9ybGNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJaWYgKGFkZXYtPmdmeC5y bGMuc2F2ZV9yZXN0b3JlX29iaiA9PSBOVUxMKSB7CiAJCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShh ZGV2LCBkd3MgKiA0LCBQQUdFX1NJWkUsIHRydWUsCiAJCQkJCSAgICAgQU1ER1BVX0dFTV9ET01B SU5fVlJBTSwKLQkJCQkJICAgICBBTURHUFVfR0VNX0NSRUFURV9DUFVfQUNDRVNTX1JFUVVJUkVE LAorCQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQgfAorCQkJ CQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1fTElORUFSLAogCQkJCQkgICAgIE5VTEwsIE5V TEwsCiAJCQkJCSAgICAgJmFkZXYtPmdmeC5ybGMuc2F2ZV9yZXN0b3JlX29iaik7CiAJCQlpZiAo cikgewpAQCAtMzI1Nyw3ICszMjU4LDggQEAgc3RhdGljIGludCBnZnhfdjdfMF9ybGNfaW5pdChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJaWYgKGFkZXYtPmdmeC5ybGMuY2xlYXJfc3Rh dGVfb2JqID09IE5VTEwpIHsKIAkJCXIgPSBhbWRncHVfYm9fY3JlYXRlKGFkZXYsIGR3cyAqIDQs IFBBR0VfU0laRSwgdHJ1ZSwKIAkJCQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJ CQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkJCSAgICAg QU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCQkJCSAgICAgQU1ER1BV X0dFTV9DUkVBVEVfVlJBTV9MSU5FQVIsCiAJCQkJCSAgICAgTlVMTCwgTlVMTCwKIAkJCQkJICAg ICAmYWRldi0+Z2Z4LnJsYy5jbGVhcl9zdGF0ZV9vYmopOwogCQkJaWYgKHIpIHsKQEAgLTMyOTcs NyArMzI5OSw4IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y3XzBfcmxjX2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCiAJCWlmIChhZGV2LT5nZngucmxjLmNwX3RhYmxlX29iaiA9PSBOVUxMKSB7 CiAJCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCBhZGV2LT5nZngucmxjLmNwX3RhYmxlX3Np emUsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCQkJICAgICBBTURHUFVfR0VNX0RPTUFJTl9WUkFNLAot CQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQsCisJCQkJCSAg ICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFVSVJFRCB8CisJCQkJCSAgICAgQU1E R1BVX0dFTV9DUkVBVEVfVlJBTV9MSU5FQVIsCiAJCQkJCSAgICAgTlVMTCwgTlVMTCwKIAkJCQkJ ICAgICAmYWRldi0+Z2Z4LnJsYy5jcF90YWJsZV9vYmopOwogCQkJaWYgKHIpIHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhfdjhfMC5jCmluZGV4IDZlMDEzOTIuLjI2ZTYxNGUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwpAQCAtMTI3Myw3ICsxMjczLDggQEAgc3RhdGlj IGludCBnZnhfdjhfMF9ybGNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJaWYg KGFkZXYtPmdmeC5ybGMuY2xlYXJfc3RhdGVfb2JqID09IE5VTEwpIHsKIAkJCXIgPSBhbWRncHVf Ym9fY3JlYXRlKGFkZXYsIGR3cyAqIDQsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCQkJICAgICBBTURH UFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NF U1NfUkVRVUlSRUQsCisJCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19SRVFV SVJFRCB8CisJCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9MSU5FQVIsCiAJCQkJCSAg ICAgTlVMTCwgTlVMTCwKIAkJCQkJICAgICAmYWRldi0+Z2Z4LnJsYy5jbGVhcl9zdGF0ZV9vYmop OwogCQkJaWYgKHIpIHsKQEAgLTEzMTUsNyArMTMxNiw4IEBAIHN0YXRpYyBpbnQgZ2Z4X3Y4XzBf cmxjX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWlmIChhZGV2LT5nZngucmxj LmNwX3RhYmxlX29iaiA9PSBOVUxMKSB7CiAJCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2LCBh ZGV2LT5nZngucmxjLmNwX3RhYmxlX3NpemUsIFBBR0VfU0laRSwgdHJ1ZSwKIAkJCQkJICAgICBB TURHUFVfR0VNX0RPTUFJTl9WUkFNLAotCQkJCQkgICAgIEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9B Q0NFU1NfUkVRVUlSRUQsCisJCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0FDQ0VTU19S RVFVSVJFRCB8CisJCQkJCSAgICAgQU1ER1BVX0dFTV9DUkVBVEVfVlJBTV9MSU5FQVIsCiAJCQkJ CSAgICAgTlVMTCwgTlVMTCwKIAkJCQkJICAgICAmYWRldi0+Z2Z4LnJsYy5jcF90YWJsZV9vYmop OwogCQkJaWYgKHIpIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5o IGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKaW5kZXggNDAzYjY3Ni4uMmFlZGU2YSAx MDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKKysrIGIvaW5jbHVkZS91 YXBpL2RybS9hbWRncHVfZHJtLmgKQEAgLTc5LDYgKzc5LDggQEAKICNkZWZpbmUgQU1ER1BVX0dF TV9DUkVBVEVfVlJBTV9DTEVBUkVECQkoMSA8PCAzKQogLyogRmxhZyB0aGF0IGNyZWF0ZSBzaGFk b3cgYm8oR1RUKSB3aGlsZSBhbGxvY2F0aW5nIHZyYW0gYm8gKi8KICNkZWZpbmUgQU1ER1BVX0dF TV9DUkVBVEVfU0hBRE9XCQkoMSA8PCA0KQorLyogRmxhZyB0aGF0IGFsbG9jYXRpbmcgdGhlIEJP IHNob3VsZCB1c2UgbGluZWFyIFZSQU0gKi8KKyNkZWZpbmUgQU1ER1BVX0dFTV9DUkVBVEVfVlJB TV9MSU5FQVIJCSgxIDw8IDUpCiAKIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV9jcmVhdGVfaW4gIHsK IAkvKiogdGhlIHJlcXVlc3RlZCBtZW1vcnkgc2l6ZSAqLwotLSAKMi41LjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=