From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v3] drm/i915/dp: DP audio API changes for MST Date: Wed, 10 Aug 2016 12:41:57 -0700 Message-ID: <1470858117-2321-1-git-send-email-dhinakaran.pandiyan@intel.com> References: <20160810142118.GT4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160810142118.GT4329@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, 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 ZGRlZCBjb21tZW50IGZvciBhdl9lbmNfbWFwW10gZGVmaW5pdGlvbi4gKFRha2FzaGkpCgp2MzoK Rml4ZWQgbG9naWMgZXJyb3IgaW50cm9kdWNlZCB3aGlsZSByZW5hbWluZyAnZGV2X2lkJyBhcyAn cGlwZScgKFZpbGxlKQpSZW5hbWVkIGdldF9zYXZlZF9lbmNvZGVyKCkgdG8gZ2V0X3NhdmVkX2Vu YygpIHRvIHJlZHVjZSBsaW5lIGxlbmd0aAoKU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5k aXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dWRpby5jIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIGluY2x1 ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggICAgICAgfCAgNiArLS0KIGluY2x1ZGUvc291bmQvaGRh X2k5MTUuaCAgICAgICAgICAgfCAxMSArKystLQogc291bmQvaGRhL2hkYWNfaTkxNS5jICAgICAg ICAgICAgICB8ICA5ICsrLS0KIHNvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jICAgICAgICAgfCAg NyArLS0KIHNvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMgICAgICAgfCAgMiArLQogNyBmaWxl cyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAppbmRleCBjMzZkMTc2Li44ZTRhODhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKQEAgLTIwMzYsNyArMjAzNiw4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkvKiBw ZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLwogCWJvb2wgY2h2X3BoeV9hc3NlcnRb Ml07CiAKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRT XTsKKwkvKiBVc2VkIHRvIHNhdmUgdGhlIHBpcGUtdG8tZW5jb2RlciBtYXBwaW5nIGZvciBhdWRp byAqLworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICphdl9lbmNfbWFwW0k5MTVfTUFYX1BJUEVTXTsK IAogCS8qCiAJICogTk9URTogVGhpcyBpcyB0aGUgZHJpMS91bXMgZHVuZ2VvbiwgZG9uJ3QgYWRk IHN0dWZmIGhlcmUuIFlvdXIgcGF0Y2gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCmluZGV4 IGVmMjA4NzUuLmE3NDY3ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F1ZGlvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwpAQCAtNTAw LDYgKzUwMCw3IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyKQogCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNv bXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50OwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwogCWVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7CisJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5w aXBlOwogCiAJY29ubmVjdG9yID0gZHJtX3NlbGVjdF9lbGQoZW5jb2Rlcik7CiAJaWYgKCFjb25u ZWN0b3IpCkBAIC01MjQsMTIgKzUyNSwxOCBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIAogCW11dGV4X2xvY2soJmRl dl9wcml2LT5hdl9tdXRleCk7CiAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gY29u bmVjdG9yOworCiAJLyogcmVmZXJyZWQgaW4gYXVkaW8gY2FsbGJhY2tzICovCi0JZGV2X3ByaXYt PmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7CisJZGV2X3ByaXYtPmF2X2VuY19t YXBbcGlwZV0gPSBpbnRlbF9lbmNvZGVyOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211 dGV4KTsKIAorCS8qIGF1ZGlvIGRyaXZlcnMgZXhwZWN0IHBpcGUgPSAtMSB0byBpbmRpY2F0ZSBO b24tTVNUIGNhc2VzICovCisJaWYgKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVU X0RQX01TVCkKKwkJcGlwZSA9IC0xOworCiAJaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMg JiYgYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpCi0JCWFjb21wLT5hdWRpb19vcHMt PnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwgKGludCkgcG9ydCk7 CisJCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1 ZGlvX3B0ciwKKwkJCQkJCSAoaW50KSBwb3J0LCAoaW50KSBwaXBlKTsKIH0KIAogLyoqCkBAIC01 NDIsMjIgKzU0OSwyOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9 IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7CiAJZW51bSBwb3J0IHBv cnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 CiAKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZSkKIAkJZGV2X3By aXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsKIAogCW11dGV4 X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7CiAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVj dG9yID0gTlVMTDsKLQlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdID0gTlVMTDsKKwlkZXZf cHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9IE5VTEw7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ YXZfbXV0ZXgpOwogCisJLyogYXVkaW8gZHJpdmVycyBleHBlY3QgcGlwZSA9IC0xIHRvIGluZGlj YXRlIE5vbi1NU1QgY2FzZXMgKi8KKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9P VVRQVVRfRFBfTVNUKQorCQlwaXBlID0gLTE7CisKIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlv X29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkKLQkJYWNvbXAtPmF1ZGlv X29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLCAoaW50KSBw b3J0KTsKKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29w cy0+YXVkaW9fcHRyLAorCQkJCQkJIChpbnQpIHBvcnQsIChpbnQpIHBpcGUpOwogfQogCiAvKioK QEAgLTYzMiwxNSArNjQ2LDM5IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0 X2NkY2xrX2ZyZXEoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkZXZfcHJpdi0+Y2RjbGtf ZnJlcTsKIH0KIAotc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3Jh dGUoc3RydWN0IGRldmljZSAqZGV2LAotCQkJCQkJaW50IHBvcnQsIGludCByYXRlKQorc3RhdGlj IHN0cnVjdCBpbnRlbF9lbmNvZGVyICpnZXRfc2F2ZWRfZW5jKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICphdl9lbmNfbWFwW10sCisJCQkJCSAgICAgICBpbnQgcG9ydCwgaW50IHBpcGUpCit7CisJc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyOworCisJaWYgKFdBUk5fT04ocGlwZSA+PSBJOTE1X01B WF9QSVBFUykpCisJCXJldHVybiBOVUxMOworCisJLyogTVNUICovCisJaWYgKHBpcGUgIT0gLTEp CisJCXJldHVybiBhdl9lbmNfbWFwW3BpcGVdOworCisJLyogTm9uLU1TVCAqLworCWZvciAocGlw ZSA9IFBJUEVfQTsgcGlwZSA8IEk5MTVfTUFYX1BJUEVTOyBwaXBlKyspIHsKKwkJaWYgKCFhdl9l bmNfbWFwW3BpcGVdKQorCQkJY29udGludWU7CisKKwkJZW5jb2RlciA9ICZhdl9lbmNfbWFwW3Bp cGVdLT5iYXNlOworCQlpZiAocG9ydCA9PSBlbmNfdG9fZGlnX3BvcnQoZW5jb2RlciktPnBvcnQp CisJCQlyZXR1cm4gYXZfZW5jX21hcFtwaXBlXTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKwor c3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRl dmljZSAqZGV2LCBpbnQgcG9ydCwKKwkJCQkJCWludCBwaXBlLCBpbnQgcmF0ZSkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOwogCXN0cnVj dCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj OwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwogCXN0cnVjdCBpOTE1X2F1ZGlvX2Nv bXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50OwotCWVudW0gcGlwZSBw aXBlID0gSU5WQUxJRF9QSVBFOwogCXUzMiB0bXA7CiAJaW50IG47CiAJaW50IGVyciA9IDA7CkBA IC02NTQsMjUgKzY5MiwyMCBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNf YXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAKIAlpOTE1X2F1ZGlvX2NvbXBvbmVudF9n ZXRfcG93ZXIoZGV2KTsKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOworCiAJLyog MS4gZ2V0IHRoZSBwaXBlICovCi0JaW50ZWxfZW5jb2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9t YXBbcG9ydF07Ci0JLyogaW50ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8K KwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVkX2VuYyhkZXZfcHJpdi0+YXZfZW5jX21hcCwgcG9y dCwgcGlwZSk7CiAJaWYgKCFpbnRlbF9lbmNvZGVyIHx8ICFpbnRlbF9lbmNvZGVyLT5iYXNlLmNy dGMgfHwKIAkgICAgaW50ZWxfZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkgewot CQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOwor CQlEUk1fREVCVUdfS01TKCJOb3QgdmFsaWQgZm9yIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0 KSk7CiAJCWVyciA9IC1FTk9ERVY7CiAJCWdvdG8gdW5sb2NrOwogCX0KKworCS8qIHBpcGUgcGFz c2VkIGZyb20gdGhlIGF1ZGlvIGRyaXZlciB3aWxsIGJlIC0xIGZvciBOb24tTVNUIGNhc2UgKi8K IAljcnRjID0gdG9faW50ZWxfY3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOwogCXBpcGUg PSBjcnRjLT5waXBlOwotCWlmIChwaXBlID09IElOVkFMSURfUElQRSkgewotCQlEUk1fREVCVUdf S01TKCJubyBwaXBlIGZvciB0aGUgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKLQkJZXJy ID0gLUVOT0RFVjsKLQkJZ290byB1bmxvY2s7Ci0JfQogCi0JRFJNX0RFQlVHX0tNUygicGlwZSAl YyBjb25uZWN0cyBwb3J0ICVjXG4iLAotCQkJCSAgcGlwZV9uYW1lKHBpcGUpLCBwb3J0X25hbWUo cG9ydCkpOwogCW1vZGUgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAKIAkv KiBwb3J0IG11c3QgYmUgdmFsaWQgbm93LCBvdGhlcndpc2UgdGhlIHBpcGUgd2lsbCBiZSBpbnZh bGlkICovCkBAIC03MDgsNyArNzQxLDcgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVu dF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAogfQogCiBzdGF0aWMgaW50IGk5 MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwK LQkJCQkJYm9vbCAqZW5hYmxlZCwKKwkJCQkJaW50IHBpcGUsIGJvb2wgKmVuYWJsZWQsCiAJCQkJ CXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOwpAQCAtNzE3LDE2ICs3NTAsMjAg QEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2Ug KmRldiwgaW50IHBvcnQsCiAJaW50IHJldCA9IC1FSU5WQUw7CiAKIAltdXRleF9sb2NrKCZkZXZf cHJpdi0+YXZfbXV0ZXgpOwotCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFw W3BvcnRdOwotCS8qIGludGVsX2VuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3IgRFAgTVNUICovCi0J aWYgKGludGVsX2VuY29kZXIpIHsKLQkJcmV0ID0gMDsKLQkJKmVuYWJsZWQgPSBpbnRlbF9lbmNv ZGVyLT5hdWRpb19jb25uZWN0b3IgIT0gTlVMTDsKLQkJaWYgKCplbmFibGVkKSB7Ci0JCQllbGQg PSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVsZDsKLQkJCXJldCA9IGRybV9lbGRf c2l6ZShlbGQpOwotCQkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4X2J5dGVzLCByZXQpKTsKLQkJ fQorCisJaW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmMoZGV2X3ByaXYtPmF2X2VuY19tYXAs IHBvcnQsIHBpcGUpOworCWlmICghaW50ZWxfZW5jb2RlcikgeworCQlEUk1fREVCVUdfS01TKCJO b3QgdmFsaWQgZm9yIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7CisJCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmF2X211dGV4KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSAwOwor CSplbmFibGVkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yICE9IE5VTEw7CisJaWYg KCplbmFibGVkKSB7CisJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxk OworCQlyZXQgPSBkcm1fZWxkX3NpemUoZWxkKTsKKwkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4 X2J5dGVzLCByZXQpKTsKIAl9CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0v aTkxNV9jb21wb25lbnQuaAppbmRleCBiNDZmYTBlLi41NDVjNmUwIDEwMDY0NAotLS0gYS9pbmNs dWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCisrKyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50 LmgKQEAgLTY0LDcgKzY0LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyB7CiAJ ICogQ2FsbGVkIGZyb20gYXVkaW8gZHJpdmVyLiBBZnRlciBhdWRpbyBkcml2ZXIgc2V0cyB0aGUK IAkgKiBzYW1wbGUgcmF0ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3Rz CiAJICovCi0JaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0 LCBpbnQgcmF0ZSk7CisJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGlu dCBwb3J0LCBpbnQgcGlwZSwgaW50IHJhdGUpOwogCS8qKgogCSAqIEBnZXRfZWxkOiBmaWxsIHRo ZSBhdWRpbyBzdGF0ZSBhbmQgRUxEIGJ5dGVzIGZvciB0aGUgZ2l2ZW4gcG9ydAogCSAqCkBAIC03 Nyw3ICs3Nyw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgewogCSAqIE5vdGUg dGhhdCB0aGUgcmV0dXJuZWQgc2l6ZSBtYXkgYmUgb3ZlciBAbWF4X2J5dGVzLiAgVGhlbiBpdAog CSAqIGltcGxpZXMgdGhhdCBvbmx5IGEgcGFydCBvZiBFTEQgaGFzIGJlZW4gY29waWVkIHRvIHRo ZSBidWZmZXIuCiAJICovCi0JaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9y dCwgYm9vbCAqZW5hYmxlZCwKKwlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBw b3J0LCBpbnQgcGlwZSwgYm9vbCAqZW5hYmxlZCwKIAkJICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1 ZiwgaW50IG1heF9ieXRlcyk7CiB9OwogCkBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMgewogCSAqIHN0YXR1cyBhY2NvcmRpbmdseSAoZXZlbiB3 aGVuIHRoZSBIREEgY29udHJvbGxlciBpcyBpbiBwb3dlciBzYXZlCiAJICogbW9kZSkuCiAJICov Ci0Jdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0KTsKKwl2 b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBwaXBl KTsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oIGIvaW5j bHVkZS9zb3VuZC9oZGFfaTkxNS5oCmluZGV4IDc5NmNhYmYuLjA3ZmQ2NGUgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAorKysgYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgK QEAgLTEwLDggKzEwLDkgQEAKIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwKHN0cnVjdCBo ZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7CiBpbnQgc25kX2hkYWNfZGlzcGxheV9wb3dlcihz dHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOwogdm9pZCBzbmRfaGRhY19pOTE1X3Nl dF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKLWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3Jh dGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpOwot aW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRh X25pZF90IG5pZCwKK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2 aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKKwkJCSAgICAgaW50IHBpcGUsIGludCByYXRlKTsK K2ludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhk YV9uaWRfdCBuaWQsIGludCBwaXBlLAogCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAq YnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsKIGludCBzbmRfaGRhY19pOTE1X2luaXQoc3RydWN0IGhk YWNfYnVzICpidXMpOwogaW50IHNuZF9oZGFjX2k5MTVfZXhpdChzdHJ1Y3QgaGRhY19idXMgKmJ1 cyk7CkBAIC0yOSwxMyArMzAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNuZF9oZGFjX2k5MTVf c2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMpCiB7CiB9CiBzdGF0aWMgaW5saW5lIGludCBz bmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywKLQkJCQkJ ICAgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCisJCQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCBw aXBlLCBpbnQgcmF0ZSkKIHsKIAlyZXR1cm4gMDsKIH0KIHN0YXRpYyBpbmxpbmUgaW50IHNuZF9o ZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5p ZCwKLQkJCQkJIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwKLQkJCQkJIGludCBt YXhfYnl0ZXMpCisJCQkJCSBpbnQgcGlwZSwgYm9vbCAqYXVkaW9fZW5hYmxlZCwKKwkJCQkJIGNo YXIgKmJ1ZmZlciwgaW50IG1heF9ieXRlcykKIHsKIAlyZXR1cm4gLUVOT0RFVjsKIH0KZGlmZiAt LWdpdCBhL3NvdW5kL2hkYS9oZGFjX2k5MTUuYyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwppbmRl eCBjOWFmMDIyLi5iOTk5OTRiIDEwMDY0NAotLS0gYS9zb3VuZC9oZGEvaGRhY19pOTE1LmMKKysr IGIvc291bmQvaGRhL2hkYWNfaTkxNS5jCkBAIC0yMDEsNyArMjAxLDggQEAgc3RhdGljIGludCBw aW4ycG9ydChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgcGluX25pZCkKICAq IFRoaXMgZnVuY3Rpb24gc2V0cyBOL0NUUyB2YWx1ZSBiYXNlZCBvbiB0aGUgZ2l2ZW4gc2FtcGxl IHJhdGUuCiAgKiBSZXR1cm5zIHplcm8gZm9yIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3Ig Y29kZS4KICAqLwotaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZp Y2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcmF0ZSkKK2ludCBzbmRfaGRhY19zeW5jX2F1 ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKKwkJCSAg ICAgaW50IHBpcGUsIGludCByYXRlKQogewogCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMt PmJ1czsKIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19j b21wb25lbnQ7CkBAIC0yMTIsNyArMjEzLDcgQEAgaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0 ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcmF0ZSkKIAlw b3J0ID0gcGluMnBvcnQoY29kZWMsIG5pZCk7CiAJaWYgKHBvcnQgPCAwKQogCQlyZXR1cm4gLUVJ TlZBTDsKLQlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRpb19yYXRlKGFjb21wLT5kZXYsIHBv cnQsIHJhdGUpOworCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUoYWNvbXAtPmRl diwgcG9ydCwgcGlwZSwgcmF0ZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19zeW5j X2F1ZGlvX3JhdGUpOwogCkBAIC0yMzYsNyArMjM3LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25k X2hkYWNfc3luY19hdWRpb19yYXRlKTsKICAqIHRodXMgaXQgbWF5IGJlIG92ZXIgQG1heF9ieXRl cy4gIElmIGl0J3Mgb3ZlciBAbWF4X2J5dGVzLCBpdCBpbXBsaWVzCiAgKiB0aGF0IG9ubHkgYSBw YXJ0IG9mIEVMRCBieXRlcyBoYXZlIGJlZW4gZmV0Y2hlZC4KICAqLwotaW50IHNuZF9oZGFjX2Fj b21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKK2lu dCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9u aWRfdCBuaWQsIGludCBwaXBlLAogCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVm ZmVyLCBpbnQgbWF4X2J5dGVzKQogewogCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1 czsKQEAgLTI0OSw3ICsyNTAsNyBAQCBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3Qg aGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAogCXBvcnQgPSBwaW4ycG9ydChjb2Rl YywgbmlkKTsKIAlpZiAocG9ydCA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCXJldHVybiBhY29t cC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsCisJcmV0dXJu IGFjb21wLT5vcHMtPmdldF9lbGQoYWNvbXAtPmRldiwgcG9ydCwgcGlwZSwgYXVkaW9fZW5hYmxl ZCwKIAkJCQkgICBidWZmZXIsIG1heF9ieXRlcyk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzbmRf aGRhY19hY29tcF9nZXRfZWxkKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRt aS5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKaW5kZXggZDBkNWFkOC4uNjc4OTBkZiAx MDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKKysrIGIvc291bmQvcGNpL2hk YS9wYXRjaF9oZG1pLmMKQEAgLTE0ODUsNyArMTQ4NSw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfZWxk X3ZpYV9hY29tcChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKIAogCW11dGV4X2xvY2soJnBlcl9w aW4tPmxvY2spOwogCWVsZC0+bW9uaXRvcl9wcmVzZW50ID0gZmFsc2U7Ci0Jc2l6ZSA9IHNuZF9o ZGFjX2Fjb21wX2dldF9lbGQoJmNvZGVjLT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLAorCXNpemUg PSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+Y29yZSwgcGVyX3Bpbi0+cGluX25pZCwg LTEsCiAJCQkJICAgICAgJmVsZC0+bW9uaXRvcl9wcmVzZW50LCBlbGQtPmVsZF9idWZmZXIsCiAJ CQkJICAgICAgRUxEX01BWF9TSVpFKTsKIAlpZiAoc2l6ZSA+IDApIHsKQEAgLTE3MzksNyArMTcz OSw4IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19oZG1pX3BsYXliYWNrX3BjbV9wcmVwYXJlKHN0cnVj dCBoZGFfcGNtX3N0cmVhbSAqaGluZm8sCiAJLyogQ2FsbCBzeW5jX2F1ZGlvX3JhdGUgdG8gc2V0 IHRoZSBOL0NUUy9NIG1hbnVhbGx5IGlmIG5lY2Vzc2FyeSAqLwogCS8qIFRvZG86IGFkZCBEUDEu MiBNU1QgYXVkaW8gc3VwcG9ydCBsYXRlciAqLwogCWlmIChjb2RlY19oYXNfYWNvbXAoY29kZWMp KQotCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoJmNvZGVjLT5jb3JlLCBwaW5fbmlkLCBydW50 aW1lLT5yYXRlKTsKKwkJc25kX2hkYWNfc3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGlu X25pZCwgLTEsCisJCQkJCSBydW50aW1lLT5yYXRlKTsKIAogCW5vbl9wY20gPSBjaGVja19ub25f cGNtX3Blcl9jdnQoY29kZWMsIGN2dF9uaWQpOwogCW11dGV4X2xvY2soJnBlcl9waW4tPmxvY2sp OwpAQCAtMjI4NSw3ICsyMjg2LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcG93ZXJfc3Rh dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIGhkYV9uaWRfdCBmZywKIAlzbmRfaGRhX2NvZGVj X3NldF9wb3dlcl90b19hbGwoY29kZWMsIGZnLCBwb3dlcl9zdGF0ZSk7CiB9CiAKLXN0YXRpYyB2 b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQpCitzdGF0 aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBp bnQgcGlwZSkKIHsKIAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlvX3B0cjsKIAlpbnQg cGluX25pZDsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMgYi9zb3Vu ZC9zb2MvY29kZWNzL2hkYWNfaGRtaS5jCmluZGV4IDJhYmI3NDIuLmNmNTdhYjMgMTAwNjQ0Ci0t LSBhL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy9o ZGFjX2hkbWkuYwpAQCAtMTM2Niw3ICsxMzY2LDcgQEAgc3RhdGljIGludCBoZGFjX2hkbWlfcGFy c2VfYW5kX21hcF9uaWQoc3RydWN0IGhkYWNfZXh0X2RldmljZSAqZWRldiwKIAlyZXR1cm4gaGRh Y19oZG1pX2luaXRfZGFpX21hcChlZGV2KTsKIH0KIAotc3RhdGljIHZvaWQgaGRhY19oZG1pX2Vs ZF9ub3RpZnlfY2Iodm9pZCAqYXB0ciwgaW50IHBvcnQpCitzdGF0aWMgdm9pZCBoZGFjX2hkbWlf ZWxkX25vdGlmeV9jYih2b2lkICphcHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpCiB7CiAJc3RydWN0 IGhkYWNfZXh0X2RldmljZSAqZWRldiA9IGFwdHI7CiAJc3RydWN0IGhkYWNfaGRtaV9wcml2ICpo ZG1pID0gZWRldi0+cHJpdmF0ZV9kYXRhOwotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=