From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Packard Subject: [PATCH 3/3] drm: Add CRTC_GET_SEQUENCE and CRTC_QUEUE_SEQUENCE ioctls [v2] Date: Mon, 31 Jul 2017 22:03:06 -0700 Message-ID: <20170801050306.24423-4-keithp@keithp.com> References: <20170705221013.27940-1-keithp@keithp.com> <20170801050306.24423-1-keithp@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from elaine.keithp.com (home.keithp.com [63.227.221.253]) by gabe.freedesktop.org (Postfix) with ESMTP id 03C416EA6E for ; Tue, 1 Aug 2017 05:03:17 +0000 (UTC) In-Reply-To: <20170801050306.24423-1-keithp@keithp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org, Dave Airlie , Daniel Vetter Cc: Keith Packard , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhlc2UgcHJvdmlkZSBjcnRjLWlkIGJhc2VkIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHBpcGUtbnVt YmVyLCB3aGlsZQphbHNvIG9mZmVyaW5nIGhpZ2hlciByZXNvbHV0aW9uIHRpbWUgKG5zKSBhbmQg d2lkZXIgZnJhbWUgY291bnQgKDY0KQphcyByZXF1aXJlZCBieSB0aGUgVnVsa2FuIEFQSS4KCnYy OgoKICogQ2hlY2sgZm9yIERSSVZFUl9NT0RFU0VUIGluIG5ldyBjcnRjLWJhc2VkIHZibGFuayBp b2N0bHMKCglGYWlsaW5nIHRvIGNoZWNrIHRoaXMgd2lsbCBvb3BzIHRoZSBkcml2ZXIuCgogKiBF bnN1cmUgdmJsYW5rIGludGVydXB0IGlzIHJ1bm5pbmcgaW4gY3J0Y19nZXRfc2VxdWVuY2UgaW9j dGwKCglUaGUgc2VxdWVuY2UgYW5kIHRpbWluZyB2YWx1ZXMgYXJlIG5vdCBjb3JyZWN0IHdoaWxl IHRoZQoJaW50ZXJydXB0IGlzIG9mZiwgc28gbWFrZSBzdXJlIGl0J3MgcnVubmluZyBiZWZvcmUg YXNraW5nIGZvcgoJdGhlbS4KCiAqIFNob3J0LWNpcmN1aXQgZ2V0X3NlcXVlbmNlIGlmIHRoZSBj b3VudGVyIGlzIGVuYWJsZWQgYW5kIGFjY3VyYXRlCgoJU3RlYWwgdGhlIGlkZWEgZnJvbSB0aGUg Y29kZSBpbiB3YWl0X3ZibGFuayB0byBhdm9pZCB0aGUKCWV4cGVuc2Ugb2YgZHJtX3ZibGFua19n ZXQvcHV0CgogKiBSZXR1cm4gYWN0aXZlIHN0YXRlIG9mIGNydGMgaW4gY3J0Y19nZXRfc2VxdWVu Y2UgaW9jdGwKCglNaWdodCBiZSB1c2VmdWwgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IGFyZW4ndCBp biBjaGFyZ2Ugb2YKCW1vZGVzZXR0aW5nPwoKICogVXNlIGRybV9jcnRjX3ZibGFua19nZXQvcHV0 IGluIG5ldyBjcnRjLWJhc2VkIHZibGFuayBzZXF1ZW5jZSBpb2N0bHMKCglEYW5pZWwgVmV0dGVy IHByZWZlcnMgdGhlc2Ugb3ZlciB0aGUgb2xkIGRybV92YmxhbmtfcHV0L2dldAoJQVBJcy4KCiAq IFJldHVybiBzNjQgbnMgaW5zdGVhZCBvZiB1NjQgaW4gbmV3IHNlcXVlbmNlIGV2ZW50CgpTdWdn ZXN0ZWQtYnk6ICBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+ClN1Z2dlc3RlZC1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2RybV9pbnRlcm5hbC5oIHwgICA2ICsrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMg ICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyAgIHwgMTczICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1fdmJsYW5r LmggICAgICAgfCAgIDEgKwogaW5jbHVkZS91YXBpL2RybS9kcm0uaCAgICAgICAgIHwgIDMyICsr KysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRl cm5hbC5oCmluZGV4IDVjZWNjOTc0ZDJmOS4uYjY4YTE5M2I3OTA3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRl cm5hbC5oCkBAIC02NSw2ICs2NSwxMiBAQCBpbnQgZHJtX2xlZ2FjeV9pcnFfY29udHJvbChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogaW50IGRybV9sZWdhY3lfbW9kZXNldF9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCSAgIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2KTsKIAoraW50IGRybV9jcnRjX2dldF9zZXF1ZW5jZV9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmls cCk7CisKK2ludCBkcm1fY3J0Y19xdWV1ZV9zZXF1ZW5jZV9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxwKTsKKwogLyog ZHJtX2F1dGguYyAqLwogaW50IGRybV9nZXRtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5j CmluZGV4IGYxZTU2ODE3NmRhOS4uNjMwMTZjZjNlMjI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2lvY3RsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCkBAIC02 NTcsNiArNjU3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9j dGxzW10gPSB7CiAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAlEUk1f SU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRSwgZHJtX3N5bmNvYmpfZmRf dG9faGFuZGxlX2lvY3RsLAogCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyks CisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQ1JUQ19HRVRfU0VRVUVOQ0UsIGRybV9jcnRjX2dl dF9zZXF1ZW5jZV9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NU TF9DUlRDX1FVRVVFX1NFUVVFTkNFLCBkcm1fY3J0Y19xdWV1ZV9zZXF1ZW5jZV9pb2N0bCwgRFJN X1VOTE9DS0VEKSwKIH07CiAKICNkZWZpbmUgRFJNX0NPUkVfSU9DVExfQ09VTlQJQVJSQVlfU0la RSggZHJtX2lvY3RscyApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwppbmRleCA3ZTcxMTlhNWFkYTMuLjY5Yjhj OTJjZGQzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCkBAIC04MTIsNiArODEyLDExIEBAIHN0YXRpYyB2 b2lkIHNlbmRfdmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWUtPmV2ZW50 LnZibC50dl9zZWMgPSB0di50dl9zZWM7CiAJCWUtPmV2ZW50LnZibC50dl91c2VjID0gdHYudHZf dXNlYzsKIAkJYnJlYWs7CisJY2FzZSBEUk1fRVZFTlRfQ1JUQ19TRVFVRU5DRToKKwkJaWYgKHNl cSkKKwkJCWUtPmV2ZW50LnNlcS5zZXF1ZW5jZSA9IHNlcTsKKwkJZS0+ZXZlbnQuc2VxLnRpbWVf bnMgPSBrdGltZV90b19ucyhub3cpOworCQlicmVhazsKIAl9CiAJdHJhY2VfZHJtX3ZibGFua19l dmVudF9kZWxpdmVyZWQoZS0+YmFzZS5maWxlX3ByaXYsIGUtPnBpcGUsIHNlcSk7CiAJZHJtX3Nl bmRfZXZlbnRfbG9ja2VkKGRldiwgJmUtPmJhc2UpOwpAQCAtMTY4MiwzICsxNjg3LDE3MSBAQCBi b29sIGRybV9jcnRjX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXJldHVy biBkcm1faGFuZGxlX3ZibGFuayhjcnRjLT5kZXYsIGRybV9jcnRjX2luZGV4KGNydGMpKTsKIH0K IEVYUE9SVF9TWU1CT0woZHJtX2NydGNfaGFuZGxlX3ZibGFuayk7CisKKy8qCisgKiBHZXQgY3J0 YyBWQkxBTksgY291bnQuCisgKgorICogXHBhcmFtIGRldiBEUk0gZGV2aWNlCisgKiBccGFyYW0g ZGF0YSB1c2VyIGFyZ3VlbWVudCwgcG9pbnRpbmcgdG8gYSBkcm1fY3J0Y19nZXRfc2VxdWVuY2Ug c3RydWN0dXJlLgorICogXHBhcmFtIGZpbGVfcHJpdiBkcm0gZmlsZSBwcml2YXRlIGZvciB0aGUg dXNlcidzIG9wZW4gZmlsZSBkZXNjcmlwdG9yCisgKi8KKworaW50IGRybV9jcnRjX2dldF9zZXF1 ZW5jZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCXN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlzdHJ1 Y3QgZHJtX3ZibGFua19jcnRjICp2Ymxhbms7CisJaW50IHBpcGU7CisJc3RydWN0IGRybV9jcnRj X2dldF9zZXF1ZW5jZSAqZ2V0X3NlcSA9IGRhdGE7CisJa3RpbWVfdCBub3c7CisJYm9vbCB2Ymxh bmtfZW5hYmxlZDsKKwlpbnQgcmV0OworCisJaWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRl diwgRFJJVkVSX01PREVTRVQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICghZGV2LT5pcnFf ZW5hYmxlZCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljcnRjID0gZHJtX2NydGNfZmluZChkZXYs IGdldF9zZXEtPmNydGNfaWQpOworCWlmICghY3J0YykKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwlw aXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7CisKKwl2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlw ZV07CisJdmJsYW5rX2VuYWJsZWQgPSBkZXYtPnZibGFua19kaXNhYmxlX2ltbWVkaWF0ZSAmJiBS RUFEX09OQ0UodmJsYW5rLT5lbmFibGVkKTsKKworCWlmICghdmJsYW5rX2VuYWJsZWQpIHsKKwkJ cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0RF QlVHKCJjcnRjICVkIGZhaWxlZCB0byBhY3F1aXJlIHZibGFuayBjb3VudGVyLCAlZFxuIiwgcGlw ZSwgcmV0KTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisJZHJtX21vZGVzZXRfbG9jaygmY3J0 Yy0+bXV0ZXgsIE5VTEwpOworCWlmIChjcnRjLT5zdGF0ZSkKKwkJZ2V0X3NlcS0+YWN0aXZlID0g Y3J0Yy0+c3RhdGUtPmVuYWJsZTsKKwllbHNlCisJCWdldF9zZXEtPmFjdGl2ZSA9IGNydGMtPmVu YWJsZWQ7CisJZHJtX21vZGVzZXRfdW5sb2NrKCZjcnRjLT5tdXRleCk7CisJZ2V0X3NlcS0+c2Vx dWVuY2UgPSBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKGRldiwgcGlwZSwgJm5vdyk7CisJZ2V0 X3NlcS0+c2VxdWVuY2VfbnMgPSBrdGltZV90b19ucyhub3cpOworCWlmICghdmJsYW5rX2VuYWJs ZWQpCisJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisg KiBRdWV1ZSBhIGV2ZW50IGZvciBWQkxBTksgc2VxdWVuY2UKKyAqCisgKiBccGFyYW0gZGV2IERS TSBkZXZpY2UKKyAqIFxwYXJhbSBkYXRhIHVzZXIgYXJndWVtZW50LCBwb2ludGluZyB0byBhIGRy bV9jcnRjX3F1ZXVlX3NlcXVlbmNlIHN0cnVjdHVyZS4KKyAqIFxwYXJhbSBmaWxlX3ByaXYgZHJt IGZpbGUgcHJpdmF0ZSBmb3IgdGhlIHVzZXIncyBvcGVuIGZpbGUgZGVzY3JpcHRvcgorICovCisK K2ludCBkcm1fY3J0Y19xdWV1ZV9zZXF1ZW5jZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAorCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJc3Ry dWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuazsKKwlp bnQgcGlwZTsKKwlzdHJ1Y3QgZHJtX2NydGNfcXVldWVfc2VxdWVuY2UgKnF1ZXVlX3NlcSA9IGRh dGE7CisJa3RpbWVfdCBub3c7CisJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZTsK Kwl1MzIgZmxhZ3M7CisJdTY0IHNlcTsKKwl1NjQgcmVxX3NlcTsKKwlpbnQgcmV0OworCXVuc2ln bmVkIGxvbmcgc3Bpbl9mbGFnczsKKworCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYs IERSSVZFUl9NT0RFU0VUKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIWRldi0+aXJxX2Vu YWJsZWQpCisJCXJldHVybiAtRUlOVkFMOworCisJY3J0YyA9IGRybV9jcnRjX2ZpbmQoZGV2LCBx dWV1ZV9zZXEtPmNydGNfaWQpOworCWlmICghY3J0YykKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwlm bGFncyA9IHF1ZXVlX3NlcS0+ZmxhZ3M7CisJLyogQ2hlY2sgdmFsaWQgZmxhZyBiaXRzICovCisJ aWYgKGZsYWdzICYgfihEUk1fQ1JUQ19TRVFVRU5DRV9SRUxBVElWRXwKKwkJICAgICAgRFJNX0NS VENfU0VRVUVOQ0VfTkVYVF9PTl9NSVNTfAorCQkgICAgICBEUk1fQ1JUQ19TRVFVRU5DRV9GSVJT VF9QSVhFTF9PVVQpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIENoZWNrIGZvciB2YWxpZCBz aWduYWwgZWRnZSAqLworCWlmICghKGZsYWdzICYgRFJNX0NSVENfU0VRVUVOQ0VfRklSU1RfUElY RUxfT1VUKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0 Yyk7CisKKwl2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlwZV07CisKKwllID0ga3phbGxvYyhzaXpl b2YoKmUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsK KworCXJldCA9IGRybV9jcnRjX3ZibGFua19nZXQoY3J0Yyk7CisJaWYgKHJldCkgeworCQlEUk1f REVCVUcoImNydGMgJWQgZmFpbGVkIHRvIGFjcXVpcmUgdmJsYW5rIGNvdW50ZXIsICVkXG4iLCBw aXBlLCByZXQpOworCQlnb3RvIGVycl9mcmVlOworCX0KKworCXNlcSA9IGRybV92YmxhbmtfY291 bnRfYW5kX3RpbWUoZGV2LCBwaXBlLCAmbm93KTsKKwlyZXFfc2VxID0gcXVldWVfc2VxLT5zZXF1 ZW5jZTsKKworCWlmIChmbGFncyAmIERSTV9DUlRDX1NFUVVFTkNFX1JFTEFUSVZFKQorCQlyZXFf c2VxICs9IHNlcTsKKworCWlmICgoZmxhZ3MgJiBEUk1fQ1JUQ19TRVFVRU5DRV9ORVhUX09OX01J U1MpICYmIHZibGFua19wYXNzZWQoc2VxLCByZXFfc2VxKSkKKwkJcmVxX3NlcSA9IHNlcSArIDE7 CisKKwllLT5waXBlID0gcGlwZTsKKwllLT5ldmVudC5iYXNlLnR5cGUgPSBEUk1fRVZFTlRfQ1JU Q19TRVFVRU5DRTsKKwllLT5ldmVudC5iYXNlLmxlbmd0aCA9IHNpemVvZihlLT5ldmVudC5zZXEp OworCWUtPmV2ZW50LnNlcS51c2VyX2RhdGEgPSBxdWV1ZV9zZXEtPnVzZXJfZGF0YTsKKworCXNw aW5fbG9ja19pcnFzYXZlKCZkZXYtPmV2ZW50X2xvY2ssIHNwaW5fZmxhZ3MpOworCisJLyoKKwkg KiBkcm1fY3J0Y192Ymxhbmtfb2ZmKCkgbWlnaHQgaGF2ZSBiZWVuIGNhbGxlZCBhZnRlciB3ZSBj YWxsZWQKKwkgKiBkcm1fY3J0Y192YmxhbmtfZ2V0KCkuIGRybV9jcnRjX3ZibGFua19vZmYoKSBo b2xkcyBldmVudF9sb2NrIGFyb3VuZCB0aGUKKwkgKiB2YmxhbmsgZGlzYWJsZSwgc28gbm8gbmVl ZCBmb3IgZnVydGhlciBsb2NraW5nLiAgVGhlIHJlZmVyZW5jZSBmcm9tCisJICogZHJtX2NydGNf dmJsYW5rX2dldCgpIHByb3RlY3RzIGFnYWluc3QgdmJsYW5rIGRpc2FibGUgZnJvbSBhbm90aGVy IHNvdXJjZS4KKwkgKi8KKwlpZiAoIVJFQURfT05DRSh2YmxhbmstPmVuYWJsZWQpKSB7CisJCXJl dCA9IC1FSU5WQUw7CisJCWdvdG8gZXJyX3VubG9jazsKKwl9CisKKwlyZXQgPSBkcm1fZXZlbnRf cmVzZXJ2ZV9pbml0X2xvY2tlZChkZXYsIGZpbGVfcHJpdiwgJmUtPmJhc2UsCisJCQkJCSAgICAm ZS0+ZXZlbnQuYmFzZSk7CisKKwlpZiAocmV0KQorCQlnb3RvIGVycl91bmxvY2s7CisKKwllLT5z ZXF1ZW5jZSA9IHJlcV9zZXE7CisKKwlpZiAodmJsYW5rX3Bhc3NlZChzZXEsIHJlcV9zZXEpKSB7 CisJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CisJCXNlbmRfdmJsYW5rX2V2ZW50KGRldiwg ZSwgc2VxLCBub3cpOworCQlxdWV1ZV9zZXEtPnNlcXVlbmNlID0gc2VxOworCX0gZWxzZSB7CisJ CS8qIGRybV9oYW5kbGVfdmJsYW5rX2V2ZW50cyB3aWxsIGNhbGwgZHJtX3ZibGFua19wdXQgKi8K KwkJbGlzdF9hZGRfdGFpbCgmZS0+YmFzZS5saW5rLCAmZGV2LT52YmxhbmtfZXZlbnRfbGlzdCk7 CisJCXF1ZXVlX3NlcS0+c2VxdWVuY2UgPSByZXFfc2VxOworCX0KKworCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgc3Bpbl9mbGFncyk7CisJcmV0dXJuIDA7CisKK2Vy cl91bmxvY2s6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBzcGlu X2ZsYWdzKTsKKwlkcm1fY3J0Y192YmxhbmtfcHV0KGNydGMpOworZXJyX2ZyZWU6CisJa2ZyZWUo ZSk7CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV92Ymxhbmsu aCBiL2luY2x1ZGUvZHJtL2RybV92YmxhbmsuaAppbmRleCAzMDEzYzU1YWVjMWQuLjIwMjkzMTNi Y2U4OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oCisrKyBiL2luY2x1ZGUv ZHJtL2RybV92YmxhbmsuaApAQCAtNTcsNiArNTcsNyBAQCBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJs YW5rX2V2ZW50IHsKIAl1bmlvbiB7CiAJCXN0cnVjdCBkcm1fZXZlbnQgYmFzZTsKIAkJc3RydWN0 IGRybV9ldmVudF92YmxhbmsgdmJsOworCQlzdHJ1Y3QgZHJtX2V2ZW50X2NydGNfc2VxdWVuY2Ug c2VxOwogCX0gZXZlbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5o IGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaAppbmRleCAxMDE1OTNhYjEwYWMuLjI1NDc4NTYwNTEy YSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCkBAIC03MTgsNiArNzE4LDI3IEBAIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUg ewogCV9fdTMyIHBhZDsKIH07CiAKKy8qIFF1ZXJ5IGN1cnJlbnQgc2Nhbm91dCBzZXF1ZW5jZSBu dW1iZXIgKi8KK3N0cnVjdCBkcm1fY3J0Y19nZXRfc2VxdWVuY2UgeworCV9fdTMyIGNydGNfaWQ7 CQkvKiByZXF1ZXN0ZWQgY3J0Y19pZCAqLworCV9fdTMyIGFjdGl2ZTsJCS8qIHJldHVybjogY3J0 YyBvdXRwdXQgaXMgYWN0aXZlICovCisJX191NjQgc2VxdWVuY2U7CQkvKiByZXR1cm46IG1vc3Qg cmVjZW50IHZibGFuayBzZXF1ZW5jZSAqLworCV9fczY0IHNlcXVlbmNlX25zOwkvKiByZXR1cm46 IG1vc3QgcmVjZW50IHZibGFuayB0aW1lICovCit9OworCisvKiBRdWV1ZSBldmVudCB0byBiZSBk ZWxpdmVyZWQgYXQgc3BlY2lmaWVkIHNlcXVlbmNlICovCisKKyNkZWZpbmUgRFJNX0NSVENfU0VR VUVOQ0VfUkVMQVRJVkUJCTB4MDAwMDAwMDEJLyogc2VxdWVuY2UgaXMgcmVsYXRpdmUgdG8gY3Vy cmVudCAqLworI2RlZmluZSBEUk1fQ1JUQ19TRVFVRU5DRV9ORVhUX09OX01JU1MJCTB4MDAwMDAw MDIJLyogVXNlIG5leHQgc2VxdWVuY2UgaWYgd2UndmUgbWlzc2VkICovCisjZGVmaW5lIERSTV9D UlRDX1NFUVVFTkNFX0ZJUlNUX1BJWEVMX09VVAkweDAwMDAwMDA0CS8qIFNpZ25hbCB3aGVuIGZp cnN0IHBpeGVsIGlzIGRpc3BsYXllZCAqLworCitzdHJ1Y3QgZHJtX2NydGNfcXVldWVfc2VxdWVu Y2UgeworCV9fdTMyIGNydGNfaWQ7CisJX191MzIgZmxhZ3M7CisJX191NjQgc2VxdWVuY2U7CQkv KiBvbiBpbnB1dCwgdGFyZ2V0IHNlcXVlbmNlLiBvbiBvdXRwdXQsIGFjdHVhbCBzZXF1ZW5jZSAq LworCV9fdTY0IHVzZXJfZGF0YTsJLyogdXNlciBkYXRhIHBhc3NlZCB0byBldmVudCAqLworfTsK KwogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CiAjZW5kaWYKQEAgLTgwMCw2ICs4MjEsOSBA QCBleHRlcm4gIkMiIHsKIAogI2RlZmluZSBEUk1fSU9DVExfV0FJVF9WQkxBTksJCURSTV9JT1dS KDB4M2EsIHVuaW9uIGRybV93YWl0X3ZibGFuaykKIAorI2RlZmluZSBEUk1fSU9DVExfQ1JUQ19H RVRfU0VRVUVOQ0UJRFJNX0lPV1IoMHgzYiwgc3RydWN0IGRybV9jcnRjX2dldF9zZXF1ZW5jZSkK KyNkZWZpbmUgRFJNX0lPQ1RMX0NSVENfUVVFVUVfU0VRVUVOQ0UJRFJNX0lPV1IoMHgzYywgc3Ry dWN0IGRybV9jcnRjX3F1ZXVlX3NlcXVlbmNlKQorCiAjZGVmaW5lIERSTV9JT0NUTF9VUERBVEVf RFJBVwkJRFJNX0lPVygweDNmLCBzdHJ1Y3QgZHJtX3VwZGF0ZV9kcmF3KQogCiAjZGVmaW5lIERS TV9JT0NUTF9NT0RFX0dFVFJFU09VUkNFUwlEUk1fSU9XUigweEEwLCBzdHJ1Y3QgZHJtX21vZGVf Y2FyZF9yZXMpCkBAIC04NzEsNiArODk1LDcgQEAgc3RydWN0IGRybV9ldmVudCB7CiAKICNkZWZp bmUgRFJNX0VWRU5UX1ZCTEFOSyAweDAxCiAjZGVmaW5lIERSTV9FVkVOVF9GTElQX0NPTVBMRVRF IDB4MDIKKyNkZWZpbmUgRFJNX0VWRU5UX0NSVENfU0VRVUVOQ0UJMHgwMwogCiBzdHJ1Y3QgZHJt X2V2ZW50X3ZibGFuayB7CiAJc3RydWN0IGRybV9ldmVudCBiYXNlOwpAQCAtODgxLDYgKzkwNiwx MyBAQCBzdHJ1Y3QgZHJtX2V2ZW50X3ZibGFuayB7CiAJX191MzIgY3J0Y19pZDsgLyogMCBvbiBv bGRlciBrZXJuZWxzIHRoYXQgZG8gbm90IHN1cHBvcnQgdGhpcyAqLwogfTsKIAorc3RydWN0IGRy bV9ldmVudF9jcnRjX3NlcXVlbmNlIHsKKwlzdHJ1Y3QgZHJtX2V2ZW50CWJhc2U7CisJX191NjQJ CQl1c2VyX2RhdGE7CisJX19zNjQJCQl0aW1lX25zOworCV9fdTY0CQkJc2VxdWVuY2U7Cit9Owor CiAvKiB0eXBlZGVmIGFyZWEgKi8KICNpZm5kZWYgX19LRVJORUxfXwogdHlwZWRlZiBzdHJ1Y3Qg ZHJtX2NsaXBfcmVjdCBkcm1fY2xpcF9yZWN0X3Q7Ci0tIAoyLjEzLjMKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=