From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 5/7] drm/i915: Prepare for atomic plane helpers Date: Thu, 13 Nov 2014 10:43:24 -0800 Message-ID: <1415904206-22548-6-git-send-email-matthew.d.roper@intel.com> References: <1415904206-22548-1-git-send-email-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: <1415904206-22548-1-git-send-email-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 List-Id: dri-devel@lists.freedesktop.org QWRkIHRoZSBuZXcgZHJpdmVyIGVudHJ5cG9pbnRzIHRoYXQgd2lsbCBiZSBjYWxsZWQgYnkgdGhl IGF0b21pYyBwbGFuZQpoZWxwZXJzLgoKVGhpcyBwYXRjaCBkb2VzIG5vdCBhY3R1YWxseSBzd2l0 Y2ggb3ZlciB0byB0aGUgbmV3IHBsYW5lIGhlbHBlcnMgeWV0LApzbyB0aGVyZSBzaG91bGQgYmUg bm8gZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZS4gIEFsc28gbm90ZSB0aGF0IGFsdGhvdWdoCnBsYW5l IHByb2dyYW1taW5nIHdhcyBhbHJlYWR5IHNwbGl0IGludG8gY2hlY2svcHJlcGFyZS9jb21taXQg c3RlcHMsCnNvbWUgb2YgdGhlIHNlbWFudGljcyBvZiB0aG9zZSBpbmRpdmlkdWFsIGZ1bmN0aW9u cyB3aWxsIG5lZWQgdG8gY2hhbmdlCnNsaWdodGx5IHdoZW4gd2UgZG8gbWFrZSB0aGUganVtcCBz byB0aGF0IHRoZXkgbWF0Y2ggdGhlIGJlaGF2aW9yIHRoZQpwbGFuZSBoZWxwZXJzIGV4cGVjdC4K ClNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgIHwgICAxICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8IDIyMCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDIw ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAxNSArKysKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8ICAxMCArKwogNSBmaWxlcyBjaGFu Z2VkLCAyNjUgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpp bmRleCA4OTFlNTg0Li44YjY3NjE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9N YWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNjMsNiArNjMs NyBAQCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwKIAkgIGR2b19uczI1MDEubyBcCiAJICBkdm9f c2lsMTY0Lm8gXAogCSAgZHZvX3RmcDQxMC5vIFwKKwkgIGludGVsX2F0b21pYy5vIFwKIAkgIGlu dGVsX2NydC5vIFwKIAkgIGludGVsX2RkaS5vIFwKIAkgIGludGVsX2RwLm8gXApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdG9taWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y ZTliNTZlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljLmMKQEAgLTAsMCArMSwyMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBD b3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAor ICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUK KyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBz aGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m IHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4K KyAqLworCisjaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19o ZWxwZXIuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgorI2luY2x1ZGUgImlu dGVsX2Rydi5oIgorCisvKioKKyAqIGludGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSAtIGR1cGxp Y2F0ZSBwbGFuZSBzdGF0ZQorICogQHBsYW5lOiBkcm0gcGxhbmUKKyAqCisgKiBBbGxvY2F0ZXMg YW5kIHJldHVybnMgYSBjb3B5IG9mIHRoZSBwbGFuZSBzdGF0ZSAoYm90aCBjb21tb24gYW5kCisg KiBJbnRlbC1zcGVjaWZpYykgZm9yIHRoZSBzcGVjaWZpZWQgcGxhbmUuCisgKi8KK3N0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKgoraW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lKQoreworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGU7CisKKwlp ZiAocGxhbmUtPnN0YXRlKQorCQlzdGF0ZSA9IGttZW1kdXAocGxhbmUtPnN0YXRlLCBzaXplb2Yo KnN0YXRlKSwgR0ZQX0tFUk5FTCk7CisJZWxzZQorCQlzdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpz dGF0ZSksIEdGUF9LRVJORUwpOworCisJaWYgKHN0YXRlICYmIHN0YXRlLT5iYXNlLmZiKQorCQlk cm1fZnJhbWVidWZmZXJfcmVmZXJlbmNlKHN0YXRlLT5iYXNlLmZiKTsKKworCXJldHVybiAmc3Rh dGUtPmJhc2U7Cit9CisKKy8qKgorICogaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZSAtIGRlc3Ry b3kgcGxhbmUgc3RhdGUKKyAqIEBwbGFuZTogZHJtIHBsYW5lCisgKgorICogQWxsb2NhdGVzIGFu ZCByZXR1cm5zIGEgY29weSBvZiB0aGUgcGxhbmUgc3RhdGUgKGJvdGggY29tbW9uIGFuZAorICog SW50ZWwtc3BlY2lmaWMpIGZvciB0aGUgc3BlY2lmaWVkIHBsYW5lLgorICovCit2b2lkCitpbnRl bF9wbGFuZV9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJICBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKK3sKKwlkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9k ZXN0cm95X3N0YXRlKHBsYW5lLCBzdGF0ZSk7Cit9CisKKworLyoqCisgKiBpbnRlbF9jcnRjX2F0 b21pY19iZWdpbiAtIEJlZ2lucyBhbiBhdG9taWMgY29tbWl0IG9uIGEgQ1JUQworICogQGNydGM6 IGRybSBjcnRjCisgKgorICogUHJlcGFyZXMgdG8gd3JpdGUgcmVnaXN0ZXJzIGFzc29jaWF0ZWQg d2l0aCB0aGUgYXRvbWljIGNvbW1pdCBvZiBhIENSVEMKKyAqIGJ5IHVzaW5nIHZibGFuayBldmFz aW9uIHRvIGVuc3VyZSB0aGF0IGFsbCByZWdpc3RlciB3cml0ZXMgaGFwcGVuIHdpdGhpbgorICog dGhlIHNhbWUgdmJsYW5rIHBlcmlvZC4KKyAqLwordm9pZCBpbnRlbF9jcnRjX2F0b21pY19iZWdp bihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCit7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCisJaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoaW50 ZWxfY3J0YywgJmludGVsX2NydGMtPmF0b21pY192YmxfY291bnQpOworfQorCisvKioKKyAqIGlu dGVsX2NydGNfYXRvbWljX2ZsdXNoIC0gRmluaXNoZXMgYW4gYXRvbWljIGNvbW1pdCBvbiBhIENS VEMKKyAqIEBjcnRjOiBkcm0gY3J0YworICoKKyAqIENvbmNsdWRlcyB0aGUgd3JpdGluZyBvZiBy ZWdpc3RlcnMgZm9yIGFuIGF0b21pYyBjb21taXQgb2YgYSBDUlRDLgorICovCit2b2lkIGludGVs X2NydGNfYXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisKKwlpbnRlbF9waXBl X3VwZGF0ZV9lbmQoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+YXRvbWljX3ZibF9jb3VudCk7Cit9 CisKK3N0YXRpYyBpbnQgaW50ZWxfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK KwkJCSAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKK3sKKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0g dG9faW50ZWxfcGxhbmUocGxhbmUpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmog PSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGRfb2Jq ID0gaW50ZWxfcGxhbmUtPm9iajsKKwllbnVtIHBpcGUgcGlwZSA9IGludGVsX3BsYW5lLT5waXBl OworCXVuc2lnbmVkIGZyb250X2JpdHMgPSAwOworCWludCByZXQgPSAwOworCisJc3dpdGNoIChw bGFuZS0+dHlwZSkgeworCWNhc2UgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWToKKwkJZnJvbnRfYml0 cyA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSk7CisKKwkJaWYgKHBsYW5lLT5jcnRj KSB7CisJCQlpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMocGxhbmUtPmNydGMpOwor CQkJaWYgKGludGVsX2NydGNfaGFzX3BlbmRpbmdfZmxpcChwbGFuZS0+Y3J0YykpIHsKKwkJCQlE Uk1fRVJST1IoInBpcGUgaXMgc3RpbGwgYnVzeSB3aXRoIGFuIG9sZCBwYWdlZmxpcFxuIik7CisJ CQkJcmV0dXJuIC1FQlVTWTsKKwkJCX0KKwkJfQorCisJCWJyZWFrOworCWNhc2UgRFJNX1BMQU5F X1RZUEVfT1ZFUkxBWToKKwkJZnJvbnRfYml0cyA9IElOVEVMX0ZST05UQlVGRkVSX1NQUklURShw aXBlKTsKKwkJYnJlYWs7CisJY2FzZSBEUk1fUExBTkVfVFlQRV9DVVJTT1I6CisJCWZyb250X2Jp dHMgPSBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IocGlwZSk7CisJCWJyZWFrOworCX0KKworCW11 dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCS8qIE5vdGUgdGhhdCB0aGlzIHdpbGwg YXBwbHkgdGhlIFZULWQgd29ya2Fyb3VuZCBmb3Igc2Nhbm91dHMsCisJICogd2hpY2ggaXMgbW9y ZSByZXN0cmljdGl2ZSB0aGFuIHJlcXVpcmVkIGZvciBzcHJpdGVzLiAoVGhlCisJICogcHJpbWFy eSBwbGFuZSByZXF1aXJlcyAyNTZLaUIgYWxpZ25tZW50IHdpdGggNjQgUFRFIHBhZGRpbmcsCisJ ICogdGhlIHNwcml0ZSBwbGFuZXMgb25seSByZXF1aXJlIDEyOEtpQiBhbGlnbm1lbnQgYW5kIDMy IFBURQorCSAqIHBhZGRpbmcuCisJICovCisJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9v YmoocGxhbmUsIGZiLCBOVUxMKTsKKwlpZiAocmV0ID09IDApCisJCWk5MTVfZ2VtX3RyYWNrX2Zi KG9sZF9vYmosIG9iaiwgZnJvbnRfYml0cyk7CisKKwlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BM QU5FX1RZUEVfQ1VSU09SICYmCisJICAgIElOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3Bo eXNpY2FsKSB7CisJCWludCBhbGlnbiA9IElTX0k4MzAoZGV2KSA/IDE2ICogMTAyNCA6IDI1NjsK KworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0YWNoX3BoeXMob2JqLCBhbGlnbik7CisJCWlm IChyZXQpCisJCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYXR0YWNoIHBoeXMgb2JqZWN0XG4i KTsKKwl9CisKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCXJldHVybiBy ZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2NsZWFudXBfZmIoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCisJCQkgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQoreworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCisJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOworCWludGVsX3VucGluX2ZiX29iaihvYmopOworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOworfQorCitzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3Rh dGUpCit7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo c3RhdGUtPmNydGMpOworCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0 b19pbnRlbF9wbGFuZV9zdGF0ZShzdGF0ZSk7CisKKwkvKiBEaXNhYmxpbmcgYSBwbGFuZSBpcyBh bHdheXMgb2theSAqLworCWlmIChzdGF0ZS0+ZmIgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwkv KgorCSAqIFRoZSBvcmlnaW5hbCBzcmMvZGVzdCBjb29yZGluYXRlcyBhcmUgc3RvcmVkIGluIHN0 YXRlLT5iYXNlLCBidXQKKwkgKiB3ZSB3YW50IHRvIGtlZXAgYW5vdGhlciBjb3B5IGludGVybmFs IHRvIG91ciBkcml2ZXIgdGhhdCB3ZSBjYW4KKwkgKiBjbGlwL21vZGlmeSBvdXJzZWx2ZXMuCisJ ICovCisJaW50ZWxfc3RhdGUtPnNyYy54MSA9IHN0YXRlLT5zcmNfeDsKKwlpbnRlbF9zdGF0ZS0+ c3JjLnkxID0gc3RhdGUtPnNyY195OworCWludGVsX3N0YXRlLT5zcmMueDIgPSBzdGF0ZS0+c3Jj X3ggKyBzdGF0ZS0+c3JjX3c7CisJaW50ZWxfc3RhdGUtPnNyYy55MiA9IHN0YXRlLT5zcmNfeSAr IHN0YXRlLT5zcmNfaDsKKwlpbnRlbF9zdGF0ZS0+ZHN0LngxID0gc3RhdGUtPmNydGNfeDsKKwlp bnRlbF9zdGF0ZS0+ZHN0LnkxID0gc3RhdGUtPmNydGNfeTsKKwlpbnRlbF9zdGF0ZS0+ZHN0Lngy ID0gc3RhdGUtPmNydGNfeCArIHN0YXRlLT5jcnRjX3c7CisJaW50ZWxfc3RhdGUtPmRzdC55MiA9 IHN0YXRlLT5jcnRjX3kgKyBzdGF0ZS0+Y3J0Y19oOworCisJLyogQ2xpcCBhbGwgcGxhbmVzIHRv IENSVEMgc2l6ZSwgb3IgMHgwIGlmIENSVEMgaXMgZGlzYWJsZWQgKi8KKwlpZiAoaW50ZWxfY3J0 YykgeworCQlpbnRlbF9zdGF0ZS0+Y2xpcC54MSA9IDA7CisJCWludGVsX3N0YXRlLT5jbGlwLnkx ID0gMDsKKwkJaW50ZWxfc3RhdGUtPmNsaXAueDIgPQorCQkJaW50ZWxfY3J0Yy0+YWN0aXZlID8g aW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX3cgOiAwOworCQlpbnRlbF9zdGF0ZS0+Y2xpcC55 MiA9CisJCQlpbnRlbF9jcnRjLT5hY3RpdmUgPyBpbnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNf aCA6IDA7CisJfQorCisJcmV0dXJuIGludGVsX3BsYW5lLT5jaGVja19wbGFuZShwbGFuZSwgaW50 ZWxfc3RhdGUpOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQoreworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxh bmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpp bnRlbF9zdGF0ZSA9CisJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7CisKKwlp ZiAoIXBsYW5lLT5zdGF0ZS0+ZmIpCisJCWludGVsX3BsYW5lX2Rpc2FibGUocGxhbmUpOworCWVs c2UKKwkJaW50ZWxfcGxhbmUtPmNvbW1pdF9wbGFuZShwbGFuZSwgaW50ZWxfc3RhdGUpOworfQor Citjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBpbnRlbF9wbGFuZV9oZWxwZXJf ZnVuY3MgPSB7CisJLnByZXBhcmVfZmIgPSBpbnRlbF9wcmVwYXJlX2ZiLAorCS5jbGVhbnVwX2Zi ID0gaW50ZWxfY2xlYW51cF9mYiwKKwkuYXRvbWljX2NoZWNrID0gaW50ZWxfcGxhbmVfYXRvbWlj X2NoZWNrLAorCS5hdG9taWNfdXBkYXRlID0gaW50ZWxfcGxhbmVfYXRvbWljX3VwZGF0ZSwKK307 CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAyZDRlZjA0Li4zMmEyYjEy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC05NzA1LDYgKzk3MDUsOCBA QCBvdXRfaGFuZzoKIHN0YXRpYyBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIGludGVsX2hl bHBlcl9mdW5jcyA9IHsKIAkubW9kZV9zZXRfYmFzZV9hdG9taWMgPSBpbnRlbF9waXBlX3NldF9i YXNlX2F0b21pYywKIAkubG9hZF9sdXQgPSBpbnRlbF9jcnRjX2xvYWRfbHV0LAorCS5hdG9taWNf YmVnaW4gPSBpbnRlbF9jcnRjX2F0b21pY19iZWdpbiwKKwkuYXRvbWljX2ZsdXNoID0gaW50ZWxf Y3J0Y19hdG9taWNfZmx1c2gsCiB9OwogCiAvKioKQEAgLTExNzQ3LDYgKzExNzQ5LDcgQEAgaW50 ZWxfcHJpbWFyeV9wbGFuZV9zZXRwbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0 IGRybV9jcnRjICpjcnRjLAogdm9pZCBpbnRlbF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lKQogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRl bF9wbGFuZShwbGFuZSk7CisJaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZShwbGFuZSwgcGxhbmUt PnN0YXRlKTsKIAlkcm1fcGxhbmVfY2xlYW51cChwbGFuZSk7CiAJa2ZyZWUoaW50ZWxfcGxhbmUp OwogfQpAQCAtMTE3NTUsNyArMTE3NTgsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxh bmVfZnVuY3MgaW50ZWxfcHJpbWFyeV9wbGFuZV9mdW5jcyA9IHsKIAkudXBkYXRlX3BsYW5lID0g aW50ZWxfcHJpbWFyeV9wbGFuZV9zZXRwbGFuZSwKIAkuZGlzYWJsZV9wbGFuZSA9IGludGVsX3By aW1hcnlfcGxhbmVfZGlzYWJsZSwKIAkuZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCi0J LnNldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX3NldF9wcm9wZXJ0eQorCS5zZXRfcHJvcGVydHkg PSBpbnRlbF9wbGFuZV9zZXRfcHJvcGVydHksCisJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBp bnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUsCisJLmF0b21pY19kZXN0cm95X3N0YXRlID0gaW50 ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZSwKKwogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUg KmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCkBAIC0x MTc2OSwxMSArMTE3NzUsMTQgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1h cnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHByaW1hcnkgPT0g TlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKKwlwcmltYXJ5LT5iYXNlLnN0YXRlID0gaW50ZWxfcGxh bmVfZHVwbGljYXRlX3N0YXRlKCZwcmltYXJ5LT5iYXNlKTsKIAlwcmltYXJ5LT5jYW5fc2NhbGUg PSBmYWxzZTsKIAlwcmltYXJ5LT5tYXhfZG93bnNjYWxlID0gMTsKIAlwcmltYXJ5LT5waXBlID0g cGlwZTsKIAlwcmltYXJ5LT5wbGFuZSA9IHBpcGU7CiAJcHJpbWFyeS0+cm90YXRpb24gPSBCSVQo RFJNX1JPVEFURV8wKTsKKwlwcmltYXJ5LT5jaGVja19wbGFuZSA9IGludGVsX2NoZWNrX3ByaW1h cnlfcGxhbmU7CisJcHJpbWFyeS0+Y29tbWl0X3BsYW5lID0gaW50ZWxfY29tbWl0X3ByaW1hcnlf cGxhbmU7CiAJaWYgKEhBU19GQkMoZGV2KSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQpCiAJ CXByaW1hcnktPnBsYW5lID0gIXBpcGU7CiAKQEAgLTExODAyLDYgKzExODExLDggQEAgc3RhdGlj IHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJCQkJcHJpbWFyeS0+cm90YXRpb24pOwogCX0KIAorCWRybV9wbGFuZV9o ZWxwZXJfYWRkKCZwcmltYXJ5LT5iYXNlLCAmaW50ZWxfcGxhbmVfaGVscGVyX2Z1bmNzKTsKKwog CXJldHVybiAmcHJpbWFyeS0+YmFzZTsKIH0KIApAQCAtMTE5NTcsNiArMTE5NjgsOCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9jdXJzb3JfcGxhbmVfZnVuY3Mg PSB7CiAJLmRpc2FibGVfcGxhbmUgPSBpbnRlbF9jdXJzb3JfcGxhbmVfZGlzYWJsZSwKIAkuZGVz dHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCiAJLnNldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5l X3NldF9wcm9wZXJ0eSwKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGludGVsX3BsYW5lX2R1 cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBpbnRlbF9wbGFuZV9kZXN0 cm95X3N0YXRlLAogfTsKIAogc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX2N1cnNvcl9w bGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTExOTY4LDExICsxMTk4MSwx NCBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqaW50ZWxfY3Vyc29yX3BsYW5lX2NyZWF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChjdXJzb3IgPT0gTlVMTCkKIAkJcmV0dXJuIE5V TEw7CiAKKwljdXJzb3ItPmJhc2Uuc3RhdGUgPSBpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUo JmN1cnNvci0+YmFzZSk7CiAJY3Vyc29yLT5jYW5fc2NhbGUgPSBmYWxzZTsKIAljdXJzb3ItPm1h eF9kb3duc2NhbGUgPSAxOwogCWN1cnNvci0+cGlwZSA9IHBpcGU7CiAJY3Vyc29yLT5wbGFuZSA9 IHBpcGU7CiAJY3Vyc29yLT5yb3RhdGlvbiA9IEJJVChEUk1fUk9UQVRFXzApOworCWN1cnNvci0+ Y2hlY2tfcGxhbmUgPSBpbnRlbF9jaGVja19jdXJzb3JfcGxhbmU7CisJY3Vyc29yLT5jb21taXRf cGxhbmUgPSBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lOwogCiAJZHJtX3VuaXZlcnNhbF9wbGFu ZV9pbml0KGRldiwgJmN1cnNvci0+YmFzZSwgMCwKIAkJCQkgJmludGVsX2N1cnNvcl9wbGFuZV9m dW5jcywKQEAgLTExOTkyLDYgKzEyMDA4LDggQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmlu dGVsX2N1cnNvcl9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQljdXJz b3ItPnJvdGF0aW9uKTsKIAl9CiAKKwlkcm1fcGxhbmVfaGVscGVyX2FkZCgmY3Vyc29yLT5iYXNl LCAmaW50ZWxfcGxhbmVfaGVscGVyX2Z1bmNzKTsKKwogCXJldHVybiAmY3Vyc29yLT5iYXNlOwog fQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDQ5MzU4YzguLjE4ODJkZTEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC00NjYsNiArNDY2LDggQEAgc3RydWN0IGludGVsX2Ny dGMgewogCiAJaW50IHNjYW5saW5lX29mZnNldDsKIAlzdHJ1Y3QgaW50ZWxfbW1pb19mbGlwIG1t aW9fZmxpcDsKKworCXVpbnQzMl90IGF0b21pY192YmxfY291bnQ7CiB9OwogCiBzdHJ1Y3QgaW50 ZWxfcGxhbmVfd21fcGFyYW1ldGVycyB7CkBAIC01MDYsNiArNTA4LDEwIEBAIHN0cnVjdCBpbnRl bF9wbGFuZSB7CiAJCQkgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCk7CiAJdm9p ZCAoKmRpc2FibGVfcGxhbmUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICAgICAgc3Ry dWN0IGRybV9jcnRjICpjcnRjKTsKKwlpbnQgKCpjaGVja19wbGFuZSkoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCisJCQkgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKTsKKwl2b2lk ICgqY29tbWl0X3BsYW5lKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCSAgICAgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSk7CiAJaW50ICgqdXBkYXRlX2NvbG9ya2V5KShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9j b2xvcmtleSAqa2V5KTsKIAl2b2lkICgqZ2V0X2NvbG9ya2V5KShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKQEAgLTUzNiw2ICs1NDIsNyBAQCBzdHJ1Y3QgY3hzcl9sYXRlbmN5IHsKICNkZWZpbmUg dG9faW50ZWxfZW5jb2Rlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2VuY29kZXIs IGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX2ZyYW1lYnVmZmVyKHgpIGNvbnRhaW5lcl9vZih4LCBz dHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIsIGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX3BsYW5lKHgp IGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmUsIGJhc2UpCisjZGVmaW5lIHRvX2lu dGVsX3BsYW5lX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUsIGJhc2UpCiAjZGVmaW5lIGludGVsX2ZiX29iaih4KSAoeCA/IHRvX2ludGVsX2ZyYW1lYnVm ZmVyKHgpLT5vYmogOiBOVUxMKQogCiBzdHJ1Y3QgaW50ZWxfaGRtaSB7CkBAIC0xMTk1LDQgKzEy MDIsMTIgQEAgaW50IGludGVsX3Nwcml0ZV9wbGFuZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKTsKIC8qIGludGVsX3R2LmMgKi8KIHZvaWQgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIAorLyogaW50ZWxfYXRvbWljLmMgKi8KK3N0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKmludGVsX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSk7Cit2b2lkIGludGVsX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCisJCQkgICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpOwordm9pZCBpbnRl bF9jcnRjX2F0b21pY19iZWdpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwordm9pZCBpbnRlbF9j cnRjX2F0b21pY19mbHVzaChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworZXh0ZXJuIGNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIGludGVsX3BsYW5lX2hlbHBlcl9mdW5jczsKKwog I2VuZGlmIC8qIF9fSU5URUxfRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUu YwppbmRleCA5ZTZhNzJhLi5kMzY3N2MzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUu YwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUg PGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CisjaW5jbHVkZSA8 ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRl IDxkcm0vaTkxNV9kcm0uaD4KICNpbmNsdWRlICJpOTE1X2Rydi5oIgpAQCAtMTU3Myw2ICsxNTc0 LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVfZnVu Y3MgPSB7CiAJLmRpc2FibGVfcGxhbmUgPSBpbnRlbF9zcHJpdGVfcGxhbmVfZGlzYWJsZSwKIAku ZGVzdHJveSA9IGludGVsX3BsYW5lX2Rlc3Ryb3ksCiAJLnNldF9wcm9wZXJ0eSA9IGludGVsX3Bs YW5lX3NldF9wcm9wZXJ0eSwKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGludGVsX3BsYW5l X2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBpbnRlbF9wbGFuZV9k ZXN0cm95X3N0YXRlLAogfTsKIAogc3RhdGljIHVpbnQzMl90IGlsa19wbGFuZV9mb3JtYXRzW10g PSB7CkBAIC0xNjM0LDYgKzE2MzcsOSBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCiAJaWYgKCFpbnRlbF9wbGFuZSkK IAkJcmV0dXJuIC1FTk9NRU07CiAKKwlpbnRlbF9wbGFuZS0+YmFzZS5zdGF0ZSA9CisJCWludGVs X3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSgmaW50ZWxfcGxhbmUtPmJhc2UpOworCiAJc3dpdGNoIChJ TlRFTF9JTkZPKGRldiktPmdlbikgewogCWNhc2UgNToKIAljYXNlIDY6CkBAIC0xNzA0LDYgKzE3 MTAsOCBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlw ZSBwaXBlLCBpbnQgcGxhbmUpCiAJaW50ZWxfcGxhbmUtPnBpcGUgPSBwaXBlOwogCWludGVsX3Bs YW5lLT5wbGFuZSA9IHBsYW5lOwogCWludGVsX3BsYW5lLT5yb3RhdGlvbiA9IEJJVChEUk1fUk9U QVRFXzApOworCWludGVsX3BsYW5lLT5jaGVja19wbGFuZSA9IGludGVsX2NoZWNrX3Nwcml0ZV9w bGFuZTsKKwlpbnRlbF9wbGFuZS0+Y29tbWl0X3BsYW5lID0gaW50ZWxfY29tbWl0X3Nwcml0ZV9w bGFuZTsKIAlwb3NzaWJsZV9jcnRjcyA9ICgxIDw8IHBpcGUpOwogCXJldCA9IGRybV91bml2ZXJz YWxfcGxhbmVfaW5pdChkZXYsICZpbnRlbF9wbGFuZS0+YmFzZSwgcG9zc2libGVfY3J0Y3MsCiAJ CQkJICAgICAgICZpbnRlbF9wbGFuZV9mdW5jcywKQEAgLTE3MjUsNiArMTczMyw4IEBAIGludGVs X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBw bGFuZSkKIAkJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy5yb3RhdGlvbl9wcm9wZXJ0eSwKIAkJCQkJ ICAgaW50ZWxfcGxhbmUtPnJvdGF0aW9uKTsKIAorCWRybV9wbGFuZV9oZWxwZXJfYWRkKCZpbnRl bF9wbGFuZS0+YmFzZSwgJmludGVsX3BsYW5lX2hlbHBlcl9mdW5jcyk7CisKICBvdXQ6CiAJcmV0 dXJuIHJldDsKIH0KLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==