From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Packard Subject: [PATCH 1/3] drm: Widen vblank count to 64-bits [v3] Date: Thu, 12 Oct 2017 17:50:14 -0700 Message-ID: <20171013005016.3715-2-keithp@keithp.com> References: <20171013005016.3715-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 5A4DE6E9E0 for ; Fri, 13 Oct 2017 00:50:24 +0000 (UTC) In-Reply-To: <20171013005016.3715-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 VGhpcyBtb2RpZmllcyB0aGUgZGF0YXR5cGVzIHVzZWQgYnkgdGhlIHZibGFuayBjb2RlIHRvIHBy b3ZpZGUgNjQgYml0cwpvZiB2YmxhbmsgY291bnQuCgpUaGUgZHJpdmVyIGludGVyZmFjZXMgaGF2 ZSBiZWVuIGxlZnQgdXNpbmcgMzIgYml0cyBvZiB2YmxhbmsgY291bnQ7CmFsbCBvZiB0aGUgY29k ZSBuZWNlc3NhcnkgdG8gd2lkZW4gdGhhdCB2YWx1ZSBmb3IgdGhlIHVzZXIgQVBJIHdhcwphbHJl YWR5IGluY2x1ZGVkIHRvIGhhbmRsZSBkZXZpY2VzIHJldHVybmluZyBmZXdlciB0aGFuIDMyLWJp dHMuCgpUaGlzIHdpbGwgcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IGRhdGF0eXBlcyBmb3IgdGhlIFZ1 bGthbiBBUEkuCgp2MjoKCiAqIFJlLXdyaXRlIHdhaXRfdmJsYW5rIGlvY3RsIHRvIEFCU09MVVRF IHNlcXVlbmNlCgogICAgV2hlbiBhbiBhcHBsaWNhdGlvbiB1c2VzIHRoZSBXQUlUX1ZCTEFOSyBp b2N0bCB3aXRoIFJFTEFUSVZFCiAgICBvciBORVhUT05NSVNTIGJpdHMgc2V0LCB0aGUgdGFyZ2V0 IHZibGFuayBpbnRlcnZhbCBpcyB1cGRhdGVkCiAgICB3aXRoaW4gdGhlIGtlcm5lbC4gV2UgbmVl ZCB0byB3cml0ZSB0aGF0IHRhcmdldCBiYWNrIHRvIHRoZQogICAgaW9jdGwgYnVmZmVyIGFuZCB1 cGRhdGUgdGhlIGZsYWdzIGJpdHMgc28gdGhhdCBpZiB0aGUgd2FpdCBpcwogICAgaW50ZXJydXB0 ZWQgYnkgYSBzaWduYWwsIHdoZW4gaXQgaXMgcmUtc3RhcnRlZCwgaXQgd2lsbCB0YXJnZXQKICAg IHByZWNpc2VseSB0aGUgc2FtZSB2YmxhbmsgY291bnQgYXMgYmVmb3JlLgoKICogTGVhdmUgZHJp dmVyIEFQSSB3aXRoIDMyLWJpdCB2YmxhbmsgY291bnQKCnYzOgoKICogUmViYXNlIG9uIHRvcCBv ZiBBcm5kIEJlcmdtYW5uJ3MgcGF0Y2ggd2hpY2ggaGFkCiAgIHRoZSBzd2l0Y2ggdG8ga3RpbWVf dCBwYXJ0cy4KClN1Z2dlc3RlZC1ieTogIE1pY2hlbCBEw6RuemVyIDxtaWNoZWxAZGFlbnplci5u ZXQ+ClN1Z2dlc3RlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpTaWduZWQt b2ZmLWJ5OiBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vZHJtX3ZibGFuay5jIHwgMTA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0KIGluY2x1ZGUvZHJtL2RybV92YmxhbmsuaCAgICAgfCAgMTAgKysrLS0KIDIg ZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f dmJsYW5rLmMKaW5kZXggODEwYTkzZmM1NThiLi40NzQ2MDU4OWQ0Y2QgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92Ymxh bmsuYwpAQCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2Nv dW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAogCX0KIAogCURS TV9ERUJVR19WQkwoInVwZGF0aW5nIHZibGFuayBjb3VudCBvbiBjcnRjICV1OiIKLQkJICAgICAg IiBjdXJyZW50PSV1LCBkaWZmPSV1LCBodz0ldSBod19sYXN0PSV1XG4iLAorCQkgICAgICAiIGN1 cnJlbnQ9JWxsdSwgZGlmZj0ldSwgaHc9JXUgaHdfbGFzdD0ldVxuIiwKIAkJICAgICAgcGlwZSwg dmJsYW5rLT5jb3VudCwgZGlmZiwgY3VyX3ZibGFuaywgdmJsYW5rLT5sYXN0KTsKIAogCWlmIChk aWZmID09IDApIHsKQEAgLTc0MCwxNyArNzQwLDMxIEBAIGRybV9nZXRfbGFzdF92Ymx0aW1lc3Rh bXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCiAgKiBSZXR1cm5z OgogICogVGhlIHNvZnR3YXJlIHZibGFuayBjb3VudGVyLgogICovCi11MzIgZHJtX2NydGNfdmJs YW5rX2NvdW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKK3U2NCBkcm1fY3J0Y192YmxhbmtfY291 bnQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXJldHVybiBkcm1fdmJsYW5rX2NvdW50KGNy dGMtPmRldiwgZHJtX2NydGNfaW5kZXgoY3J0YykpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fY3J0 Y192YmxhbmtfY291bnQpOwogCi1zdGF0aWMgdTMyIGRybV92YmxhbmtfY291bnRfYW5kX3RpbWUo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCisvKioKKyAqIGRybV92 YmxhbmtfY291bnRfYW5kX3RpbWUgLSByZXRyaWV2ZSAiY29va2VkIiB2YmxhbmsgY291bnRlciB2 YWx1ZSBhbmQgdGhlCisgKiAgICAgc3lzdGVtIHRpbWVzdGFtcCBjb3JyZXNwb25kaW5nIHRvIHRo YXQgdmJsYW5rIGNvdW50ZXIgdmFsdWUuCisgKiBAZGV2OiBEUk0gZGV2aWNlCisgKiBAcGlwZTog aW5kZXggb2YgQ1JUQyB3aG9zZSBjb3VudGVyIHRvIHJldHJpZXZlCisgKiBAdmJsYW5rdGltZTog UG9pbnRlciB0byBrdGltZV90IHRvIHJlY2VpdmUgdGhlIHZibGFuayB0aW1lc3RhbXAuCisgKgor ICogRmV0Y2hlcyB0aGUgImNvb2tlZCIgdmJsYW5rIGNvdW50IHZhbHVlIHRoYXQgcmVwcmVzZW50 cyB0aGUgbnVtYmVyIG9mCisgKiB2YmxhbmsgZXZlbnRzIHNpbmNlIHRoZSBzeXN0ZW0gd2FzIGJv b3RlZCwgaW5jbHVkaW5nIGxvc3QgZXZlbnRzIGR1ZSB0bworICogbW9kZXNldHRpbmcgYWN0aXZp dHkuIFJldHVybnMgY29ycmVzcG9uZGluZyBzeXN0ZW0gdGltZXN0YW1wIG9mIHRoZSB0aW1lCisg KiBvZiB0aGUgdmJsYW5rIGludGVydmFsIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIGN1cnJlbnQg dmJsYW5rIGNvdW50ZXIgdmFsdWUuCisgKgorICogVGhpcyBpcyB0aGUgbGVnYWN5IHZlcnNpb24g b2YgZHJtX2NydGNfdmJsYW5rX2NvdW50X2FuZF90aW1lKCkuCisgKi8KK3N0YXRpYyB1NjQgZHJt X3ZibGFua19jb3VudF9hbmRfdGltZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSwKIAkJCQkgICAgIGt0aW1lX3QgKnZibGFua3RpbWUpCiB7CiAJc3RydWN0IGRybV92 YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJsYW5rW3BpcGVdOwotCXUzMiB2YmxhbmtfY291 bnQ7CisJdTY0IHZibGFua19jb3VudDsKIAl1bnNpZ25lZCBpbnQgc2VxOwogCiAJaWYgKFdBUk5f T04ocGlwZSA+PSBkZXYtPm51bV9jcnRjcykpIHsKQEAgLTc3OCw3ICs3OTIsNyBAQCBzdGF0aWMg dTMyIGRybV92YmxhbmtfY291bnRfYW5kX3RpbWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHBpcGUsCiAgKiBtb2Rlc2V0dGluZyBhY3Rpdml0eS4gUmV0dXJucyBjb3JyZXNw b25kaW5nIHN5c3RlbSB0aW1lc3RhbXAgb2YgdGhlIHRpbWUKICAqIG9mIHRoZSB2YmxhbmsgaW50 ZXJ2YWwgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgY3VycmVudCB2YmxhbmsgY291bnRlciB2YWx1 ZS4KICAqLwotdTMyIGRybV9jcnRjX3ZibGFua19jb3VudF9hbmRfdGltZShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCit1NjQgZHJtX2NydGNfdmJsYW5rX2NvdW50X2FuZF90aW1lKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAkJCQkgICBrdGltZV90ICp2Ymxhbmt0aW1lKQogewogCXJldHVybiBkcm1f dmJsYW5rX2NvdW50X2FuZF90aW1lKGNydGMtPmRldiwgZHJtX2NydGNfaW5kZXgoY3J0YyksCkBA IC03ODgsNyArODAyLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfY291bnRfYW5k X3RpbWUpOwogCiBzdGF0aWMgdm9pZCBzZW5kX3ZibGFua19ldmVudChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplLAotCQl1bnNpZ25l ZCBsb25nIHNlcSwga3RpbWVfdCBub3cpCisJCXU2NCBzZXEsIGt0aW1lX3Qgbm93KQogewogCXN0 cnVjdCB0aW1lc3BlYzY0IHR2ID0ga3RpbWVfdG9fdGltZXNwZWM2NChub3cpOwogCkBAIC04NTQs NyArODY4LDcgQEAgdm9pZCBkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJmRldi0+ZXZlbnRfbG9jayk7CiAKIAllLT5w aXBlID0gcGlwZTsKLQllLT5ldmVudC5zZXF1ZW5jZSA9IGRybV92YmxhbmtfY291bnQoZGV2LCBw aXBlKTsKKwllLT5zZXF1ZW5jZSA9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKTsKIAllLT5l dmVudC5jcnRjX2lkID0gY3J0Yy0+YmFzZS5pZDsKIAlsaXN0X2FkZF90YWlsKCZlLT5iYXNlLmxp bmssICZkZXYtPnZibGFua19ldmVudF9saXN0KTsKIH0KQEAgLTg3NSw3ICs4ODksOCBAQCB2b2lk IGRybV9jcnRjX3NlbmRfdmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQlz dHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplKQogewogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5kZXY7Ci0JdW5zaWduZWQgaW50IHNlcSwgcGlwZSA9IGRybV9jcnRjX2lu ZGV4KGNydGMpOworCXU2NCBzZXE7CisJdW5zaWduZWQgaW50IHBpcGUgPSBkcm1fY3J0Y19pbmRl eChjcnRjKTsKIAlrdGltZV90IG5vdzsKIAogCWlmIChkZXYtPm51bV9jcnRjcyA+IDApIHsKQEAg LTEwODgsNyArMTEwMyw3IEBAIHZvaWQgZHJtX2NydGNfdmJsYW5rX29mZihzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCiAKIAlrdGltZV90IG5vdzsKIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwotCXVu c2lnbmVkIGludCBzZXE7CisJdTY0IHNlcTsKIAogCWlmIChXQVJOX09OKHBpcGUgPj0gZGV2LT5u dW1fY3J0Y3MpKQogCQlyZXR1cm47CkBAIC0xMTIzLDggKzExMzgsOCBAQCB2b2lkIGRybV9jcnRj X3ZibGFua19vZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlpZiAoZS0+cGlwZSAhPSBwaXBl KQogCQkJY29udGludWU7CiAJCURSTV9ERUJVRygiU2VuZGluZyBwcmVtYXR1cmUgdmJsYW5rIGV2 ZW50IG9uIGRpc2FibGU6ICIKLQkJCSAgIndhbnRlZCAldSwgY3VycmVudCAldVxuIiwKLQkJCSAg ZS0+ZXZlbnQuc2VxdWVuY2UsIHNlcSk7CisJCQkgICJ3YW50ZWQgJWxsdSwgY3VycmVudCAlbGx1 XG4iLAorCQkJICBlLT5zZXF1ZW5jZSwgc2VxKTsKIAkJbGlzdF9kZWwoJmUtPmJhc2UubGluayk7 CiAJCWRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7CiAJCXNlbmRfdmJsYW5rX2V2ZW50KGRldiwg ZSwgc2VxLCBub3cpOwpAQCAtMTI5NiwxMiArMTMxMSwxMyBAQCBpbnQgZHJtX2xlZ2FjeV9tb2Rl c2V0X2N0bF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCXJldHVy biAwOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgdmJsYW5rX3Bhc3NlZCh1MzIgc2VxLCB1MzIg cmVmKQorc3RhdGljIGlubGluZSBib29sIHZibGFua19wYXNzZWQodTY0IHNlcSwgdTY0IHJlZikK IHsKIAlyZXR1cm4gKHNlcSAtIHJlZikgPD0gKDEgPDwgMjMpOwogfQogCiBzdGF0aWMgaW50IGRy bV9xdWV1ZV92YmxhbmtfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUsCisJCQkJICB1NjQgcmVxX3NlcSwKIAkJCQkgIHVuaW9uIGRybV93YWl0X3ZibGFuayAq dmJsd2FpdCwKIAkJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogewpAQCAtMTMwOSw3 ICsxMzI1LDcgQEAgc3RhdGljIGludCBkcm1fcXVldWVfdmJsYW5rX2V2ZW50KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAogCXN0cnVjdCBkcm1fcGVuZGluZ192Ymxh bmtfZXZlbnQgKmU7CiAJa3RpbWVfdCBub3c7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNp Z25lZCBpbnQgc2VxOworCXU2NCBzZXE7CiAJaW50IHJldDsKIAogCWUgPSBremFsbG9jKHNpemVv ZigqZSksIEdGUF9LRVJORUwpOwpAQCAtMTM0NCwyMSArMTM2MCwyMCBAQCBzdGF0aWMgaW50IGRy bV9xdWV1ZV92YmxhbmtfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUsCiAKIAlzZXEgPSBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKGRldiwgcGlwZSwgJm5v dyk7CiAKLQlEUk1fREVCVUcoImV2ZW50IG9uIHZibGFuayBjb3VudCAldSwgY3VycmVudCAldSwg Y3J0YyAldVxuIiwKLQkJICB2Ymx3YWl0LT5yZXF1ZXN0LnNlcXVlbmNlLCBzZXEsIHBpcGUpOwor CURSTV9ERUJVRygiZXZlbnQgb24gdmJsYW5rIGNvdW50ICVsbHUsIGN1cnJlbnQgJWxsdSwgY3J0 YyAldVxuIiwKKwkJICByZXFfc2VxLCBzZXEsIHBpcGUpOwogCi0JdHJhY2VfZHJtX3ZibGFua19l dmVudF9xdWV1ZWQoZmlsZV9wcml2LCBwaXBlLAotCQkJCSAgICAgIHZibHdhaXQtPnJlcXVlc3Qu c2VxdWVuY2UpOworCXRyYWNlX2RybV92YmxhbmtfZXZlbnRfcXVldWVkKGZpbGVfcHJpdiwgcGlw ZSwgcmVxX3NlcSk7CiAKLQllLT5ldmVudC5zZXF1ZW5jZSA9IHZibHdhaXQtPnJlcXVlc3Quc2Vx dWVuY2U7Ci0JaWYgKHZibGFua19wYXNzZWQoc2VxLCB2Ymx3YWl0LT5yZXF1ZXN0LnNlcXVlbmNl KSkgeworCWUtPnNlcXVlbmNlID0gcmVxX3NlcTsKKwlpZiAodmJsYW5rX3Bhc3NlZChzZXEsIHJl cV9zZXEpKSB7CiAJCWRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7CiAJCXNlbmRfdmJsYW5rX2V2 ZW50KGRldiwgZSwgc2VxLCBub3cpOwogCQl2Ymx3YWl0LT5yZXBseS5zZXF1ZW5jZSA9IHNlcTsK IAl9IGVsc2UgewogCQkvKiBkcm1faGFuZGxlX3ZibGFua19ldmVudHMgd2lsbCBjYWxsIGRybV92 YmxhbmtfcHV0ICovCiAJCWxpc3RfYWRkX3RhaWwoJmUtPmJhc2UubGluaywgJmRldi0+dmJsYW5r X2V2ZW50X2xpc3QpOwotCQl2Ymx3YWl0LT5yZXBseS5zZXF1ZW5jZSA9IHZibHdhaXQtPnJlcXVl c3Quc2VxdWVuY2U7CisJCXZibHdhaXQtPnJlcGx5LnNlcXVlbmNlID0gcmVxX3NlcTsKIAl9CiAK IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKQEAgLTEz ODQsNiArMTM5OSwyMiBAQCBzdGF0aWMgYm9vbCBkcm1fd2FpdF92YmxhbmtfaXNfcXVlcnkodW5p b24gZHJtX3dhaXRfdmJsYW5rICp2Ymx3YWl0KQogCQkJCQkgIF9EUk1fVkJMQU5LX05FWFRPTk1J U1MpKTsKIH0KIAorLyoKKyAqIFdpZGVuIGEgMzItYml0IHBhcmFtIHRvIDY0LWJpdHMuCisgKgor ICogXHBhcmFtIG5hcnJvdyAzMi1iaXQgdmFsdWUgKG1pc3NpbmcgdXBwZXIgMzIgYml0cykKKyAq IFxwYXJhbSBuZWFyIDY0LWJpdCB2YWx1ZSB0aGF0IHNob3VsZCBiZSAnY2xvc2UnIHRvIG5lYXIK KyAqCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSA2NC1iaXQgdmFsdWUgdXNpbmcgdGhlIGxv d2VyIDMyLWJpdHMgZnJvbQorICogJ25hcnJvdycgYW5kIGNvbnN0cnVjdGluZyB0aGUgdXBwZXIg MzItYml0cyBzbyB0aGF0IHRoZSByZXN1bHQgaXMKKyAqIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRv ICduZWFyJy4KKyAqLworCitzdGF0aWMgdTY0IHdpZGVuXzMyX3RvXzY0KHUzMiBuYXJyb3csIHU2 NCBuZWFyKQoreworCXJldHVybiBuZWFyICsgKHMzMikgKG5hcnJvdyAtIG5lYXIpOworfQorCiBz dGF0aWMgdm9pZCBkcm1fd2FpdF92YmxhbmtfcmVwbHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dW5zaWduZWQgaW50IHBpcGUsCiAJCQkJICBzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcGx5ICpy ZXBseSkKIHsKQEAgLTE0MDcsNyArMTQzOCw4IEBAIGludCBkcm1fd2FpdF92YmxhbmtfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlzdHJ1Y3QgZHJtX3ZibGFua19j cnRjICp2Ymxhbms7CiAJdW5pb24gZHJtX3dhaXRfdmJsYW5rICp2Ymx3YWl0ID0gZGF0YTsKIAlp bnQgcmV0OwotCXVuc2lnbmVkIGludCBmbGFncywgc2VxLCBwaXBlLCBoaWdoX3BpcGU7CisJdTY0 IHJlcV9zZXEsIHNlcTsKKwl1bnNpZ25lZCBpbnQgZmxhZ3MsIHBpcGUsIGhpZ2hfcGlwZTsKIAog CWlmICghZGV2LT5pcnFfZW5hYmxlZCkKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xNDU1LDkgKzE0 ODcsMTIgQEAgaW50IGRybV93YWl0X3ZibGFua19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCiAJc3dpdGNoICh2Ymx3YWl0LT5yZXF1ZXN0LnR5cGUgJiBfRFJNX1ZC TEFOS19UWVBFU19NQVNLKSB7CiAJY2FzZSBfRFJNX1ZCTEFOS19SRUxBVElWRToKLQkJdmJsd2Fp dC0+cmVxdWVzdC5zZXF1ZW5jZSArPSBzZXE7CisJCXJlcV9zZXEgPSBzZXEgKyB2Ymx3YWl0LT5y ZXF1ZXN0LnNlcXVlbmNlOworCQl2Ymx3YWl0LT5yZXF1ZXN0LnNlcXVlbmNlID0gcmVxX3NlcTsK IAkJdmJsd2FpdC0+cmVxdWVzdC50eXBlICY9IH5fRFJNX1ZCTEFOS19SRUxBVElWRTsKKwkJYnJl YWs7CiAJY2FzZSBfRFJNX1ZCTEFOS19BQlNPTFVURToKKwkJcmVxX3NlcSA9IHdpZGVuXzMyX3Rv XzY0KHZibHdhaXQtPnJlcXVlc3Quc2VxdWVuY2UsIHNlcSk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6 CiAJCXJldCA9IC1FSU5WQUw7CkBAIC0xNDY1LDIyICsxNTAwLDI1IEBAIGludCBkcm1fd2FpdF92 YmxhbmtfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAl9CiAKIAlp ZiAoKGZsYWdzICYgX0RSTV9WQkxBTktfTkVYVE9OTUlTUykgJiYKLQkgICAgdmJsYW5rX3Bhc3Nl ZChzZXEsIHZibHdhaXQtPnJlcXVlc3Quc2VxdWVuY2UpKQotCQl2Ymx3YWl0LT5yZXF1ZXN0LnNl cXVlbmNlID0gc2VxICsgMTsKKwkgICAgdmJsYW5rX3Bhc3NlZChzZXEsIHJlcV9zZXEpKSB7CisJ CXJlcV9zZXEgPSBzZXEgKyAxOworCQl2Ymx3YWl0LT5yZXF1ZXN0LnR5cGUgJj0gfl9EUk1fVkJM QU5LX05FWFRPTk1JU1M7CisJCXZibHdhaXQtPnJlcXVlc3Quc2VxdWVuY2UgPSByZXFfc2VxOwor CX0KIAogCWlmIChmbGFncyAmIF9EUk1fVkJMQU5LX0VWRU5UKSB7CiAJCS8qIG11c3QgaG9sZCBv biB0byB0aGUgdmJsYW5rIHJlZiB1bnRpbCB0aGUgZXZlbnQgZmlyZXMKIAkJICogZHJtX3ZibGFu a19wdXQgd2lsbCBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkKIAkJICovCi0JCXJldHVybiBkcm1f cXVldWVfdmJsYW5rX2V2ZW50KGRldiwgcGlwZSwgdmJsd2FpdCwgZmlsZV9wcml2KTsKKwkJcmV0 dXJuIGRybV9xdWV1ZV92YmxhbmtfZXZlbnQoZGV2LCBwaXBlLCByZXFfc2VxLCB2Ymx3YWl0LCBm aWxlX3ByaXYpOwogCX0KIAotCWlmICh2Ymx3YWl0LT5yZXF1ZXN0LnNlcXVlbmNlICE9IHNlcSkg ewotCQlEUk1fREVCVUcoIndhaXRpbmcgb24gdmJsYW5rIGNvdW50ICV1LCBjcnRjICV1XG4iLAot CQkJICB2Ymx3YWl0LT5yZXF1ZXN0LnNlcXVlbmNlLCBwaXBlKTsKKwlpZiAocmVxX3NlcSAhPSBz ZXEpIHsKKwkJRFJNX0RFQlVHKCJ3YWl0aW5nIG9uIHZibGFuayBjb3VudCAlbGx1LCBjcnRjICV1 XG4iLAorCQkJICByZXFfc2VxLCBwaXBlKTsKIAkJRFJNX1dBSVRfT04ocmV0LCB2YmxhbmstPnF1 ZXVlLCAzICogSFosCiAJCQkgICAgdmJsYW5rX3Bhc3NlZChkcm1fdmJsYW5rX2NvdW50KGRldiwg cGlwZSksCi0JCQkJCSAgdmJsd2FpdC0+cmVxdWVzdC5zZXF1ZW5jZSkgfHwKKwkJCQkJICByZXFf c2VxKSB8fAogCQkJICAgICFSRUFEX09OQ0UodmJsYW5rLT5lbmFibGVkKSk7CiAJfQogCkBAIC0x NTAyLDcgKzE1NDAsNyBAQCBzdGF0aWMgdm9pZCBkcm1faGFuZGxlX3ZibGFua19ldmVudHMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiB7CiAJc3RydWN0IGRybV9w ZW5kaW5nX3ZibGFua19ldmVudCAqZSwgKnQ7CiAJa3RpbWVfdCBub3c7Ci0JdW5zaWduZWQgaW50 IHNlcTsKKwl1NjQgc2VxOwogCiAJYXNzZXJ0X3NwaW5fbG9ja2VkKCZkZXYtPmV2ZW50X2xvY2sp OwogCkBAIC0xNTExLDExICsxNTQ5LDExIEBAIHN0YXRpYyB2b2lkIGRybV9oYW5kbGVfdmJsYW5r X2V2ZW50cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKIAlsaXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZSwgdCwgJmRldi0+dmJsYW5rX2V2ZW50X2xpc3QsIGJhc2Uu bGluaykgewogCQlpZiAoZS0+cGlwZSAhPSBwaXBlKQogCQkJY29udGludWU7Ci0JCWlmICghdmJs YW5rX3Bhc3NlZChzZXEsIGUtPmV2ZW50LnNlcXVlbmNlKSkKKwkJaWYgKCF2YmxhbmtfcGFzc2Vk KHNlcSwgZS0+c2VxdWVuY2UpKQogCQkJY29udGludWU7CiAKLQkJRFJNX0RFQlVHKCJ2Ymxhbmsg ZXZlbnQgb24gJXUsIGN1cnJlbnQgJXVcbiIsCi0JCQkgIGUtPmV2ZW50LnNlcXVlbmNlLCBzZXEp OworCQlEUk1fREVCVUcoInZibGFuayBldmVudCBvbiAlbGx1LCBjdXJyZW50ICVsbHVcbiIsCisJ CQkgIGUtPnNlcXVlbmNlLCBzZXEpOwogCiAJCWxpc3RfZGVsKCZlLT5iYXNlLmxpbmspOwogCQlk cm1fdmJsYW5rX3B1dChkZXYsIHBpcGUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3Zi bGFuay5oIGIvaW5jbHVkZS9kcm0vZHJtX3ZibGFuay5oCmluZGV4IDZhNThlMmU5MWEwZi4uY2Nl NTMxMzA1MTBmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fdmJsYW5rLmgKKysrIGIvaW5j bHVkZS9kcm0vZHJtX3ZibGFuay5oCkBAIC00Nyw2ICs0NywxMCBAQCBzdHJ1Y3QgZHJtX3BlbmRp bmdfdmJsYW5rX2V2ZW50IHsKIAkgKiBAcGlwZTogZHJtX2NydGNfaW5kZXgoKSBvZiB0aGUgJmRy bV9jcnRjIHRoaXMgZXZlbnQgaXMgZm9yLgogCSAqLwogCXVuc2lnbmVkIGludCBwaXBlOworCS8q KgorCSAqIEBzZXF1ZW5jZTogZnJhbWUgZXZlbnQgc2hvdWxkIGJlIHRyaWdnZXJlZCBhdAorCSAq LworCXU2NCBzZXF1ZW5jZTsKIAkvKioKIAkgKiBAZXZlbnQ6IEFjdHVhbCBldmVudCB3aGljaCB3 aWxsIGJlIHNlbnQgdG8gdXNlcnNwYWNlLgogCSAqLwpAQCAtODgsNyArOTIsNyBAQCBzdHJ1Y3Qg ZHJtX3ZibGFua19jcnRjIHsKIAkvKioKIAkgKiBAY291bnQ6IEN1cnJlbnQgc29mdHdhcmUgdmJs YW5rIGNvdW50ZXIuCiAJICovCi0JdTMyIGNvdW50OworCXU2NCBjb3VudDsKIAkvKioKIAkgKiBA dGltZTogVmJsYW5rIHRpbWVzdGFtcCBjb3JyZXNwb25kaW5nIHRvIEBjb3VudC4KIAkgKi8KQEAg LTE1Miw4ICsxNTYsOCBAQCBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjIHsKIH07CiAKIGludCBkcm1f dmJsYW5rX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG51bV9jcnRj cyk7Ci11MzIgZHJtX2NydGNfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Ci11 MzIgZHJtX2NydGNfdmJsYW5rX2NvdW50X2FuZF90aW1lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK K3U2NCBkcm1fY3J0Y192YmxhbmtfY291bnQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKK3U2NCBk cm1fY3J0Y192YmxhbmtfY291bnRfYW5kX3RpbWUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJ CSAgIGt0aW1lX3QgKnZibGFua3RpbWUpOwogdm9pZCBkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVu dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkgICAgICAgc3RydWN0IGRybV9wZW5kaW5nX3Zi bGFua19ldmVudCAqZSk7Ci0tIAoyLjE1LjAucmMwCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK