From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: [PATCH v6 1/6] ALSA: pcm: add IEC958 channel status helper for hw_params Date: Tue, 8 Mar 2016 22:14:25 +0200 Message-ID: <3d9fbdac702b93742841221e3e8d2468a3d18f12.1457465383.git.jsarha@ti.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, airlied@linux.ie, linux-omap@vger.kernel.org, devicetree@vger.kernel.org, bcousson@baylibre.com, alsa-devel@alsa-project.org Cc: peter.ujfalusi@ti.com, tony@atomide.com, broonie@kernel.org, arnaud.pouliquen@st.com, Jyri Sarha , liam.r.girdwood@linux.intel.com, tomi.valkeinen@ti.com, rmk+kernel@arm.linux.org.uk List-Id: devicetree@vger.kernel.org QWRkIElFQzk1OCBjaGFubmVsIHN0YXR1cyBoZWxwZXIgdGhhdCBnZXRzIHRoZSBhdWRpbyBwcm9w ZXJ0aWVzIGZyb20Kc25kX3BjbV9od19wYXJhbXMgaW5zdGVhZCBvZiBzbmRfcGNtX3J1bnRpbWUu IFRoaXMgaXMgbmVlZGVkIHRvCnByb2R1Y2UgdGhlIGNoYW5uZWwgc3RhdHVzIGJpdHMgYWxyZWFk eSBpbiBhdWRpbyBzdHJlYW0gY29uZmlndXJhdGlvbgpwaGFzZS4KClNpZ25lZC1vZmYtYnk6IEp5 cmkgU2FyaGEgPGpzYXJoYUB0aS5jb20+Ci0tLQogaW5jbHVkZS9zb3VuZC9wY21faWVjOTU4Lmgg fCAgMiArKwogc291bmQvY29yZS9wY21faWVjOTU4LmMgICAgfCA1MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM4IGluc2Vy dGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvcGNt X2llYzk1OC5oIGIvaW5jbHVkZS9zb3VuZC9wY21faWVjOTU4LmgKaW5kZXggMGVlZDM5Ny4uMzZm MDIzYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9wY21faWVjOTU4LmgKKysrIGIvaW5jbHVk ZS9zb3VuZC9wY21faWVjOTU4LmgKQEAgLTYsNCArNiw2IEBACiBpbnQgc25kX3BjbV9jcmVhdGVf aWVjOTU4X2NvbnN1bWVyKHN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUsIHU4ICpjcywK IAlzaXplX3QgbGVuKTsKIAoraW50IHNuZF9wY21fY3JlYXRlX2llYzk1OF9jb25zdW1lcl9od19w YXJhbXMoc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMsCisJCQkJCSAgICAgdTggKmNz LCBzaXplX3QgbGVuKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9wY21faWVjOTU4 LmMgYi9zb3VuZC9jb3JlL3BjbV9pZWM5NTguYwppbmRleCAzNmIyZDdhLi4yN2UwOTgxIDEwMDY0 NAotLS0gYS9zb3VuZC9jb3JlL3BjbV9pZWM5NTguYworKysgYi9zb3VuZC9jb3JlL3BjbV9pZWM5 NTguYwpAQCAtOSwzMCArOSwxOCBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVk ZSA8c291bmQvYXNvdW5kZWYuaD4KICNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxz b3VuZC9wY21fcGFyYW1zLmg+CiAjaW5jbHVkZSA8c291bmQvcGNtX2llYzk1OC5oPgogCi0vKioK LSAqIHNuZF9wY21fY3JlYXRlX2llYzk1OF9jb25zdW1lciAtIGNyZWF0ZSBjb25zdW1lciBmb3Jt YXQgSUVDOTU4IGNoYW5uZWwgc3RhdHVzCi0gKiBAcnVudGltZTogcGNtIHJ1bnRpbWUgc3RydWN0 dXJlIHdpdGggLT5yYXRlIGZpbGxlZCBpbgotICogQGNzOiBjaGFubmVsIHN0YXR1cyBidWZmZXIs IGF0IGxlYXN0IGZvdXIgYnl0ZXMKLSAqIEBsZW46IGxlbmd0aCBvZiBjaGFubmVsIHN0YXR1cyBi dWZmZXIKLSAqCi0gKiBDcmVhdGUgdGhlIGNvbnN1bWVyIGZvcm1hdCBjaGFubmVsIHN0YXR1cyBk YXRhIGluIEBjcyBvZiBtYXhpbXVtIHNpemUKLSAqIEBsZW4gY29ycmVzcG9uZGluZyB0byB0aGUg cGFyYW1ldGVycyBvZiB0aGUgUENNIHJ1bnRpbWUgQHJ1bnRpbWUuCi0gKgotICogRHJpdmVycyBt YXkgd2lzaCB0byB0d2VhayB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlciBhZnRlciBjcmVhdGlv bi4KLSAqCi0gKiBSZXR1cm5zOiBsZW5ndGggb2YgYnVmZmVyLCBvciBuZWdhdGl2ZSBlcnJvciBj b2RlIGlmIHNvbWV0aGluZyBmYWlsZWQuCi0gKi8KLWludCBzbmRfcGNtX2NyZWF0ZV9pZWM5NThf Y29uc3VtZXIoc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSwgdTggKmNzLAotCXNpemVf dCBsZW4pCitzdGF0aWMgaW50IGNyZWF0ZV9pZWM5NThfY29uc3VtZXIodWludCByYXRlLCB1aW50 IHNhbXBsZV93aWR0aCwKKwkJCQkgIHU4ICpjcywgc2l6ZV90IGxlbikKIHsKIAl1bnNpZ25lZCBp bnQgZnMsIHdzOwogCiAJaWYgKGxlbiA8IDQpCiAJCXJldHVybiAtRUlOVkFMOwogCi0Jc3dpdGNo IChydW50aW1lLT5yYXRlKSB7CisJc3dpdGNoIChyYXRlKSB7CiAJY2FzZSAzMjAwMDoKIAkJZnMg PSBJRUM5NThfQUVTM19DT05fRlNfMzIwMDA7CiAJCWJyZWFrOwpAQCAtNTksNyArNDcsNyBAQCBp bnQgc25kX3BjbV9jcmVhdGVfaWVjOTU4X2NvbnN1bWVyKHN0cnVjdCBzbmRfcGNtX3J1bnRpbWUg KnJ1bnRpbWUsIHU4ICpjcywKIAl9CiAKIAlpZiAobGVuID4gNCkgewotCQlzd2l0Y2ggKHNuZF9w Y21fZm9ybWF0X3dpZHRoKHJ1bnRpbWUtPmZvcm1hdCkpIHsKKwkJc3dpdGNoIChzYW1wbGVfd2lk dGgpIHsKIAkJY2FzZSAxNjoKIAkJCXdzID0gSUVDOTU4X0FFUzRfQ09OX1dPUkRMRU5fMjBfMTY7 CiAJCQlicmVhazsKQEAgLTcxLDYgKzU5LDcgQEAgaW50IHNuZF9wY21fY3JlYXRlX2llYzk1OF9j b25zdW1lcihzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lLCB1OCAqY3MsCiAJCQkgICAg IElFQzk1OF9BRVM0X0NPTl9NQVhfV09SRExFTl8yNDsKIAkJCWJyZWFrOwogCQljYXNlIDI0Ogor CQljYXNlIDMyOiAvKiBBc3N1bWUgMjQtYml0IHdpZHRoIGZvciAzMi1iaXQgc2FtcGxlcy4gKi8K IAkJCXdzID0gSUVDOTU4X0FFUzRfQ09OX1dPUkRMRU5fMjRfMjAgfAogCQkJICAgICBJRUM5NThf QUVTNF9DT05fTUFYX1dPUkRMRU5fMjQ7CiAJCQlicmVhazsKQEAgLTkyLDQgKzgxLDM0IEBAIGlu dCBzbmRfcGNtX2NyZWF0ZV9pZWM5NThfY29uc3VtZXIoc3RydWN0IHNuZF9wY21fcnVudGltZSAq cnVudGltZSwgdTggKmNzLAogCiAJcmV0dXJuIGxlbjsKIH0KKworLyoqCisgKiBzbmRfcGNtX2Ny ZWF0ZV9pZWM5NThfY29uc3VtZXIgLSBjcmVhdGUgY29uc3VtZXIgZm9ybWF0IElFQzk1OCBjaGFu bmVsIHN0YXR1cworICogQHJ1bnRpbWU6IHBjbSBydW50aW1lIHN0cnVjdHVyZSB3aXRoIC0+cmF0 ZSBmaWxsZWQgaW4KKyAqIEBjczogY2hhbm5lbCBzdGF0dXMgYnVmZmVyLCBhdCBsZWFzdCBmb3Vy IGJ5dGVzCisgKiBAbGVuOiBsZW5ndGggb2YgY2hhbm5lbCBzdGF0dXMgYnVmZmVyCisgKgorICog Q3JlYXRlIHRoZSBjb25zdW1lciBmb3JtYXQgY2hhbm5lbCBzdGF0dXMgZGF0YSBpbiBAY3Mgb2Yg bWF4aW11bSBzaXplCisgKiBAbGVuIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgb2Yg dGhlIFBDTSBydW50aW1lIEBydW50aW1lLgorICoKKyAqIERyaXZlcnMgbWF5IHdpc2ggdG8gdHdl YWsgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgYWZ0ZXIgY3JlYXRpb24uCisgKgorICogUmV0 dXJuczogbGVuZ3RoIG9mIGJ1ZmZlciwgb3IgbmVnYXRpdmUgZXJyb3IgY29kZSBpZiBzb21ldGhp bmcgZmFpbGVkLgorICovCitpbnQgc25kX3BjbV9jcmVhdGVfaWVjOTU4X2NvbnN1bWVyKHN0cnVj dCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUsIHU4ICpjcywKKwlzaXplX3QgbGVuKQoreworCXJl dHVybiBjcmVhdGVfaWVjOTU4X2NvbnN1bWVyKHJ1bnRpbWUtPnJhdGUsCisJCQkJICAgICAgc25k X3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKKwkJCQkgICAgICBjcywgbGVuKTsK K30KIEVYUE9SVF9TWU1CT0woc25kX3BjbV9jcmVhdGVfaWVjOTU4X2NvbnN1bWVyKTsKKworCitp bnQgc25kX3BjbV9jcmVhdGVfaWVjOTU4X2NvbnN1bWVyX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3Bj bV9od19wYXJhbXMgKnBhcmFtcywKKwkJCQkJICAgICB1OCAqY3MsIHNpemVfdCBsZW4pCit7CisJ cmV0dXJuIGNyZWF0ZV9pZWM5NThfY29uc3VtZXIocGFyYW1zX3JhdGUocGFyYW1zKSwgcGFyYW1z X3dpZHRoKHBhcmFtcyksCisJCQkJICAgICAgY3MsIGxlbik7Cit9CitFWFBPUlRfU1lNQk9MKHNu ZF9wY21fY3JlYXRlX2llYzk1OF9jb25zdW1lcl9od19wYXJhbXMpOwotLSAKMS45LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=