From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH] drm/i915/dp: DP audio API changes for MST Date: Tue, 2 Aug 2016 19:14:30 -0700 Message-ID: <1470190470-32326-2-git-send-email-dhinakaran.pandiyan@intel.com> References: <1470190470-32326-1-git-send-email-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470190470-32326-1-git-send-email-dhinakaran.pandiyan@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: alsa-devel@alsa-project.org, tiwai@suse.de, libin.yang@linux.intel.com, Dhinakaran Pandiyan List-Id: alsa-devel@alsa-project.org RFAgTVNUIHByb3ZpZGVzIHRoZSBjYXBhYmlsaXR5IHRvIHNlbmQgbXVsdGlwbGUgdmlkZW8gYW5k IGF1ZGlvIHN0cmVhbXMgdmlhCm9uZSBzaW5nbGUgcG9ydC4gVGhpcyByZXF1aXJlcyB0aGUgQVBJ J3MgYmV0d2VlbiBpOTE1IGFuZCBhdWRpbyBkcml2ZXJzIHRvCmRpc3Rpbmd1aXNoIGJldHdlZW4g YXVkaW8gY2FwYWJsZSBkaXNwbGF5cyBjb25uZWN0ZWQgdG8gYSBwb3J0LiBUaGlzIHBhdGNoCmFk ZHMgdGhpcyBzdXBwb3J0IHZpYSBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciAnaW50IGRldl9pZCcu IFRoZSBleGlzdGluZwpwYXJhbWV0ZXIgJ3BvcnQnIGRvZXMgbm90IGNoYW5nZSBpdCdzIG1lYW5p bmcuCgpkZXZfaWQgPQoJTVNUCTogcGlwZSB0aGF0IHRoZSBzdHJlYW0gb3JpZ2luYXRlcyBmcm9t CglOb24tTVNUCTogLTEKCkFmZmVjdGVkIEFQSXM6CnN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVu dF9vcHMKLSAgICAgICBpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50 IHBvcnQsIGludCByYXRlKTsKKwlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2Ug KiwgaW50IHBvcnQsIGludCBkZXZfaWQsCisJICAgICBpbnQgcmF0ZSk7CgotICAgICAgIGludCAo KmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGJvb2wgKmVuYWJsZWQsCi0gICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7Cisg ICAgICAgaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9p ZCwKKwkJICAgICAgIGJvb2wgKmVuYWJsZWQsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9i eXRlcyk7CgpzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzCi0gICAgICAgdm9p ZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0KTsKKyAgICAgICB2 b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBkZXZf aWQpOwoKVGhpcyBwYXRjaCBtYWtlcyBkdW1teSBjaGFuZ2VzIGluIHRoZSBhdWRpbyBkcml2ZXJz IGZvciBidWlsZCB0byBzdWNjZWVkLgoKU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlh biA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRp by5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIGluY2x1ZGUv ZHJtL2k5MTVfY29tcG9uZW50LmggICAgICAgfCAgNiArLS0KIGluY2x1ZGUvc291bmQvaGRhX2k5 MTUuaCAgICAgICAgICAgfCAxMSArKy0tLQogc291bmQvaGRhL2hkYWNfaTkxNS5jICAgICAgICAg ICAgICB8ICA5ICsrKy0tCiBzb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyAgICAgICAgIHwgIDcg KystLQogNiBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA2NWFkYTVkLi44ZTRjOGM4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKQEAgLTIwNTQsNyArMjA1NCw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlIHsKIAkvKiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLwogCWJvb2wgY2h2 X3BoeV9hc3NlcnRbMl07CiAKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5 MTVfTUFYX1BPUlRTXTsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYXZfZW5jX21hcFtJOTE1X01B WF9QSVBFU107CiAKIAkvKgogCSAqIE5PVEU6IFRoaXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24s IGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVk aW8uYwppbmRleCA4YzQ5M2RlLi5jYmU0NGM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlv LmMKQEAgLTUwMCw2ICs1MDAsOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21w b25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKIAlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsK IAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0OworCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKKwlpbnQgZGV2X2lkID0gLTE7CisKIAogCWNvbm5lY3RvciA9IGRybV9z ZWxlY3RfZWxkKGVuY29kZXIpOwogCWlmICghY29ubmVjdG9yKQpAQCAtNTIyLDE0ICs1MjUsMTkg QEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIpCiAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2VuYWJsZShjb25u ZWN0b3IsIGludGVsX2VuY29kZXIsCiAJCQkJCQkgICAgIGFkanVzdGVkX21vZGUpOwogCisJaWYg KGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkKKwkJZGV2X2lkID0g cGlwZTsKKwogCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CiAJaW50ZWxfZW5jb2Rl ci0+YXVkaW9fY29ubmVjdG9yID0gY29ubmVjdG9yOworCiAJLyogcmVmZXJyZWQgaW4gYXVkaW8g Y2FsbGJhY2tzICovCi0JZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29k ZXI7CisJZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBpbnRlbF9lbmNvZGVyOwogCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKIAogCWlmIChhY29tcCAmJiBhY29tcC0+YXVk aW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KQotCQlhY29tcC0+YXVk aW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQp IHBvcnQpOworCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9f b3BzLT5hdWRpb19wdHIsCisJCQkJCQkgKGludCkgcG9ydCwgZGV2X2lkKTsKIH0KIAogLyoqCkBA IC01NDIsMjIgKzU1MCwyOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29t cCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7CiAJZW51bSBwb3J0 IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBp cGU7CisJaW50IGRldl9pZCA9IC0xOworCisJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5U RUxfT1VUUFVUX0RQX01TVCkKKwkJZGV2X2lkID0gcGlwZTsKIAogCWlmIChkZXZfcHJpdi0+ZGlz cGxheS5hdWRpb19jb2RlY19kaXNhYmxlKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2Rl Y19kaXNhYmxlKGludGVsX2VuY29kZXIpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211 dGV4KTsKIAlpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgPSBOVUxMOwotCWRldl9wcml2 LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBOVUxMOworCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVd ID0gTlVMTDsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CiAKIAlpZiAoYWNv bXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlm eSkKLQkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+ YXVkaW9fcHRyLCAoaW50KSBwb3J0KTsKKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3Rp ZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLAorCQkJCQkJIChpbnQpIHBvcnQsIGRldl9p ZCk7CiB9CiAKIC8qKgpAQCAtNjI4LDggKzY0MywzMiBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9f Y29tcG9uZW50X2dldF9jZGNsa19mcmVxKHN0cnVjdCBkZXZpY2UgKmRldikKIAlyZXR1cm4gZGV2 X3ByaXYtPmNkY2xrX2ZyZXE7CiB9CiAKLXN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRf c3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKLQkJCQkJCWludCBwb3J0LCBpbnQg cmF0ZSkKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZ2V0X3NhdmVkX2VuY29kZXIoc3Ry dWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbXSwKKwkJCQkJICAgICAgIGludCBwb3J0LCBp bnQgZGV2X2lkKQoreworCisJZW51bSBwaXBlIHBpcGU7CisJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyOworCisJaWYgKGRldl9pZCA+PSAwICYmIGRldl9pZCA8IEk5MTVfTUFYX1BJUEVTKQor CQlyZXR1cm4gYXZfZW5jX21hcFtkZXZfaWRdOworCisJZm9yIChwaXBlID0gUElQRV9BOyBwaXBl IDwgSTkxNV9NQVhfUElQRVM7IHBpcGUrKykgeworCisJCWlmICghYXZfZW5jX21hcFtwaXBlXSkK KwkJCWNvbnRpbnVlOworCisJCWVuY29kZXIgPSAmYXZfZW5jX21hcFtwaXBlXS0+YmFzZTsKKwkJ aWYgKHBvcnQgPT0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpLT5wb3J0KQorCQkJcmV0dXJuIGF2 X2VuY19tYXBbcGlwZV07CisJfQorCisJcmV0dXJuIE5VTEw7CisKK30KKworc3RhdGljIGludCBp OTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LCBp bnQgcG9ydCwKKwkJCQkJCWludCBkZXZfaWQsIGludCByYXRlKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXI7CkBAIC02NDksMTUgKzY4OCwxNiBAQCBzdGF0aWMgaW50IGk5 MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJ CXJldHVybiAwOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKKwogCS8qIDEu IGdldCB0aGUgcGlwZSAqLwotCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFw W3BvcnRdOwotCS8qIGludGVsX2VuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3IgRFAgTVNUICovCisJ aW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmNvZGVyKGRldl9wcml2LT5hdl9lbmNfbWFwLCBw b3J0LCBkZXZfaWQpOwogCWlmICghaW50ZWxfZW5jb2RlciB8fCAhaW50ZWxfZW5jb2Rlci0+YmFz ZS5jcnRjIHx8CiAJICAgIGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkp IHsKIAkJRFJNX0RFQlVHX0tNUygibm8gdmFsaWQgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQp KTsKIAkJZXJyID0gLUVOT0RFVjsKIAkJZ290byB1bmxvY2s7CiAJfQorCiAJY3J0YyA9IHRvX2lu dGVsX2NydGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsKIAlwaXBlID0gY3J0Yy0+cGlwZTsK IAlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKQEAgLTcwMiw3ICs3NDIsNyBAQCBzdGF0aWMg aW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpk ZXYsCiB9CiAKIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2VsZChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIGludCBwb3J0LAotCQkJCQlib29sICplbmFibGVkLAorCQkJCQlpbnQgZGV2 X2lkLCBib29sICplbmFibGVkLAogCQkJCQl1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0 ZXMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUo ZGV2KTsKQEAgLTcxMCwxNyArNzUwLDIxIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25l bnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAogCWNvbnN0IHU4ICplbGQ7 CiAJaW50IHJldCA9IC1FSU5WQUw7CiAKKwogCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRl eCk7Ci0JaW50ZWxfZW5jb2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF07Ci0JLyog aW50ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8KLQlpZiAoaW50ZWxfZW5j b2RlcikgewotCQlyZXQgPSAwOwotCQkqZW5hYmxlZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nv bm5lY3RvciAhPSBOVUxMOwotCQlpZiAoKmVuYWJsZWQpIHsKLQkJCWVsZCA9IGludGVsX2VuY29k ZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOwotCQkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7Ci0J CQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwotCQl9CisKKwlpbnRlbF9l bmNvZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRl dl9pZCk7CisJaWYgKCFpbnRlbF9lbmNvZGVyKSB7CisJCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmF2X211dGV4KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSAwOworCSplbmFibGVkID0g aW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yICE9IE5VTEw7CisJaWYgKCplbmFibGVkKSB7 CisJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOworCQlyZXQgPSBk cm1fZWxkX3NpemUoZWxkKTsKKwkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4X2J5dGVzLCByZXQp KTsKIAl9CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CmRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25l bnQuaAppbmRleCBiNDZmYTBlLi4xNDE5Yzk4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9pOTE1 X2NvbXBvbmVudC5oCisrKyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKQEAgLTY0LDcg KzY0LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyB7CiAJICogQ2FsbGVkIGZy b20gYXVkaW8gZHJpdmVyLiBBZnRlciBhdWRpbyBkcml2ZXIgc2V0cyB0aGUKIAkgKiBzYW1wbGUg cmF0ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3RzCiAJICovCi0JaW50 ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcmF0ZSk7 CisJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQg ZGV2X2lkLCBpbnQgcmF0ZSk7CiAJLyoqCiAJICogQGdldF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0 YXRlIGFuZCBFTEQgYnl0ZXMgZm9yIHRoZSBnaXZlbiBwb3J0CiAJICoKQEAgLTc3LDcgKzc3LDcg QEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyB7CiAJICogTm90ZSB0aGF0IHRoZSBy ZXR1cm5lZCBzaXplIG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBUaGVuIGl0CiAJICogaW1wbGll cyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBoYXMgYmVlbiBjb3BpZWQgdG8gdGhlIGJ1ZmZlci4K IAkgKi8KLQlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBib29sICpl bmFibGVkLAorCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBk ZXZfaWQsIGJvb2wgKmVuYWJsZWQsCiAJCSAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIGludCBt YXhfYnl0ZXMpOwogfTsKIApAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21w b25lbnRfYXVkaW9fb3BzIHsKIAkgKiBzdGF0dXMgYWNjb3JkaW5nbHkgKGV2ZW4gd2hlbiB0aGUg SERBIGNvbnRyb2xsZXIgaXMgaW4gcG93ZXIgc2F2ZQogCSAqIG1vZGUpLgogCSAqLwotCXZvaWQg KCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7CisJdm9pZCAoKnBp bl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgZGV2X2lkKTsKIH07 CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oIGIvaW5jbHVkZS9z b3VuZC9oZGFfaTkxNS5oCmluZGV4IDc5NmNhYmYuLjVhYjk3MmUgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvc291bmQvaGRhX2k5MTUuaAorKysgYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKQEAgLTEw LDggKzEwLDkgQEAKIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwKHN0cnVjdCBoZGFjX2J1 cyAqYnVzLCBib29sIGVuYWJsZSk7CiBpbnQgc25kX2hkYWNfZGlzcGxheV9wb3dlcihzdHJ1Y3Qg aGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOwogdm9pZCBzbmRfaGRhY19pOTE1X3NldF9iY2xr KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKLWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3Ry dWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpOwotaW50IHNu ZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90 IG5pZCwKK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpj b2RlYywgaGRhX25pZF90IG5pZCwKKwkJCSAgICAgaW50IGRldl9pZCwgaW50IHJhdGUpOworaW50 IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25p ZF90IG5pZCwgaW50IGRldl9pZCwKIAkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1 ZmZlciwgaW50IG1heF9ieXRlcyk7CiBpbnQgc25kX2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFj X2J1cyAqYnVzKTsKIGludCBzbmRfaGRhY19pOTE1X2V4aXQoc3RydWN0IGhkYWNfYnVzICpidXMp OwpAQCAtMjksMTMgKzMwLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzbmRfaGRhY19pOTE1X3Nl dF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKQogewogfQogc3RhdGljIGlubGluZSBpbnQgc25k X2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsCi0JCQkJCSAg IGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQorCQkJCQkgICBoZGFfbmlkX3QgbmlkLCBpbnQgZGV2 X2lkLCBpbnQgcmF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIHN0YXRpYyBpbmxpbmUgaW50IHNuZF9o ZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5p ZCwKLQkJCQkJIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwKLQkJCQkJIGludCBt YXhfYnl0ZXMpCisJCQkJCSBpbnQgZGV2X2lkLCBib29sICphdWRpb19lbmFibGVkLAorCQkJCQkg Y2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKQogewogCXJldHVybiAtRU5PREVWOwogfQpkaWZm IC0tZ2l0IGEvc291bmQvaGRhL2hkYWNfaTkxNS5jIGIvc291bmQvaGRhL2hkYWNfaTkxNS5jCmlu ZGV4IGM5YWYwMjIuLjZlYTYzYWMgMTAwNjQ0Ci0tLSBhL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwor KysgYi9zb3VuZC9oZGEvaGRhY19pOTE1LmMKQEAgLTIwMSw3ICsyMDEsOCBAQCBzdGF0aWMgaW50 IHBpbjJwb3J0KHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBwaW5fbmlkKQog ICogVGhpcyBmdW5jdGlvbiBzZXRzIE4vQ1RTIHZhbHVlIGJhc2VkIG9uIHRoZSBnaXZlbiBzYW1w bGUgcmF0ZS4KICAqIFJldHVybnMgemVybyBmb3Igc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJv ciBjb2RlLgogICovCi1pbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2Rl dmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQoraW50IHNuZF9oZGFjX3N5bmNf YXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAorCQkJ ICAgICBpbnQgZGV2X2lkLCBpbnQgcmF0ZSkKIHsKIAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNv ZGVjLT5idXM7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVk aW9fY29tcG9uZW50OwpAQCAtMjEyLDcgKzIxMyw3IEBAIGludCBzbmRfaGRhY19zeW5jX2F1ZGlv X3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUp CiAJcG9ydCA9IHBpbjJwb3J0KGNvZGVjLCBuaWQpOwogCWlmIChwb3J0IDwgMCkKIAkJcmV0dXJu IC1FSU5WQUw7Ci0JcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNfYXVkaW9fcmF0ZShhY29tcC0+ZGV2 LCBwb3J0LCByYXRlKTsKKwlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRpb19yYXRlKGFjb21w LT5kZXYsIHBvcnQsIGRldl9pZCwgcmF0ZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRh Y19zeW5jX2F1ZGlvX3JhdGUpOwogCkBAIC0yMzYsNyArMjM3LDcgQEAgRVhQT1JUX1NZTUJPTF9H UEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsKICAqIHRodXMgaXQgbWF5IGJlIG92ZXIgQG1h eF9ieXRlcy4gIElmIGl0J3Mgb3ZlciBAbWF4X2J5dGVzLCBpdCBpbXBsaWVzCiAgKiB0aGF0IG9u bHkgYSBwYXJ0IG9mIEVMRCBieXRlcyBoYXZlIGJlZW4gZmV0Y2hlZC4KICAqLwotaW50IHNuZF9o ZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5p ZCwKK2ludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMs IGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQsCiAJCQkgICBib29sICphdWRpb19lbmFibGVkLCBj aGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCiB7CiAJc3RydWN0IGhkYWNfYnVzICpidXMgPSBj b2RlYy0+YnVzOwpAQCAtMjQ5LDcgKzI1MCw3IEBAIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxk KHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCiAJcG9ydCA9IHBpbjJw b3J0KGNvZGVjLCBuaWQpOwogCWlmIChwb3J0IDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JcmV0 dXJuIGFjb21wLT5vcHMtPmdldF9lbGQoYWNvbXAtPmRldiwgcG9ydCwgYXVkaW9fZW5hYmxlZCwK KwlyZXR1cm4gYWNvbXAtPm9wcy0+Z2V0X2VsZChhY29tcC0+ZGV2LCBwb3J0LCBkZXZfaWQsIGF1 ZGlvX2VuYWJsZWQsCiAJCQkJICAgYnVmZmVyLCBtYXhfYnl0ZXMpOwogfQogRVhQT1JUX1NZTUJP TF9HUEwoc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCk7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRh L3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCmluZGV4IGQwZDVhZDgu LjA3N2Q0OGEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCisrKyBiL3Nv dW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCkBAIC0xNDg1LDcgKzE0ODUsNyBAQCBzdGF0aWMgdm9p ZCBzeW5jX2VsZF92aWFfYWNvbXAoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCiAKIAltdXRleF9s b2NrKCZwZXJfcGluLT5sb2NrKTsKIAllbGQtPm1vbml0b3JfcHJlc2VudCA9IGZhbHNlOwotCXNp emUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+Y29yZSwgcGVyX3Bpbi0+cGluX25p ZCwKKwlzaXplID0gc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4t PnBpbl9uaWQsIC0xLAogCQkJCSAgICAgICZlbGQtPm1vbml0b3JfcHJlc2VudCwgZWxkLT5lbGRf YnVmZmVyLAogCQkJCSAgICAgIEVMRF9NQVhfU0laRSk7CiAJaWYgKHNpemUgPiAwKSB7CkBAIC0x NzM5LDcgKzE3MzksOCBAQCBzdGF0aWMgaW50IGdlbmVyaWNfaGRtaV9wbGF5YmFja19wY21fcHJl cGFyZShzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLAogCS8qIENhbGwgc3luY19hdWRpb19y YXRlIHRvIHNldCB0aGUgTi9DVFMvTSBtYW51YWxseSBpZiBuZWNlc3NhcnkgKi8KIAkvKiBUb2Rv OiBhZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBvcnQgbGF0ZXIgKi8KIAlpZiAoY29kZWNfaGFzX2Fj b21wKGNvZGVjKSkKLQkJc25kX2hkYWNfc3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGlu X25pZCwgcnVudGltZS0+cmF0ZSk7CisJCXNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMt PmNvcmUsIHBpbl9uaWQsIC0xLAorCQkJCQkgcnVudGltZS0+cmF0ZSk7CiAKIAlub25fcGNtID0g Y2hlY2tfbm9uX3BjbV9wZXJfY3Z0KGNvZGVjLCBjdnRfbmlkKTsKIAltdXRleF9sb2NrKCZwZXJf cGluLT5sb2NrKTsKQEAgLTIyODUsNyArMjI4Niw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0 X3Bvd2VyX3N0YXRlKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBoZGFfbmlkX3QgZmcsCiAJc25k X2hkYV9jb2RlY19zZXRfcG93ZXJfdG9fYWxsKGNvZGVjLCBmZywgcG93ZXJfc3RhdGUpOwogfQog Ci1zdGF0aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGludCBw b3J0KQorc3RhdGljIHZvaWQgaW50ZWxfcGluX2VsZF9ub3RpZnkodm9pZCAqYXVkaW9fcHRyLCBp bnQgcG9ydCwgaW50IGRldl9pZCkKIHsKIAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlv X3B0cjsKIAlpbnQgcGluX25pZDsKLS0gCjIuNS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK