From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH v3 06/18] drm/vmwgfx: Add a new interface for plane update on a display unit Date: Wed, 10 Oct 2018 17:16:45 -0700 Message-ID: <20181011001657.1715-6-drawat@vmware.com> References: <20181011001657.1715-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-001.vmware.com (ex13-edg-ou-001.vmware.com [208.91.0.189]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8DE6C6E374 for ; Thu, 11 Oct 2018 00:17:17 +0000 (UTC) In-Reply-To: <20181011001657.1715-1-drawat@vmware.com> 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, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Deepak Rawat List-Id: dri-devel@lists.freedesktop.org QWRkIGEgbmV3IHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lIHNpbWlsYXIgdG8gdm13X2ttc19k aXJ0eSB3aGljaApyZXByZXNlbnQgdGhlIGZsb3cgb2Ygb3BlcmF0aW9ucyBuZWVkZWQgdG8gdXBk YXRlIGEgZGlzcGxheSB1bml0IGZyb20Kc3VyZmFjZSBvciBibyAoYmxpdCBhIG5ldyBmcmFtZWJ1 ZmZlcikuCgp2MjoKLSBLZXJuZWwgZG9jIGNvcnJlY3Rpb24uCi0gUmViYXNlLgoKdjM6IFJlYmFz ZSB0byBuZXcgcmVzb3VyY2UgdmFsaWRhdGlvbi4KClNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdh dCA8ZHJhd2F0QHZtd2FyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf a21zLmMgfCAxMjIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfa21zLmggfCAxMTEgKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBm aWxlcyBjaGFuZ2VkLCAyMzMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf a21zLmMKaW5kZXggZGNhMDRkNDI0NmVhLi4wNTlmNTdiZDgxNzAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2ttcy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9t aWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0v ZHJtX3JlY3QuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KIAogLyogTWln aHQgbmVlZCBhIGhydGltZXIgaGVyZT8gKi8KICNkZWZpbmUgVk1XR0ZYX1BSRVNFTlRfUkFURSAo KEhaIC8gNjAgPiAwKSA/IEhaIC8gNjAgOiAxKQpAQCAtMjkzNSwzICsyOTM2LDEyNCBAQCB2b2lk IHZtd19rbXNfbG9zdF9kZXZpY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlkcm1fYXRv bWljX2hlbHBlcl9zaHV0ZG93bihkZXYpOwogfQorCisvKioKKyAqIHZtd19kdV9oZWxwZXJfcGxh bmVfdXBkYXRlIC0gSGVscGVyIHRvIGRvIHBsYW5lIHVwZGF0ZSBvbiBhIGRpc3BsYXkgdW5pdC4K KyAqIEB1cGRhdGU6IFRoZSBjbG9zdXJlIHN0cnVjdHVyZS4KKyAqCisgKiBDYWxsIHRoaXMgaGVs cGVyIGFmdGVyIHNldHRpbmcgY2FsbGJhY2tzIGluICZ2bXdfZHVfdXBkYXRlX3BsYW5lIHRvIGRv IHBsYW5lCisgKiB1cGRhdGUgb24gZGlzcGxheSB1bml0LgorICoKKyAqIFJldHVybjogMCBvbiBz dWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgdm13 X2R1X2hlbHBlcl9wbGFuZV91cGRhdGUoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgKnVwZGF0 ZSkKK3sKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHVwZGF0ZS0+cGxhbmUtPnN0 YXRlOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSA9IHVwZGF0ZS0+b2xkX3N0 YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlciBpdGVyOworCXN0cnVj dCBkcm1fcmVjdCBjbGlwOworCXN0cnVjdCBkcm1fcmVjdCBiYjsKKwlERUNMQVJFX1ZBTF9DT05U RVhUKHZhbF9jdHgsIE5VTEwsIDApOworCXVpbnQzMl90IHJlc2VydmVkX3NpemUgPSAwOworCXVp bnQzMl90IHN1Ym1pdF9zaXplID0gMDsKKwl1aW50MzJfdCBjdXJyX3NpemUgPSAwOworCXVpbnQz Ml90IG51bV9oaXRzID0gMDsKKwl2b2lkICpjbWRfc3RhcnQ7CisJY2hhciAqY21kX25leHQ7CisJ aW50IHJldDsKKworCS8qCisJICogSXRlcmF0ZSBpbiBhZHZhbmNlIHRvIGNoZWNrIGlmIHJlYWxs eSBuZWVkIHBsYW5lIHVwZGF0ZSBhbmQgZmluZCB0aGUKKwkgKiBudW1iZXIgb2YgY2xpcHMgdGhh dCBhY3R1YWxseSBhcmUgaW4gcGxhbmUgc3JjIGZvciBmaWZvIGFsbG9jYXRpb24uCisJICovCisJ ZHJtX2F0b21pY19oZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdCgmaXRlciwgb2xkX3N0YXRlLCBzdGF0 ZSk7CisJZHJtX2F0b21pY19mb3JfZWFjaF9wbGFuZV9kYW1hZ2UoJml0ZXIsICZjbGlwKQorCQlu dW1faGl0cysrOworCisJaWYgKG51bV9oaXRzID09IDApCisJCXJldHVybiAwOworCisJaWYgKHVw ZGF0ZS0+dmZiLT5ibykgeworCQlzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyX2JvICp2ZmJibyA9CisJ CQljb250YWluZXJfb2YodXBkYXRlLT52ZmIsIHR5cGVvZigqdmZiYm8pLCBiYXNlKTsKKworCQly ZXQgPSB2bXdfdmFsaWRhdGlvbl9hZGRfYm8oJnZhbF9jdHgsIHZmYmJvLT5idWZmZXIsIGZhbHNl LAorCQkJCQkgICAgdXBkYXRlLT5jcHVfYmxpdCk7CisJfSBlbHNlIHsKKwkJc3RydWN0IHZtd19m cmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzID0KKwkJCWNvbnRhaW5lcl9vZih1cGRhdGUtPnZmYiwg dHlwZW9mKCp2ZmJzKSwgYmFzZSk7CisKKwkJcmV0ID0gdm13X3ZhbGlkYXRpb25fYWRkX3Jlc291 cmNlKCZ2YWxfY3R4LCAmdmZicy0+c3VyZmFjZS0+cmVzLAorCQkJCQkJICAwLCBOVUxMLCBOVUxM KTsKKwl9CisKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gdm13X3ZhbGlkYXRp b25fcHJlcGFyZSgmdmFsX2N0eCwgdXBkYXRlLT5tdXRleCwgdXBkYXRlLT5pbnRyKTsKKwlpZiAo cmV0KQorCQlnb3RvIG91dF91bnJlZjsKKworCXJlc2VydmVkX3NpemUgPSB1cGRhdGUtPmNhbGNf Zmlmb19zaXplKHVwZGF0ZSwgbnVtX2hpdHMpOworCWNtZF9zdGFydCA9IHZtd19maWZvX3Jlc2Vy dmUodXBkYXRlLT5kZXZfcHJpdiwgcmVzZXJ2ZWRfc2l6ZSk7CisJaWYgKCFjbWRfc3RhcnQpIHsK KwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfcmV2ZXJ0OworCX0KKworCWNtZF9uZXh0ID0g Y21kX3N0YXJ0OworCisJaWYgKHVwZGF0ZS0+cG9zdF9wcmVwYXJlKSB7CisJCWN1cnJfc2l6ZSA9 IHVwZGF0ZS0+cG9zdF9wcmVwYXJlKHVwZGF0ZSwgY21kX25leHQpOworCQljbWRfbmV4dCArPSBj dXJyX3NpemU7CisJCXN1Ym1pdF9zaXplICs9IGN1cnJfc2l6ZTsKKwl9CisKKwlpZiAodXBkYXRl LT5wcmVfY2xpcCkgeworCQljdXJyX3NpemUgPSB1cGRhdGUtPnByZV9jbGlwKHVwZGF0ZSwgY21k X25leHQsIG51bV9oaXRzKTsKKwkJY21kX25leHQgKz0gY3Vycl9zaXplOworCQlzdWJtaXRfc2l6 ZSArPSBjdXJyX3NpemU7CisJfQorCisJYmIueDEgPSBJTlRfTUFYOworCWJiLnkxID0gSU5UX01B WDsKKwliYi54MiA9IElOVF9NSU47CisJYmIueTIgPSBJTlRfTUlOOworCisJZHJtX2F0b21pY19o ZWxwZXJfZGFtYWdlX2l0ZXJfaW5pdCgmaXRlciwgb2xkX3N0YXRlLCBzdGF0ZSk7CisJZHJtX2F0 b21pY19mb3JfZWFjaF9wbGFuZV9kYW1hZ2UoJml0ZXIsICZjbGlwKSB7CisJCXVpbnQzMl90IGZi X3ggPSBjbGlwLngxOworCQl1aW50MzJfdCBmYl95ID0gY2xpcC55MTsKKworCQl2bXdfZHVfdHJh bnNsYXRlX3RvX2NydGMoc3RhdGUsICZjbGlwKTsKKwkJaWYgKHVwZGF0ZS0+Y2xpcCkgeworCQkJ Y3Vycl9zaXplID0gdXBkYXRlLT5jbGlwKHVwZGF0ZSwgY21kX25leHQsICZjbGlwLCBmYl94LAor CQkJCQkJIGZiX3kpOworCQkJY21kX25leHQgKz0gY3Vycl9zaXplOworCQkJc3VibWl0X3NpemUg Kz0gY3Vycl9zaXplOworCQl9CisJCWJiLngxID0gbWluX3QoaW50LCBiYi54MSwgY2xpcC54MSk7 CisJCWJiLnkxID0gbWluX3QoaW50LCBiYi55MSwgY2xpcC55MSk7CisJCWJiLngyID0gbWF4X3Qo aW50LCBiYi54MiwgY2xpcC54Mik7CisJCWJiLnkyID0gbWF4X3QoaW50LCBiYi55MiwgY2xpcC55 Mik7CisJfQorCisJY3Vycl9zaXplID0gdXBkYXRlLT5wb3N0X2NsaXAodXBkYXRlLCBjbWRfbmV4 dCwgJmJiKTsKKwlzdWJtaXRfc2l6ZSArPSBjdXJyX3NpemU7CisKKwlpZiAocmVzZXJ2ZWRfc2l6 ZSA8IHN1Ym1pdF9zaXplKQorCQlzdWJtaXRfc2l6ZSA9IDA7CisKKwl2bXdfZmlmb19jb21taXQo dXBkYXRlLT5kZXZfcHJpdiwgc3VibWl0X3NpemUpOworCisJdm13X2ttc19oZWxwZXJfdmFsaWRh dGlvbl9maW5pc2godXBkYXRlLT5kZXZfcHJpdiwgTlVMTCwgJnZhbF9jdHgsCisJCQkJCSB1cGRh dGUtPm91dF9mZW5jZSwgTlVMTCk7CisJcmV0dXJuIHJldDsKKworb3V0X3JldmVydDoKKwl2bXdf dmFsaWRhdGlvbl9yZXZlcnQoJnZhbF9jdHgpOworCitvdXRfdW5yZWY6CisJdm13X3ZhbGlkYXRp b25fdW5yZWZfbGlzdHMoJnZhbF9jdHgpOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2ttcy5oCmluZGV4IDc2ZWM1NzBjMDY4NC4uZjJmNTdlNThkZDg4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaApAQCAtMzMsNyArMzMsMTAxIEBACiAjaW5jbHVkZSA8 ZHJtL2RybV9lbmNvZGVyLmg+CiAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIgogCisvKioKKyAqIHN0 cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lIC0gQ2xvc3VyZSBzdHJ1Y3R1cmUgZm9yIHZtd19kdV9o ZWxwZXJfcGxhbmVfdXBkYXRlCisgKiBAcGxhbmU6IFBsYW5lIHdoaWNoIGlzIGJlaW5nIHVwZGF0 ZWQuCisgKiBAb2xkX3N0YXRlOiBPbGQgc3RhdGUgb2YgcGxhbmUuCisgKiBAZGV2X3ByaXY6IERl dmljZSBwcml2YXRlLgorICogQGR1OiBEaXNwbGF5IHVuaXQgb24gd2hpY2ggdG8gdXBkYXRlIHRo ZSBwbGFuZS4KKyAqIEB2ZmI6IEZyYW1lYnVmZmVyIHdoaWNoIGlzIGJsaXR0ZWQgdG8gZGlzcGxh eSB1bml0LgorICogQG91dF9mZW5jZTogT3V0IGZlbmNlIGZvciByZXNvdXJjZSBmaW5pc2guCisg KiBAbXV0ZXg6IFRoZSBtdXRleCB1c2VkIHRvIHByb3RlY3QgcmVzb3VyY2UgcmVzZXJ2YXRpb24u CisgKiBAY3B1X2JsaXQ6IFRydWUgaWYgbmVlZCBjcHUgYmxpdC4KKyAqIEBpbnRyOiBXaGV0aGVy IHRvIHBlcmZvcm0gd2FpdHMgaW50ZXJydXB0aWJsZSBpZiBwb3NzaWJsZS4KKyAqCisgKiBUaGlz IHN0cnVjdHVyZSBsb29zZWx5IHJlcHJlc2VudCB0aGUgc2V0IG9mIG9wZXJhdGlvbnMgbmVlZGVk IHRvIHBlcmZvcm0gYQorICogcGxhbmUgdXBkYXRlIG9uIGEgZGlzcGxheSB1bml0LiBJbXBsZW1l bnRlciB3aWxsIGRlZmluZSB0aGF0IGZ1bmN0aW9uYWxpdHkKKyAqIGFjY29yZGluZyB0byB0aGUg ZnVuY3Rpb24gY2FsbGJhY2tzIGZvciB0aGlzIHN0cnVjdHVyZS4gSW4gYnJpZWYgaXQgaW52b2x2 ZXMKKyAqIHN1cmZhY2UvYnVmZmVyIG9iamVjdCB2YWxpZGF0aW9uLCBwb3B1bGF0ZSBGSUZPIGNv bW1hbmRzIGFuZCBjb21tYW5kCisgKiBzdWJtaXNzaW9uIHRvIHRoZSBkZXZpY2UuCisgKi8KK3N0 cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lIHsKKwkvKioKKwkgKiBAY2FsY19maWZvX3NpemU6IENh bGN1bGF0ZSBmaWZvIHNpemUuCisJICoKKwkgKiBEZXRlcm1pbmUgZmlmbyBzaXplIGZvciB0aGUg Y29tbWFuZHMgbmVlZGVkIGZvciB1cGRhdGUuIFRoZSBudW1iZXIgb2YKKwkgKiBkYW1hZ2UgY2xp cHMgb24gZGlzcGxheSB1bml0IEBudW1faGl0cyB3aWxsIGJlIHBhc3NlZCB0byBhbGxvY2F0ZQor CSAqIHN1ZmZpY2llbnQgZmlmbyBzcGFjZS4KKwkgKgorCSAqIFJldHVybjogRmlmbyBzaXplIG5l ZWRlZAorCSAqLworCXVpbnQzMl90ICgqY2FsY19maWZvX3NpemUpKHN0cnVjdCB2bXdfZHVfdXBk YXRlX3BsYW5lICp1cGRhdGUsCisJCQkJICAgdWludDMyX3QgbnVtX2hpdHMpOworCisJLyoqCisJ ICogQHBvc3RfcHJlcGFyZTogUG9wdWxhdGUgZmlmbyBmb3IgcmVzb3VyY2UgcHJlcGFyYXRpb24u CisJICoKKwkgKiBTb21lIHN1cmZhY2UgcmVzb3VyY2Ugb3IgYnVmZmVyIG9iamVjdCBuZWVkIHNv bWUgZXh0cmEgY21kIHN1Ym1pc3Npb24KKwkgKiBsaWtlIHVwZGF0ZSBHQiBpbWFnZSBmb3IgcHJv eHkgc3VyZmFjZSBhbmQgZGVmaW5lIGEgR01SRkIgZm9yIHNjcmVlbgorCSAqIG9iamVjdC4gVGhh dCBzaG91bGQgc2hvdWxkIGJlIGRvbmUgaGVyZSBhcyB0aGlzIGNhbGxiYWNrIHdpbGwgYmUKKwkg KiBjYWxsZWQgYWZ0ZXIgRklGTyBhbGxvY2F0aW9uIHdpdGggdGhlIGFkZHJlc3Mgb2YgY29tbWFu ZCBidXVmZXIuCisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgorCSAqCisJICog UmV0dXJuOiBTaXplIG9mIGNvbW1hbmRzIHBvcHVsYXRlZCB0byBjb21tYW5kIGJ1ZmZlci4KKwkg Ki8KKwl1aW50MzJfdCAoKnBvc3RfcHJlcGFyZSkoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUg KnVwZGF0ZSwgdm9pZCAqY21kKTsKKworCS8qKgorCSAqIEBwcmVfY2xpcDogUG9wdWxhdGUgZmlm byBiZWZvcmUgY2xpcC4KKwkgKgorCSAqIFRoaXMgaXMgd2hlcmUgcHJlIGNsaXAgcmVsYXRlZCBj b21tYW5kIHNob3VsZCBiZSBwb3B1bGF0ZWQgbGlrZQorCSAqIHN1cmZhY2UgY29weS9ETUEsIGV0 Yy4KKwkgKgorCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuCisJICoKKwkgKiBSZXR1cm46 IFNpemUgb2YgY29tbWFuZHMgcG9wdWxhdGVkIHRvIGNvbW1hbmQgYnVmZmVyLgorCSAqLworCXVp bnQzMl90ICgqcHJlX2NsaXApKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICp1cGRhdGUsIHZv aWQgKmNtZCwKKwkJCSAgICAgdWludDMyX3QgbnVtX2hpdHMpOwogCisJLyoqCisJICogQGNsaXA6 IFBvcHVsYXRlIGZpZm8gZm9yIGNsaXAuCisJICoKKwkgKiBUaGlzIGlzIHdoZXJlIHRvIHBvcHVs YXRlIGNsaXBzIGZvciBzdXJmYWNlIGNvcHkvZG1hIG9yIGJsaXQgY29tbWFuZHMKKwkgKiBpZiBu ZWVkZWQuIFRoaXMgd2lsbCBiZSBjYWxsZWQgdGltZXMgaGF2ZSBkYW1hZ2UgaW4gZGlzcGxheSB1 bml0LAorCSAqIHdoaWNoIGlzIG9uZSBpZiBkb2luZyBmdWxsIHVwZGF0ZS4gQGNsaXAgaXMgdGhl IGRhbWFnZSBpbiBkZXN0aW5hdGlvbgorCSAqIGNvb3JkaW5hdGVzIHdoaWNoIGlzIGNydGMvRFUg YW5kIEBzcmNfeCwgQHNyY195IGlzIGRhbWFnZSBjbGlwIHNyYyBpbgorCSAqIGZyYW1lYnVmZmVy IGNvb3JkaW5hdGUuCisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgorCSAqCisJ ICogUmV0dXJuOiBTaXplIG9mIGNvbW1hbmRzIHBvcHVsYXRlZCB0byBjb21tYW5kIGJ1ZmZlci4K KwkgKi8KKwl1aW50MzJfdCAoKmNsaXApKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICp1cGRh dGUsIHZvaWQgKmNtZCwKKwkJCSBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAsIHVpbnQzMl90IHNyY194 LCB1aW50MzJfdCBzcmNfeSk7CisKKwkvKioKKwkgKiBAcG9zdF9jbGlwOiBQb3B1bGF0ZSBmaWZv IGFmdGVyIGNsaXAuCisJICoKKwkgKiBUaGlzIGlzIHdoZXJlIHRvIHBvcHVsYXRlIGRpc3BsYXkg dW5pdCB1cGRhdGUgY29tbWFuZHMgb3IgYmxpdAorCSAqIGNvbW1hbmRzLgorCSAqCisJICogUmV0 dXJuOiBTaXplIG9mIGNvbW1hbmRzIHBvcHVsYXRlZCB0byBjb21tYW5kIGJ1ZmZlci4KKwkgKi8K Kwl1aW50MzJfdCAoKnBvc3RfY2xpcCkoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgKnVwZGF0 ZSwgdm9pZCAqY21kLAorCQkJCSAgICBzdHJ1Y3QgZHJtX3JlY3QgKmJiKTsKKworCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZTsKKwlz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2OworCXN0cnVjdCB2bXdfZGlzcGxheV91bml0ICpk dTsKKwlzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyICp2ZmI7CisJc3RydWN0IHZtd19mZW5jZV9vYmog KipvdXRfZmVuY2U7CisJc3RydWN0IG11dGV4ICptdXRleDsKKwlib29sIGNwdV9ibGl0OworCWJv b2wgaW50cjsKK307CiAKIC8qKgogICogc3RydWN0IHZtd19rbXNfZGlydHkgLSBjbG9zdXJlIHN0 cnVjdHVyZSBmb3IgdGhlIHZtd19rbXNfaGVscGVyX2RpcnR5CkBAIC00NTgsNCArNTUyLDIxIEBA IGludCB2bXdfa21zX3N0ZHVfZG1hKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIGlu dCB2bXdfa21zX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAogCQkgICAgICAg c3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOworCitpbnQgdm13X2R1X2hlbHBl cl9wbGFuZV91cGRhdGUoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgKnVwZGF0ZSk7CisKKy8q KgorICogdm13X2R1X3RyYW5zbGF0ZV90b19jcnRjIC0gVHJhbnNsYXRlIGEgcmVjdCBmcm9tIGZy YW1lYnVmZmVyIHRvIGNydGMKKyAqIEBzdGF0ZTogUGxhbmUgc3RhdGUuCisgKiBAcjogUmVjdGFu Z2xlIHRvIHRyYW5zbGF0ZS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIHZtd19kdV90cmFuc2xh dGVfdG9fY3J0YyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwKKwkJCQkJICAgIHN0cnVj dCBkcm1fcmVjdCAqcikKK3sKKwlpbnQgdHJhbnNsYXRlX2NydGNfeCA9IC0oKHN0YXRlLT5zcmNf eCA+PiAxNikgLSBzdGF0ZS0+Y3J0Y194KTsKKwlpbnQgdHJhbnNsYXRlX2NydGNfeSA9IC0oKHN0 YXRlLT5zcmNfeSA+PiAxNikgLSBzdGF0ZS0+Y3J0Y195KTsKKworCWRybV9yZWN0X3RyYW5zbGF0 ZShyLCB0cmFuc2xhdGVfY3J0Y194LCB0cmFuc2xhdGVfY3J0Y195KTsKK30KKwogI2VuZGlmCi0t IAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=