From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre-Louis Bossart Subject: [RFC 05/15] drm/i915: changes for non-HDAudio HDMI interface Date: Fri, 4 Mar 2016 20:50:42 -0600 Message-ID: <1457146252-4577-6-git-send-email-pierre-louis.bossart@linux.intel.com> References: <1457146252-4577-1-git-send-email-pierre-louis.bossart@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id CA5C46E1EE for ; Sat, 5 Mar 2016 02:54:22 +0000 (UTC) In-Reply-To: <1457146252-4577-1-git-send-email-pierre-louis.bossart@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: mengdong.lin@linux.intel.com, tiwai@suse.de, liam.r.girdwood@linux.intel.com, vinod.koul@intel.com, broonie@kernel.org, rakesh.a.ughreja@intel.com, David Henningsson List-Id: intel-gfx@lists.freedesktop.org Q2hhbmdlcyB0byBleGlzdGluZyBjb2RlIGZvciBpbnRlcmZhY2UgYXZhaWxhYmxlIG9uIEJheXRy YWlsIGFuZApDaGVycnlUcmFpbAoKVGhpcyBkcml2ZXIgd2FzIGRvd25sb2FkZWQgZnJvbSBodHRw czovL2dpdGh1Yi5jb20vMDFvcmcvYmF5dHJhaWxhdWRpby8KCi4uLmFuZCBoYWQgdGhlIGNoYW5n ZXMgdG8gLmNvbmZpZyBzdHJpcHBlZCBhbmQgdGhlIHJldmVydCBvbiBzb3VuZC9pbml0LmMKCkNs ZWFudXAsIHBvcnQgdG8gNC40IGFuZCBpbnRlbC1kcm0gYnkgUGllcnJlIEJvc3NhcnQKClNpZ25l ZC1vZmYtYnk6IERhdmlkIEhlbm5pbmdzc29uIDxkYXZpZC5oZW5uaW5nc3NvbkBjYW5vbmljYWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBQaWVycmUtTG91aXMgQm9zc2FydCA8cGllcnJlLWxvdWlzLmJv c3NhcnRAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMgICAgICB8ICA4MSArKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMgfCAgIDggKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAg ICB8IDE4MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMyBmaWxlcyBjaGFu Z2VkLCAyNzEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jCmluZGV4IGQxYTQ2ZWYuLjU1NmZhODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAt NjAzLDYgKzYwMywzMSBAQCBpOTE1X2Rpc2FibGVfcGlwZXN0YXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKIAlfX2k5MTVfZGlzYWJsZV9waXBlc3Rh dChkZXZfcHJpdiwgcGlwZSwgZW5hYmxlX21hc2ssIHN0YXR1c19tYXNrKTsKIH0KIAorLyogQWRk ZWQgZm9yIEhETUkgQVVESU8gKi8KK3ZvaWQKK2k5MTVfZW5hYmxlX2xwZV9waXBlc3RhdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBwaXBlKQoreworCXUzMiBtYXNrOwor CisJbWFzayA9IGRldl9wcml2LT5oZG1pX2F1ZGlvX2ludGVycnVwdF9tYXNrOworCW1hc2sgfD0g STkxNV9IRE1JX0FVRElPX1VOREVSUlVOIHwgSTkxNV9IRE1JX0FVRElPX0JVRkZFUl9ET05FOwor CS8qIEVuYWJsZSB0aGUgaW50ZXJydXB0LCBjbGVhciBhbnkgcGVuZGluZyBzdGF0dXMgKi8KKwlJ OTE1X1dSSVRFKEk5MTVfTFBFX0FVRElPX0hETUlfU1RBVFVTX0EsIG1hc2spOworCVBPU1RJTkdf UkVBRChJOTE1X0xQRV9BVURJT19IRE1JX1NUQVRVU19BKTsKK30KKwordm9pZAoraTkxNV9kaXNh YmxlX2xwZV9waXBlc3RhdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBw aXBlKQoreworCXUzMiBtYXNrOworCisJbWFzayA9IGRldl9wcml2LT5oZG1pX2F1ZGlvX2ludGVy cnVwdF9tYXNrOworCW1hc2sgfD0gSTkxNV9IRE1JX0FVRElPX1VOREVSUlVOIHwgSTkxNV9IRE1J X0FVRElPX0JVRkZFUl9ET05FOworCS8qIERpc2FibGUgdGhlIGludGVycnVwdCwgY2xlYXIgYW55 IHBlbmRpbmcgc3RhdHVzICovCisJSTkxNV9XUklURShJOTE1X0xQRV9BVURJT19IRE1JX1NUQVRV U19BLCBtYXNrKTsKKwlQT1NUSU5HX1JFQUQoSTkxNV9MUEVfQVVESU9fSERNSV9TVEFUVVNfQSk7 Cit9CisKIC8qKgogICogaTkxNV9lbmFibGVfYXNsZV9waXBlc3RhdCAtIGVuYWJsZSBBU0xFIHBp cGVzdGF0IGZvciBPcFJlZ2lvbgogICogQGRldjogZHJtIGRldmljZQpAQCAtMTY0OSw2ICsxNjc0 LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19waXBlc3RhdF9pcnFfaGFuZGxlcihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB1MzIgaWlyKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJdTMyIHBpcGVfc3RhdHNbSTkxNV9NQVhfUElQRVNd ID0geyB9OwogCWludCBwaXBlOworCWludCBscGVfc3RyZWFtOwogCiAJc3Bpbl9sb2NrKCZkZXZf cHJpdi0+aXJxX2xvY2spOwogCkBAIC0xNzE5LDYgKzE3NDUsMjQgQEAgc3RhdGljIHZvaWQgdmFs bGV5dmlld19waXBlc3RhdF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIg aWlyKQogCQkJaW50ZWxfY3B1X2ZpZm9fdW5kZXJydW5faXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBp cGUpOwogCX0KIAorCWlmIChpaXIgJiBJOTE1X0xQRV9QSVBFX0FfSU5URVJSVVBUKSB7CisJCWxw ZV9zdHJlYW0gPSBJOTE1X1JFQUQoSTkxNV9MUEVfQVVESU9fSERNSV9TVEFUVVNfQSk7CisJCWlm IChscGVfc3RyZWFtICYgSTkxNV9IRE1JX0FVRElPX1VOREVSUlVOKSB7CisJCQlJOTE1X1dSSVRF KEk5MTVfTFBFX0FVRElPX0hETUlfU1RBVFVTX0EsCisJCQkJCWxwZV9zdHJlYW0pOworCQkJbWlk X2hkbWlfYXVkaW9fc2lnbmFsX2V2ZW50KGRldiwKKwkJCQkJSEFEX0VWRU5UX0FVRElPX0JVRkZF Ul9VTkRFUlJVTik7CisJCX0KKworCQlscGVfc3RyZWFtID0gSTkxNV9SRUFEKEk5MTVfTFBFX0FV RElPX0hETUlfU1RBVFVTX0EpOworCQlpZiAobHBlX3N0cmVhbSAmIEk5MTVfSERNSV9BVURJT19C VUZGRVJfRE9ORSkgeworCQkJSTkxNV9XUklURShJOTE1X0xQRV9BVURJT19IRE1JX1NUQVRVU19B LAorCQkJCQlscGVfc3RyZWFtKTsKKwkJCW1pZF9oZG1pX2F1ZGlvX3NpZ25hbF9ldmVudChkZXYs CisJCQkJSEFEX0VWRU5UX0FVRElPX0JVRkZFUl9ET05FKTsKKwkJfQorCX0KKwogCWlmIChwaXBl X3N0YXRzWzBdICYgUElQRV9HTUJVU19JTlRFUlJVUFRfU1RBVFVTKQogCQlnbWJ1c19pcnFfaGFu ZGxlcihkZXYpOwogfQpAQCAtMjgwNCw2ICsyODQ4LDQzIEBAIHN0YXRpYyB2b2lkIGdlbjhfZGlz YWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCiAJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7CiB9 CiAKKy8qIEFkZGVkIGZvIEhETUkgQVVkaW8gKi8KK2ludCBpOTE1X2VuYWJsZV9oZG1pX2F1ZGlv X2ludChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqKSBkZXYtPmRldl9wcml2YXRl OworCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CisJdTMyIGltcjsKKwlpbnQgcGlwZSA9IDE7CisK KwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7CisJaW1y ID0gSTkxNV9SRUFEKFZMVl9JTVIpOworCS8qIEF1ZGlvIGlzIG9uIFN0cmVhbSBBICovCisJaW1y ICY9IH5JOTE1X0xQRV9QSVBFX0FfSU5URVJSVVBUOworCUk5MTVfV1JJVEUoVkxWX0lNUiwgaW1y KTsKKwlpOTE1X2VuYWJsZV9scGVfcGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUpOworCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOworCisJcmV0dXJu IDA7Cit9CisKKy8qIEFkZGVkIGZvciBIRE1JIEF1ZGlvICovCitpbnQgaTkxNV9kaXNhYmxlX2hk bWlfYXVkaW9faW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICopIGRldi0+ZGV2 X3ByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwl1MzIgaW1yOworCWludCBwaXBl ID0gMTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdz KTsKKwlpbXIgPSBJOTE1X1JFQUQoVkxWX0lNUik7CisJaW1yIHw9IEk5MTVfTFBFX1BJUEVfQV9J TlRFUlJVUFQ7CisJSTkxNV9XUklURShWTFZfSU1SLCBpbXIpOworCWk5MTVfZGlzYWJsZV9scGVf cGlwZXN0YXQoZGV2X3ByaXYsIHBpcGUpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9w cml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBib29s CiByaW5nX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTMyIHNlcW5vKQogewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDQ0ZmNmZjAuLjU4MzFhZjQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTgxMDgsNiArODEwOCwxNCBAQCBz dGF0aWMgaW50IGk5eHhfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAogCQkJCSAgbnVtX2Nvbm5lY3RvcnMpOwogCX0KIAorCS8qIEFkZGVkIGZvciBIRE1JIEF1ZGlv ICovCisJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSAmJiBpbnRlbF9waXBlX2hhc190eXBlKGNydGMs CisJCUlOVEVMX09VVFBVVF9IRE1JKSkgeworCQlkZXZfcHJpdi0+dG1kc19jbG9ja19zcGVlZCA9 IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7CisJCW1pZF9oZG1pX2F1ZGlvX3NpZ25hbF9ldmVudChk ZXZfcHJpdi0+ZGV2LAorCQkJSEFEX0VWRU5UX01PREVfQ0hBTkdJTkcpOworCX0KKwogCXJldHVy biAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggMWJlYjE1NS4uOGI2YzMx YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMTM5MSw2ICsxMzkxLDEyNCBAQCBp bnRlbF9oZG1pX3NldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wg Zm9yY2UpCiAJcmV0dXJuIGNvbm5lY3RlZDsKIH0KIAorc3RhdGljIGJvb2wgdmx2X2hkbWlfbGl2 ZV9zdGF0dXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCXN0cnVjdCBpbnRlbF9oZG1pICpp bnRlbF9oZG1pKQoreworCXVpbnQzMl90IGJpdDsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0ID0KKwkJCQkJaGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKTsKKwor CURSTV9ERUJVR19LTVMoIlJlYWRpbmcgTGl2ZSBzdGF0dXMiKTsKKwlzd2l0Y2ggKGludGVsX2Rp Z19wb3J0LT5wb3J0KSB7CisJY2FzZSBQT1JUX0I6CisJCWJpdCA9IEhETUlCX0hPVFBMVUdfTElW RV9TVEFUVVM7CisJCWJyZWFrOworCWNhc2UgUE9SVF9DOgorCQliaXQgPSBIRE1JQ19IT1RQTFVH X0xJVkVfU1RBVFVTOworCQlicmVhazsKKwljYXNlIFBPUlRfRDoKKwkJYml0ID0gSERNSURfSE9U UExVR19MSVZFX1NUQVRVUzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYml0ID0gMDsKKwl9CisK KwkvKiBSZXR1cm4gcmVzdWx0cyBpbiB0cmVtcyBvZiBjb25uZWN0b3IgKi8KKwlyZXR1cm4gSTkx NV9SRUFEKFBPUlRfSE9UUExVR19TVEFUKSAmIGJpdDsKK30KKworCisvKgorICogaW50ZWxfaGRt aV9saXZlX3N0YXR1czogZGV0ZWN0IGxpdmUgc3RhdHVzIG9mIEhETUkKKyAqIGlmIGRldmljZSBp cyBnZW4gNiBhbmQgYWJvdmUsIHJlYWQgdGhlIGxpdmUgc3RhdHVzIHJlZworICogZWxzZSwgZG8g bm90IGJsb2NrIHRoZSBkZXRlY3Rpb24sIHJldHVybiB0cnVlCisgKi8KK3N0YXRpYyBib29sIGlu dGVsX2hkbWlfbGl2ZV9zdGF0dXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7CisJc3RydWN0IGludGVs X2hkbWkgKmludGVsX2hkbWkgPSBpbnRlbF9hdHRhY2hlZF9oZG1pKGNvbm5lY3Rvcik7CisKKwlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPiA2KSB7CisJCS8qIFRvZG86IEltcGxlbWVudCBmb3Ig b3RoZXIgR2VuIDYrIGFyY2hzKi8KKwkJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKKwkJCXJldHVy biB2bHZfaGRtaV9saXZlX3N0YXR1cyhkZXYsIGludGVsX2hkbWkpOworCX0KKworCXJldHVybiB0 cnVlOworfQorCisvKiBSZWFkIEREQyBhbmQgZ2V0IEVESUQgKi8KK3N0cnVjdCBlZGlkICppbnRl bF9oZG1pX2dldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9y Y2UpCit7CisJYm9vbCBjdXJyZW50X3N0YXRlID0gZmFsc2U7CisJYm9vbCBzYXZlZF9zdGF0ZSA9 IGZhbHNlOworCisJc3RydWN0IGVkaWQgKm5ld19lZGlkID0gTlVMTDsKKwlzdHJ1Y3QgaTJjX2Fk YXB0ZXIgKmFkYXB0ZXIgPSBOVUxMOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0 b3ItPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOworCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRf aGRtaShjb25uZWN0b3IpOworCXUzMiBob3RwbHVnX3N0YXR1cyA9IGRldl9wcml2LT5ob3RwbHVn X3N0YXR1czsKKwllbnVtIHBvcnQgaGRtaV9wb3J0ID0gaGRtaV90b19kaWdfcG9ydChpbnRlbF9o ZG1pKS0+cG9ydDsKKwl1bnNpZ25lZCBjaGFyIHJldHJ5ID0gSERNSV9FRElEX1JFVFJZX0NPVU5U OworCisJaWYgKCFpbnRlbF9oZG1pKSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBpbnB1dCB0byBn ZXQgaGRtaVxuIik7CisJCXJldHVybiBOVUxMOworCX0KKworCS8qIEdldCB0aGUgc2F2ZWQgc3Rh dHVzIGZyb20gdG9wIGhhbGYgKi8KKwlzYXZlZF9zdGF0ZSA9IGhvdHBsdWdfc3RhdHVzICYgKDEg PDwgKEhETUlfTElWRV9TVEFUVVNfQkFTRSAtIGhkbWlfcG9ydCkpOworCisJLyoKKwkgKiBGZXcg bW9uaXRvcnMgYXJlIHNsb3cgdG8gcmVzcG9uZCBvbiBFRElEIGFuZCBsaXZlIHN0YXR1cywKKwkg KiBzbyByZWFkIGxpdmUgc3RhdHVzIG11bHRpcGxlIHRpbWVzIHdpdGhpbiBhIG1heCBkZWxheSBv ZiAzMG1zCisJICovCisJZG8geworCQltZGVsYXkoSERNSV9MSVZFX1NUQVRVU19ERUxBWV9TVEVQ KTsKKwkJY3VycmVudF9zdGF0ZSA9IGludGVsX2hkbWlfbGl2ZV9zdGF0dXMoY29ubmVjdG9yKTsK KwkJaWYgKGN1cnJlbnRfc3RhdGUpCisJCQlicmVhazsKKwl9IHdoaWxlIChyZXRyeS0tKTsKKwor CS8qIENvbXBhcmUgY3VycmVudCBzdGF0dXMsIGFuZCBzYXZlZCBzdGF0dXMgaW4gdG9wIGhhbGYg Ki8KKwlpZiAoY3VycmVudF9zdGF0ZSAhPSBzYXZlZF9zdGF0ZSkKKwkJRFJNX0RFQlVHX0RSSVZF UigiV2FybmluZzogU2F2ZWQgSERNSSBzdGF0dXMgIT0gY3VycmVudCBzdGF0dXMiKTsKKworCS8q IFJlYWQgRURJRCBpZiBsaXZlIHN0YXR1cyBvciBzYXZlZCBzdGF0dXMgaXMgdXAsIG9yIHdlIGFy ZSBmb3JjZWQgKi8KKwlpZiAoY3VycmVudF9zdGF0ZSB8fCBzYXZlZF9zdGF0ZSB8fCBmb3JjZSkg eworCisJCWFkYXB0ZXIgPSBpbnRlbF9nbWJ1c19nZXRfYWRhcHRlcihkZXZfcHJpdiwKKwkJCQkJ aW50ZWxfaGRtaS0+ZGRjX2J1cyk7CisJCWlmICghYWRhcHRlcikgeworCQkJRFJNX0VSUk9SKCJH ZXRfaGRtaSBjYW50IGdldCBhZGFwdGVyXG4iKTsKKwkJCXJldHVybiBOVUxMOworCQl9CisKKwkJ LyoKKwkJICogRmV3IG1vbml0b3JzIGlzc3VlIEVESUQgYWZ0ZXIgc29tZSBkZWxheSwgc28gZ2l2 ZSB0aGVtCisJCSAqIHNvbWUgY2hhbmNlcywgYnV0IHdpdGhpbiAzMG1zCisJCSAqLworCQlyZXRy eSA9IDM7CitSRUFEX0VESUQ6CisJCW5ld19lZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3Rvciwg YWRhcHRlcik7CisJCWlmICghbmV3X2VkaWQpIHsKKwkJCWlmIChyZXRyeS0tKSB7CisJCQkJbWRl bGF5KEhETUlfTElWRV9TVEFUVVNfREVMQVlfU1RFUCk7CisJCQkJZ290byBSRUFEX0VESUQ7CisJ CQl9CisKKwkJCURSTV9FUlJPUigiR2V0X2hkbWkgY2FudCByZWFkIGVkaWRcbiIpOworCQkJcmV0 dXJuIE5VTEw7CisJCX0KKworCQlEUk1fREVCVUdfS01TKCJMaXZlIHN0YXR1cyB1cCwgZ290IEVE SUQiKTsKKwl9CisKKwlyZXR1cm4gbmV3X2VkaWQ7Cit9CisKIHN0YXRpYyBlbnVtIGRybV9jb25u ZWN0b3Jfc3RhdHVzCiBpbnRlbF9oZG1pX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLCBib29sIGZvcmNlKQogewpAQCAtMTM5OSw2ICsxNTE3LDggQEAgaW50ZWxfaGRtaV9k ZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsK IAlib29sIGxpdmVfc3RhdHVzID0gZmFsc2U7CiAJdW5zaWduZWQgaW50IHRyeTsKKwlib29sIGlu Zm9ybV9hdWRpbyA9IGZhbHNlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmRldjsKIAogCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLAogCQkgICAgICBj b25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7CkBAIC0xNDI3LDYgKzE1NDcsMjYg QEAgaW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9v bCBmb3JjZSkKIAogCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01B SU5fR01CVVMpOwogCisJLyogTmVlZCB0byBpbmZvcm0gYXVkaW8gYWJvdXQgdGhlIGV2ZW50ICov CisJaW50ZWxfaGRtaSA9IGludGVsX2F0dGFjaGVkX2hkbWkoY29ubmVjdG9yKTsKKwlpZiAoaW50 ZWxfaGRtaS0+aGFzX2F1ZGlvKQorCQlpbmZvcm1fYXVkaW8gPSB0cnVlOworCisJaWYgKHN0YXR1 cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkgeworCQlpZiAoaW50ZWxfaGRtaS0+aGFz X2F1ZGlvKQorCQkJaTkxNV9ub3RpZnlfaGFkID0gMTsKKwl9IGVsc2UgeworCQkvKiBTZW5kIGEg ZGlzY29ubmVjdCBldmVudCB0byBhdWRpbyAqLworCQlpZiAoaW5mb3JtX2F1ZGlvKSB7CisJCQlE Uk1fREVCVUdfRFJJVkVSKCJTZW5kaW5nIGV2ZW50IHRvIGF1ZGlvIik7CisJCQltaWRfaGRtaV9h dWRpb19zaWduYWxfZXZlbnQoZGV2X3ByaXYtPmRldiwKKwkJCUhBRF9FVkVOVF9IT1RfVU5QTFVH KTsKKwkJfQorCX0KKworCWlmIChJU19WQUxMRVlWSUVXKGRldikpCisJCWk5MTVfaGRtaV9zdGF0 ZSA9IHN0YXR1czsKKwogCXJldHVybiBzdGF0dXM7CiB9CiAKQEAgLTE0NTAsMTIgKzE1OTAsMjIg QEAgaW50ZWxfaGRtaV9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogc3Rh dGljIGludCBpbnRlbF9oZG1pX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQogewogCXN0cnVjdCBlZGlkICplZGlkOworCWludCByZXQ7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5kZXYtPmRldl9wcml2YXRlOwogCiAJZWRp ZCA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpLT5kZXRlY3RfZWRpZDsKIAlpZiAoZWRp ZCA9PSBOVUxMKQogCQlyZXR1cm4gMDsKIAotCXJldHVybiBpbnRlbF9jb25uZWN0b3JfdXBkYXRl X21vZGVzKGNvbm5lY3RvciwgZWRpZCk7CisJcmV0ID0gaW50ZWxfY29ubmVjdG9yX3VwZGF0ZV9t b2Rlcyhjb25uZWN0b3IsIGVkaWQpOworCisJaWYgKGk5MTVfbm90aWZ5X2hhZCkgeworCQltaWRf aGRtaV9hdWRpb19zaWduYWxfZXZlbnQoZGV2X3ByaXYtPmRldiwKKwkJCUhBRF9FVkVOVF9IT1Rf UExVRyk7CisJCWk5MTVfbm90aWZ5X2hhZCA9IDA7CisJfQorCisJcmV0dXJuIHJldDsKIH0KIAog c3RhdGljIGJvb2wKQEAgLTIxNTksNiArMjMwOSwyMCBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9j b25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCXUz MiB0ZW1wID0gSTkxNV9SRUFEKFBFR19CQU5EX0dBUF9EQVRBKTsKIAkJSTkxNV9XUklURShQRUdf QkFORF9HQVBfREFUQSwgKHRlbXAgJiB+MHhmKSB8IDB4ZCk7CiAJfQorCisJaTkxNV9ub3RpZnlf aGFkID0gMTsKK30KKworLyogQWRkZWQgZm9yIEhETUkgQXVkaW8gKi8KK3ZvaWQgaTkxNV9oYWRf d3Eoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLAorCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSwgaGRtaV9hdWRpb193cSk7CisKKwlpZiAoaTkxNV9oZG1pX3N0YXRlID09IGNvbm5lY3Rvcl9z dGF0dXNfY29ubmVjdGVkKSB7CisJCW1pZF9oZG1pX2F1ZGlvX3NpZ25hbF9ldmVudChkZXZfcHJp di0+ZGV2LAorCQkJSEFEX0VWRU5UX0hPVF9QTFVHKTsKKwl9CiB9CiAKIHZvaWQgaW50ZWxfaGRt aV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCkBAIC0yMTY4LDYgKzIzMzIsOCBAQCB2b2lk IGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0OwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcjsKKwkv KiBBZGRlZCBmb3IgSERNSSBBdWRpbyAqLworCXN0cnVjdCBoZG1pX2F1ZGlvX3ByaXYgKmhkbWlf cHJpdjsKIAogCWludGVsX2RpZ19wb3J0ID0ga3phbGxvYyhzaXplb2YoKmludGVsX2RpZ19wb3J0 KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFpbnRlbF9kaWdfcG9ydCkKQEAgLTIyMzksNCArMjQwNSwx OSBAQCB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWludGVs X2RpZ19wb3J0LT5tYXhfbGFuZXMgPSA0OwogCiAJaW50ZWxfaGRtaV9pbml0X2Nvbm5lY3Rvcihp bnRlbF9kaWdfcG9ydCwgaW50ZWxfY29ubmVjdG9yKTsKKworCS8qIEFkZGVkIGZvciBIRE1JIEF1 ZGlvICovCisJLyogSERNSSBwcml2YXRlIGRhdGEgKi8KKwlJTklUX1dPUksoJmRldl9wcml2LT5o ZG1pX2F1ZGlvX3dxLCBpOTE1X2hhZF93cSk7CisJaGRtaV9wcml2ID0ga3phbGxvYyhzaXplb2Yo c3RydWN0IGhkbWlfYXVkaW9fcHJpdiksIEdGUF9LRVJORUwpOworCWlmICghaGRtaV9wcml2KSB7 CisJCXByX2VycigiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSIpOworCX0gZWxzZSB7CisJCWhk bWlfcHJpdi0+ZGV2ID0gZGV2OworCQloZG1pX3ByaXYtPmhkbWliX3JlZyA9IEhETUlCOworCQlo ZG1pX3ByaXYtPm1vbml0b3JfdHlwZSA9IE1PTklUT1JfVFlQRV9IRE1JOworCQloZG1pX3ByaXYt PmlzX2hkY3Bfc3VwcG9ydGVkID0gdHJ1ZTsKKwkJaTkxNV9oZG1pX2F1ZGlvX2luaXQoaGRtaV9w cml2KTsKKwl9CisKIH0KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK