From mboxrd@z Thu Jan 1 00:00:00 1970 From: Raymond Yau Subject: Multistreaming Playback using Front Panel Headphone with realtek codec Date: Wed, 4 May 2011 23:42:24 +0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=000e0cd6e3525e21ba04a2751aeb Return-path: Received: from mail-fx0-f51.google.com (mail-fx0-f51.google.com [209.85.161.51]) by alsa0.perex.cz (Postfix) with ESMTP id 41AF7103939 for ; Wed, 4 May 2011 17:42:38 +0200 (CEST) Received: by fxm5 with SMTP id 5so1045930fxm.38 for ; Wed, 04 May 2011 08:42:37 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: ALSA Development Mailing List , Takashi Iwai List-Id: alsa-devel@alsa-project.org --000e0cd6e3525e21ba04a2751aeb Content-Type: text/plain; charset=ISO-8859-1 Request for testers to test the patch Multistreaming allows you to listen to one audio source through the back panel speakers and a second audio source through front panel headphones or speakers. Hardware requirement 1) 10 channels realtek codec (e.g. alc892) which already work with model=auto 2) Headphone at front panel and Line out at rear panel "hw:0,0" is used for the rear panel audio jack "hw:0,2" is used for the front panel headphone when "Independent HP" is switched ON Add an "Independent HP" switch to turn this feature on/off for desktop for those HDA codec Test: 1) speaker-test -c 8 -t wav -Dhw:0,0 2) speaker-test -c 2 -t wav -Dhw:0,2 It will need modification to support this feature for those desktop with 8 channels codec --000e0cd6e3525e21ba04a2751aeb Content-Type: application/octet-stream; name="0001-Add-Multistreaming-Playback-using-Front-Panel-Headph.patch" Content-Disposition: attachment; filename="0001-Add-Multistreaming-Playback-using-Front-Panel-Headph.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gnacduo50 RnJvbSBiZmNmZDMyNDVjNTY5OTMwNTdiNTI2NDFiYWY2OTRhYzczNTAxMDIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYXltb25kIFlhdSA8c3VwZXJxdWFkLnZvcnRleDJAZ21haWwu Y29tPgpEYXRlOiBXZWQsIDQgTWF5IDIwMTEgMjE6NDQ6MjggKzA4MDAKU3ViamVjdDogW1BBVENI IEFMU0EgaGRhXSBBZGQgTXVsdGlzdHJlYW1pbmcgUGxheWJhY2sgdXNpbmcgRnJvbnQgUGFuZWwg SGVhZHBob25lIGZvciByZWFsdGVrIGNvZGVjCgoKU2lnbmVkLW9mZi1ieTogUmF5bW9uZCBZYXUg PHN1cGVycXVhZC52b3J0ZXgyQGdtYWlsLmNvbT4KCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRh L3BhdGNoX3JlYWx0ZWsuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCmluZGV4IDRk ZDBjY2MuLmIxZDVlMDEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5j CisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCkBAIC0zNDAsNiArMzQwLDcgQEAg c3RydWN0IGFsY19zcGVjIHsKIAkJCQkJICogZGlnX291dF9uaWQgYW5kIGhwX25pZCBhcmUgb3B0 aW9uYWwKIAkJCQkJICovCiAJaGRhX25pZF90IGFsdF9kYWNfbmlkOworCWludCBpbmRlcGVuZGVu dF9ocDsKIAloZGFfbmlkX3Qgc2xhdmVfZGlnX291dHNbM107CS8qIG9wdGlvbmFsIC0gZm9yIGF1 dG8tcGFyc2luZyAqLwogCWludCBkaWdfb3V0X3R5cGU7CiAKQEAgLTExNTcsNyArMTE1OCw4IEBA IHN0YXRpYyB2b2lkIHVwZGF0ZV9zcGVha2VycyhzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKIHN0 YXRpYyB2b2lkIGFsY19ocF9hdXRvbXV0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKIHsKIAlz dHJ1Y3QgYWxjX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKLQorCWlmIChzcGVjLT5pbmRlcGVu ZGVudF9ocCkKKwkJcmV0dXJuOwogCWlmICghc3BlYy0+YXV0b211dGUpCiAJCXJldHVybjsKIAlz cGVjLT5qYWNrX3ByZXNlbnQgPQpAQCAtMTY0NSw2ICsxNjQ3LDg1IEBAIHN0YXRpYyB2b2lkIGFs Y19pbml0X2F1dG9fbWljKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQogCXNwZWMtPnVuc29sX2V2 ZW50ID0gYWxjX3NrdV91bnNvbF9ldmVudDsKIH0KIAorc3RhdGljIGludCBhbGNfaW5kZXBlbmRl bnRfaHBfaW5mbyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCQkgICBzdHJ1Y3Qg c25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQoreworCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg dGV4dHNbXSA9IHsgIk9GRiIsICJPTiIsIE5VTEx9OworCWludCBpbmRleDsKKwl1aW5mby0+dHlw ZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfRU5VTUVSQVRFRDsKKwl1aW5mby0+Y291bnQgPSAxOwor CXVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1zID0gMjsKKwlpbmRleCA9IHVpbmZvLT52YWx1 ZS5lbnVtZXJhdGVkLml0ZW07CisJaWYgKGluZGV4ID49IDIpCisJCWluZGV4ID0gMTsKKwlzdHJj cHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwgdGV4dHNbaW5kZXhdKTsKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIGludCBhbGNfaW5kZXBlbmRlbnRfaHBfZ2V0KHN0cnVjdCBzbmRfa2Nv bnRyb2wgKmtjb250cm9sLAorCQkJCSAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRy b2wpCit7CisJc3RydWN0IGhkYV9jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29u dHJvbCk7CisJc3RydWN0IGFsY19zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7CisJdWNvbnRyb2wt PnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IHNwZWMtPmluZGVwZW5kZW50X2hwOworCXJldHVy biAwOworfQorCitzdGF0aWMgaW50IGFsY19pbmRlcGVuZGVudF9ocF9wdXQoc3RydWN0IHNuZF9r Y29udHJvbCAqa2NvbnRyb2wsCisJCQkJICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29u dHJvbCkKK3sKKwlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtj b250cm9sKTsKKwlzdHJ1Y3QgYWxjX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKKwl1bnNpZ25l ZCBpbnQgc2VsZWN0ID0gdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXTsKKwlpZiAo c3BlYy0+aW5kZXBlbmRlbnRfaHAgIT0gc2VsZWN0KSB7CisJCXNwZWMtPmluZGVwZW5kZW50X2hw ID0gc2VsZWN0OworCQlpZiAoc3BlYy0+aW5kZXBlbmRlbnRfaHApCisJCQlzcGVjLT5tdWx0aW91 dC5ocF9uaWQgPSAwOworCQllbHNlCisJCQlzcGVjLT5tdWx0aW91dC5ocF9uaWQgPSBzcGVjLT5h bHRfZGFjX25pZDsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgY29u c3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWxjX2luZGVwZW5kZW50X2hwX3N3aXRjaCA9IHsK KwkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSA9ICJJbmRlcGVu ZGVudCBIUCIsCisJLmluZm8gPSBhbGNfaW5kZXBlbmRlbnRfaHBfaW5mbywKKwkuZ2V0ID0gYWxj X2luZGVwZW5kZW50X2hwX2dldCwKKwkucHV0ID0gYWxjX2luZGVwZW5kZW50X2hwX3B1dCwKK307 CisKKy8qCisgICBNdWx0aXN0cmVhbWluZyBwbGF5YmFjayB1c2luZyBIZWFkcGhvbmUgYXQgRnJv bnQgUGFuZWwKKyAgIEFkZCBJbmRlcGVuZGVudCBIZWFkcGhvbmUgY29udHJvbCBvbmx5IHdoZW4g dGhlcmUgYXJlCisgICAxKSBIUCBhdCBFeHQgRnJvbnQgYW5kIExpbmUgT3V0IGF0IEV4dCBSZWFy CisqLworc3RhdGljIHZvaWQgYWRkX2luZGVwZW5kZW50X2hwKHN0cnVjdCBoZGFfY29kZWMgKmNv ZGVjLCBoZGFfbmlkX3QgcGluLAorCQkJCWhkYV9uaWRfdCBuaWQpCit7CisJc3RydWN0IGFsY19z cGVjICpzcGVjID0gY29kZWMtPnNwZWM7CisJc3RydWN0IHNuZF9rY29udHJvbF9uZXcgKmtuZXc7 CisJdTMyIGhwX2NmZywgbG9fY2ZnOworCWhwX2NmZyA9IHNuZF9oZGFfY29kZWNfZ2V0X3BpbmNm Zyhjb2RlYywgcGluKTsKKwlsb19jZmcgPSBzbmRfaGRhX2NvZGVjX2dldF9waW5jZmcoY29kZWMs IHNwZWMtPmF1dG9jZmcubGluZV9vdXRfcGluc1swXSk7CisJaWYgKChzcGVjLT5hdXRvY2ZnLmxp bmVfb3V0cyA+PSAxKSAmJgorCQkobmlkICE9IHNwZWMtPm11bHRpb3V0LmRhY19uaWRzW0hEQV9G Uk9OVF0pICYmCisJCShnZXRfZGVmY2ZnX2RldmljZShocF9jZmcpID09IEFDX0pBQ0tfSFBfT1VU KSAmJgorCQkoZ2V0X2RlZmNmZ19sb2NhdGlvbihocF9jZmcpID09IEFDX0pBQ0tfTE9DX0ZST05U KSAmJgorCQkoZ2V0X2RlZmNmZ19kZXZpY2UobG9fY2ZnKSA9PSBBQ19KQUNLX0xJTkVfT1VUKSAm JgorCQkoZ2V0X2RlZmNmZ19sb2NhdGlvbihsb19jZmcpID09IEFDX0pBQ0tfTE9DX1JFQVIpKSB7 CisKKwkJc3BlYy0+YWx0X2RhY19uaWQgPSBuaWQ7CisKKwkJa25ldyA9IGFsY19rY29udHJvbF9u ZXcoc3BlYyk7CisJCWlmIChrbmV3KSB7CisJCQkqa25ldyA9IGFsY19pbmRlcGVuZGVudF9ocF9z d2l0Y2g7CisJCQlrbmV3LT5uYW1lID0ga3N0cmR1cCgiSW5kZXBlbmRlbnQgSFAiLCBHRlBfS0VS TkVMKTsKKwkJfQorCX0KK30KKwogLyogQ291bGQgYmUgYW55IG5vbi16ZXJvIGFuZCBldmVuIHZh bHVlLiBXaGVuIHVzZWQgYXMgZml4dXAsIHRlbGxzCiAgKiB0aGUgZHJpdmVyIHRvIGlnbm9yZSBh bnkgcHJlc2VudCBza3UgZGVmaW5lcy4KICAqLwpAQCAtNDEzOCw2ICs0MjE5LDE5IEBAIHN0YXRp YyBpbnQgYWxjX2NoZWNrX3Bvd2VyX3N0YXR1cyhzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRh X25pZF90IG5pZCkKIH0KICNlbmRpZgogCitzdGF0aWMgdm9pZCBhY3RpdmF0ZV9jdGwoc3RydWN0 IGhkYV9jb2RlYyAqY29kZWMsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBhY3RpdmUpCit7CisJc3Ry dWN0IHNuZF9rY29udHJvbCAqY3RsID0gc25kX2hkYV9maW5kX21peGVyX2N0bChjb2RlYywgbmFt ZSk7CisJaWYgKGN0bCkgeworCQljdGwtPnZkWzBdLmFjY2VzcyAmPSB+U05EUlZfQ1RMX0VMRU1f QUNDRVNTX0lOQUNUSVZFOworCQljdGwtPnZkWzBdLmFjY2VzcyB8PSBhY3RpdmUgPyAwIDogU05E UlZfQ1RMX0VMRU1fQUNDRVNTX0lOQUNUSVZFOworCQljdGwtPnZkWzBdLmFjY2VzcyAmPSB+U05E UlZfQ1RMX0VMRU1fQUNDRVNTX1dSSVRFOworCQljdGwtPnZkWzBdLmFjY2VzcyB8PSBhY3RpdmUg PyBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfV1JJVEUgOiAwOworCQlzbmRfY3RsX25vdGlmeShjb2Rl Yy0+YnVzLT5jYXJkLAorCQkJICAgICAgIFNORFJWX0NUTF9FVkVOVF9NQVNLX0lORk8sICZjdGwt PmlkKTsKKwl9Cit9CisKIC8qCiAgKiBBbmFsb2cgcGxheWJhY2sgY2FsbGJhY2tzCiAgKi8KQEAg LTQxNjksNiArNDI2MywzNCBAQCBzdGF0aWMgaW50IGFsYzg4MF9wbGF5YmFja19wY21fY2xlYW51 cChzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLAogCXJldHVybiBzbmRfaGRhX211bHRpX291 dF9hbmFsb2dfY2xlYW51cChjb2RlYywgJnNwZWMtPm11bHRpb3V0KTsKIH0KIAorc3RhdGljIGlu dCBhbGM4ODBfcGxheWJhY2tfcGNtX2Nsb3NlKHN0cnVjdCBoZGFfcGNtX3N0cmVhbSAqaGluZm8s CisJCQkJICAgICBzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkgICAgIHN0cnVjdCBzbmRf cGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCWFjdGl2YXRlX2N0bChjb2RlYywgIkluZGVw ZW5kZW50IEhQIiwgMSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWxjODgwX2FsdF9w bGF5YmFja19wY21fb3BlbihzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLAorCQkJCSAgICBz dHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkgICAgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFt ICpzdWJzdHJlYW0pCit7CisJc3RydWN0IGFsY19zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7CisJ aWYgKHNwZWMtPmluZGVwZW5kZW50X2hwKSB7CisJCWFjdGl2YXRlX2N0bChjb2RlYywgIkluZGVw ZW5kZW50IEhQIiwgMCk7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gLUVCVVNZOworfQorCitz dGF0aWMgaW50IGFsYzg4MF9hbHRfcGxheWJhY2tfcGNtX2Nsb3NlKHN0cnVjdCBoZGFfcGNtX3N0 cmVhbSAqaGluZm8sCisJCQkJCSBzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkJIHN0cnVj dCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCWFjdGl2YXRlX2N0bChjb2RlYywg IkluZGVwZW5kZW50IEhQIiwgMSk7CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBEaWdpdGFsIG91 dAogICovCkBAIC00MjgwLDcgKzQ0MDIsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9wY21f c3RyZWFtIGFsYzg4MF9wY21fYW5hbG9nX3BsYXliYWNrID0gewogCS5vcHMgPSB7CiAJCS5vcGVu ID0gYWxjODgwX3BsYXliYWNrX3BjbV9vcGVuLAogCQkucHJlcGFyZSA9IGFsYzg4MF9wbGF5YmFj a19wY21fcHJlcGFyZSwKLQkJLmNsZWFudXAgPSBhbGM4ODBfcGxheWJhY2tfcGNtX2NsZWFudXAK KwkJLmNsZWFudXAgPSBhbGM4ODBfcGxheWJhY2tfcGNtX2NsZWFudXAsCisJCS5jbG9zZSA9IGFs Yzg4MF9wbGF5YmFja19wY21fY2xvc2UKIAl9LAogfTsKIApAQCAtNDI5Niw2ICs0NDE5LDEwIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRhX3BjbV9zdHJlYW0gYWxjODgwX3BjbV9hbmFsb2dfYWx0 X3BsYXliYWNrID0gewogCS5jaGFubmVsc19taW4gPSAyLAogCS5jaGFubmVsc19tYXggPSAyLAog CS8qIE5JRCBpcyBzZXQgaW4gYWxjX2J1aWxkX3BjbXMgKi8KKwkub3BzID0geworCQkub3BlbiA9 IGFsYzg4MF9hbHRfcGxheWJhY2tfcGNtX29wZW4sCisJCS5jbG9zZSA9IGFsYzg4MF9hbHRfcGxh eWJhY2tfcGNtX2Nsb3NlCisJfSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGRhX3BjbV9z dHJlYW0gYWxjODgwX3BjbV9hbmFsb2dfYWx0X2NhcHR1cmUgPSB7CkBAIC0xOTA0OSw2ICsxOTE3 Niw5IEBAIHN0YXRpYyBpbnQgYWxjNjYyX2F1dG9fY3JlYXRlX2V4dHJhX291dChzdHJ1Y3QgaGRh X2NvZGVjICpjb2RlYywgaGRhX25pZF90IHBpbiwKIAllcnIgPSBhbGM2NjJfYWRkX3N3X2N0bChz cGVjLCBwZngsIG1peCwgMyk7CiAJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7CisKKwlpZiAo c3RyY21wKHBmeCwgIkhlYWRwaG9uZSIpID09IDAgJiYgc3BlYy0+YXV0b2NmZy5saW5lX291dHMg PT0gNCkKKwkJYWRkX2luZGVwZW5kZW50X2hwKGNvZGVjLCBwaW4sIG5pZCk7CiAJcmV0dXJuIG5p ZDsKIH0KIApAQCAtMTk1MDAsNiArMTk2MzAsMTAgQEAgc3RhdGljIGludCBwYXRjaF9hbGM2NjIo c3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19wbGF5YmFjayA9 ICZhbGM2NjJfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1 cmUgPSAmYWxjNjYyX3BjbV9hbmFsb2dfY2FwdHVyZTsKIAorCWlmIChzcGVjLT5hbHRfZGFjX25p ZCkKKwkJc3BlYy0+c3RyZWFtX2FuYWxvZ19hbHRfcGxheWJhY2sgPQorCQkJJmFsYzg4MF9wY21f YW5hbG9nX2FsdF9wbGF5YmFjazsKKwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX3BsYXliYWNrID0g JmFsYzY2Ml9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9jYXB0 dXJlID0gJmFsYzY2Ml9wY21fZGlnaXRhbF9jYXB0dXJlOwogCi0tIAoxLjYuMC42Cgo= --000e0cd6e3525e21ba04a2751aeb Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --000e0cd6e3525e21ba04a2751aeb--