From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v2 11/11] ALSA: x86: Register multiple PCM devices for the LPE audio card Date: Thu, 27 Apr 2017 19:02:30 +0300 Message-ID: <20170427160231.13337-12-ville.syrjala@linux.intel.com> References: <20170427160231.13337-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id F17176E6A3 for ; Thu, 27 Apr 2017 16:03:15 +0000 (UTC) In-Reply-To: <20170427160231.13337-1-ville.syrjala@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: Takashi Iwai , alsa-devel@alsa-project.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk5v dyB0aGF0IGV2ZXJ5dGhpbmcgaXMgaW4gcGxhY2UgbGV0J3MgcmVnaXN0ZXIgYSBQQ00gZGV2aWNl IGZvcgplYWNoIHBvcnQgb2YgdGhlIGRpc3BsYXkgZW5naW5lLiBUaGlzIHdpbGwgbWFrZSBpdCBw b3NzaWJsZSB0bwphY3R1YWxseSBvdXRwdXQgYXVkaW8gdG8gbXVsdGlwbGUgZGlzcGxheXMgYXQg dGhlIHNhbWUgdGltZS4gQW5kCml0IGF2b2lkcyBtb2Rlc2V0cyBvbiB1bnJlbGF0ZWQgZGlzcGxh eXMgZnJvbSBjbG9iYmVyaW5nIHVwIHRoZQpFTEQgYW5kIHdoYXRub3QgZm9yIHRoZSBkaXNwbGF5 IGN1cnJlbnRseSBkb2luZyB0aGUgcGxheWJhY2suCgp2MjogQWRkIGEgUENNIHBlciBwb3J0IGlu c3RlYWQgb2YgcGVyIHBpcGUKCkNjOiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+CkNjOiBQ aWVycmUtTG91aXMgQm9zc2FydCA8cGllcnJlLWxvdWlzLmJvc3NhcnRAbGludXguaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xwZV9hdWRpby5jIHwgIDE5 ICsrLS0tCiBpbmNsdWRlL2RybS9pbnRlbF9scGVfYXVkaW8uaCAgICAgICAgICB8ICAgNiArLQog c291bmQveDg2L2ludGVsX2hkbWlfYXVkaW8uYyAgICAgICAgICAgfCAxMjYgKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCiBzb3VuZC94ODYvaW50ZWxfaGRtaV9hdWRpby5oICAgICAg ICAgICB8ICAgNyArLQogNCBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25zKCspLCA2NiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scGVfYXVk aW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xwZV9hdWRpby5jCmluZGV4IGJkYmMy MzUxNDFiNS4uZmE3MjhlZDIxZDFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scGVfYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scGVfYXVk aW8uYwpAQCAtMTExLDcgKzExMSwxMSBAQCBscGVfYXVkaW9fcGxhdGRldl9jcmVhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXBpbmZvLnNpemVfZGF0YSA9IHNpemVvZigq cGRhdGEpOwogCXBpbmZvLmRtYV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKIAotCXBkYXRhLT5w b3J0LnBpcGUgPSAtMTsKKwlwZGF0YS0+bnVtX3BpcGVzID0gSU5URUxfSU5GTyhkZXZfcHJpdikt Pm51bV9waXBlczsKKwlwZGF0YS0+bnVtX3BvcnRzID0gSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikg PyAzIDogMjsgLyogQixDLEQgb3IgQixDICovCisJcGRhdGEtPnBvcnRbMF0ucGlwZSA9IC0xOwor CXBkYXRhLT5wb3J0WzFdLnBpcGUgPSAtMTsKKwlwZGF0YS0+cG9ydFsyXS5waXBlID0gLTE7CiAJ c3Bpbl9sb2NrX2luaXQoJnBkYXRhLT5scGVfYXVkaW9fc2xvY2spOwogCiAJcGxhdGRldiA9IHBs YXRmb3JtX2RldmljZV9yZWdpc3Rlcl9mdWxsKCZwaW5mbyk7CkBAIC0zMTksNyArMzIzLDcgQEAg dm9pZCBpbnRlbF9scGVfYXVkaW9fbm90aWZ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJCSAgICBlbnVtIHBpcGUgcGlwZSwgZW51bSBwb3J0IHBvcnQsCiAJCQkgICAgY29u c3Qgdm9pZCAqZWxkLCBpbnQgbHNfY2xvY2ssIGJvb2wgZHBfb3V0cHV0KQogewotCXVuc2lnbmVk IGxvbmcgaXJxX2ZsYWdzOworCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7CiAJc3RydWN0IGludGVs X2hkbWlfbHBlX2F1ZGlvX3BkYXRhICpwZGF0YTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaV9scGVfYXVk aW9fcG9ydF9wZGF0YSAqcHBkYXRhOwogCXUzMiBhdWRpb19lbmFibGU7CkBAIC0zMjgsMTQgKzMz MiwxMiBAQCB2b2lkIGludGVsX2xwZV9hdWRpb19ub3RpZnkoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCQlyZXR1cm47CiAKIAlwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoJmRl dl9wcml2LT5scGVfYXVkaW8ucGxhdGRldi0+ZGV2KTsKLQlwcGRhdGEgPSAmcGRhdGEtPnBvcnQ7 CisJcHBkYXRhID0gJnBkYXRhLT5wb3J0W3BvcnRdOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBk YXRhLT5scGVfYXVkaW9fc2xvY2ssIGlycV9mbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnBk YXRhLT5scGVfYXVkaW9fc2xvY2ssIGlycWZsYWdzKTsKIAogCWF1ZGlvX2VuYWJsZSA9IEk5MTVf UkVBRChWTFZfQVVEX1BPUlRfRU5fREJHKHBvcnQpKTsKIAotCXBwZGF0YS0+cG9ydCA9IHBvcnQ7 Ci0KIAlpZiAoZWxkICE9IE5VTEwpIHsKIAkJbWVtY3B5KHBwZGF0YS0+ZWxkLCBlbGQsIEhETUlf TUFYX0VMRF9CWVRFUyk7CiAJCXBwZGF0YS0+cGlwZSA9IHBpcGU7CkBAIC0zNTcsOCArMzU5LDcg QEAgdm9pZCBpbnRlbF9scGVfYXVkaW9fbm90aWZ5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAl9CiAKIAlpZiAocGRhdGEtPm5vdGlmeV9hdWRpb19scGUpCi0JCXBkYXRhLT5u b3RpZnlfYXVkaW9fbHBlKGRldl9wcml2LT5scGVfYXVkaW8ucGxhdGRldik7CisJCXBkYXRhLT5u b3RpZnlfYXVkaW9fbHBlKGRldl9wcml2LT5scGVfYXVkaW8ucGxhdGRldiwgcG9ydCk7CiAKLQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZwZGF0YS0+bHBlX2F1ZGlvX3Nsb2NrLAotCQkJaXJxX2Zs YWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZGF0YS0+bHBlX2F1ZGlvX3Nsb2NrLCBp cnFmbGFncyk7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pbnRlbF9scGVfYXVkaW8uaCBi L2luY2x1ZGUvZHJtL2ludGVsX2xwZV9hdWRpby5oCmluZGV4IDIxMWYxY2Q2MTE1My4uYTkxMTUz MGMwMTJlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9pbnRlbF9scGVfYXVkaW8uaAorKysgYi9p bmNsdWRlL2RybS9pbnRlbF9scGVfYXVkaW8uaApAQCAtNDAsOSArNDAsMTEgQEAgc3RydWN0IGlu dGVsX2hkbWlfbHBlX2F1ZGlvX3BvcnRfcGRhdGEgewogfTsKIAogc3RydWN0IGludGVsX2hkbWlf bHBlX2F1ZGlvX3BkYXRhIHsKLQlzdHJ1Y3QgaW50ZWxfaGRtaV9scGVfYXVkaW9fcG9ydF9wZGF0 YSBwb3J0OworCXN0cnVjdCBpbnRlbF9oZG1pX2xwZV9hdWRpb19wb3J0X3BkYXRhIHBvcnRbM107 IC8qIHBvcnRzIEIsQyxEICovCisJaW50IG51bV9wb3J0czsKKwlpbnQgbnVtX3BpcGVzOwogCi0J dm9pZCAoKm5vdGlmeV9hdWRpb19scGUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwor CXZvaWQgKCpub3RpZnlfYXVkaW9fbHBlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBp bnQgcGlwZSk7CiAJc3BpbmxvY2tfdCBscGVfYXVkaW9fc2xvY2s7CiB9OwogCmRpZmYgLS1naXQg YS9zb3VuZC94ODYvaW50ZWxfaGRtaV9hdWRpby5jIGIvc291bmQveDg2L2ludGVsX2hkbWlfYXVk aW8uYwppbmRleCAxMmZhZTI2ZTcwYmIuLjkwOTM5MWQ1MjcwYyAxMDA2NDQKLS0tIGEvc291bmQv eDg2L2ludGVsX2hkbWlfYXVkaW8uYworKysgYi9zb3VuZC94ODYvaW50ZWxfaGRtaV9hdWRpby5j CkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSA8ZHJtL2ludGVsX2xwZV9hdWRpby5oPgogI2lu Y2x1ZGUgImludGVsX2hkbWlfYXVkaW8uaCIKIAorI2RlZmluZSBmb3JfZWFjaF9waXBlKGNhcmRf Y3R4LCBwaXBlKSBcCisJZm9yICgocGlwZSkgPSAwOyAocGlwZSkgPCAoY2FyZF9jdHgpLT5udW1f cGlwZXM7IChwaXBlKSsrKQogI2RlZmluZSBmb3JfZWFjaF9wb3J0KGNhcmRfY3R4LCBwb3J0KSBc CiAJZm9yICgocG9ydCkgPSAwOyAocG9ydCkgPCAoY2FyZF9jdHgpLT5udW1fcG9ydHM7IChwb3J0 KSsrKQogCkBAIC0xOTIsMTUgKzE5NCwzMCBAQCBzdGF0aWMgdm9pZCBoYWRfc3Vic3RyZWFtX3B1 dChzdHJ1Y3Qgc25kX2ludGVsaGFkICppbnRlbGhhZGRhdGEpCiAJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmaW50ZWxoYWRkYXRhLT5oYWRfc3BpbmxvY2ssIGZsYWdzKTsKIH0KIAorc3RhdGljIHUz MiBoYWRfY29uZmlnX29mZnNldChpbnQgcGlwZSkKK3sKKwlzd2l0Y2ggKHBpcGUpIHsKKwlkZWZh dWx0OgorCWNhc2UgMDoKKwkJcmV0dXJuIEFVRElPX0hETUlfQ09ORklHX0E7CisJY2FzZSAxOgor CQlyZXR1cm4gQVVESU9fSERNSV9DT05GSUdfQjsKKwljYXNlIDI6CisJCXJldHVybiBBVURJT19I RE1JX0NPTkZJR19DOworCX0KK30KKwogLyogUmVnaXN0ZXIgYWNjZXNzIGZ1bmN0aW9ucyAqLwot c3RhdGljIHUzMiBoYWRfcmVhZF9yZWdpc3Rlcl9yYXcoc3RydWN0IHNuZF9pbnRlbGhhZCAqY3R4 LCB1MzIgcmVnKQorc3RhdGljIHUzMiBoYWRfcmVhZF9yZWdpc3Rlcl9yYXcoc3RydWN0IHNuZF9p bnRlbGhhZF9jYXJkICpjYXJkX2N0eCwKKwkJCQkgaW50IHBpcGUsIHUzMiByZWcpCiB7Ci0JcmV0 dXJuIGlvcmVhZDMyKGN0eC0+Y2FyZF9jdHgtPm1taW9fc3RhcnQgKyBjdHgtPmhhZF9jb25maWdf b2Zmc2V0ICsgcmVnKTsKKwlyZXR1cm4gaW9yZWFkMzIoY2FyZF9jdHgtPm1taW9fc3RhcnQgKyBo YWRfY29uZmlnX29mZnNldChwaXBlKSArIHJlZyk7CiB9CiAKLXN0YXRpYyB2b2lkIGhhZF93cml0 ZV9yZWdpc3Rlcl9yYXcoc3RydWN0IHNuZF9pbnRlbGhhZCAqY3R4LCB1MzIgcmVnLCB1MzIgdmFs KQorc3RhdGljIHZvaWQgaGFkX3dyaXRlX3JlZ2lzdGVyX3JhdyhzdHJ1Y3Qgc25kX2ludGVsaGFk X2NhcmQgKmNhcmRfY3R4LAorCQkJCSAgIGludCBwaXBlLCB1MzIgcmVnLCB1MzIgdmFsKQogewot CWlvd3JpdGUzMih2YWwsIGN0eC0+Y2FyZF9jdHgtPm1taW9fc3RhcnQgKyBjdHgtPmhhZF9jb25m aWdfb2Zmc2V0ICsgcmVnKTsKKwlpb3dyaXRlMzIodmFsLCBjYXJkX2N0eC0+bW1pb19zdGFydCAr IGhhZF9jb25maWdfb2Zmc2V0KHBpcGUpICsgcmVnKTsKIH0KIAogc3RhdGljIHZvaWQgaGFkX3Jl YWRfcmVnaXN0ZXIoc3RydWN0IHNuZF9pbnRlbGhhZCAqY3R4LCB1MzIgcmVnLCB1MzIgKnZhbCkK QEAgLTIwOCwxMyArMjI1LDEzIEBAIHN0YXRpYyB2b2lkIGhhZF9yZWFkX3JlZ2lzdGVyKHN0cnVj dCBzbmRfaW50ZWxoYWQgKmN0eCwgdTMyIHJlZywgdTMyICp2YWwpCiAJaWYgKCFjdHgtPmNvbm5l Y3RlZCkKIAkJKnZhbCA9IDA7CiAJZWxzZQotCQkqdmFsID0gaGFkX3JlYWRfcmVnaXN0ZXJfcmF3 KGN0eCwgcmVnKTsKKwkJKnZhbCA9IGhhZF9yZWFkX3JlZ2lzdGVyX3JhdyhjdHgtPmNhcmRfY3R4 LCBjdHgtPnBpcGUsIHJlZyk7CiB9CiAKIHN0YXRpYyB2b2lkIGhhZF93cml0ZV9yZWdpc3Rlcihz dHJ1Y3Qgc25kX2ludGVsaGFkICpjdHgsIHUzMiByZWcsIHUzMiB2YWwpCiB7CiAJaWYgKGN0eC0+ Y29ubmVjdGVkKQotCQloYWRfd3JpdGVfcmVnaXN0ZXJfcmF3KGN0eCwgcmVnLCB2YWwpOworCQlo YWRfd3JpdGVfcmVnaXN0ZXJfcmF3KGN0eC0+Y2FyZF9jdHgsIGN0eC0+cGlwZSwgcmVnLCB2YWwp OwogfQogCiAvKgpAQCAtMTM2MSw2ICsxMzc4LDkgQEAgc3RhdGljIHZvaWQgaGFkX3Byb2Nlc3Nf aG90X3BsdWcoc3RydWN0IHNuZF9pbnRlbGhhZCAqaW50ZWxoYWRkYXRhKQogCQlyZXR1cm47CiAJ fQogCisJLyogRGlzYWJsZSBBdWRpbyAqLworCWhhZF9lbmFibGVfYXVkaW8oaW50ZWxoYWRkYXRh LCBmYWxzZSk7CisKIAlpbnRlbGhhZGRhdGEtPmNvbm5lY3RlZCA9IHRydWU7CiAJZGV2X2RiZyhp bnRlbGhhZGRhdGEtPmRldiwKIAkJIiVzIEAgJWQ6REVCVUcgUExVRy9VTlBMVUcgOiBIQURfRFJW X0NPTk5FQ1RFRFxuIiwKQEAgLTE1MjMsMjYgKzE1NDMsMzEgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBzbmRfa2NvbnRyb2xfbmV3IGhhZF9jb250cm9sc1tdID0gewogc3RhdGljIGlycXJldHVybl90 IGRpc3BsYXlfcGlwZV9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7 CiAJc3RydWN0IHNuZF9pbnRlbGhhZF9jYXJkICpjYXJkX2N0eCA9IGRldl9pZDsKLQlpbnQgcG9y dDsKKwl1MzIgYXVkaW9fc3RhdFszXSA9IHt9OworCWludCBwaXBlLCBwb3J0OworCisJZm9yX2Vh Y2hfcGlwZShjYXJkX2N0eCwgcGlwZSkgeworCQkvKiB1c2UgcmF3IHJlZ2lzdGVyIGFjY2VzcyB0 byBhY2sgSVJRcyBldmVuIHdoaWxlIGRpc2Nvbm5lY3RlZCAqLworCQlhdWRpb19zdGF0W3BpcGVd ID0gaGFkX3JlYWRfcmVnaXN0ZXJfcmF3KGNhcmRfY3R4LCBwaXBlLAorCQkJCQkJCSBBVURfSERN SV9TVEFUVVMpICYKKwkJCShIRE1JX0FVRElPX1VOREVSUlVOIHwgSERNSV9BVURJT19CVUZGRVJf RE9ORSk7CisKKwkJaWYgKGF1ZGlvX3N0YXRbcGlwZV0pCisJCQloYWRfd3JpdGVfcmVnaXN0ZXJf cmF3KGNhcmRfY3R4LCBwaXBlLAorCQkJCQkgICAgICAgQVVEX0hETUlfU1RBVFVTLCBhdWRpb19z dGF0W3BpcGVdKTsKKwl9CiAKIAlmb3JfZWFjaF9wb3J0KGNhcmRfY3R4LCBwb3J0KSB7CiAJCXN0 cnVjdCBzbmRfaW50ZWxoYWQgKmN0eCA9ICZjYXJkX2N0eC0+cGNtX2N0eFtwb3J0XTsKLQkJdTMy IGF1ZGlvX3N0YXQ7CisJCWludCBwaXBlID0gY3R4LT5waXBlOwogCi0JCS8qIHVzZSByYXcgcmVn aXN0ZXIgYWNjZXNzIHRvIGFjayBJUlFzIGV2ZW4gd2hpbGUgZGlzY29ubmVjdGVkICovCi0JCWF1 ZGlvX3N0YXQgPSBoYWRfcmVhZF9yZWdpc3Rlcl9yYXcoY3R4LCBBVURfSERNSV9TVEFUVVMpOwot Ci0JCWlmIChhdWRpb19zdGF0ICYgSERNSV9BVURJT19VTkRFUlJVTikgewotCQkJaGFkX3dyaXRl X3JlZ2lzdGVyX3JhdyhjdHgsIEFVRF9IRE1JX1NUQVRVUywKLQkJCQkJICAgICAgIEhETUlfQVVE SU9fVU5ERVJSVU4pOwotCQkJaGFkX3Byb2Nlc3NfYnVmZmVyX3VuZGVycnVuKGN0eCk7Ci0JCX0K KwkJaWYgKHBpcGUgPCAwKQorCQkJY29udGludWU7CiAKLQkJaWYgKGF1ZGlvX3N0YXQgJiBIRE1J X0FVRElPX0JVRkZFUl9ET05FKSB7Ci0JCQloYWRfd3JpdGVfcmVnaXN0ZXJfcmF3KGN0eCwgQVVE X0hETUlfU1RBVFVTLAotCQkJCQkgICAgICAgSERNSV9BVURJT19CVUZGRVJfRE9ORSk7CisJCWlm IChhdWRpb19zdGF0W3BpcGVdICYgSERNSV9BVURJT19CVUZGRVJfRE9ORSkKIAkJCWhhZF9wcm9j ZXNzX2J1ZmZlcl9kb25lKGN0eCk7Ci0JCX0KKwkJaWYgKGF1ZGlvX3N0YXRbcGlwZV0gJiBIRE1J X0FVRElPX1VOREVSUlVOKQorCQkJaGFkX3Byb2Nlc3NfYnVmZmVyX3VuZGVycnVuKGN0eCk7CiAJ fQogCiAJcmV0dXJuIElSUV9IQU5ETEVEOwpAQCAtMTU1MSwxNiArMTU3NiwxMiBAQCBzdGF0aWMg aXJxcmV0dXJuX3QgZGlzcGxheV9waXBlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQg KmRldl9pZCkKIC8qCiAgKiBtb25pdG9yIHBsdWcvdW5wbHVnIG5vdGlmaWNhdGlvbiBmcm9tIGk5 MTU7IGp1c3Qga2ljayBvZmYgdGhlIHdvcmsKICAqLwotc3RhdGljIHZvaWQgbm90aWZ5X2F1ZGlv X2xwZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIHZvaWQgbm90aWZ5X2F1 ZGlvX2xwZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBpbnQgcG9ydCkKIHsKIAlzdHJ1 Y3Qgc25kX2ludGVsaGFkX2NhcmQgKmNhcmRfY3R4ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRl dik7Ci0JaW50IHBvcnQ7CisJc3RydWN0IHNuZF9pbnRlbGhhZCAqY3R4ID0gJmNhcmRfY3R4LT5w Y21fY3R4W3BvcnRdOwogCi0JZm9yX2VhY2hfcG9ydChjYXJkX2N0eCwgcG9ydCkgewotCQlzdHJ1 Y3Qgc25kX2ludGVsaGFkICpjdHggPSAmY2FyZF9jdHgtPnBjbV9jdHhbcG9ydF07Ci0KLQkJc2No ZWR1bGVfd29yaygmY3R4LT5oZG1pX2F1ZGlvX3dxKTsKLQl9CisJc2NoZWR1bGVfd29yaygmY3R4 LT5oZG1pX2F1ZGlvX3dxKTsKIH0KIAogLyogdGhlIHdvcmsgdG8gaGFuZGxlIG1vbml0b3IgaG90 IHBsdWcvdW5wbHVnICovCkBAIC0xNTY5LDM0ICsxNTkwLDI3IEBAIHN0YXRpYyB2b2lkIGhhZF9h dWRpb193cShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IHNuZF9pbnRlbGhhZCAq Y3R4ID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBzbmRfaW50ZWxoYWQsIGhkbWlfYXVk aW9fd3EpOwogCXN0cnVjdCBpbnRlbF9oZG1pX2xwZV9hdWRpb19wZGF0YSAqcGRhdGEgPSBjdHgt PmRldi0+cGxhdGZvcm1fZGF0YTsKLQlzdHJ1Y3QgaW50ZWxfaGRtaV9scGVfYXVkaW9fcG9ydF9w ZGF0YSAqcHBkYXRhID0gJnBkYXRhLT5wb3J0OworCXN0cnVjdCBpbnRlbF9oZG1pX2xwZV9hdWRp b19wb3J0X3BkYXRhICpwcGRhdGEgPSAmcGRhdGEtPnBvcnRbY3R4LT5wb3J0XTsKIAogCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoY3R4LT5kZXYpOwogCW11dGV4X2xvY2soJmN0eC0+bXV0ZXgpOwogCWlm IChwcGRhdGEtPnBpcGUgPCAwKSB7Ci0JCWRldl9kYmcoY3R4LT5kZXYsICIlczogRXZlbnQ6IEhB RF9OT1RJRllfSE9UX1VOUExVR1xuIiwKLQkJCV9fZnVuY19fKTsKKwkJZGV2X2RiZyhjdHgtPmRl diwgIiVzOiBFdmVudDogSEFEX05PVElGWV9IT1RfVU5QTFVHIDogcG9ydCA9ICVkXG4iLAorCQkJ X19mdW5jX18sIGN0eC0+cG9ydCk7CisKIAkJbWVtc2V0KGN0eC0+ZWxkLCAwLCBzaXplb2YoY3R4 LT5lbGQpKTsgLyogY2xlYXIgdGhlIG9sZCBFTEQgKi8KKworCQljdHgtPmRwX291dHB1dCA9IGZh bHNlOworCQljdHgtPnRtZHNfY2xvY2tfc3BlZWQgPSAwOworCQljdHgtPmxpbmtfcmF0ZSA9IDA7 CisKKwkJLyogU2h1dCBkb3duIHRoZSBzdHJlYW0gKi8KIAkJaGFkX3Byb2Nlc3NfaG90X3VucGx1 ZyhjdHgpOworCisJCWN0eC0+cGlwZSA9IC0xOwogCX0gZWxzZSB7CiAJCWRldl9kYmcoY3R4LT5k ZXYsICIlczogSEFEX05PVElGWV9FTEQgOiBwb3J0ID0gJWQsIHRtZHMgPSAlZFxuIiwKLQkJCV9f ZnVuY19fLCBwcGRhdGEtPnBvcnQsIHBwZGF0YS0+bHNfY2xvY2spOwotCi0JCXN3aXRjaCAocHBk YXRhLT5waXBlKSB7Ci0JCWNhc2UgMDoKLQkJCWN0eC0+aGFkX2NvbmZpZ19vZmZzZXQgPSBBVURJ T19IRE1JX0NPTkZJR19BOwotCQkJYnJlYWs7Ci0JCWNhc2UgMToKLQkJCWN0eC0+aGFkX2NvbmZp Z19vZmZzZXQgPSBBVURJT19IRE1JX0NPTkZJR19COwotCQkJYnJlYWs7Ci0JCWNhc2UgMjoKLQkJ CWN0eC0+aGFkX2NvbmZpZ19vZmZzZXQgPSBBVURJT19IRE1JX0NPTkZJR19DOwotCQkJYnJlYWs7 Ci0JCWRlZmF1bHQ6Ci0JCQlkZXZfZGJnKGN0eC0+ZGV2LCAiSW52YWxpZCBwaXBlICVkXG4iLAot CQkJCXBwZGF0YS0+cGlwZSk7Ci0JCQlicmVhazsKLQkJfQorCQkJX19mdW5jX18sIGN0eC0+cG9y dCwgcHBkYXRhLT5sc19jbG9jayk7CiAKIAkJbWVtY3B5KGN0eC0+ZWxkLCBwcGRhdGEtPmVsZCwg c2l6ZW9mKGN0eC0+ZWxkKSk7CiAKQEAgLTE2MDksMTEgKzE2MjMsMTggQEAgc3RhdGljIHZvaWQg aGFkX2F1ZGlvX3dxKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJCWN0eC0+bGlua19yYXRl ID0gMDsKIAkJfQogCisJCS8qCisJCSAqIFNodXQgZG93biB0aGUgc3RyZWFtIGJlZm9yZSB3ZSBj aGFuZ2UKKwkJICogdGhlIHBpcGUgYXNzaWdubWVudCBmb3IgdGhpcyBwY20gZGV2aWNlCisJCSAq LwogCQloYWRfcHJvY2Vzc19ob3RfcGx1ZyhjdHgpOwogCi0JCS8qIFByb2Nlc3MgbW9kZSBjaGFu Z2UgaWYgc3RyZWFtIGlzIGFjdGl2ZSAqLworCQljdHgtPnBpcGUgPSBwcGRhdGEtPnBpcGU7CisK KwkJLyogUmVzdGFydCB0aGUgc3RyZWFtIGlmIG5lY2Vzc2FyeSAqLwogCQloYWRfcHJvY2Vzc19t b2RlX2NoYW5nZShjdHgpOwogCX0KKwogCW11dGV4X3VubG9jaygmY3R4LT5tdXRleCk7CiAJcG1f cnVudGltZV9tYXJrX2xhc3RfYnVzeShjdHgtPmRldik7CiAJcG1fcnVudGltZV9wdXRfYXV0b3N1 c3BlbmQoY3R4LT5kZXYpOwpAQCAtMTc5NCw3ICsxODE1LDggQEAgc3RhdGljIGludCBoZG1pX2xw ZV9hdWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCiAJaW5pdF9jaGFu bmVsX2FsbG9jYXRpb25zKCk7CiAKLQljYXJkX2N0eC0+bnVtX3BvcnRzID0gMTsKKwljYXJkX2N0 eC0+bnVtX3BpcGVzID0gcGRhdGEtPm51bV9waXBlczsKKwljYXJkX2N0eC0+bnVtX3BvcnRzID0g cGRhdGEtPm51bV9wb3J0czsKIAogCWZvcl9lYWNoX3BvcnQoY2FyZF9jdHgsIHBvcnQpIHsKIAkJ c3RydWN0IHNuZF9pbnRlbGhhZCAqY3R4ID0gJmNhcmRfY3R4LT5wY21fY3R4W3BvcnRdOwpAQCAt MTgwMiwxMiArMTgyNCwxMiBAQCBzdGF0aWMgaW50IGhkbWlfbHBlX2F1ZGlvX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkJY3R4LT5jYXJkX2N0eCA9IGNhcmRfY3R4Owog CQljdHgtPmRldiA9IGNhcmRfY3R4LT5kZXY7CisJCWN0eC0+cG9ydCA9IHBvcnQ7CisJCWN0eC0+ cGlwZSA9IC0xOwogCiAJCUlOSVRfV09SSygmY3R4LT5oZG1pX2F1ZGlvX3dxLCBoYWRfYXVkaW9f d3EpOwogCi0JCWN0eC0+aGFkX2NvbmZpZ19vZmZzZXQgPSBBVURJT19IRE1JX0NPTkZJR19BOwot Ci0JCXJldCA9IHNuZF9wY21fbmV3KGNhcmQsIElOVEVMX0hBRCwgUENNX0lOREVYLCBNQVhfUEJf U1RSRUFNUywKKwkJcmV0ID0gc25kX3BjbV9uZXcoY2FyZCwgSU5URUxfSEFELCBwb3J0LCBNQVhf UEJfU1RSRUFNUywKIAkJCQkgIE1BWF9DQVBfU1RSRUFNUywgJnBjbSk7CiAJCWlmIChyZXQpCiAJ CQlnb3RvIGVycjsKZGlmZiAtLWdpdCBhL3NvdW5kL3g4Ni9pbnRlbF9oZG1pX2F1ZGlvLmggYi9z b3VuZC94ODYvaW50ZWxfaGRtaV9hdWRpby5oCmluZGV4IDI3MjU5NjRlYmM0Ni4uMGQ5MWJiNWRi YWI3IDEwMDY0NAotLS0gYS9zb3VuZC94ODYvaW50ZWxfaGRtaV9hdWRpby5oCisrKyBiL3NvdW5k L3g4Ni9pbnRlbF9oZG1pX2F1ZGlvLmgKQEAgLTMyLDcgKzMyLDYgQEAKIAogI2luY2x1ZGUgImlu dGVsX2hkbWlfbHBlX2F1ZGlvLmgiCiAKLSNkZWZpbmUgUENNX0lOREVYCQkwCiAjZGVmaW5lIE1B WF9QQl9TVFJFQU1TCQkxCiAjZGVmaW5lIE1BWF9DQVBfU1RSRUFNUwkJMAogI2RlZmluZSBCWVRF U19QRVJfV09SRAkJMHg0CkBAIC0xMTIsNiArMTExLDggQEAgc3RydWN0IHNuZF9pbnRlbGhhZCB7 CiAJc3RydWN0IHNuZF9wY21fY2htYXAgKmNobWFwOwogCWludCB0bWRzX2Nsb2NrX3NwZWVkOwog CWludCBsaW5rX3JhdGU7CisJaW50IHBvcnQ7IC8qIGZpeGVkICovCisJaW50IHBpcGU7IC8qIGNh biBjaGFuZ2UgZHluYW1pY2FsbHkgKi8KIAogCS8qIHJpbmcgYnVmZmVyIChCRCkgcG9zaXRpb24g aW5kZXggKi8KIAl1bnNpZ25lZCBpbnQgYmRfaGVhZDsKQEAgLTEyMyw3ICsxMjQsNiBAQCBzdHJ1 Y3Qgc25kX2ludGVsaGFkIHsKIAl1bnNpZ25lZCBpbnQgcGVyaW9kX2J5dGVzOwkvKiBQQ00gcGVy aW9kIHNpemUgaW4gYnl0ZXMgKi8KIAogCS8qIGludGVybmFsIHN0dWZmICovCi0JdW5zaWduZWQg aW50IGhhZF9jb25maWdfb2Zmc2V0OwogCXVuaW9uIGF1ZF9jZmcgYXVkX2NvbmZpZzsJLyogQVVE X0NPTkZJRyByZWcgdmFsdWUgY2FjaGUgKi8KIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaGRtaV9hdWRp b193cTsKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7IC8qIGZvciBwcm90ZWN0aW5nIGNobWFwIGFuZCBl bGQgKi8KQEAgLTEzOCw4ICsxMzgsOSBAQCBzdHJ1Y3Qgc25kX2ludGVsaGFkX2NhcmQgewogCS8q IGludGVybmFsIHN0dWZmICovCiAJaW50IGlycTsKIAl2b2lkIF9faW9tZW0gKm1taW9fc3RhcnQ7 CisJaW50IG51bV9waXBlczsKIAlpbnQgbnVtX3BvcnRzOwotCXN0cnVjdCBzbmRfaW50ZWxoYWQg cGNtX2N0eFszXTsKKwlzdHJ1Y3Qgc25kX2ludGVsaGFkIHBjbV9jdHhbM107IC8qIG9uZSBmb3Ig ZWFjaCBwb3J0ICovCiB9OwogCiAjZW5kaWYgLyogX0lOVEVMX0hETUlfQVVESU9fICovCi0tIAoy LjEwLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=