From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lowry Li (Arm Technology China)" Subject: [PATCH v2 1/2] drm/komeda: Add slave pipeline support Date: Tue, 11 Jun 2019 11:13:39 +0000 Message-ID: <1560251589-31827-2-git-send-email-lowry.li@arm.com> References: <1560251589-31827-1-git-send-email-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80075.outbound.protection.outlook.com [40.107.8.75]) by gabe.freedesktop.org (Postfix) with ESMTPS id 486AE890F7 for ; Tue, 11 Jun 2019 11:13:42 +0000 (UTC) In-Reply-To: <1560251589-31827-1-git-send-email-lowry.li@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau , "james qian wang (Arm Technology China)" , "maarten.lankhorst@linux.intel.com" , "seanpaul@chromium.org" , "airlied@linux.ie" , Brian Starkey Cc: Ayan Halder , "Jonathan Chai (Arm Technology China)" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , nd List-Id: dri-devel@lists.freedesktop.org RnJvbTogIkxvd3J5IExpIChBcm0gVGVjaG5vbG9neSBDaGluYSkiIDxMb3dyeS5MaUBhcm0uY29t Pg0KDQpPbmUgY3J0YyBjYW4gdXNlIHR3byBrb21lZGFfcGlwZWxpbmUsIGFuZCBvbmUgd29ya3Mg YXMgbWFzdGVyIGFuZCBhcw0Kc2xhdmUuIHRoZSBzbGF2ZSBwaXBlbGluZSBkb2Vzbid0IGhhdmUg aXRzIG93biBvdXRwdXQgYW5kIHRpbWluZw0KY3RybHIsIGJ1dCBwcmUtY29tcG9zaXRlIHRoZSBp bnB1dCBsYXllciBkYXRhIGZsb3cgYW5kIHRoZW4gZmVlZCB0aGUNCnJlc3VsdCB0byBtYXN0ZXIu IHRoZSBwaXBlbGluZSBjb25maWd1cmF0aW9uIGxpa2U6DQoNCnNsYXZlLWxheWVyLTAgXA0KLi4u ICAgICAgICAgICAgc2xhdmUtPkNVDQpzbGF2ZS1sYXllci00IC8gICAgICAgICBcDQogICAgICAg ICAgICAgICAgICAgICAgICBcDQptYXN0ZXItbGF5ZXItMCAtLS0tLS0tLT4gbWFzdGVyLT5DVSAt PiAuLi4NCiAuLi4gICAgICAgICAgICAgICAgICAvDQptYXN0ZXItbGF5ZXItNCAtLS0tLS0+DQoN ClNpbmNlIGtvbWVkYSBDb21waXogZG9lc24ndCBvdXRwdXQgYWxwaGEsIHNvIHRoZSBzbGF2ZS0+ Q1UgcmVzdWx0DQpvbmx5IGNhbiBiZSB1c2VkIGFzIGJvdHRvbSBpbnB1dCB3aGVuIGJsZW5kIGl0 IHdpdGggbWFzdGVyIGlucHV0IGRhdGENCmZsb3dzLg0KDQpTaWduZWQtb2ZmLWJ5OiBMb3dyeSBM aSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpIDxsb3dyeS5saUBhcm0uY29tPg0KLS0tDQogZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jICAgfCA0MSArKysrKysr KysrKysrKysrKysrKy0tDQogZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21l ZGFfa21zLmMgICAgfCAxMCArKysrKysNCiBkcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29t ZWRhL2tvbWVkYV9rbXMuaCAgICB8ICA5ICsrKysrDQogLi4uL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZS5jICAgfCAyMiArKysrKysrKysrKysNCiAuLi4vZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmggICB8ICAyICsrDQogLi4uL2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMgfCAxNSArKysrKysr Kw0KIGRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BsYW5lLmMgIHwg MzIgKysrKysrKysrKysrKysrKy0NCiA3IGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNw bGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfY3J0Yy5jDQppbmRleCBhMmQ2NTZmLi5jYWZiNDQ1IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jDQorKysgYi9k cml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9jcnRjLmMNCkBAIC02NCw2 ICs2NCwxMCBAQCBzdGF0aWMgdm9pZCBrb21lZGFfY3J0Y191cGRhdGVfY2xvY2tfcmF0aW8oc3Ry dWN0IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0Y19zdCkNCiAJfQ0KIA0KIAkvKiByZWxlYXNlIHVu Y2xhaW1lZCBwaXBlbGluZSByZXNvdXJjZXMgKi8NCisJZXJyID0ga29tZWRhX3JlbGVhc2VfdW5j bGFpbWVkX3Jlc291cmNlcyhrY3J0Yy0+c2xhdmUsIGtjcnRjX3N0KTsNCisJaWYgKGVycikNCisJ CXJldHVybiBlcnI7DQorDQogCWVyciA9IGtvbWVkYV9yZWxlYXNlX3VuY2xhaW1lZF9yZXNvdXJj ZXMoa2NydGMtPm1hc3Rlciwga2NydGNfc3QpOw0KIAlpZiAoZXJyKQ0KIAkJcmV0dXJuIGVycjsN CkBAIC0yMjYsNiArMjMwLDcgQEAgdm9pZCBrb21lZGFfY3J0Y19oYW5kbGVfZXZlbnQoc3RydWN0 IGtvbWVkYV9jcnRjICAgKmtjcnRjLA0KIAlzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRj X3N0ID0gdG9fa2NydGNfc3QoY3J0Yy0+c3RhdGUpOw0KIAlzdHJ1Y3Qga29tZWRhX2RldiAqbWRl diA9IGtjcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7DQogCXN0cnVjdCBrb21lZGFfcGlwZWxp bmUgKm1hc3RlciA9IGtjcnRjLT5tYXN0ZXI7DQorCXN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKnNs YXZlID0ga2NydGMtPnNsYXZlOw0KIAlzdHJ1Y3Qga29tZWRhX3diX2Nvbm5lY3RvciAqd2JfY29u biA9IGtjcnRjLT53Yl9jb25uOw0KIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dDsNCiANCkBAIC0yMzcsNiArMjQyLDkgQEAgdm9pZCBrb21lZGFfY3J0Y19oYW5kbGVfZXZlbnQo c3RydWN0IGtvbWVkYV9jcnRjICAgKmtjcnRjLA0KIAlpZiAoaGFzX2JpdChtYXN0ZXItPmlkLCBr Y3J0Y19zdC0+YWZmZWN0ZWRfcGlwZXMpKQ0KIAkJa29tZWRhX3BpcGVsaW5lX3VwZGF0ZShtYXN0 ZXIsIG9sZC0+c3RhdGUpOw0KIA0KKwlpZiAoc2xhdmUgJiYgaGFzX2JpdChzbGF2ZS0+aWQsIGtj cnRjX3N0LT5hZmZlY3RlZF9waXBlcykpDQorCQlrb21lZGFfcGlwZWxpbmVfdXBkYXRlKHNsYXZl LCBvbGQtPnN0YXRlKTsNCisNCiAJY29ubl9zdCA9IHdiX2Nvbm4gPyB3Yl9jb25uLT5iYXNlLmJh c2Uuc3RhdGUgOiBOVUxMOw0KIAlpZiAoY29ubl9zdCAmJiBjb25uX3N0LT53cml0ZWJhY2tfam9i KQ0KIAkJZHJtX3dyaXRlYmFja19xdWV1ZV9qb2IoJndiX2Nvbm4tPmJhc2UsIGNvbm5fc3QpOw0K QEAgLTI2Miw2ICsyNzAsNyBAQCB2b2lkIGtvbWVkYV9jcnRjX2hhbmRsZV9ldmVudChzdHJ1Y3Qg a29tZWRhX2NydGMgICAqa2NydGMsDQogCXN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqb2xkX3N0 ID0gdG9fa2NydGNfc3Qob2xkKTsNCiAJc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYgPSBjcnRjLT5k ZXYtPmRldl9wcml2YXRlOw0KIAlzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICptYXN0ZXIgPSBrY3J0 Yy0+bWFzdGVyOw0KKwlzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpzbGF2ZSAgPSBrY3J0Yy0+c2xh dmU7DQogCXN0cnVjdCBjb21wbGV0aW9uICpkaXNhYmxlX2RvbmUgPSAmY3J0Yy0+c3RhdGUtPmNv bW1pdC0+ZmxpcF9kb25lOw0KIAlzdHJ1Y3QgY29tcGxldGlvbiB0ZW1wOw0KIAlpbnQgdGltZW91 dDsNCkBAIC0yNzAsNiArMjc5LDkgQEAgdm9pZCBrb21lZGFfY3J0Y19oYW5kbGVfZXZlbnQoc3Ry dWN0IGtvbWVkYV9jcnRjICAgKmtjcnRjLA0KIAkJCSBkcm1fY3J0Y19pbmRleChjcnRjKSwNCiAJ CQkgb2xkX3N0LT5hY3RpdmVfcGlwZXMsIG9sZF9zdC0+YWZmZWN0ZWRfcGlwZXMpOw0KIA0KKwlp ZiAoc2xhdmUgJiYgaGFzX2JpdChzbGF2ZS0+aWQsIG9sZF9zdC0+YWN0aXZlX3BpcGVzKSkNCisJ CWtvbWVkYV9waXBlbGluZV9kaXNhYmxlKHNsYXZlLCBvbGQtPnN0YXRlKTsNCisNCiAJaWYgKGhh c19iaXQobWFzdGVyLT5pZCwgb2xkX3N0LT5hY3RpdmVfcGlwZXMpKQ0KIAkJa29tZWRhX3BpcGVs aW5lX2Rpc2FibGUobWFzdGVyLCBvbGQtPnN0YXRlKTsNCiANCkBAIC00MTQsNiArNDI2LDcgQEAg c3RhdGljIHZvaWQga29tZWRhX2NydGNfcmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KIA0K IAluZXctPmFmZmVjdGVkX3BpcGVzID0gb2xkLT5hY3RpdmVfcGlwZXM7DQogCW5ldy0+Y2xvY2tf cmF0aW8gPSBvbGQtPmNsb2NrX3JhdGlvOw0KKwluZXctPm1heF9zbGF2ZV96b3JkZXIgPSBvbGQt Pm1heF9zbGF2ZV96b3JkZXI7DQogDQogCXJldHVybiAmbmV3LT5iYXNlOw0KIH0NCkBAIC00ODgs NyArNTAxLDcgQEAgaW50IGtvbWVkYV9rbXNfc2V0dXBfY3J0Y3Moc3RydWN0IGtvbWVkYV9rbXNf ZGV2ICprbXMsDQogCQltYXN0ZXIgPSBtZGV2LT5waXBlbGluZXNbaV07DQogDQogCQljcnRjLT5t YXN0ZXIgPSBtYXN0ZXI7DQotCQljcnRjLT5zbGF2ZSAgPSBOVUxMOw0KKwkJY3J0Yy0+c2xhdmUg ID0ga29tZWRhX3BpcGVsaW5lX2dldF9zbGF2ZShtYXN0ZXIpOw0KIA0KIAkJaWYgKGNydGMtPnNs YXZlKQ0KIAkJCXNwcmludGYoc3RyLCAicGlwZS0lZCIsIGNydGMtPnNsYXZlLT5pZCk7DQpAQCAt NTIyLDYgKzUzNSwyNiBAQCBzdGF0aWMgaW50IGtvbWVkYV9jcnRjX2NyZWF0ZV9jbG9ja19yYXRp b19wcm9wZXJ0eShzdHJ1Y3Qga29tZWRhX2NydGMgKmtjcnRjKQ0KIAlyZXR1cm4gMDsNCiB9DQog DQorc3RhdGljIGludCBrb21lZGFfY3J0Y19jcmVhdGVfc2xhdmVfcGxhbmVzX3Byb3BlcnR5KHN0 cnVjdCBrb21lZGFfY3J0YyAqa2NydGMpDQorew0KKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAm a2NydGMtPmJhc2U7DQorCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7DQorDQorCWlmIChrY3J0 Yy0+c2xhdmVfcGxhbmVzID09IDApDQorCQlyZXR1cm4gMDsNCisNCisJcHJvcCA9IGRybV9wcm9w ZXJ0eV9jcmVhdGVfcmFuZ2UoY3J0Yy0+ZGV2LCBEUk1fTU9ERV9QUk9QX0lNTVVUQUJMRSwNCisJ CQkJCSAic2xhdmVfcGxhbmVzIiwgMCwgVTMyX01BWCk7DQorCWlmICghcHJvcCkNCisJCXJldHVy biAtRU5PTUVNOw0KKw0KKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwg cHJvcCwga2NydGMtPnNsYXZlX3BsYW5lcyk7DQorDQorCWtjcnRjLT5zbGF2ZV9wbGFuZXNfcHJv cGVydHkgPSBwcm9wOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQogc3RhdGljIHN0cnVjdCBkcm1f cGxhbmUgKg0KIGdldF9jcnRjX3ByaW1hcnkoc3RydWN0IGtvbWVkYV9rbXNfZGV2ICprbXMsIHN0 cnVjdCBrb21lZGFfY3J0YyAqY3J0YykNCiB7DQpAQCAtNTYyLDcgKzU5NSwxMSBAQCBzdGF0aWMg aW50IGtvbWVkYV9jcnRjX2FkZChzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmttcywNCiAJaWYgKGVy cikNCiAJCXJldHVybiBlcnI7DQogDQotCXJldHVybiAwOw0KKwllcnIgPSBrb21lZGFfY3J0Y19j cmVhdGVfc2xhdmVfcGxhbmVzX3Byb3BlcnR5KGtjcnRjKTsNCisJaWYgKGVycikNCisJCXJldHVy biBlcnI7DQorDQorCXJldHVybiBlcnI7DQogfQ0KIA0KIGludCBrb21lZGFfa21zX2FkZF9jcnRj cyhzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmttcywgc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21z LmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYw0KaW5k ZXggNWQxMGM1NS4uODU0Mzg2MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX2ttcy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2tvbWVkYV9rbXMuYw0KQEAgLTE0Myw2ICsxNDMsOCBAQCBzdGF0aWMgaW50IGtv bWVkYV9jcnRjX25vcm1hbGl6ZV96cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCiAJCQkJICAg ICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0KQ0KIHsNCiAJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdC0+c3RhdGU7DQorCXN0cnVjdCBrb21lZGFfY3J0YyAq a2NydGMgPSB0b19rY3J0YyhjcnRjKTsNCisJc3RydWN0IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0 Y19zdCA9IHRvX2tjcnRjX3N0KGNydGNfc3QpOw0KIAlzdHJ1Y3Qga29tZWRhX3BsYW5lX3N0YXRl ICprcGxhbmVfc3Q7DQogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0Ow0KIAlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsNCkBAIC0xNjcsNiArMTY5LDggQEAgc3RhdGljIGludCBr b21lZGFfY3J0Y19ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQogCQkJcmV0 dXJuIGVycjsNCiAJfQ0KIA0KKwlrY3J0Y19zdC0+bWF4X3NsYXZlX3pvcmRlciA9IDA7DQorDQog CWxpc3RfZm9yX2VhY2hfZW50cnkoa3BsYW5lX3N0LCAmem9yZGVyX2xpc3QsIHpsaXN0X25vZGUp IHsNCiAJCXBsYW5lX3N0ID0gJmtwbGFuZV9zdC0+YmFzZTsNCiAJCWZiID0gcGxhbmVfc3QtPmZi Ow0KQEAgLTE4NSw2ICsxODksMTIgQEAgc3RhdGljIGludCBrb21lZGFfY3J0Y19ub3JtYWxpemVf enBvcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQogCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6 JWQ6JXNdIHpwb3M6JWQsIG5vcm1hbGl6ZWQgenBvczogJWRcbiIsDQogCQkJCSBwbGFuZS0+YmFz ZS5pZCwgcGxhbmUtPm5hbWUsDQogCQkJCSBwbGFuZV9zdC0+enBvcywgcGxhbmVfc3QtPm5vcm1h bGl6ZWRfenBvcyk7DQorDQorCQkvKiBjYWxjdWxhdGUgbWF4IHNsYXZlIHpvcmRlciAqLw0KKwkJ aWYgKGhhc19iaXQoZHJtX3BsYW5lX2luZGV4KHBsYW5lKSwga2NydGMtPnNsYXZlX3BsYW5lcykp DQorCQkJa2NydGNfc3QtPm1heF9zbGF2ZV96b3JkZXIgPQ0KKwkJCQltYXgocGxhbmVfc3QtPm5v cm1hbGl6ZWRfenBvcywNCisJCQkJICAgIGtjcnRjX3N0LT5tYXhfc2xhdmVfem9yZGVyKTsNCiAJ fQ0KIA0KIAljcnRjX3N0LT56cG9zX2NoYW5nZWQgPSB0cnVlOw0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgNCmluZGV4IDlkY2ZlNWEuLjIxOWZh M2YgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVk YV9rbXMuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFf a21zLmgNCkBAIC04Niw2ICs4Niw5IEBAIHN0cnVjdCBrb21lZGFfY3J0YyB7DQogCSAqLw0KIAlz dHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpzbGF2ZTsNCiANCisJLyoqIEBzbGF2ZV9wbGFuZXM6IGtv bWVkYSBzbGF2ZSBwbGFuZXMgbWFzayAqLw0KKwl1MzIgc2xhdmVfcGxhbmVzOw0KKw0KIAkvKiog QHdiX2Nvbm46IGtvbWVkYSB3cml0ZSBiYWNrIGNvbm5lY3RvciAqLw0KIAlzdHJ1Y3Qga29tZWRh X3diX2Nvbm5lY3RvciAqd2JfY29ubjsNCiANCkBAIC05NCw2ICs5Nyw5IEBAIHN0cnVjdCBrb21l ZGFfY3J0YyB7DQogDQogCS8qKiBAY2xvY2tfcmF0aW9fcHJvcGVydHk6IHByb3BlcnR5IGZvciBy YXRpbyBvZiAoYWNsayA8PCAzMikvcHhsY2xrICovDQogCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNs b2NrX3JhdGlvX3Byb3BlcnR5Ow0KKw0KKwkvKiogQHNsYXZlX3BsYW5lc19wcm9wZXJ0eTogcHJv cGVydHkgZm9yIHNsYXZlcyBvZiB0aGUgcGxhbmVzICovDQorCXN0cnVjdCBkcm1fcHJvcGVydHkg KnNsYXZlX3BsYW5lc19wcm9wZXJ0eTsNCiB9Ow0KIA0KIC8qKg0KQEAgLTExOSw2ICsxMjUsOSBA QCBzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgew0KIA0KIAkvKiogQGNsb2NrX3JhdGlvOiByYXRp byBvZiAoYWNsayA8PCAzMikvcHhsY2xrICovDQogCXU2NCBjbG9ja19yYXRpbzsNCisNCisJLyoq IEBtYXhfc2xhdmVfem9yZGVyOiB0aGUgbWF4aW11bSBvZiBzbGF2ZSB6b3JkZXIgKi8NCisJdTMy IG1heF9zbGF2ZV96b3JkZXI7DQogfTsNCiANCiAvKiogc3RydWN0IGtvbWVkYV9rbXNfZGV2IC0g Zm9yIGdhdGhlciBLTVMgcmVsYXRlZCB0aGluZ3MgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuYw0KaW5kZXggZWI5ZTBjMC4u YTNkOTBkOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX3BpcGVsaW5lLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEva29tZWRhX3BpcGVsaW5lLmMNCkBAIC0xNDIsNiArMTQyLDE0IEBAIHN0cnVjdCBrb21lZGFf Y29tcG9uZW50ICoNCiAJcmV0dXJuIGM7DQogfQ0KIA0KK3N0YXRpYyBzdHJ1Y3Qga29tZWRhX2Nv bXBvbmVudCAqDQora29tZWRhX2NvbXBvbmVudF9waWNrdXBfaW5wdXQoc3RydWN0IGtvbWVkYV9j b21wb25lbnQgKmMsIHUzMiBhdmFpbF9jb21wcykNCit7DQorCXUzMiBhdmFpbF9pbnB1dHMgPSBj LT5zdXBwb3J0ZWRfaW5wdXRzICYgKGF2YWlsX2NvbXBzKTsNCisNCisJcmV0dXJuIGtvbWVkYV9w aXBlbGluZV9nZXRfZmlyc3RfY29tcG9uZW50KGMtPnBpcGVsaW5lLCBhdmFpbF9pbnB1dHMpOw0K K30NCisNCiAvKioga29tZWRhX2NvbXBvbmVudF9hZGQgLSBBZGQgYSBjb21wb25lbnQgdG8gJmtv bWVkYV9waXBlbGluZSAqLw0KIHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICoNCiBrb21lZGFfY29t cG9uZW50X2FkZChzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLA0KQEAgLTI5Niw2ICszMDQs MjAgQEAgc3RhdGljIHZvaWQga29tZWRhX3BpcGVsaW5lX2Fzc2VtYmxlKHN0cnVjdCBrb21lZGFf cGlwZWxpbmUgKnBpcGUpDQogCX0NCiB9DQogDQorLyogaWYgcGlwZWxpbmVfQSBhY2NlcHQgYW5v dGhlciBwaXBlbGluZV9CJ3MgY29tcG9uZW50IGFzIGlucHV0LCB0cmVhdA0KKyAqIHBpcGVsaW5l X0IgYXMgc2xhdmUgb2YgcGlwZWxpbmVfQS4NCisgKi8NCitzdHJ1Y3Qga29tZWRhX3BpcGVsaW5l ICoNCitrb21lZGFfcGlwZWxpbmVfZ2V0X3NsYXZlKHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKm1h c3RlcikNCit7DQorCXN0cnVjdCBrb21lZGFfY29tcG9uZW50ICpzbGF2ZTsNCisNCisJc2xhdmUg PSBrb21lZGFfY29tcG9uZW50X3BpY2t1cF9pbnB1dCgmbWFzdGVyLT5jb21waXotPmJhc2UsDQor CQkJCQkgICAgICBLT01FREFfUElQRUxJTkVfQ09NUElaUyk7DQorDQorCXJldHVybiBzbGF2ZSA/ IHNsYXZlLT5waXBlbGluZSA6IE5VTEw7DQorfQ0KKw0KIGludCBrb21lZGFfYXNzZW1ibGVfcGlw ZWxpbmVzKHN0cnVjdCBrb21lZGFfZGV2ICptZGV2KQ0KIHsNCiAJc3RydWN0IGtvbWVkYV9waXBl bGluZSAqcGlwZTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29t ZWRhL2tvbWVkYV9waXBlbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfcGlwZWxpbmUuaA0KaW5kZXggZjZhNGE1MS4uMmE2N2M4YSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgNCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgN CkBAIC00NTIsNiArNDUyLDggQEAgc3RydWN0IGtvbWVkYV9waXBlbGluZSAqDQogCQkgICAgY29u c3Qgc3RydWN0IGtvbWVkYV9waXBlbGluZV9mdW5jcyAqZnVuY3MpOw0KIHZvaWQga29tZWRhX3Bp cGVsaW5lX2Rlc3Ryb3koc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYsDQogCQkJICAgICBzdHJ1Y3Qg a29tZWRhX3BpcGVsaW5lICpwaXBlKTsNCitzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICoNCitrb21l ZGFfcGlwZWxpbmVfZ2V0X3NsYXZlKHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKm1hc3Rlcik7DQog aW50IGtvbWVkYV9hc3NlbWJsZV9waXBlbGluZXMoc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpOw0K IHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICoNCiBrb21lZGFfcGlwZWxpbmVfZ2V0X2NvbXBvbmVu dChzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLCBpbnQgaWQpOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0 ZS5jDQppbmRleCAyMzE4MmVkLi42YzM1YWZkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0KKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0KQEAg LTEwMzIsMTAgKzEwMzIsMjUgQEAgaW50IGtvbWVkYV9idWlsZF9kaXNwbGF5X2RhdGFfZmxvdyhz dHJ1Y3Qga29tZWRhX2NydGMgKmtjcnRjLA0KIAkJCQkgICBzdHJ1Y3Qga29tZWRhX2NydGNfc3Rh dGUgKmtjcnRjX3N0KQ0KIHsNCiAJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqbWFzdGVyID0ga2Ny dGMtPm1hc3RlcjsNCisJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqc2xhdmUgID0ga2NydGMtPnNs YXZlOw0KIAlzdHJ1Y3Qga29tZWRhX2RhdGFfZmxvd19jZmcgbV9kZmxvdzsgLyogbWFzdGVyIGRh dGEgZmxvdyAqLw0KKwlzdHJ1Y3Qga29tZWRhX2RhdGFfZmxvd19jZmcgc19kZmxvdzsgLyogc2xh dmUgZGF0YSBmbG93ICovDQogCWludCBlcnI7DQogDQogCW1lbXNldCgmbV9kZmxvdywgMCwgc2l6 ZW9mKG1fZGZsb3cpKTsNCisJbWVtc2V0KCZzX2RmbG93LCAwLCBzaXplb2Yoc19kZmxvdykpOw0K Kw0KKwlpZiAoc2xhdmUgJiYgaGFzX2JpdChzbGF2ZS0+aWQsIGtjcnRjX3N0LT5hY3RpdmVfcGlw ZXMpKSB7DQorCQllcnIgPSBrb21lZGFfY29tcGl6X3ZhbGlkYXRlKHNsYXZlLT5jb21waXosIGtj cnRjX3N0LCAmc19kZmxvdyk7DQorCQlpZiAoZXJyKQ0KKwkJCXJldHVybiBlcnI7DQorDQorCQkv KiBtZXJnZSB0aGUgc2xhdmUgZGZsb3cgaW50byBtYXN0ZXIgcGlwZWxpbmUgKi8NCisJCWVyciA9 IGtvbWVkYV9jb21waXpfc2V0X2lucHV0KG1hc3Rlci0+Y29tcGl6LCBrY3J0Y19zdCwNCisJCQkJ CSAgICAgICZzX2RmbG93KTsNCisJCWlmIChlcnIpDQorCQkJcmV0dXJuIGVycjsNCisJfQ0KIA0K IAllcnIgPSBrb21lZGFfY29tcGl6X3ZhbGlkYXRlKG1hc3Rlci0+Y29tcGl6LCBrY3J0Y19zdCwg Jm1fZGZsb3cpOw0KIAlpZiAoZXJyKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2tvbWVkYV9wbGFuZS5jDQppbmRleCBkMWM1OGE4Li4wNGIxMjJmIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYw0K KysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYw0K QEAgLTE0LDE1ICsxNCwyNyBAQA0KIA0KIHN0YXRpYyBpbnQNCiBrb21lZGFfcGxhbmVfaW5pdF9k YXRhX2Zsb3coc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3QsDQorCQkJICAgIHN0cnVjdCBrb21l ZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QsDQogCQkJICAgIHN0cnVjdCBrb21lZGFfZGF0YV9mbG93 X2NmZyAqZGZsb3cpDQogew0KKwlzdHJ1Y3Qga29tZWRhX3BsYW5lICprcGxhbmUgPSB0b19rcGxh bmUoc3QtPnBsYW5lKTsNCiAJc3RydWN0IGtvbWVkYV9wbGFuZV9zdGF0ZSAqa3BsYW5lX3N0ID0g dG9fa3BsYW5lX3N0KHN0KTsNCiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdC0+ZmI7 DQogCWNvbnN0IHN0cnVjdCBrb21lZGFfZm9ybWF0X2NhcHMgKmNhcHMgPSB0b19rZmIoZmIpLT5m b3JtYXRfY2FwczsNCisJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZSA9IGtwbGFuZS0+bGF5 ZXItPmJhc2UucGlwZWxpbmU7DQogDQogCW1lbXNldChkZmxvdywgMCwgc2l6ZW9mKCpkZmxvdykp Ow0KIA0KIAlkZmxvdy0+YmxlbmRpbmdfem9yZGVyID0gc3QtPm5vcm1hbGl6ZWRfenBvczsNCisJ aWYgKHBpcGUgPT0gdG9fa2NydGMoc3QtPmNydGMpLT5tYXN0ZXIpDQorCQlkZmxvdy0+YmxlbmRp bmdfem9yZGVyIC09IGtjcnRjX3N0LT5tYXhfc2xhdmVfem9yZGVyOw0KKwlpZiAoZGZsb3ctPmJs ZW5kaW5nX3pvcmRlciA8IDApIHsNCisJCURSTV9ERUJVR19BVE9NSUMoIiVzIHpvcmRlcjolZCA8 IG1heF9zbGF2ZV96b3JkZXI6ICVkLlxuIiwNCisJCQkJIHN0LT5wbGFuZS0+bmFtZSwgc3QtPm5v cm1hbGl6ZWRfenBvcywNCisJCQkJIGtjcnRjX3N0LT5tYXhfc2xhdmVfem9yZGVyKTsNCisJCXJl dHVybiAtRUlOVkFMOw0KKwl9DQorDQogCWRmbG93LT5waXhlbF9ibGVuZF9tb2RlID0gc3QtPnBp eGVsX2JsZW5kX21vZGU7DQogCWRmbG93LT5sYXllcl9hbHBoYSA9IHN0LT5hbHBoYSA+PiA4Ow0K IA0KQEAgLTg4LDcgKzEwMCw3IEBADQogDQogCWtjcnRjX3N0ID0gdG9fa2NydGNfc3QoY3J0Y19z dCk7DQogDQotCWVyciA9IGtvbWVkYV9wbGFuZV9pbml0X2RhdGFfZmxvdyhzdGF0ZSwgJmRmbG93 KTsNCisJZXJyID0ga29tZWRhX3BsYW5lX2luaXRfZGF0YV9mbG93KHN0YXRlLCBrY3J0Y19zdCwg JmRmbG93KTsNCiAJaWYgKGVycikNCiAJCXJldHVybiBlcnI7DQogDQpAQCAtMjg4LDYgKzMwMCwy MiBAQCBzdGF0aWMgdTMyIGdldF9wb3NzaWJsZV9jcnRjcyhzdHJ1Y3Qga29tZWRhX2ttc19kZXYg KmttcywNCiAJcmV0dXJuIHBvc3NpYmxlX2NydGNzOw0KIH0NCiANCitzdGF0aWMgdm9pZA0KK2tv bWVkYV9zZXRfY3J0Y19wbGFuZV9tYXNrKHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLA0KKwkJ CSAgIHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKnBpcGUsDQorCQkJICAgc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUpDQorew0KKwlzdHJ1Y3Qga29tZWRhX2NydGMgKmtjcnRjOw0KKwlpbnQgaTsNCisN CisJZm9yIChpID0gMDsgaSA8IGttcy0+bl9jcnRjczsgaSsrKSB7DQorCQlrY3J0YyA9ICZrbXMt PmNydGNzW2ldOw0KKw0KKwkJaWYgKHBpcGUgPT0ga2NydGMtPnNsYXZlKQ0KKwkJCWtjcnRjLT5z bGF2ZV9wbGFuZXMgfD0gQklUKGRybV9wbGFuZV9pbmRleChwbGFuZSkpOw0KKwl9DQorfQ0KKw0K IC8qIHVzZSBMYXllcjAgYXMgcHJpbWFyeSAqLw0KIHN0YXRpYyB1MzIgZ2V0X3BsYW5lX3R5cGUo c3RydWN0IGtvbWVkYV9rbXNfZGV2ICprbXMsDQogCQkJICBzdHJ1Y3Qga29tZWRhX2NvbXBvbmVu dCAqYykNCkBAIC0zNjYsNiArMzk0LDggQEAgc3RhdGljIGludCBrb21lZGFfcGxhbmVfYWRkKHN0 cnVjdCBrb21lZGFfa21zX2RldiAqa21zLA0KIAlpZiAoZXJyKQ0KIAkJZ290byBjbGVhbnVwOw0K IA0KKwlrb21lZGFfc2V0X2NydGNfcGxhbmVfbWFzayhrbXMsIGMtPnBpcGVsaW5lLCBwbGFuZSk7 DQorDQogCXJldHVybiAwOw0KIGNsZWFudXA6DQogCWtvbWVkYV9wbGFuZV9kZXN0cm95KHBsYW5l KTsNCi0tIA0KMS45LjENCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs