From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v2] drm/i915/dp: DP audio API changes for MST Date: Tue, 9 Aug 2016 13:58:33 -0700 Message-ID: <1470776313-15416-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: 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, jeeja.kp@intel.com, libin.yang@linux.intel.com, Dhinakaran Pandiyan List-Id: alsa-devel@alsa-project.org RFAgTVNUIHByb3ZpZGVzIHRoZSBjYXBhYmlsaXR5IHRvIHNlbmQgbXVsdGlwbGUgdmlkZW8gYW5k IGF1ZGlvIHN0cmVhbXMKdGhyb3VnaCBhIHNpbmdsZSBwb3J0LiBUaGlzIHJlcXVpcmVzIHRoZSBB UEkncyBiZXR3ZWVuIGk5MTUgYW5kIGF1ZGlvCmRyaXZlcnMgdG8gZGlzdGluZ3Vpc2ggYmV0d2Vl biBtdWx0aXBsZSBhdWRpbyBjYXBhYmxlIGRpc3BsYXlzIHRoYXQgY2FuIGJlCmNvbm5lY3RlZCB0 byBhIHBvcnQuIEN1cnJlbnRseSBvbmx5IHRoZSBwb3J0IGlkZW50aXR5IGlzIHNoYXJlZCBpbiB0 aGUKQVBJcy4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIE1TVCB3aXRoIGFuIGFkZGl0aW9u YWwgcGFyYW1ldGVyCidpbnQgcGlwZScuICBUaGUgZXhpc3RpbmcgcGFyYW1ldGVyICdwb3J0JyBk b2VzIG5vdCBjaGFuZ2UgaXQncyBtZWFuaW5nLgoKcGlwZSA9CglNU1QJOiBkaXNwbGF5IHBpcGUg dGhhdCB0aGUgc3RyZWFtIG9yaWdpbmF0ZXMgZnJvbQoJTm9uLU1TVAk6IC0xCgpBZmZlY3RlZCBB UElzOgpzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzCi0gICAgICAgaW50ICgqc3luY19h dWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcmF0ZSk7CisJaW50ICgq c3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcGlwZSwKKwkg ICAgIGludCByYXRlKTsKCi0gICAgICAgaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBp bnQgcG9ydCwgYm9vbCAqZW5hYmxlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg Y2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKKyAgICAgICBpbnQgKCpnZXRfZWxkKShzdHJ1Y3Qg ZGV2aWNlICosIGludCBwb3J0LCBpbnQgcGlwZSwKKwkJICAgICAgIGJvb2wgKmVuYWJsZWQsIHVu c2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7CgpzdHJ1Y3QgaTkxNV9hdWRpb19jb21w b25lbnRfYXVkaW9fb3BzCi0gICAgICAgdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRp b19wdHIsIGludCBwb3J0KTsKKyAgICAgICB2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1 ZGlvX3B0ciwgaW50IHBvcnQsIGludCBwaXBlKTsKClRoaXMgcGF0Y2ggbWFrZXMgZHVtbXkgY2hh bmdlcyBpbiB0aGUgYXVkaW8gZHJpdmVycyAoTGliaW4pIGZvciBidWlsZCB0bwpzdWNjZWVkLiBU aGUgYXVkaW8gc2lkZSBkcml2ZXJzIHdpbGwgc2VuZCB0aGUgcmlnaHQgJ3BpcGUnIHZhbHVlcyBp bgpwYXRjaGVzIHRoYXQgd2lsbCBmb2xsb3cuCgp2MjoKUmVuYW1lZCB0aGUgbmV3IEFQSSBwYXJh bWV0ZXIgZnJvbSAnZGV2X2lkJyB0byAncGlwZScuIChKaW0sIFZpbGxlKQpJbmNsdWRlZCBBc29j IGRyaXZlciBBUEkgY29tcGF0aWJpbGl0eSBjaGFuZ2VzIGZyb20gSmVlamEuCkFkZGVkIFdBUk5f T04oKSBmb3IgaW52YWxpZCBwaXBlIGluIGdldF9zYXZlZF9lbmNvZGVyKCkuIChUYWthc2hpKQpB ZGRlZCBjb21tZW50IGZvciBhdl9lbmNfbWFwW10gZGVmaW5pdGlvbi4gKFRha2FzaGkpCgpTaWdu ZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVs LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgIHwgIDMgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA5MiArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLQogaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaCAgICAgICB8 ICA2ICstLQogaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oICAgICAgICAgICB8IDExICsrLS0tCiBz b3VuZC9oZGEvaGRhY19pOTE1LmMgICAgICAgICAgICAgIHwgIDkgKystLQogc291bmQvcGNpL2hk YS9wYXRjaF9oZG1pLmMgICAgICAgICB8ICA3ICstLQogc291bmQvc29jL2NvZGVjcy9oZGFjX2hk bWkuYyAgICAgICB8ICAyICstCiA3IGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDQ1 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGMzNmQxNzYuLjhlNGE4 OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjAzNiw3ICsyMDM2LDggQEAgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgewogCS8qIHBlcmZvcm0gUEhZIHN0YXRlIHNhbml0eSBjaGVja3M/ ICovCiAJYm9vbCBjaHZfcGh5X2Fzc2VydFsyXTsKIAotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpk aWdfcG9ydF9tYXBbSTkxNV9NQVhfUE9SVFNdOworCS8qIFVzZWQgdG8gc2F2ZSB0aGUgcGlwZS10 by1lbmNvZGVyIG1hcHBpbmcgZm9yIGF1ZGlvICovCisJc3RydWN0IGludGVsX2VuY29kZXIgKmF2 X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOwogCiAJLyoKIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBk cmkxL3VtcyBkdW5nZW9uLCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4gWW91ciBwYXRjaApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F1ZGlvLmMKaW5kZXggZWYyMDg3NS4uMjQwZGFkMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jCkBAIC01MDAsNiArNTAwLDcgQEAgdm9pZCBpbnRlbF9hdWRpb19j b2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCiAJc3RydWN0 IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7 CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGln X3BvcnQoZW5jb2Rlcik7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsK KwllbnVtIHBpcGUgcGlwZSA9IC0xOwogCiAJY29ubmVjdG9yID0gZHJtX3NlbGVjdF9lbGQoZW5j b2Rlcik7CiAJaWYgKCFjb25uZWN0b3IpCkBAIC01MjQsMTIgKzUyNSwxOCBAQCB2b2lkIGludGVs X2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikK IAogCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CiAJaW50ZWxfZW5jb2Rlci0+YXVk aW9fY29ubmVjdG9yID0gY29ubmVjdG9yOworCiAJLyogcmVmZXJyZWQgaW4gYXVkaW8gY2FsbGJh Y2tzICovCi0JZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7CisJ ZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBpbnRlbF9lbmNvZGVyOwogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmF2X211dGV4KTsKIAorCisJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0g SU5URUxfT1VUUFVUX0RQX01TVCkKKwkJcGlwZSA9IGNydGMtPnBpcGU7CisKIAlpZiAoYWNvbXAg JiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkK LQkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVk aW9fcHRyLCAoaW50KSBwb3J0KTsKKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnko YWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLAorCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBp cGUpOwogfQogCiAvKioKQEAgLTU0MiwyMiArNTQ5LDI4IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29k ZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQogdm9pZCBpbnRl bF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy KQogewogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNl OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRj KTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaTkxNV9hdWRp b19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKIAlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNv ZGVyKTsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0OworCWVudW0gcGlw ZSBwaXBlID0gLTE7CiAKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJs ZSkKIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVy KTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CiAJaW50ZWxfZW5jb2Rlci0+ YXVkaW9fY29ubmVjdG9yID0gTlVMTDsKLQlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdID0g TlVMTDsKKwlkZXZfcHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9IE5VTEw7CiAJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwogCisJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5U RUxfT1VUUFVUX0RQX01TVCkKKwkJcGlwZSA9IGNydGMtPnBpcGU7CisKIAlpZiAoYWNvbXAgJiYg YWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkKLQkJ YWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9f cHRyLCAoaW50KSBwb3J0KTsKKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNv bXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLAorCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBpcGUp OwogfQogCiAvKioKQEAgLTYzMiwxNSArNjQ1LDM5IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19j b21wb25lbnRfZ2V0X2NkY2xrX2ZyZXEoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkZXZf cHJpdi0+Y2RjbGtfZnJlcTsKIH0KIAotc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9z eW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAotCQkJCQkJaW50IHBvcnQsIGludCBy YXRlKQorc3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVyICpnZXRfc2F2ZWRfZW5jb2RlcihzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqYXZfZW5jX21hcFtdLAorCQkJCQkgICAgICAgaW50IHBvcnQsIGlu dCBwaXBlKQoreworCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKKworCWlmIChXQVJOX09O KHBpcGUgPj0gSTkxNV9NQVhfUElQRVMpKQorCQlyZXR1cm4gTlVMTDsKKworCS8qIE1TVCAqLwor CWlmIChwaXBlICE9IC0xKQorCQlyZXR1cm4gYXZfZW5jX21hcFtwaXBlXTsKKworCS8qIE5vbi1N U1QgKi8KKwlmb3IgKHBpcGUgPSBQSVBFX0E7IHBpcGUgPCBJOTE1X01BWF9QSVBFUzsgcGlwZSsr KSB7CisJCWlmICghYXZfZW5jX21hcFtwaXBlXSkKKwkJCWNvbnRpbnVlOworCisJCWVuY29kZXIg PSAmYXZfZW5jX21hcFtwaXBlXS0+YmFzZTsKKwkJaWYgKHBvcnQgPT0gZW5jX3RvX2RpZ19wb3J0 KGVuY29kZXIpLT5wb3J0KQorCQkJcmV0dXJuIGF2X2VuY19tYXBbcGlwZV07CisJfQorCisJcmV0 dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRp b19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsCisJCQkJCQlpbnQgcGlwZSwgaW50 IHJhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5 MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAlzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVu dDsKLQllbnVtIHBpcGUgcGlwZSA9IElOVkFMSURfUElQRTsKIAl1MzIgdG1wOwogCWludCBuOwog CWludCBlcnIgPSAwOwpAQCAtNjU0LDI1ICs2OTEsMjAgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAogCiAJaTkxNV9h dWRpb19jb21wb25lbnRfZ2V0X3Bvd2VyKGRldik7CiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2 X211dGV4KTsKKwogCS8qIDEuIGdldCB0aGUgcGlwZSAqLwotCWludGVsX2VuY29kZXIgPSBkZXZf cHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwotCS8qIGludGVsX2VuY29kZXIgbWlnaHQgYmUgTlVM TCBmb3IgRFAgTVNUICovCisJaW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmNvZGVyKGRldl9w cml2LT5hdl9lbmNfbWFwLCBwb3J0LCBwaXBlKTsKIAlpZiAoIWludGVsX2VuY29kZXIgfHwgIWlu dGVsX2VuY29kZXItPmJhc2UuY3J0YyB8fAogCSAgICBpbnRlbF9lbmNvZGVyLT50eXBlICE9IElO VEVMX09VVFBVVF9IRE1JKSB7Ci0JCURSTV9ERUJVR19LTVMoIm5vIHZhbGlkIHBvcnQgJWNcbiIs IHBvcnRfbmFtZShwb3J0KSk7CisJCURSTV9ERUJVR19LTVMoIk5vdCB2YWxpZCBmb3IgcG9ydCAl Y1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKIAkJZXJyID0gLUVOT0RFVjsKIAkJZ290byB1bmxvY2s7 CiAJfQorCisJLyogcGlwZSBwYXNzZWQgZnJvbSB0aGUgYXVkaW8gZHJpdmVyIHdpbGwgYmUgLTEg Zm9yIG5vbi1tc3QgY2FzZSAgKi8KIAljcnRjID0gdG9faW50ZWxfY3J0YyhpbnRlbF9lbmNvZGVy LT5iYXNlLmNydGMpOwogCXBpcGUgPSBjcnRjLT5waXBlOwotCWlmIChwaXBlID09IElOVkFMSURf UElQRSkgewotCQlEUk1fREVCVUdfS01TKCJubyBwaXBlIGZvciB0aGUgcG9ydCAlY1xuIiwgcG9y dF9uYW1lKHBvcnQpKTsKLQkJZXJyID0gLUVOT0RFVjsKLQkJZ290byB1bmxvY2s7Ci0JfQogCi0J RFJNX0RFQlVHX0tNUygicGlwZSAlYyBjb25uZWN0cyBwb3J0ICVjXG4iLAotCQkJCSAgcGlwZV9u YW1lKHBpcGUpLCBwb3J0X25hbWUocG9ydCkpOwogCW1vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGU7CiAKIAkvKiBwb3J0IG11c3QgYmUgdmFsaWQgbm93LCBvdGhlcndpc2Ug dGhlIHBpcGUgd2lsbCBiZSBpbnZhbGlkICovCkBAIC03MDgsNyArNzQwLDcgQEAgc3RhdGljIGlu dCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2 LAogfQogCiBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRl dmljZSAqZGV2LCBpbnQgcG9ydCwKLQkJCQkJYm9vbCAqZW5hYmxlZCwKKwkJCQkJaW50IHBpcGUs IGJvb2wgKmVuYWJsZWQsCiAJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcykK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYp OwpAQCAtNzE3LDE2ICs3NDksMjAgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9n ZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsCiAJaW50IHJldCA9IC1FSU5WQUw7 CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwotCWludGVsX2VuY29kZXIgPSBk ZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwotCS8qIGludGVsX2VuY29kZXIgbWlnaHQgYmUg TlVMTCBmb3IgRFAgTVNUICovCi0JaWYgKGludGVsX2VuY29kZXIpIHsKLQkJcmV0ID0gMDsKLQkJ KmVuYWJsZWQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgIT0gTlVMTDsKLQkJaWYg KCplbmFibGVkKSB7Ci0JCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVs ZDsKLQkJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOwotCQkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4o bWF4X2J5dGVzLCByZXQpKTsKLQkJfQorCisJaW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmNv ZGVyKGRldl9wcml2LT5hdl9lbmNfbWFwLCBwb3J0LCBwaXBlKTsKKwlpZiAoIWludGVsX2VuY29k ZXIpIHsKKwkJRFJNX0RFQlVHX0tNUygiTm90IHZhbGlkIGZvciBwb3J0ICVjXG4iLCBwb3J0X25h bWUocG9ydCkpOworCQltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CisJCXJldHVy biByZXQ7CisJfQorCisJcmV0ID0gMDsKKwkqZW5hYmxlZCA9IGludGVsX2VuY29kZXItPmF1ZGlv X2Nvbm5lY3RvciAhPSBOVUxMOworCWlmICgqZW5hYmxlZCkgeworCQllbGQgPSBpbnRlbF9lbmNv ZGVyLT5hdWRpb19jb25uZWN0b3ItPmVsZDsKKwkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7CisJ CW1lbWNweShidWYsIGVsZCwgbWluKG1heF9ieXRlcywgcmV0KSk7CiAJfQogCiAJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9j b21wb25lbnQuaCBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKaW5kZXggYjQ2ZmEwZS4u NTQ1YzZlMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAorKysgYi9p bmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9vcHMgewogCSAqIENhbGxlZCBmcm9tIGF1ZGlvIGRyaXZlci4gQWZ0 ZXIgYXVkaW8gZHJpdmVyIHNldHMgdGhlCiAJICogc2FtcGxlIHJhdGUsIGl0IHdpbGwgY2FsbCB0 aGlzIGZ1bmN0aW9uIHRvIHNldCBuL2N0cwogCSAqLwotCWludCAoKnN5bmNfYXVkaW9fcmF0ZSko c3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOworCWludCAoKnN5bmNfYXVkaW9f cmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGludCByYXRlKTsKIAkv KioKIAkgKiBAZ2V0X2VsZDogZmlsbCB0aGUgYXVkaW8gc3RhdGUgYW5kIEVMRCBieXRlcyBmb3Ig dGhlIGdpdmVuIHBvcnQKIAkgKgpAQCAtNzcsNyArNzcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19j b21wb25lbnRfb3BzIHsKIAkgKiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNpemUgbWF5IGJlIG92 ZXIgQG1heF9ieXRlcy4gIFRoZW4gaXQKIAkgKiBpbXBsaWVzIHRoYXQgb25seSBhIHBhcnQgb2Yg RUxEIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgYnVmZmVyLgogCSAqLwotCWludCAoKmdldF9lbGQp KHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGJvb2wgKmVuYWJsZWQsCisJaW50ICgqZ2V0X2Vs ZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGJvb2wgKmVuYWJsZWQsCiAJ CSAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOwogfTsKIApAQCAtOTcs NyArOTcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzIHsKIAkgKiBz dGF0dXMgYWNjb3JkaW5nbHkgKGV2ZW4gd2hlbiB0aGUgSERBIGNvbnRyb2xsZXIgaXMgaW4gcG93 ZXIgc2F2ZQogCSAqIG1vZGUpLgogCSAqLwotCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAq YXVkaW9fcHRyLCBpbnQgcG9ydCk7CisJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRp b19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSk7CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvc291bmQvaGRhX2k5MTUuaCBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAppbmRleCA3OTZj YWJmLi4wN2ZkNjRlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKKysrIGIv aW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oCkBAIC0xMCw4ICsxMCw5IEBACiBpbnQgc25kX2hkYWNf c2V0X2NvZGVjX3dha2V1cChzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOwogaW50 IHNuZF9oZGFjX2Rpc3BsYXlfcG93ZXIoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxl KTsKIHZvaWQgc25kX2hkYWNfaTkxNV9zZXRfYmNsayhzdHJ1Y3QgaGRhY19idXMgKmJ1cyk7Ci1p bnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhk YV9uaWRfdCBuaWQsIGludCByYXRlKTsKLWludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVj dCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCitpbnQgc25kX2hkYWNfc3luY19h dWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCisJCQkg ICAgIGludCBwaXBlLCBpbnQgcmF0ZSk7CitpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1 Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcGlwZSwKIAkJCSAgIGJv b2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwgaW50IG1heF9ieXRlcyk7CiBpbnQgc25k X2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKIGludCBzbmRfaGRhY19pOTE1 X2V4aXQoc3RydWN0IGhkYWNfYnVzICpidXMpOwpAQCAtMjksMTMgKzMwLDEzIEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBzbmRfaGRhY19pOTE1X3NldF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKQog ewogfQogc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBo ZGFjX2RldmljZSAqY29kZWMsCi0JCQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQorCQkJ CQkgICBoZGFfbmlkX3QgbmlkLCBpbnQgcGlwZSwgaW50IHJhdGUpCiB7CiAJcmV0dXJuIDA7CiB9 CiBzdGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2Rl dmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCi0JCQkJCSBib29sICphdWRpb19lbmFibGVkLCBj aGFyICpidWZmZXIsCi0JCQkJCSBpbnQgbWF4X2J5dGVzKQorCQkJCQkgaW50IHBpcGUsIGJvb2wg KmF1ZGlvX2VuYWJsZWQsCisJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCiB7CiAJ cmV0dXJuIC1FTk9ERVY7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9oZGEvaGRhY19pOTE1LmMgYi9z b3VuZC9oZGEvaGRhY19pOTE1LmMKaW5kZXggYzlhZjAyMi4uYjk5OTk0YiAxMDA2NDQKLS0tIGEv c291bmQvaGRhL2hkYWNfaTkxNS5jCisrKyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwpAQCAtMjAx LDcgKzIwMSw4IEBAIHN0YXRpYyBpbnQgcGluMnBvcnQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2Rl YywgaGRhX25pZF90IHBpbl9uaWQpCiAgKiBUaGlzIGZ1bmN0aW9uIHNldHMgTi9DVFMgdmFsdWUg YmFzZWQgb24gdGhlIGdpdmVuIHNhbXBsZSByYXRlLgogICogUmV0dXJucyB6ZXJvIGZvciBzdWNj ZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCiAgKi8KLWludCBzbmRfaGRhY19zeW5jX2F1 ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJh dGUpCitpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29k ZWMsIGhkYV9uaWRfdCBuaWQsCisJCQkgICAgIGludCBwaXBlLCBpbnQgcmF0ZSkKIHsKIAlzdHJ1 Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9u ZW50ICphY29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50OwpAQCAtMjEyLDcgKzIxMyw3IEBAIGlu dCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRh X25pZF90IG5pZCwgaW50IHJhdGUpCiAJcG9ydCA9IHBpbjJwb3J0KGNvZGVjLCBuaWQpOwogCWlm IChwb3J0IDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNf YXVkaW9fcmF0ZShhY29tcC0+ZGV2LCBwb3J0LCByYXRlKTsKKwlyZXR1cm4gYWNvbXAtPm9wcy0+ c3luY19hdWRpb19yYXRlKGFjb21wLT5kZXYsIHBvcnQsIHBpcGUsIHJhdGUpOwogfQogRVhQT1JU X1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsKIApAQCAtMjM2LDcgKzIzNyw3 IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSk7CiAgKiB0aHVz IGl0IG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBJZiBpdCdzIG92ZXIgQG1heF9ieXRlcywgaXQg aW1wbGllcwogICogdGhhdCBvbmx5IGEgcGFydCBvZiBFTEQgYnl0ZXMgaGF2ZSBiZWVuIGZldGNo ZWQuCiAgKi8KLWludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAq Y29kZWMsIGhkYV9uaWRfdCBuaWQsCitpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3Qg aGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcGlwZSwKIAkJCSAgIGJvb2wg KmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwgaW50IG1heF9ieXRlcykKIHsKIAlzdHJ1Y3Qg aGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7CkBAIC0yNDksNyArMjUwLDcgQEAgaW50IHNuZF9o ZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5p ZCwKIAlwb3J0ID0gcGluMnBvcnQoY29kZWMsIG5pZCk7CiAJaWYgKHBvcnQgPCAwKQogCQlyZXR1 cm4gLUVJTlZBTDsKLQlyZXR1cm4gYWNvbXAtPm9wcy0+Z2V0X2VsZChhY29tcC0+ZGV2LCBwb3J0 LCBhdWRpb19lbmFibGVkLAorCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYs IHBvcnQsIHBpcGUsIGF1ZGlvX2VuYWJsZWQsCiAJCQkJICAgYnVmZmVyLCBtYXhfYnl0ZXMpOwog fQogRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCk7CmRpZmYgLS1naXQg YS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5j CmluZGV4IGQwZDVhZDguLjY3ODkwZGYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hf aGRtaS5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCkBAIC0xNDg1LDcgKzE0ODUs NyBAQCBzdGF0aWMgdm9pZCBzeW5jX2VsZF92aWFfYWNvbXAoc3RydWN0IGhkYV9jb2RlYyAqY29k ZWMsCiAKIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsKIAllbGQtPm1vbml0b3JfcHJlc2Vu dCA9IGZhbHNlOwotCXNpemUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+Y29yZSwg cGVyX3Bpbi0+cGluX25pZCwKKwlzaXplID0gc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMt PmNvcmUsIHBlcl9waW4tPnBpbl9uaWQsIC0xLAogCQkJCSAgICAgICZlbGQtPm1vbml0b3JfcHJl c2VudCwgZWxkLT5lbGRfYnVmZmVyLAogCQkJCSAgICAgIEVMRF9NQVhfU0laRSk7CiAJaWYgKHNp emUgPiAwKSB7CkBAIC0xNzM5LDcgKzE3MzksOCBAQCBzdGF0aWMgaW50IGdlbmVyaWNfaGRtaV9w bGF5YmFja19wY21fcHJlcGFyZShzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLAogCS8qIENh bGwgc3luY19hdWRpb19yYXRlIHRvIHNldCB0aGUgTi9DVFMvTSBtYW51YWxseSBpZiBuZWNlc3Nh cnkgKi8KIAkvKiBUb2RvOiBhZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBvcnQgbGF0ZXIgKi8KIAlp ZiAoY29kZWNfaGFzX2Fjb21wKGNvZGVjKSkKLQkJc25kX2hkYWNfc3luY19hdWRpb19yYXRlKCZj b2RlYy0+Y29yZSwgcGluX25pZCwgcnVudGltZS0+cmF0ZSk7CisJCXNuZF9oZGFjX3N5bmNfYXVk aW9fcmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIC0xLAorCQkJCQkgcnVudGltZS0+cmF0ZSk7 CiAKIAlub25fcGNtID0gY2hlY2tfbm9uX3BjbV9wZXJfY3Z0KGNvZGVjLCBjdnRfbmlkKTsKIAlt dXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsKQEAgLTIyODUsNyArMjI4Niw3IEBAIHN0YXRpYyB2 b2lkIGhhc3dlbGxfc2V0X3Bvd2VyX3N0YXRlKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBoZGFf bmlkX3QgZmcsCiAJc25kX2hkYV9jb2RlY19zZXRfcG93ZXJfdG9fYWxsKGNvZGVjLCBmZywgcG93 ZXJfc3RhdGUpOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICph dWRpb19wdHIsIGludCBwb3J0KQorc3RhdGljIHZvaWQgaW50ZWxfcGluX2VsZF9ub3RpZnkodm9p ZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpCiB7CiAJc3RydWN0IGhkYV9jb2RlYyAq Y29kZWMgPSBhdWRpb19wdHI7CiAJaW50IHBpbl9uaWQ7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mv Y29kZWNzL2hkYWNfaGRtaS5jIGIvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYwppbmRleCAy YWJiNzQyLi5jZjU3YWIzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL2hkYWNfaGRtaS5j CisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMKQEAgLTEzNjYsNyArMTM2Niw3IEBA IHN0YXRpYyBpbnQgaGRhY19oZG1pX3BhcnNlX2FuZF9tYXBfbmlkKHN0cnVjdCBoZGFjX2V4dF9k ZXZpY2UgKmVkZXYsCiAJcmV0dXJuIGhkYWNfaGRtaV9pbml0X2RhaV9tYXAoZWRldik7CiB9CiAK LXN0YXRpYyB2b2lkIGhkYWNfaGRtaV9lbGRfbm90aWZ5X2NiKHZvaWQgKmFwdHIsIGludCBwb3J0 KQorc3RhdGljIHZvaWQgaGRhY19oZG1pX2VsZF9ub3RpZnlfY2Iodm9pZCAqYXB0ciwgaW50IHBv cnQsIGludCBwaXBlKQogewogCXN0cnVjdCBoZGFjX2V4dF9kZXZpY2UgKmVkZXYgPSBhcHRyOwog CXN0cnVjdCBoZGFjX2hkbWlfcHJpdiAqaGRtaSA9IGVkZXYtPnByaXZhdGVfZGF0YTsKLS0gCjIu NS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK