From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH RESEND1 07/12] ALSA: vsnd: Introduce ALSA virtual sound driver Date: Mon, 7 Aug 2017 15:22:52 +0300 Message-ID: <1502108577-8099-8-git-send-email-andr2000@gmail.com> References: <1502108577-8099-1-git-send-email-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502108577-8099-1-git-send-email-andr2000@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: alsa-devel@alsa-project.org, xen-devel@lists.xen.org, linux-kernel@vger.kernel.org Cc: andr2000@gmail.com, Oleksandr Andrushchenko , tiwai@suse.com, perex@perex.cz List-Id: alsa-devel@alsa-project.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKSW1wbGVtZW50IGVzc2VudGlhbCBpbml0aWFsaXphdGlvbiBvZiB0aGUgc291bmQg ZHJpdmVyOgotIGludHJvZHVjZSByZXF1aXJlZCBkYXRhIHN0cnVjdHVyZXMKLSBoYW5kbGUgZHJp dmVyIHJlZ2lzdHJhdGlvbgotIGhhbmRsZSBzb3VuZCBjYXJkIHJlZ2lzdHJhdGlvbgotIHJlZ2lz dGVyIHNvdW5kIGRyaXZlciBvbiBiYWNrZW5kIGNvbm5lY3Rpb24KLSByZW1vdmUgc291bmQgZHJp dmVyIG9uIGJhY2tlbmQgZGlzY29ubmVjdAoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1 c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgotLS0KIHNvdW5kL2Ry aXZlcnMveGVuLWZyb250LmMgfCAxNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE1OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NvdW5kL2RyaXZlcnMveGVuLWZyb250LmMgYi9zb3VuZC9k cml2ZXJzL3hlbi1mcm9udC5jCmluZGV4IDA0ZWJjMTU3NTdmNC4uZjNlM2Y2NGYwYWE2IDEwMDY0 NAotLS0gYS9zb3VuZC9kcml2ZXJzL3hlbi1mcm9udC5jCisrKyBiL3NvdW5kL2RyaXZlcnMveGVu LWZyb250LmMKQEAgLTE5LDEzICsxOSwxNCBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgPHNv dW5kL2NvcmUuaD4KICNpbmNsdWRlIDxzb3VuZC9wY20uaD4KIAotI2luY2x1ZGUgPHhlbi9wbGF0 Zm9ybV9wY2kuaD4KICNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+CiAjaW5jbHVkZSA8eGVuL2dyYW50 X3RhYmxlLmg+CisjaW5jbHVkZSA8eGVuL3BsYXRmb3JtX3BjaS5oPgogI2luY2x1ZGUgPHhlbi94 ZW4uaD4KICNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CiAKQEAgLTY2LDYgKzY3LDMzIEBAIHN0cnVj dCBzaF9idWZfaW5mbyB7CiAJc2l6ZV90IHZidWZmZXJfc3o7CiB9OwogCitzdHJ1Y3Qgc2Rldl9w Y21fc3RyZWFtX2luZm8geworCWludCB1bmlxdWVfaWQ7CisJc3RydWN0IHNuZF9wY21faGFyZHdh cmUgcGNtX2h3OworCXN0cnVjdCB4ZHJ2X2V2dGNobmxfaW5mbyAqZXZ0X2Nobmw7CisJYm9vbCBp c19vcGVuOworCXVpbnQ4X3QgcmVxX25leHRfaWQ7CisJc3RydWN0IHNoX2J1Zl9pbmZvIHNoX2J1 ZjsKK307CisKK3N0cnVjdCBzZGV2X3BjbV9pbnN0YW5jZV9pbmZvIHsKKwlzdHJ1Y3Qgc2Rldl9j YXJkX2luZm8gKmNhcmRfaW5mbzsKKwlzdHJ1Y3Qgc25kX3BjbSAqcGNtOworCXN0cnVjdCBzbmRf cGNtX2hhcmR3YXJlIHBjbV9odzsKKwlpbnQgbnVtX3BjbV9zdHJlYW1zX3BiOworCXN0cnVjdCBz ZGV2X3BjbV9zdHJlYW1faW5mbyAqc3RyZWFtc19wYjsKKwlpbnQgbnVtX3BjbV9zdHJlYW1zX2Nh cDsKKwlzdHJ1Y3Qgc2Rldl9wY21fc3RyZWFtX2luZm8gKnN0cmVhbXNfY2FwOworfTsKKworc3Ry dWN0IHNkZXZfY2FyZF9pbmZvIHsKKwlzdHJ1Y3QgeGRydl9pbmZvICp4ZHJ2X2luZm87CisJc3Ry dWN0IHNuZF9jYXJkICpjYXJkOworCXN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlIHBjbV9odzsKKwlp bnQgbnVtX3BjbV9pbnN0YW5jZXM7CisJc3RydWN0IHNkZXZfcGNtX2luc3RhbmNlX2luZm8gKnBj bV9pbnN0YW5jZXM7Cit9OworCiBzdHJ1Y3QgY2ZnX3N0cmVhbSB7CiAJaW50IHVuaXF1ZV9pZDsK IAljaGFyICp4ZW5zdG9yZV9wYXRoOwpAQCAtOTksNiArMTI3LDggQEAgc3RydWN0IHhkcnZfaW5m byB7CiAJc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhiX2RldjsKIAlzcGlubG9ja190IGlvX2xvY2s7 CiAJc3RydWN0IG11dGV4IG11dGV4OworCWJvb2wgc2Rydl9yZWdpc3RlcmVkOworCXN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnNkcnZfcGRldjsKIAlpbnQgbnVtX2V2dF9jaGFubmVsczsKIAlzdHJ1 Y3QgeGRydl9ldnRjaG5sX2luZm8gKmV2dF9jaG5sczsKIAlzdHJ1Y3Qgc2Rldl9jYXJkX3BsYXRf ZGF0YSBjZmdfcGxhdF9kYXRhOwpAQCAtMTM4LDYgKzE2OCwxMzIgQEAgc3RhdGljIHN0cnVjdCBz bmRfcGNtX2hhcmR3YXJlIHNkcnZfcGNtX2h3X2RlZmF1bHQgPSB7CiAJLmZpZm9fc2l6ZSA9IDAs CiB9OwogCitzdGF0aWMgaW50IHNkcnZfbmV3X3BjbShzdHJ1Y3Qgc2Rldl9jYXJkX2luZm8gKmNh cmRfaW5mbywKKwlzdHJ1Y3QgY2ZnX3BjbV9pbnN0YW5jZSAqaW5zdGFuY2VfY29uZmlnLAorCXN0 cnVjdCBzZGV2X3BjbV9pbnN0YW5jZV9pbmZvICpwY21faW5zdGFuY2VfaW5mbykKK3sKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGludCBzZHJ2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCit7CisJc3RydWN0IHNkZXZfY2FyZF9pbmZvICpjYXJkX2luZm87CisJc3RydWN0IHNk ZXZfY2FyZF9wbGF0X2RhdGEgKnBsYXRkYXRhOworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKKwlp bnQgcmV0LCBpOworCisJcGxhdGRhdGEgPSBkZXZfZ2V0X3BsYXRkYXRhKCZwZGV2LT5kZXYpOwor CisJZGV2X2RiZygmcGRldi0+ZGV2LCAiQ3JlYXRpbmcgdmlydHVhbCBzb3VuZCBjYXJkXG4iKTsK KworCXJldCA9IHNuZF9jYXJkX25ldygmcGRldi0+ZGV2LCAwLCBYRU5TTkRfRFJJVkVSX05BTUUs IFRISVNfTU9EVUxFLAorCQlzaXplb2Yoc3RydWN0IHNkZXZfY2FyZF9pbmZvKSwgJmNhcmQpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJY2FyZF9pbmZvID0gY2FyZC0+cHJpdmF0 ZV9kYXRhOworCWNhcmRfaW5mby0+eGRydl9pbmZvID0gcGxhdGRhdGEtPnhkcnZfaW5mbzsKKwlj YXJkX2luZm8tPmNhcmQgPSBjYXJkOworCWNhcmRfaW5mby0+cGNtX2luc3RhbmNlcyA9IGRldm1f a2NhbGxvYygmcGRldi0+ZGV2LAorCQkJcGxhdGRhdGEtPmNmZ19jYXJkLm51bV9wY21faW5zdGFu Y2VzLAorCQkJc2l6ZW9mKHN0cnVjdCBzZGV2X3BjbV9pbnN0YW5jZV9pbmZvKSwgR0ZQX0tFUk5F TCk7CisJaWYgKCFjYXJkX2luZm8tPnBjbV9pbnN0YW5jZXMpIHsKKwkJcmV0ID0gLUVOT01FTTsK KwkJZ290byBmYWlsOworCX0KKworCWNhcmRfaW5mby0+bnVtX3BjbV9pbnN0YW5jZXMgPSBwbGF0 ZGF0YS0+Y2ZnX2NhcmQubnVtX3BjbV9pbnN0YW5jZXM7CisJY2FyZF9pbmZvLT5wY21faHcgPSBw bGF0ZGF0YS0+Y2ZnX2NhcmQucGNtX2h3OworCisJZm9yIChpID0gMDsgaSA8IHBsYXRkYXRhLT5j ZmdfY2FyZC5udW1fcGNtX2luc3RhbmNlczsgaSsrKSB7CisJCXJldCA9IHNkcnZfbmV3X3BjbShj YXJkX2luZm8sCisJCQkmcGxhdGRhdGEtPmNmZ19jYXJkLnBjbV9pbnN0YW5jZXNbaV0sCisJCQkm Y2FyZF9pbmZvLT5wY21faW5zdGFuY2VzW2ldKTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIGZh aWw7CisJfQorCisJc3RybmNweShjYXJkLT5kcml2ZXIsIFhFTlNORF9EUklWRVJfTkFNRSwgc2l6 ZW9mKGNhcmQtPmRyaXZlcikpOworCXN0cm5jcHkoY2FyZC0+c2hvcnRuYW1lLCBwbGF0ZGF0YS0+ Y2ZnX2NhcmQubmFtZV9zaG9ydCwKKwkJc2l6ZW9mKGNhcmQtPnNob3J0bmFtZSkpOworCXN0cm5j cHkoY2FyZC0+bG9uZ25hbWUsIHBsYXRkYXRhLT5jZmdfY2FyZC5uYW1lX2xvbmcsCisJCXNpemVv ZihjYXJkLT5sb25nbmFtZSkpOworCisJcmV0ID0gc25kX2NhcmRfcmVnaXN0ZXIoY2FyZCk7CisJ aWYgKHJldCA8IDApCisJCWdvdG8gZmFpbDsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYs IGNhcmQpOworCXJldHVybiAwOworCitmYWlsOgorCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIGludCBzZHJ2X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQoreworCXN0cnVjdCBzZGV2X2NhcmRfaW5mbyAqaW5mbzsKKwlzdHJ1Y3Qgc25k X2NhcmQgKmNhcmQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWluZm8gPSBjYXJk LT5wcml2YXRlX2RhdGE7CisJZGV2X2RiZygmcGRldi0+ZGV2LCAiUmVtb3ZpbmcgdmlydHVhbCBz b3VuZCBjYXJkICVkXG4iLAorCQlpbmZvLT5jYXJkLT5udW1iZXIpOworCXNuZF9jYXJkX2ZyZWUo Y2FyZCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNk cnZfaW5mbyA9IHsKKwkucHJvYmUJPSBzZHJ2X3Byb2JlLAorCS5yZW1vdmUJPSBzZHJ2X3JlbW92 ZSwKKwkuZHJpdmVyCT0geworCQkubmFtZQk9IFhFTlNORF9EUklWRVJfTkFNRSwKKwl9LAorfTsK Kworc3RhdGljIHZvaWQgc2Rydl9jbGVhbnVwKHN0cnVjdCB4ZHJ2X2luZm8gKmRydl9pbmZvKQor eworCWlmICghZHJ2X2luZm8tPnNkcnZfcmVnaXN0ZXJlZCkKKwkJcmV0dXJuOworCisJaWYgKGRy dl9pbmZvLT5zZHJ2X3BkZXYpIHsKKwkJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqc2Rydl9wZGV2 OworCisJCXNkcnZfcGRldiA9IGRydl9pbmZvLT5zZHJ2X3BkZXY7CisJCWlmIChzZHJ2X3BkZXYp CisJCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihzZHJ2X3BkZXYpOworCX0KKwlwbGF0Zm9y bV9kcml2ZXJfdW5yZWdpc3Rlcigmc2Rydl9pbmZvKTsKKwlkcnZfaW5mby0+c2Rydl9yZWdpc3Rl cmVkID0gZmFsc2U7Cit9CisKK3N0YXRpYyBpbnQgc2Rydl9pbml0KHN0cnVjdCB4ZHJ2X2luZm8g KmRydl9pbmZvKQoreworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnNkcnZfcGRldjsKKwlpbnQg cmV0OworCisJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZzZHJ2X2luZm8pOworCWlm IChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJZHJ2X2luZm8tPnNkcnZfcmVnaXN0ZXJlZCA9 IHRydWU7CisJLyogcGFzcyBjYXJkIGNvbmZpZ3VyYXRpb24gdmlhIHBsYXRmb3JtIGRhdGEgKi8K KwlzZHJ2X3BkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0YShOVUxMLAorCQlYRU5T TkRfRFJJVkVSX05BTUUsIDAsICZkcnZfaW5mby0+Y2ZnX3BsYXRfZGF0YSwKKwkJc2l6ZW9mKGRy dl9pbmZvLT5jZmdfcGxhdF9kYXRhKSk7CisJaWYgKElTX0VSUihzZHJ2X3BkZXYpKQorCQlnb3Rv IGZhaWw7CisKKwlkcnZfaW5mby0+c2Rydl9wZGV2ID0gc2Rydl9wZGV2OworCXJldHVybiAwOwor CitmYWlsOgorCWRldl9lcnIoJmRydl9pbmZvLT54Yl9kZXYtPmRldiwKKwkJImZhaWxlZCB0byBy ZWdpc3RlciB2aXJ0dWFsIHNvdW5kIGRyaXZlclxuIik7CisJc2Rydl9jbGVhbnVwKGRydl9pbmZv KTsKKwlyZXR1cm4gLUVOT0RFVjsKK30KKwogc3RhdGljIGlycXJldHVybl90IHhkcnZfZXZ0Y2hu bF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewogCXN0cnVjdCB4ZHJ2X2V2dGNo bmxfaW5mbyAqY2hhbm5lbCA9IGRldl9pZDsKQEAgLTgzMCw2ICs5ODYsNyBAQCBzdGF0aWMgaW50 IGNmZ19jYXJkKHN0cnVjdCB4ZHJ2X2luZm8gKmRydl9pbmZvLAogCiBzdGF0aWMgdm9pZCB4ZHJ2 X3JlbW92ZV9pbnRlcm5hbChzdHJ1Y3QgeGRydl9pbmZvICpkcnZfaW5mbykKIHsKKwlzZHJ2X2Ns ZWFudXAoZHJ2X2luZm8pOwogCXhkcnZfZXZ0Y2hubF9mcmVlX2FsbChkcnZfaW5mbyk7CiB9CiAK QEAgLTEwMTgsNyArMTE3NSw3IEBAIHN0YXRpYyBpbnQgeGRydl9iZV9vbl9pbml0d2FpdChzdHJ1 Y3QgeGRydl9pbmZvICpkcnZfaW5mbykKIAogc3RhdGljIGlubGluZSBpbnQgeGRydl9iZV9vbl9j b25uZWN0ZWQoc3RydWN0IHhkcnZfaW5mbyAqZHJ2X2luZm8pCiB7Ci0JcmV0dXJuIDA7CisJcmV0 dXJuIHNkcnZfaW5pdChkcnZfaW5mbyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCB4ZHJ2X2Jl X29uX2Rpc2Nvbm5lY3RlZChzdHJ1Y3QgeGRydl9pbmZvICpkcnZfaW5mbykKLS0gCjIuNy40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==