From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anssi Hannula Subject: Re: [alsa-devel] [PATCH 12/13] drm: bridge/dw_hdmi-ahb-audio: add audio driver Date: Sun, 10 May 2015 23:47:07 +0300 Message-ID: <554FC3CB.3030807@iki.fi> References: <20150509102501.GO2067@n2100.arm.linux.org.uk> <554E3AA8.8060601@iki.fi> <20150509165536.GS2067@n2100.arm.linux.org.uk> <554E3EE1.40904@iki.fi> <20150509174054.GT2067@n2100.arm.linux.org.uk> <554E49FE.8040004@iki.fi> <20150509181153.GV2067@n2100.arm.linux.org.uk> <554FAA9E.100@iki.fi> <20150510193320.GZ2067@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150510193320.GZ2067@n2100.arm.linux.org.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Russell King - ARM Linux Cc: Fabio Estevam , alsa-devel@alsa-project.org, dri-devel@lists.freedesktop.org, Mark Brown , Yakir Yang , linux-arm-kernel@lists.infradead.org List-Id: alsa-devel@alsa-project.org MTAuMDUuMjAxNSwgMjI6MzMsIFJ1c3NlbGwgS2luZyAtIEFSTSBMaW51eCBraXJqb2l0dGk6Cj4g T24gU3VuLCBNYXkgMTAsIDIwMTUgYXQgMDk6NTk6NDJQTSArMDMwMCwgQW5zc2kgSGFubnVsYSB3 cm90ZToKPj4gV2hhdCBJJ2QgbGlrZSB0byBzZWUgaXMgYXJyaXZlIGF0IHNvbWUgc29ydCBvZiBn ZW5lcmFsIGNvbnNlbnN1cyBvbiBob3cKPj4gdGhlIEFFUyBiaXRzIHNob3VsZCBiZSBoYW5kbGVk IChpLmUuIHNob3VsZCB0aGUgZHJpdmVyIGFsd2F5cyBzZXQgdGhlbQo+PiB0aGVtc2VsdmVzIGFu ZCBkaXNhbGxvdy9hbGxvdyB0aGUgdXNlcnNwYWNlIHRvIG92ZXJyaWRlIHRoZSByYXRlIGJpdHMp LAo+PiB3aGljaCBjb3VsZCB0aGVuIGJlIGFwcGxpZWQgdG8gb3RoZXIgZHJpdmVycyBhcyB3ZWxs Lgo+Pgo+PiBCdXQgbWF5YmUgdGhhdCBpcyBmb3IgYW5vdGhlciB0aW1lLCBvciBqdXN0IGEgZnV0 aWxlIGVmZm9ydCBhbHRvZ2V0aGVyLi4uCj4gCj4gTXkgcGVyc29uYWwgdmlldyBpcyB0aGF0IHdo ZXJlIHdlJ3JlIGRlYWxpbmcgd2l0aCBQQ00gYXVkaW8sIHRoZSBkcml2ZXIKPiBuZWVkcyB0byBz ZXQgdGhlc2UgYml0cyBjb3JyZWN0bHkgYXMgdGhlcmUgaXMgbm90aGluZyBpbiB1c2Vyc3BhY2Ug dG8KPiBkbyB0aGlzLiAgVGhpcyBwcm92aWRlcyBhbiBpZGVudGljYWwgaW50ZXJmYWNlIGJldHdl ZW4gZWFjaCBhdWRpbyBkZXZpY2UKPiB3aGljaCBhY2NlcHRzIFBDTSBzYW1wbGVzIC0gd2hldGhl ciBpdCdzIGEgU1BESUYgb3Igbm9uLVNQRElGIGJhc2VkCj4gZGV2aWNlLgo+Cj4gRm9yIG5vbi1h dWRpbyBkYXRhIHNlbnQgdmlhIGFuIGF1ZGlvIGRldmljZSwgdGhlIEFFUyBiaXRzIG5lZWQgdG8g YmUKPiBjb252ZXllZCBmcm9tIHVzZXJzcGFjZSwgYW5kIHdlIHNob3VsZCByZXNwZWN0IHdoYXQg dXNlcnNwYWNlIGdpdmVzIHVzLgo+IChJZiBpdCdzIHdyb25nLCBpdCdzIGEgdXNlcnNwYWNlIGJ1 ZywgYW5kIHVzZXJzcGFjZSBzaG91bGQgYmUgZml4ZWQsCj4gcmF0aGVyIHRoYW4gdHJ5aW5nIHRv IHdvcmsgYXJvdW5kIHRoZSBidWcgYnkgcGF0Y2hpbmcgdGhlIGtlcm5lbC4pCgpKdXN0IHRvIG1h a2Ugc3VyZSBJIGRpZG4ndCBtaXN1bmRlcnN0YW5kLiBZb3UgcHJvcG9zZSBsb29raW5nIGF0IHRo ZQoibm9uLXBjbSIgKGFrYSAibm9uLWF1ZGlvIikgYml0IGluIHRoZSBBRVMgdG8gc2VlIHdoZXRo ZXIgZHJpdmVyL2tlcm5lbApzaG91bGQgZm9yY2UgcmF0ZSAoYW5kIG1heWJlIG90aGVyKSBBRVMg Yml0cz8KQmVjYXVzZSBJIHRoaW5rIHRoYXQgaXMgY3VycmVudGx5IHRoZSBvbmx5IHdheSBmb3Ig dGhlIGtlcm5lbC9kcml2ZXIgdG8Ka25vdyBpZiB0aGUgZGF0YSBpcyAibm9uLWF1ZGlvIi4KCgo+ PiBJbmRlZWQuIEkgZGlkIG5vdGljZSB0aGVyZSBpcyBhIFNORChSVilfUENNX0ZPUk1BVF9TUEVD SUFMIGJ1dCBJIGd1ZXNzCj4+IGl0IG1pZ2h0IG5vdCBiZSBlYXNpbHkgdXNlZCBmb3IgdGhpcyBw dXJwb3NlIHNpbmNlIGl0IGRvZXNuJ3QgaGF2ZSBhCj4+IHNwZWNpZmljIHNhbXBsZSB3aWR0aCBl dGMgKGJ1dCBJIGFtIG5vdCBmYW1pbGlhciBlbm91Z2ggd2l0aCB0aGlzIHRvIHNheQo+PiB3aGV0 aGVyIGl0IGNvdWxkIHdvcmsgb3Igbm90KS4uLgo+IAo+IEkgc3BlbnQgcXVpdGUgYSB3aGlsZSBs b29raW5nIGF0IGFsc2EtbGliLCB3b25kZXJpbmcgd2hldGhlciBJIGNvdWxkCj4gbW92ZSBhbGwg dGhlIGNvbnZlcnNpb25zIG91dCB0byB1c2Vyc3BhY2UsIGJ1dCBJIGNvdWxkbid0IHdpdGhvdXQK PiBidWlsZGluZyB0aGVtIF9pbnRvXyBhbHNhLWxpYi4gIFRoaXMgd2FzIGEgd2hpbGUgYmFjayBu b3csIGJ1dCBmcm9tCj4gd2hhdCBJIHJlbWVtYmVyLCBwbHVnaW5zIHRvIGFsc2EtbGliIHdoaWNo IGFyZW4ndCBidWlsdCBhcyBwYXJ0IG9mCj4gYWxzYS1saWIgYXJlIG5vdCBhYmxlIHRvIGRvIGZv cm1hdCBjb252ZXJzaW9ucy4KClNvdW5kcyBhIGJpdCBzdHJhbmdlIChhc3N1bWluZyBvbmUnZCBw bGFpbmx5IHJlZmVyZW5jZSB0aGUgcGx1Z2luIGZyb20KPGh3Pi5jb25mIGRpcmVjdGx5KSwgYnV0 IE9LLiBJJ20gbm90IHN1Z2dlc3RpbmcgdG8gbG9vayBpbnRvIGl0IGFnYWluCnVubGVzcyB5b3Ug cmVhbGx5IHdhbnQgdG8geW91cnNlbGYgOikKCj4+PiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBW TEMsIGlmIGl0IHdhbnRzIHRvIHNlbmQgbm9uLWF1ZGlvLCBpdCB3aWxsCj4+PiBvcGVuIHRoZSBJ RUM5NTggZGV2aWNlLCB3aGljaCB3aWxsIHVzZSB0aGUgaWVjOTU4IHBsdWdpbiB0byBjb25maWd1 cmUKPj4+IHRoZSBBRVMgYml0cyBmb3Igbm9uLWF1ZGlvLCBhbmQgcGFzcyBJRUM5NTggZGF0YSB0 byB0aGUga2VybmVsICh3aGljaAo+Pj4gc3RpbGwgbmVlZHMgdG8gYmUgcmVmb3JtYXR0ZWQgdG8g dGhlIGhhcmR3YXJlJ3Mgc3BlY2lhbCBmb3JtYXQuKQo+Pgo+PiBBaCwgc28gdGhlIEFFUyBiaXRz IGFyZSBhY3R1YWxseSBvdmVycmlkYWJsZSBieSB1c2Vyc3BhY2UsIHdoaWNoIGlzIHdoYXQKPj4g SSB3YXMgaW5pdGlhbGx5IGNvbmNlcm5lZCB3aXRoIDopCj4+Cj4+IE9mIGNvdXJzZSwgdGhpcyBt ZWFucyB0aGF0IGFwcGxpY2F0aW9ucyBvcGVuaW5nICJpZWM5NTgiIGJ1dCBub3Qgc2V0dGluZwo+ PiByYXRlIGJpdHMgKHdoaWNoIGlzIGNvbW1vbikgd2lsbCBnZXQgdGhlIGRlZmF1bHQgNDhrSHog Yml0cyBmcm9tCj4+IC91c3Ivc2hhcmUvYWxzYS9wY20vKGllYzk1OHxoZG1pKS5jb25mKS4gTm90 IHN1cmUgaG93IGJpZyBhbiBpc3N1ZSB0aGF0Cj4+IGlzLCB0aG91Z2guIFRoZSAiaWVjOTU4IiBB TFNBIHBsdWdpbiBkb2VzIHNlZW0gdG8gaGF2ZSBhIEZJWE1FIGNvbW1lbnQKPj4gYWJvdXQgc2V0 dGluZyBBRVMgYml0cyBhY2NvcmRpbmcgdG8gc2FtcGxlIHJhdGUuCj4gCj4gTm90ZSB0aGF0IFZM QyBkb2VzIHNldCB0aGUgInNhbXBsZSIgcmF0ZSBhcHByb3ByaWF0ZWx5Ogo+IAo+ICAgICAgICAg c3dpdGNoIChhb3V0LT5mb3JtYXQuaV9yYXRlKQo+ICAgICAgICAgewo+ICNkZWZpbmUgRlMoZnJl cSkgXAo+ICAgICAgICAgICAgIGNhc2UgZnJlcTogYWVzMyA9IElFQzk1OF9BRVMzX0NPTl9GU18g IyMgZnJlcTsgYnJlYWs7Cj4gICAgICAgICAgICAgRlMoIDQ0MTAwKSAvKiBkZWYuICovIEZTKCA0 ODAwMCkgRlMoIDMyMDAwKQo+ICAgICAgICAgICAgIEZTKCAyMjA1MCkgICAgICAgICAgICBGUygg MjQwMDApCj4gICAgICAgICAgICAgRlMoIDg4MjAwKSBGUyg3NjgwMDApIEZTKCA5NjAwMCkKPiAg ICAgICAgICAgICBGUygxNzY0MDApICAgICAgICAgICAgRlMoMTkyMDAwKQo+ICN1bmRlZiBGUwo+ ICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gICAgICAgICAgICAgICAgIGFlczMgPSBJRUM5NThfQUVT M19DT05fRlNfTk9USUQ7Cj4gICAgICAgICAgICAgICAgIGJyZWFrOwoKWWVwLCBvbmUgb2YgdGhl IGZldyB0aGF0IGRvLgoKPj4+IDxjb25mZGlyOnBjbS9pZWM5NTguY29uZj4KPj4+Cj4+PiBkdy1o ZG1pLWFoYi1hdWQucGNtLmllYzk1OC4wIHsKPj4KPj4gSSB0aGluayB5b3Ugc2hvdWxkIHMvaWVj OTU4L2hkbWkvIGZvciB0aGUgYWJvdmUgdHdvIGxpbmVzLiBIRE1JIGRldmljZXMKPj4gc2hvdWxk IGJlIHVzaW5nICJoZG1pIiBpbnN0ZWFkIG9mICJpZWM5NTgiIGJ5IGNvbnZlbnRpb24gKHRoZSBs YXR0ZXIgaXMKPj4gdXNlZCBmb3Igb3B0aWNhbC9jb2F4aWFsIFMvUERJRikuCj4gCj4gRXhjZXB0 IGRvaW5nIHRoYXQga2lsbHMgVkxDJ3MgcGFzc3Rocm91Z2ggb3B0aW9uIChkZW5vdGVkIGJ5ICJz cGRpZiIpLAo+IHdoaWNoIGV4cGxpY2l0bHkgd2FudHMgdGhlIGllYzk1OCBkZXZpY2U6Cj4gCj4g ICAgIC8qIENob29zZSB0aGUgSUVDIGRldmljZSBmb3IgUy9QRElGIG91dHB1dDoKPiAgICAgICAg aWYgdGhlIGRldmljZSBpcyBvdmVycmlkZGVuIGJ5IHRoZSB1c2VyIHRoZW4gaXQgd2lsbCBiZSB0 aGUgb25lLgo+ICAgICAgICBPdGhlcndpc2Ugd2UgY29tcHV0ZSB0aGUgZGVmYXVsdCBkZXZpY2Ug YmFzZWQgb24gdGhlIG91dHB1dCBmb3JtYXQuICovCj4gICAgIGlmIChzcGRpZiAmJiAhc3RyY21w IChkZXZpY2UsICJkZWZhdWx0IikpCj4gICAgIHsKPiAuLi4KPiAgICAgICAgIGlmIChhc3ByaW50 ZiAoJmRldmljZSwKPiAgICAgICAgICAgICAgICAgICAgICAgImllYzk1ODpBRVMwPTB4JXgsQUVT MT0weCV4LEFFUzI9MHgleCxBRVMzPTB4JXgiLAo+ICAgICAgICAgICAgICAgICAgICAgICBJRUM5 NThfQUVTMF9DT05fRU1QSEFTSVNfTk9ORSB8IElFQzk1OF9BRVMwX05PTkFVRElPLAo+ICAgICAg ICAgICAgICAgICAgICAgICBJRUM5NThfQUVTMV9DT05fT1JJR0lOQUwgfCBJRUM5NThfQUVTMV9D T05fUENNX0NPREVSLAo+ICAgICAgICAgICAgICAgICAgICAgICAwLCBhZXMzKSA9PSAtMSkKPiAK PiBZZXMsIHRlY2huaWNhbGx5IGFuIGFwcGxpY2F0aW9uIGJ1Zywgc2luY2UgVkxDIHNob3VsZCBh bGxvdyB0aGUgZGV2aWNlCj4gdG8gYmUgc2VsZWN0YWJsZSBhbmQvb3IgZGV0ZWN0IGhkbWkgZGV2 aWNlcy4gIEkgd29uZGVyIGlmIHRoYXQncwo+IHNvbWV0aGluZyB3aGljaCBoYXMgY2hhbmdlZCBi ZXR3ZWVuIDIuMC44IGFuZCB0aGUgbGF0ZXN0IHZsYy4KClllcywgaW4gdGhlIGN1cnJlbnQgdmVy c2lvbiBpdCBhcHBlbmRzIHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBjb25maWd1cmVkCmRldmljZSBp ZiBpdCBjb250YWlucyAiaWVjOTU4IiBvciAiaGRtaSIgKGdpdCBsb2cgc2F5cyBpZWM5NTggd2Fz CnVuLWhhcmRjb2RlZCBvbiB0aGUgYWJvdmUgbGluZSBpbiBKYW4gMjAxNCkuCgpTbyBpZiB5b3Ug aGF2ZSBzZWxlY3RlZCB0aGUgIkhETUkgT3V0cHV0IiBkZXZpY2UgZnJvbSB0aGUgYXVkaW8gZHJv cGRvd24KaW4gc2V0dGluZ3MsIGl0IHdvdWxkIHdvcmsuCgpIb3dldmVyLCB0aGUgZGVmYXVsdCBk ZXZpY2UgImRlZmF1bHQiIGlzIHN0aWxsIG1hbmdsZWQgdG8gImllYzk1OCIsICh0aGUKY29kZSBo YXMgYSAiVE9ETzogaGRtaSIgY29tbWVudCkuCgoKPiBJIGRpZCBjb25zaWRlciBoYXZpbmcgdGhl IGhkbWkgb3V0cHV0IGRldmljZSwgYnV0IGFsc28gYWxpYXMgdGhhdCB0bwo+IHRoZSBpZWM5NTgg ZGV2aWNlIG5hbWUsIHdoaWNoIEkgdGhpbmsgY2FuIGJlIGRvbmUgdmlhOgo+IAo+IDxjb25mZGly OnBjbS9oZG1pLmNvbmY+Cj4gCj4gZHctaGRtaS1haGItYXVkLnBjbS5oZG1pLjAgewo+IC4uLgo+ IH0KPiAKPiA8Y29uZmRpcjpwY20vaWVjOTU4LmNvbmY+Cj4gCj4gZHctaGRtaS1haGItYXVkLnBj bS5pZWM5NTguMCBjYXJkcy5kdy1oZG1pLWFoYi1hdWQucGNtLmhkbWkuMAoKSWYgYSB1c2Vyc3Bh Y2Ugd29ya2Fyb3VuZCBpcyB3YW50ZWQsIEkgdGhpbmsgSSdkIHByZWZlciB0aGlzIG9uZSBteXNl bGYuCgpQZXJzb25hbGx5LCBJIGRvbid0IGJlbGlldmUgYSB3b3JrYXJvdW5kIGlzIG9mIG11Y2gg dXNlIGhlcmUsIGJlY2F1c2UKdXNpbmcgImllYzk1OCIgaXMgYWxyZWFkeSBicm9rZW4gZm9yIG1h am9yaXR5IG9mIEhETUkgdXNlcnMgYW55d2F5IChpLmUuCnRob3NlIHRoYXQgdXNlIEhETUkgb3V0 cHV0cyBvbiB4ODYgUENzKS4uLiBidXQgSSBkb24ndCBzZWUgdGhlCndvcmthcm91bmQgYXMgc3Ry aWN0bHkgdW5hY2NlcHRhYmxlLCBlaXRoZXIuCgoKQWxzbywgaWYgdGhpcyB1c2VkICJoZG1pIiBh bmQgbm8gd29ya2Fyb3VuZCwgaS5NWDYgZGV2aWNlcyB3aXRoIGJvdGgKUy9QRElGIGFuZCBIRE1J IGNvbm5lY3RvcnMgd291bGQgdGhlbiBoYXZlIGp1c3QgYSBzaW5nbGUgaWVjOTU4KiBkZXZpY2UK YW5kIGEgc2luZ2xlIGhkbWkqIGRldmljZS4gQnV0IEkgZ3Vlc3MgdGhhdCBkb2Vzbid0IG1hdHRl ciAqdGhhdCogbXVjaC4uLgoKPiBIb3dldmVyLCBmb3IgSERNSSBzaW5rcywgSSBoYXZlbid0IHNl ZW4gYW55IHdheSBpbiBMaW51eCB0byBhbGxvdwo+IHVzZXJzcGFjZSB0byBrbm93IHRoZSBhdWRp byBjYXBhYmlsaXRpZXMgb2YgdGhlIGF0dGFjaGVkIEhETUkgc2luaywKPiBhbmQgdGh1cyB3aGV0 aGVyIHRoZSB2aWRlbyBwbGF5ZXIgY2FuIG91dHB1dCBjb21wcmVzc2VkIE1QRUcgYXVkaW8uCj4g QW55b25lIGtub3c/CgpIREEgZHJpdmVyIGV4cG9ydHMgdGhlIEVMRCBhcyBhIG1peGVyIGNvbnRy b2wsIHdoaWNoIHRoZSBhcHBsaWNhdGlvbiBjYW4KdGhlbiB1c2UgdG8gZGV0ZXJtaW5lIHRoZSBj YXBhYmlsaXRpZXMuCgpOb3QgdGhlIGJlc3QgaWRlYSBJTUhPIChJIHRoaW5rIEVMRCBzaG91bGQn dmUgcHJlZmVyYWJseSByZW1haW5lZAppbnRlcm5hbCBzaW5jZSBJIHRoaW5rIGl0IHNob3VsZCBi ZSBjb25zaWRlcmVkIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwKcGx1cyBpdCBpcyBub3QgdmVy eSBhcHBsaWNhdGlvbiBmcmllbmRseSksIGJ1dCBpdCBpcyB3aGF0IGl0IGlzIGFuZCBJCmd1ZXNz IGl0IHdhcyB0aGUgZWFzaWVzdCB3YXkgdG8gZG8gaXQgZnJvbSBBTFNBIHNpZGUuCgpJIGtub3cg cHVsc2VhdWRpbyB1c2VzIHRoZSBFTEQgY29udHJvbCB0bzoKLSBnZXQgcmVjZWl2ZXIgbmFtZQot IHRyaWdnZXIgYSBkZXZpY2UgY2hhbmdlIGV2ZW50IHdoZW4gaXQgY2hhbmdlcwoKS29kaSB1c2Vz IGl0IHRvOgotIGdldCByZWNlaXZlciBuYW1lCi0gZ2V0IGRlZmF1bHQgcGFzc3Rocm91Z2ggKGNv bXByZXNzZWQgYXVkaW8pIGNhcGFiaWxpdGllcwotIHRyaWdnZXIgcmUtZW51bWVyYXRpb24gYW5k IGRldmljZSByZW9wZW5pbmcgd2hlbiBpdCBjaGFuZ2VzCihlLmcuIGlmIHRoZSB1c2VyIHN0YXJ0 cyBhdWRpbyBwbGF5YmFjayBiZWZvcmUgdHVybmluZyBvbiB0aGVpcgphbXBsaWZpZXIvcmVjZWl2 ZXIsIHdlIG1pZ2h0J3ZlIHN0YXJ0ZWQgdGhlIHBsYXliYWNrIHdpdGgKbGVzcy10aGFuLW9wdGlt YWwgcGFyYW1ldGVycyBkdWUgdG8gQUxTQSBkcml2ZXIgRUxEIHJhdGUvY2hhbm5lbApyZXN0cmlj dGlvbnMsIHNpbmNlIHRoZSBhbXBsaWZpZXIvcmVjZWl2ZXIgbWlnaHQndmUgcGFzc2VkIHVzIHRo ZQpwcm9iYWJseS1tb3JlLWxpbWl0ZWQgbW9uaXRvci9UViBTQURzIGluc3RlYWQgb2YgaXRzIG93 biBTQURzIHdoZW4gdGhlCnJlY2VpdmVyIHdhcyBpbiBzdGFuZGJ5IG1vZGUpLgoKQnV0IEkgd291 bGRuJ3QgYmUgdG9vIHN1cnByaXNlZCBpZiB0aG9zZSB3ZXJlIHRoZSBvbmx5IHVzZXJzLgoKLS0g CkFuc3NpIEhhbm51bGEKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: anssi.hannula@iki.fi (Anssi Hannula) Date: Sun, 10 May 2015 23:47:07 +0300 Subject: [alsa-devel] [PATCH 12/13] drm: bridge/dw_hdmi-ahb-audio: add audio driver In-Reply-To: <20150510193320.GZ2067@n2100.arm.linux.org.uk> References: <20150509102501.GO2067@n2100.arm.linux.org.uk> <554E3AA8.8060601@iki.fi> <20150509165536.GS2067@n2100.arm.linux.org.uk> <554E3EE1.40904@iki.fi> <20150509174054.GT2067@n2100.arm.linux.org.uk> <554E49FE.8040004@iki.fi> <20150509181153.GV2067@n2100.arm.linux.org.uk> <554FAA9E.100@iki.fi> <20150510193320.GZ2067@n2100.arm.linux.org.uk> Message-ID: <554FC3CB.3030807@iki.fi> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 10.05.2015, 22:33, Russell King - ARM Linux kirjoitti: > On Sun, May 10, 2015 at 09:59:42PM +0300, Anssi Hannula wrote: >> What I'd like to see is arrive at some sort of general consensus on how >> the AES bits should be handled (i.e. should the driver always set them >> themselves and disallow/allow the userspace to override the rate bits), >> which could then be applied to other drivers as well. >> >> But maybe that is for another time, or just a futile effort altogether... > > My personal view is that where we're dealing with PCM audio, the driver > needs to set these bits correctly as there is nothing in userspace to > do this. This provides an identical interface between each audio device > which accepts PCM samples - whether it's a SPDIF or non-SPDIF based > device. > > For non-audio data sent via an audio device, the AES bits need to be > conveyed from userspace, and we should respect what userspace gives us. > (If it's wrong, it's a userspace bug, and userspace should be fixed, > rather than trying to work around the bug by patching the kernel.) Just to make sure I didn't misunderstand. You propose looking at the "non-pcm" (aka "non-audio") bit in the AES to see whether driver/kernel should force rate (and maybe other) AES bits? Because I think that is currently the only way for the kernel/driver to know if the data is "non-audio". >> Indeed. I did notice there is a SND(RV)_PCM_FORMAT_SPECIAL but I guess >> it might not be easily used for this purpose since it doesn't have a >> specific sample width etc (but I am not familiar enough with this to say >> whether it could work or not)... > > I spent quite a while looking at alsa-lib, wondering whether I could > move all the conversions out to userspace, but I couldn't without > building them _into_ alsa-lib. This was a while back now, but from > what I remember, plugins to alsa-lib which aren't built as part of > alsa-lib are not able to do format conversions. Sounds a bit strange (assuming one'd plainly reference the plugin from .conf directly), but OK. I'm not suggesting to look into it again unless you really want to yourself :) >>> However, in the case of VLC, if it wants to send non-audio, it will >>> open the IEC958 device, which will use the iec958 plugin to configure >>> the AES bits for non-audio, and pass IEC958 data to the kernel (which >>> still needs to be reformatted to the hardware's special format.) >> >> Ah, so the AES bits are actually overridable by userspace, which is what >> I was initially concerned with :) >> >> Of course, this means that applications opening "iec958" but not setting >> rate bits (which is common) will get the default 48kHz bits from >> /usr/share/alsa/pcm/(iec958|hdmi).conf). Not sure how big an issue that >> is, though. The "iec958" ALSA plugin does seem to have a FIXME comment >> about setting AES bits according to sample rate. > > Note that VLC does set the "sample" rate appropriately: > > switch (aout->format.i_rate) > { > #define FS(freq) \ > case freq: aes3 = IEC958_AES3_CON_FS_ ## freq; break; > FS( 44100) /* def. */ FS( 48000) FS( 32000) > FS( 22050) FS( 24000) > FS( 88200) FS(768000) FS( 96000) > FS(176400) FS(192000) > #undef FS > default: > aes3 = IEC958_AES3_CON_FS_NOTID; > break; Yep, one of the few that do. >>> >>> >>> dw-hdmi-ahb-aud.pcm.iec958.0 { >> >> I think you should s/iec958/hdmi/ for the above two lines. HDMI devices >> should be using "hdmi" instead of "iec958" by convention (the latter is >> used for optical/coaxial S/PDIF). > > Except doing that kills VLC's passthrough option (denoted by "spdif"), > which explicitly wants the iec958 device: > > /* Choose the IEC device for S/PDIF output: > if the device is overridden by the user then it will be the one. > Otherwise we compute the default device based on the output format. */ > if (spdif && !strcmp (device, "default")) > { > ... > if (asprintf (&device, > "iec958:AES0=0x%x,AES1=0x%x,AES2=0x%x,AES3=0x%x", > IEC958_AES0_CON_EMPHASIS_NONE | IEC958_AES0_NONAUDIO, > IEC958_AES1_CON_ORIGINAL | IEC958_AES1_CON_PCM_CODER, > 0, aes3) == -1) > > Yes, technically an application bug, since VLC should allow the device > to be selectable and/or detect hdmi devices. I wonder if that's > something which has changed between 2.0.8 and the latest vlc. Yes, in the current version it appends the parameters to the configured device if it contains "iec958" or "hdmi" (git log says iec958 was un-hardcoded on the above line in Jan 2014). So if you have selected the "HDMI Output" device from the audio dropdown in settings, it would work. However, the default device "default" is still mangled to "iec958", (the code has a "TODO: hdmi" comment). > I did consider having the hdmi output device, but also alias that to > the iec958 device name, which I think can be done via: > > > > dw-hdmi-ahb-aud.pcm.hdmi.0 { > ... > } > > > > dw-hdmi-ahb-aud.pcm.iec958.0 cards.dw-hdmi-ahb-aud.pcm.hdmi.0 If a userspace workaround is wanted, I think I'd prefer this one myself. Personally, I don't believe a workaround is of much use here, because using "iec958" is already broken for majority of HDMI users anyway (i.e. those that use HDMI outputs on x86 PCs)... but I don't see the workaround as strictly unacceptable, either. Also, if this used "hdmi" and no workaround, i.MX6 devices with both S/PDIF and HDMI connectors would then have just a single iec958* device and a single hdmi* device. But I guess that doesn't matter *that* much... > However, for HDMI sinks, I haven't seen any way in Linux to allow > userspace to know the audio capabilities of the attached HDMI sink, > and thus whether the video player can output compressed MPEG audio. > Anyone know? HDA driver exports the ELD as a mixer control, which the application can then use to determine the capabilities. Not the best idea IMHO (I think ELD should've preferably remained internal since I think it should be considered an implementation detail, plus it is not very application friendly), but it is what it is and I guess it was the easiest way to do it from ALSA side. I know pulseaudio uses the ELD control to: - get receiver name - trigger a device change event when it changes Kodi uses it to: - get receiver name - get default passthrough (compressed audio) capabilities - trigger re-enumeration and device reopening when it changes (e.g. if the user starts audio playback before turning on their amplifier/receiver, we might've started the playback with less-than-optimal parameters due to ALSA driver ELD rate/channel restrictions, since the amplifier/receiver might've passed us the probably-more-limited monitor/TV SADs instead of its own SADs when the receiver was in standby mode). But I wouldn't be too surprised if those were the only users. -- Anssi Hannula