From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [RFC PATCH 1/3] drm/panel: Pull common panel code out into helpers Date: Thu, 16 Mar 2017 18:08:31 -0400 Message-ID: <20170316220837.17347-2-seanpaul@chromium.org> References: <20170316220837.17347-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-x22f.google.com (mail-qk0-x22f.google.com [IPv6:2607:f8b0:400d:c09::22f]) by gabe.freedesktop.org (Postfix) with ESMTPS id 921886EC12 for ; Thu, 16 Mar 2017 22:09:12 +0000 (UTC) Received: by mail-qk0-x22f.google.com with SMTP id y76so51622827qkb.0 for ; Thu, 16 Mar 2017 15:09:12 -0700 (PDT) In-Reply-To: <20170316220837.17347-1-seanpaul@chromium.org> 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 List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBwdWxscyB0aGUgcmVndWxhdG9yL2JhY2tsaWdodC9lbmFibGVfZ3BpbyBjb2Rl IG91dCBvZgpwYW5lbC1zaW1wbGUgYW5kIGNyZWF0ZXMgYSBuZXcgcGFuZWwtY29tbW9uIGhlbHBl ciB3aXRoIGl0LiBUaGlzCmhlbHBlciB3aWxsIGJlIHVzZWZ1bCB0byB0aGUgbW9yZSBjb21wbGlj YXRlZCBkcml2ZXJzIHdoaWNoIGNhbm5vdAp1c2UgcGFuZWwtc2ltcGxlLgoKU2lnbmVkLW9mZi1i eTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJt L3BhbmVsL0tjb25maWcgICAgICAgIHwgIDIwICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwv TWFrZWZpbGUgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWNvbW1v bi5jIHwgMTQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dw dS9kcm0vcGFuZWwvcGFuZWwtY29tbW9uLmggfCAgNDQgKysrKysrKysrKysKIGRyaXZlcnMvZ3B1 L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYyB8IDExMiArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogNSBmaWxlcyBjaGFuZ2VkLCAyMjUgaW5zZXJ0aW9ucygrKSwgMTAxIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1jb21tb24uYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1jb21tb24uaAoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnIGIvZHJpdmVycy9ncHUv ZHJtL3BhbmVsL0tjb25maWcKaW5kZXggNjJhYmE5NzZlNzQ0Li5iZTg1OTA3MjQwNDIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9wYW5lbC9LY29uZmlnCkBAIC03LDE2ICs3LDI2IEBAIGNvbmZpZyBEUk1fUEFORUwKIG1lbnUg IkRpc3BsYXkgUGFuZWxzIgogCWRlcGVuZHMgb24gRFJNICYmIERSTV9QQU5FTAogCitjb25maWcg RFJNX1BBTkVMX0NPTU1PTgorCWJvb2wKKwlkZXBlbmRzIG9uIE9GCisJZGVwZW5kcyBvbiBCQUNL TElHSFRfQ0xBU1NfREVWSUNFCisJc2VsZWN0IFZJREVPTU9ERV9IRUxQRVJTCisJaGVscAorCSAg Q29tbW9uIERSTSBwYW5lbCBoZWxwZXJzIGZvciBwYW5lbHMgdXNpbmcgYSByZWd1bGF0b3IgYW5k IGEgR1BJTyB0bworCSAgYmUgcG93ZXJlZCB1cC4gT3B0aW9uYWxseSBhIGJhY2tsaWdodCBjYW4g YmUgYXR0YWNoZWQgc28gdGhhdCBpdCBjYW4KKwkgIGJlIGF1dG9tYXRpY2FsbHkgdHVybmVkIG9m ZiB3aGVuIHRoZSBwYW5lbCBnb2VzIGludG8gYSBsb3cgcG93ZXIKKwkgIHN0YXRlLgorCiBjb25m aWcgRFJNX1BBTkVMX1NJTVBMRQogCXRyaXN0YXRlICJzdXBwb3J0IGZvciBzaW1wbGUgcGFuZWxz IgogCWRlcGVuZHMgb24gT0YKLQlkZXBlbmRzIG9uIEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKKwlz ZWxlY3QgRFJNX1BBTkVMX0NPTU1PTgogCXNlbGVjdCBWSURFT01PREVfSEVMUEVSUwogCWhlbHAK LQkgIERSTSBwYW5lbCBkcml2ZXIgZm9yIGR1bWIgcGFuZWxzIHRoYXQgbmVlZCBhdCBtb3N0IGEg cmVndWxhdG9yIGFuZAotCSAgYSBHUElPIHRvIGJlIHBvd2VyZWQgdXAuIE9wdGlvbmFsbHkgYSBi YWNrbGlnaHQgY2FuIGJlIGF0dGFjaGVkIHNvCi0JICB0aGF0IGl0IGNhbiBiZSBhdXRvbWF0aWNh bGx5IHR1cm5lZCBvZmYgd2hlbiB0aGUgcGFuZWwgZ29lcyBpbnRvIGEKLQkgIGxvdyBwb3dlciBz dGF0ZS4KKwkgIERSTSBwYW5lbCBkcml2ZXIgZm9yIGR1bWIgcGFuZWxzIHRoYXQgYXJlIG5vdCBt b3JlIGNvbXBsaWNhdGVkIHRoYW4KKwkgIHdoYXQgdGhlIGNvbW1vbiBoZWxwZXJzIHByb3ZpZGUg Zm9yIHBvd2VyIG9uL29mZi4gQWxsb3dzIGZvciBtb2RlCisJICBwcm9iaW5nIHZpYSBkZGMgYnVz LCBvciB1c2luZyBmaXhlZCBtb2Rlcy4KIAogY29uZmlnIERSTV9QQU5FTF9KRElfTFQwNzBNRTA1 MDAwCiAJdHJpc3RhdGUgIkpESSBMVDA3ME1FMDUwMDAgV1VYR0EgRFNJIHBhbmVsIgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL01ha2VmaWxlCmluZGV4IGE1YzdlYzAyMzZlMC4uNDhjODRkYjg4YzQ4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL01ha2VmaWxlCkBAIC0xLDMgKzEsNCBAQAorb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9DT01N T04pICs9IHBhbmVsLWNvbW1vbi5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX1NJTVBMRSkgKz0g cGFuZWwtc2ltcGxlLm8KIG9iai0kKENPTkZJR19EUk1fUEFORUxfSkRJX0xUMDcwTUUwNTAwMCkg Kz0gcGFuZWwtamRpLWx0MDcwbWUwNTAwMC5vCiBvYmotJChDT05GSUdfRFJNX1BBTkVMX0xHX0xH NDU3MykgKz0gcGFuZWwtbGctbGc0NTczLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1jb21tb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1jb21tb24u YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjI5NzlkNzQzOWJkYwot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1jb21tb24uYwpA QCAtMCwwICsxLDE0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBHb29nbGUsIEluYy4K KyAqCisgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGFuZAorICogbWF5IGJlIGNvcGllZCwgZGlz dHJpYnV0ZWQsIGFuZCBtb2RpZmllZCB1bmRlciB0aG9zZSB0ZXJtcy4KKyAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KKyNpbmNsdWRl IDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KKyNpbmNs dWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgor CisjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgorCisjaW5jbHVkZSAicGFuZWwtY29tbW9uLmgi CisKK2ludCBwYW5lbF9jb21tb25faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYW5l bF9jb21tb24gKmNvbW1vbiwKKwkJICAgICAgY29uc3QgY2hhciAqc3VwcGx5X25hbWUsIGNvbnN0 IGNoYXIgKmdwaW9fbmFtZSwKKwkJICAgICAgY29uc3QgY2hhciAqYmFja2xpZ2h0X25hbWUpCit7 CisJc3RydWN0IGRldmljZV9ub2RlICpiYWNrbGlnaHQ7CisJaW50IGVycjsKKworCWNvbW1vbi0+ ZGV2ID0gZGV2OworCWNvbW1vbi0+ZW5hYmxlZCA9IGZhbHNlOworCWNvbW1vbi0+cHJlcGFyZWQg PSBmYWxzZTsKKworCWNvbW1vbi0+c3VwcGx5ID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgc3Vw cGx5X25hbWUpOworCWlmIChJU19FUlIoY29tbW9uLT5zdXBwbHkpKQorCQlyZXR1cm4gUFRSX0VS Uihjb21tb24tPnN1cHBseSk7CisKKwljb21tb24tPmVuYWJsZV9ncGlvID0gZGV2bV9ncGlvZF9n ZXRfb3B0aW9uYWwoZGV2LCBncGlvX25hbWUsCisJCQkJCQkgICAgIEdQSU9EX09VVF9MT1cpOwor CWlmIChJU19FUlIoY29tbW9uLT5lbmFibGVfZ3BpbykpIHsKKwkJZXJyID0gUFRSX0VSUihjb21t b24tPmVuYWJsZV9ncGlvKTsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVxdWVzdCBHUElP OiAlZFxuIiwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwliYWNrbGlnaHQgPSBvZl9wYXJz ZV9waGFuZGxlKGRldi0+b2Zfbm9kZSwgYmFja2xpZ2h0X25hbWUsIDApOworCWlmIChiYWNrbGln aHQpIHsKKwkJY29tbW9uLT5iYWNrbGlnaHQgPSBvZl9maW5kX2JhY2tsaWdodF9ieV9ub2RlKGJh Y2tsaWdodCk7CisJCW9mX25vZGVfcHV0KGJhY2tsaWdodCk7CisKKwkJaWYgKCFjb21tb24tPmJh Y2tsaWdodCkKKwkJCXJldHVybiAtRVBST0JFX0RFRkVSOworCX0KKworCXJldHVybiAwOworfQor RVhQT1JUX1NZTUJPTChwYW5lbF9jb21tb25faW5pdCk7CisKK3ZvaWQgcGFuZWxfY29tbW9uX2Zp bmkoc3RydWN0IHBhbmVsX2NvbW1vbiAqY29tbW9uKQoreworCWlmIChjb21tb24tPmJhY2tsaWdo dCkKKwkJcHV0X2RldmljZSgmY29tbW9uLT5iYWNrbGlnaHQtPmRldik7Cit9CitFWFBPUlRfU1lN Qk9MKHBhbmVsX2NvbW1vbl9maW5pKTsKKworaW50IHBhbmVsX2NvbW1vbl9wcmVwYXJlKHN0cnVj dCBwYW5lbF9jb21tb24gKmNvbW1vbiwgdW5zaWduZWQgaW50IGRlbGF5KQoreworCWludCBlcnI7 CisKKwlpZiAoY29tbW9uLT5wcmVwYXJlZCkKKwkJcmV0dXJuIDA7CisKKwllcnIgPSByZWd1bGF0 b3JfZW5hYmxlKGNvbW1vbi0+c3VwcGx5KTsKKwlpZiAoZXJyIDwgMCkgeworCQlkZXZfZXJyKGNv bW1vbi0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBzdXBwbHk6ICVkXG4iLCBlcnIpOworCQlyZXR1 cm4gZXJyOworCX0KKworCWlmIChjb21tb24tPmVuYWJsZV9ncGlvKQorCQlncGlvZF9zZXRfdmFs dWVfY2Fuc2xlZXAoY29tbW9uLT5lbmFibGVfZ3BpbywgMSk7CisKKwlpZiAoZGVsYXkpCisJCW1z bGVlcChkZWxheSk7CisKKwljb21tb24tPnByZXBhcmVkID0gdHJ1ZTsKKworCXJldHVybiAwOwor fQorRVhQT1JUX1NZTUJPTChwYW5lbF9jb21tb25fcHJlcGFyZSk7CisKK2ludCBwYW5lbF9jb21t b25fdW5wcmVwYXJlKHN0cnVjdCBwYW5lbF9jb21tb24gKmNvbW1vbiwgdW5zaWduZWQgaW50IGRl bGF5KQoreworCWlmICghY29tbW9uLT5wcmVwYXJlZCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoY29t bW9uLT5lbmFibGVfZ3BpbykKKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGNvbW1vbi0+ZW5h YmxlX2dwaW8sIDApOworCisJcmVndWxhdG9yX2Rpc2FibGUoY29tbW9uLT5zdXBwbHkpOworCisJ aWYgKGRlbGF5KQorCQltc2xlZXAoZGVsYXkpOworCisJY29tbW9uLT5wcmVwYXJlZCA9IGZhbHNl OworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKHBhbmVsX2NvbW1vbl91bnByZXBhcmUp OworCitpbnQgcGFuZWxfY29tbW9uX2VuYWJsZShzdHJ1Y3QgcGFuZWxfY29tbW9uICpjb21tb24s IHVuc2lnbmVkIGludCBkZWxheSkKK3sKKwlpZiAoY29tbW9uLT5lbmFibGVkKQorCQlyZXR1cm4g MDsKKworCWlmIChkZWxheSkKKwkJbXNsZWVwKGRlbGF5KTsKKworCWlmIChjb21tb24tPmJhY2ts aWdodCkgeworCQljb21tb24tPmJhY2tsaWdodC0+cHJvcHMuc3RhdGUgJj0gfkJMX0NPUkVfRkJC TEFOSzsKKwkJY29tbW9uLT5iYWNrbGlnaHQtPnByb3BzLnBvd2VyID0gRkJfQkxBTktfVU5CTEFO SzsKKwkJYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoY29tbW9uLT5iYWNrbGlnaHQpOworCX0KKwor CWNvbW1vbi0+ZW5hYmxlZCA9IHRydWU7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wo cGFuZWxfY29tbW9uX2VuYWJsZSk7CisKK2ludCBwYW5lbF9jb21tb25fZGlzYWJsZShzdHJ1Y3Qg cGFuZWxfY29tbW9uICpjb21tb24sIHVuc2lnbmVkIGludCBkZWxheSkKK3sKKwlpZiAoIWNvbW1v bi0+ZW5hYmxlZCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoY29tbW9uLT5iYWNrbGlnaHQpIHsKKwkJ Y29tbW9uLT5iYWNrbGlnaHQtPnByb3BzLnBvd2VyID0gRkJfQkxBTktfUE9XRVJET1dOOworCQlj b21tb24tPmJhY2tsaWdodC0+cHJvcHMuc3RhdGUgfD0gQkxfQ09SRV9GQkJMQU5LOworCQliYWNr bGlnaHRfdXBkYXRlX3N0YXR1cyhjb21tb24tPmJhY2tsaWdodCk7CisJfQorCisJaWYgKGRlbGF5 KQorCQltc2xlZXAoZGVsYXkpOworCisJY29tbW9uLT5lbmFibGVkID0gZmFsc2U7CisKKwlyZXR1 cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wocGFuZWxfY29tbW9uX2Rpc2FibGUpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWNvbW1vbi5oIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLWNvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uZGMzYjI0YWMyOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Bh bmVsL3BhbmVsLWNvbW1vbi5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp IDIwMTcgR29vZ2xlLCBJbmMuCisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9u IDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBhbmQKKyAq IG1heSBiZSBjb3BpZWQsIGRpc3RyaWJ1dGVkLCBhbmQgbW9kaWZpZWQgdW5kZXIgdGhvc2UgdGVy bXMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCisjaWZuZGVmIF9QQU5FTF9DT01N T05fSF8KKyNkZWZpbmUgX1BBTkVMX0NPTU1PTl9IXworCitzdHJ1Y3QgYmFja2xpZ2h0X2Rldmlj ZTsKK3N0cnVjdCByZWd1bGF0b3I7CitzdHJ1Y3QgaTJjX2FkYXB0ZXI7CitzdHJ1Y3QgZ3Bpb19k ZXNjOworCitzdHJ1Y3QgcGFuZWxfY29tbW9uIHsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisKKwli b29sIHByZXBhcmVkOworCWJvb2wgZW5hYmxlZDsKKworCXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNl ICpiYWNrbGlnaHQ7CisJc3RydWN0IHJlZ3VsYXRvciAqc3VwcGx5OworCisJc3RydWN0IGdwaW9f ZGVzYyAqZW5hYmxlX2dwaW87Cit9OworCitpbnQgcGFuZWxfY29tbW9uX2luaXQoc3RydWN0IGRl dmljZSAqZGV2LCBzdHJ1Y3QgcGFuZWxfY29tbW9uICpjb21tb24sCisJCSAgICAgIGNvbnN0IGNo YXIgKnN1cHBseV9uYW1lLCBjb25zdCBjaGFyICpncGlvX25hbWUsCisJCSAgICAgIGNvbnN0IGNo YXIgKmJhY2tsaWdodF9uYW1lKTsKK3ZvaWQgcGFuZWxfY29tbW9uX2Zpbmkoc3RydWN0IHBhbmVs X2NvbW1vbiAqY29tbW9uKTsKKworaW50IHBhbmVsX2NvbW1vbl9wcmVwYXJlKHN0cnVjdCBwYW5l bF9jb21tb24gKmNvbW1vbiwgdW5zaWduZWQgaW50IGRlbGF5KTsKK2ludCBwYW5lbF9jb21tb25f dW5wcmVwYXJlKHN0cnVjdCBwYW5lbF9jb21tb24gKmNvbW1vbiwgdW5zaWduZWQgaW50IGRlbGF5 KTsKK2ludCBwYW5lbF9jb21tb25fZW5hYmxlKHN0cnVjdCBwYW5lbF9jb21tb24gKmNvbW1vbiwg dW5zaWduZWQgaW50IGRlbGF5KTsKK2ludCBwYW5lbF9jb21tb25fZGlzYWJsZShzdHJ1Y3QgcGFu ZWxfY29tbW9uICpjb21tb24sIHVuc2lnbmVkIGludCBkZWxheSk7CisKKyNlbmRpZiAvLyBfUEFO RUxfQ09NTU9OX0hfCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2lt cGxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2ltcGxlLmMKaW5kZXggODllYjA0 MjI4MjFjLi4xYzIxZmYyZGNkMzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9w YW5lbC1zaW1wbGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2ltcGxlLmMK QEAgLTIxLDEyICsyMSw5IEBACiAgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiAgKi8KIAot I2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3Vt ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0 Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotI2luY2x1ZGUgPGxp bnV4L3JlZ3VsYXRvci9jb25zdW1lci5oPgogCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNs dWRlIDxkcm0vZHJtX2NydGMuaD4KQEAgLTM2LDYgKzMzLDggQEAKICNpbmNsdWRlIDx2aWRlby9k aXNwbGF5X3RpbWluZy5oPgogI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5oPgogCisjaW5jbHVk ZSAicGFuZWwtY29tbW9uLmgiCisKIHN0cnVjdCBwYW5lbF9kZXNjIHsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZXM7CiAJdW5zaWduZWQgaW50IG51bV9tb2RlczsKQEAgLTc3 LDEzICs3NiwxMyBAQCBzdHJ1Y3QgcGFuZWxfZGVzYyB7CiAKIHN0cnVjdCBwYW5lbF9zaW1wbGUg ewogCXN0cnVjdCBkcm1fcGFuZWwgYmFzZTsKKwlzdHJ1Y3QgcGFuZWxfY29tbW9uIGNvbW1vbjsK KwogCWJvb2wgcHJlcGFyZWQ7CiAJYm9vbCBlbmFibGVkOwogCiAJY29uc3Qgc3RydWN0IHBhbmVs X2Rlc2MgKmRlc2M7CiAKLQlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFja2xpZ2h0OwotCXN0 cnVjdCByZWd1bGF0b3IgKnN1cHBseTsKIAlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmRkYzsKIAogCXN0 cnVjdCBncGlvX2Rlc2MgKmVuYWJsZV9ncGlvOwpAQCAtMTYzLDg3ICsxNjIsMjggQEAgc3RhdGlj IGludCBwYW5lbF9zaW1wbGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKIAlz dHJ1Y3QgcGFuZWxfc2ltcGxlICpwID0gdG9fcGFuZWxfc2ltcGxlKHBhbmVsKTsKIAotCWlmICgh cC0+ZW5hYmxlZCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAocC0+YmFja2xpZ2h0KSB7Ci0JCXAtPmJh Y2tsaWdodC0+cHJvcHMucG93ZXIgPSBGQl9CTEFOS19QT1dFUkRPV047Ci0JCXAtPmJhY2tsaWdo dC0+cHJvcHMuc3RhdGUgfD0gQkxfQ09SRV9GQkJMQU5LOwotCQliYWNrbGlnaHRfdXBkYXRlX3N0 YXR1cyhwLT5iYWNrbGlnaHQpOwotCX0KLQotCWlmIChwLT5kZXNjLT5kZWxheS5kaXNhYmxlKQot CQltc2xlZXAocC0+ZGVzYy0+ZGVsYXkuZGlzYWJsZSk7Ci0KLQlwLT5lbmFibGVkID0gZmFsc2U7 Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gcGFuZWxfY29tbW9uX2Rpc2FibGUoJnAtPmNvbW1vbiwg cC0+ZGVzYy0+ZGVsYXkuZGlzYWJsZSk7CiB9CiAKIHN0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX3Vu cHJlcGFyZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKIAlzdHJ1Y3QgcGFuZWxfc2ltcGxl ICpwID0gdG9fcGFuZWxfc2ltcGxlKHBhbmVsKTsKIAotCWlmICghcC0+cHJlcGFyZWQpCi0JCXJl dHVybiAwOwotCi0JaWYgKHAtPmVuYWJsZV9ncGlvKQotCQlncGlvZF9zZXRfdmFsdWVfY2Fuc2xl ZXAocC0+ZW5hYmxlX2dwaW8sIDApOwotCi0JcmVndWxhdG9yX2Rpc2FibGUocC0+c3VwcGx5KTsK LQotCWlmIChwLT5kZXNjLT5kZWxheS51bnByZXBhcmUpCi0JCW1zbGVlcChwLT5kZXNjLT5kZWxh eS51bnByZXBhcmUpOwotCi0JcC0+cHJlcGFyZWQgPSBmYWxzZTsKLQotCXJldHVybiAwOworCXJl dHVybiBwYW5lbF9jb21tb25fdW5wcmVwYXJlKCZwLT5jb21tb24sIHAtPmRlc2MtPmRlbGF5LnVu cHJlcGFyZSk7CiB9CiAKIHN0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX3ByZXBhcmUoc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwpCiB7CiAJc3RydWN0IHBhbmVsX3NpbXBsZSAqcCA9IHRvX3BhbmVsX3Np bXBsZShwYW5lbCk7Ci0JaW50IGVycjsKLQotCWlmIChwLT5wcmVwYXJlZCkKLQkJcmV0dXJuIDA7 CiAKLQllcnIgPSByZWd1bGF0b3JfZW5hYmxlKHAtPnN1cHBseSk7Ci0JaWYgKGVyciA8IDApIHsK LQkJZGV2X2VycihwYW5lbC0+ZGV2LCAiZmFpbGVkIHRvIGVuYWJsZSBzdXBwbHk6ICVkXG4iLCBl cnIpOwotCQlyZXR1cm4gZXJyOwotCX0KLQotCWlmIChwLT5lbmFibGVfZ3BpbykKLQkJZ3Bpb2Rf c2V0X3ZhbHVlX2NhbnNsZWVwKHAtPmVuYWJsZV9ncGlvLCAxKTsKLQotCWlmIChwLT5kZXNjLT5k ZWxheS5wcmVwYXJlKQotCQltc2xlZXAocC0+ZGVzYy0+ZGVsYXkucHJlcGFyZSk7Ci0KLQlwLT5w cmVwYXJlZCA9IHRydWU7Ci0KLQlyZXR1cm4gMDsKKwlyZXR1cm4gcGFuZWxfY29tbW9uX3ByZXBh cmUoJnAtPmNvbW1vbiwgcC0+ZGVzYy0+ZGVsYXkucHJlcGFyZSk7CiB9CiAKIHN0YXRpYyBpbnQg cGFuZWxfc2ltcGxlX2VuYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKIHsKIAlzdHJ1Y3Qg cGFuZWxfc2ltcGxlICpwID0gdG9fcGFuZWxfc2ltcGxlKHBhbmVsKTsKIAotCWlmIChwLT5lbmFi bGVkKQotCQlyZXR1cm4gMDsKLQotCWlmIChwLT5kZXNjLT5kZWxheS5lbmFibGUpCi0JCW1zbGVl cChwLT5kZXNjLT5kZWxheS5lbmFibGUpOwotCi0JaWYgKHAtPmJhY2tsaWdodCkgewotCQlwLT5i YWNrbGlnaHQtPnByb3BzLnN0YXRlICY9IH5CTF9DT1JFX0ZCQkxBTks7Ci0JCXAtPmJhY2tsaWdo dC0+cHJvcHMucG93ZXIgPSBGQl9CTEFOS19VTkJMQU5LOwotCQliYWNrbGlnaHRfdXBkYXRlX3N0 YXR1cyhwLT5iYWNrbGlnaHQpOwotCX0KLQotCXAtPmVuYWJsZWQgPSB0cnVlOwotCi0JcmV0dXJu IDA7CisJcmV0dXJuIHBhbmVsX2NvbW1vbl9lbmFibGUoJnAtPmNvbW1vbiwgcC0+ZGVzYy0+ZGVs YXkuZW5hYmxlKTsKIH0KIAogc3RhdGljIGludCBwYW5lbF9zaW1wbGVfZ2V0X21vZGVzKHN0cnVj dCBkcm1fcGFuZWwgKnBhbmVsKQpAQCAtMjk1LDcgKzIzNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZHJtX3BhbmVsX2Z1bmNzIHBhbmVsX3NpbXBsZV9mdW5jcyA9IHsKIAogc3RhdGljIGludCBw YW5lbF9zaW1wbGVfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgcGFuZWxf ZGVzYyAqZGVzYykKIHsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmJhY2tsaWdodCwgKmRkYzsKKwlz dHJ1Y3QgZGV2aWNlX25vZGUgKmRkYzsKIAlzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbDsKIAlp bnQgZXJyOwogCkBAIC0zMDMsMzAgKzI0MywxMiBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9w cm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjICpkZXNjKQog CWlmICghcGFuZWwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JcGFuZWwtPmVuYWJsZWQgPSBmYWxz ZTsKLQlwYW5lbC0+cHJlcGFyZWQgPSBmYWxzZTsKIAlwYW5lbC0+ZGVzYyA9IGRlc2M7CiAKLQlw YW5lbC0+c3VwcGx5ID0gZGV2bV9yZWd1bGF0b3JfZ2V0KGRldiwgInBvd2VyIik7Ci0JaWYgKElT X0VSUihwYW5lbC0+c3VwcGx5KSkKLQkJcmV0dXJuIFBUUl9FUlIocGFuZWwtPnN1cHBseSk7Ci0K LQlwYW5lbC0+ZW5hYmxlX2dwaW8gPSBkZXZtX2dwaW9kX2dldF9vcHRpb25hbChkZXYsICJlbmFi bGUiLAotCQkJCQkJICAgICBHUElPRF9PVVRfTE9XKTsKLQlpZiAoSVNfRVJSKHBhbmVsLT5lbmFi bGVfZ3BpbykpIHsKLQkJZXJyID0gUFRSX0VSUihwYW5lbC0+ZW5hYmxlX2dwaW8pOwotCQlkZXZf ZXJyKGRldiwgImZhaWxlZCB0byByZXF1ZXN0IEdQSU86ICVkXG4iLCBlcnIpOworCWVyciA9IHBh bmVsX2NvbW1vbl9pbml0KGRldiwgJnBhbmVsLT5jb21tb24sICJzdXBwbHkiLCAiZ3BpbyIsCisJ CQkJImJhY2tsaWdodCIpOworCWlmIChlcnIpCiAJCXJldHVybiBlcnI7Ci0JfQotCi0JYmFja2xp Z2h0ID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJiYWNrbGlnaHQiLCAwKTsKLQlp ZiAoYmFja2xpZ2h0KSB7Ci0JCXBhbmVsLT5iYWNrbGlnaHQgPSBvZl9maW5kX2JhY2tsaWdodF9i eV9ub2RlKGJhY2tsaWdodCk7Ci0JCW9mX25vZGVfcHV0KGJhY2tsaWdodCk7Ci0KLQkJaWYgKCFw YW5lbC0+YmFja2xpZ2h0KQotCQkJcmV0dXJuIC1FUFJPQkVfREVGRVI7Ci0JfQogCiAJZGRjID0g b2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJkZGMtaTJjLWJ1cyIsIDApOwogCWlmIChk ZGMpIHsKQEAgLTMzNSw3ICsyNTcsNyBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9wcm9iZShz dHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjICpkZXNjKQogCiAJCWlm ICghcGFuZWwtPmRkYykgewogCQkJZXJyID0gLUVQUk9CRV9ERUZFUjsKLQkJCWdvdG8gZnJlZV9i YWNrbGlnaHQ7CisJCQlnb3RvIGZyZWVfY29tbW9uOwogCQl9CiAJfQogCkBAIC0zNTQsOSArMjc2 LDggQEAgc3RhdGljIGludCBwYW5lbF9zaW1wbGVfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LCBj b25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyAqZGVzYykKIGZyZWVfZGRjOgogCWlmIChwYW5lbC0+ZGRj KQogCQlwdXRfZGV2aWNlKCZwYW5lbC0+ZGRjLT5kZXYpOwotZnJlZV9iYWNrbGlnaHQ6Ci0JaWYg KHBhbmVsLT5iYWNrbGlnaHQpCi0JCXB1dF9kZXZpY2UoJnBhbmVsLT5iYWNrbGlnaHQtPmRldik7 CitmcmVlX2NvbW1vbjoKKwlwYW5lbF9jb21tb25fZmluaSgmcGFuZWwtPmNvbW1vbik7CiAKIAly ZXR1cm4gZXJyOwogfQpAQCAtMzczLDggKzI5NCw3IEBAIHN0YXRpYyBpbnQgcGFuZWxfc2ltcGxl X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJaWYgKHBhbmVsLT5kZGMpCiAJCXB1dF9kZXZp Y2UoJnBhbmVsLT5kZGMtPmRldik7CiAKLQlpZiAocGFuZWwtPmJhY2tsaWdodCkKLQkJcHV0X2Rl dmljZSgmcGFuZWwtPmJhY2tsaWdodC0+ZGV2KTsKKwlwYW5lbF9jb21tb25fZmluaSgmcGFuZWwt PmNvbW1vbik7CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMTIuMC4zNjcuZzIzZGMyZjZkM2MtZ29v ZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==