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 21:59:42 +0300 Message-ID: <554FAA9E.100@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150509181153.GV2067@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 MDkuMDUuMjAxNSwgMjE6MTEsIFJ1c3NlbGwgS2luZyAtIEFSTSBMaW51eCBraXJqb2l0dGk6Cj4g T24gU2F0LCBNYXkgMDksIDIwMTUgYXQgMDg6NTU6MTBQTSArMDMwMCwgQW5zc2kgSGFubnVsYSB3 cm90ZToKPj4gMDkuMDUuMjAxNSwgMjA6NDAsIFJ1c3NlbGwgS2luZyAtIEFSTSBMaW51eCBraXJq b2l0dGk6Cj4+PiBFdmVuIFZMQyBfZG9lc24ndF8gaWYgaXQncyBvdXRwdXR0aW5nIHRvIGEgc3Rh bmRhcmQgYXVkaW8gLSBpbiBvdGhlcgo+Pj4gd29yZHMsIGlmIHlvdSBkb24ndCB0aWNrIHRoZSBT UERJRiBkaXJlY3Qgb3V0cHV0IG9wdGlvbiB3aGljaCBkZWZhdWx0cwo+Pj4gdG8gZGlzYWJsZWQg KHdoaWNoLCB3aGVuIGVuYWJsZWQsIG9wZW5zIHRoZSBkZXZpY2UgcGFzc2luZyB0aGUgQUVTCj4+ PiBiaXRzIF9hbmRfIHBlcm1pdHMgaXQgdG8gc2VuZCBhIGNvbXByZXNzZWQgYXVkaW8gc3RyZWFt LikgIEkndmUgbG9va2VkCj4+PiBhdCB0aGlzIGluIFZMQyBtYW55IHRpbWVzLi4uCj4+Cj4+IFRo YXQgaXMgbXkgdW5kZXJzdGFuZGluZyBhcyB3ZWxsLiBTYW1lIGZvciBwdWxzZWF1ZGlvLCBpdCBk b2Vzbid0IHNldAo+PiBhbnkgQUVTIGJpdHMgZXhjZXB0IGZvciBwYXNzdGhyb3VnaCAoYW5kIG1v c3Qgb3RoZXIgYXBwbGljYXRpb25zIG5ldmVyCj4+IHNldCB0aGVtKS4KPiAKPiBSaWdodCwgc28g d2hlbiB5b3UncmUgZGVhbGluZyB3aXRoIEhETUksIHdoZXJlIGl0J3MgcmVxdWlyZWQgdGhhdCB0 aGUKPiBBRVMgYml0cyBjb250YWluIGFjY3VyYXRlIGluZm9ybWF0aW9uLCB0aGUgb25seSByZWFs IG9wdGlvbiBpcyB0byBzZXQKPiBpdCBhcHByb3ByaWF0ZWx5IGluIHRoZSBkcml2ZXIgaWYgdXNl cnNwYWNlIGRvZXNuJ3Qgc3BlY2lmeSB0aGUgQUVTCj4gZGF0YSBiaXRzLgoKSSB3b25kZXIgd2hl dGhlciByZWNlaXZlcnMgYWN0dWFsbHkgY2FyZSB3aXRoIEhETUkgKHRoZXkgZ2VuZXJhbGx5IGRv bid0CndpdGggUy9QRElGKSAtIHRoYXQncyBvbmUgdGlkYml0IGZvciBtZSB0byB0ZXN0IGxhdGVy Li4uIEJ1dCBvZiBjb3Vyc2UKaXQgZG9lc24ndCBjaGFuZ2UgbXVjaCB3aXRoIHRoZSBtYXR0ZXIg YXQgaGFuZCwgaW4gYW55IGNhc2Ugd2Ugc2hvdWxkCnN0cml2ZSB0byBnZXQgdGhlIGJpdHMgY29y cmVjdCBpZiBvbmx5IGJlY2F1c2UgdGhlIEhETUkgc3BlYyByZXF1aXJlcwp0aGVtIHRvIGJlIChJ IGRvbid0IHRoaW5rIHRoZXkgd2VyZSBvcHRpb25hbCBpbiBJRUMgNjA5NTgtMyBlaXRoZXIsIHRo b3VnaCkuCgo+IE5vdywgd2l0aCB0aGUgZHctaGRtaS1haGIgZHJpdmVyLCBJJ20gZG9pbmcgc29t ZXRoaW5nIHNlbnNpYmxlCgpSaWdodC4KCldoYXQgSSdkIGxpa2UgdG8gc2VlIGlzIGFycml2ZSBh dCBzb21lIHNvcnQgb2YgZ2VuZXJhbCBjb25zZW5zdXMgb24gaG93CnRoZSBBRVMgYml0cyBzaG91 bGQgYmUgaGFuZGxlZCAoaS5lLiBzaG91bGQgdGhlIGRyaXZlciBhbHdheXMgc2V0IHRoZW0KdGhl bXNlbHZlcyBhbmQgZGlzYWxsb3cvYWxsb3cgdGhlIHVzZXJzcGFjZSB0byBvdmVycmlkZSB0aGUg cmF0ZSBiaXRzKSwKd2hpY2ggY291bGQgdGhlbiBiZSBhcHBsaWVkIHRvIG90aGVyIGRyaXZlcnMg YXMgd2VsbC4KCkJ1dCBtYXliZSB0aGF0IGlzIGZvciBhbm90aGVyIHRpbWUsIG9yIGp1c3QgYSBm dXRpbGUgZWZmb3J0IGFsdG9nZXRoZXIuLi4KCj4gLSBhbmQKPiB5ZXMsIEkgZG8gaGF2ZSBhIGNh cmQgZmlsZSBpbiAvdXNyL3NoYXJlL2Fsc2EgKHNlZSBiZWxvdykuCj4gCj4gV2hhdCB0aGlzIGRv ZXMgaXMgZW5zdXJlIHRoYXQgbGluZWFyIFBDTSBpcyBjb252ZXJ0ZWQgdG8gMjQtYml0IFBDTQo+ ICh3aGljaCBtYWtlcyB0aGUga2VybmVsIGNvbnZlcnNpb24gdG8gdGhlIHJlcXVpcmVkIGhhcmR3 YXJlIGZvcm1hdAo+IGVhc2llciAtIEkgaGF0ZSB0aGlzLCBJJ2QgbXVjaCBwcmVmZXIgaXQgdG8g YmUgZG9uZSBpbiB1c2Vyc3BhY2UuKQoKSW5kZWVkLiBJIGRpZCBub3RpY2UgdGhlcmUgaXMgYSBT TkQoUlYpX1BDTV9GT1JNQVRfU1BFQ0lBTCBidXQgSSBndWVzcwppdCBtaWdodCBub3QgYmUgZWFz aWx5IHVzZWQgZm9yIHRoaXMgcHVycG9zZSBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgYQpzcGVjaWZp YyBzYW1wbGUgd2lkdGggZXRjIChidXQgSSBhbSBub3QgZmFtaWxpYXIgZW5vdWdoIHdpdGggdGhp cyB0byBzYXkKd2hldGhlciBpdCBjb3VsZCB3b3JrIG9yIG5vdCkuLi4KCj4gSG93ZXZlciwgaW4g dGhlIGNhc2Ugb2YgVkxDLCBpZiBpdCB3YW50cyB0byBzZW5kIG5vbi1hdWRpbywgaXQgd2lsbAo+ IG9wZW4gdGhlIElFQzk1OCBkZXZpY2UsIHdoaWNoIHdpbGwgdXNlIHRoZSBpZWM5NTggcGx1Z2lu IHRvIGNvbmZpZ3VyZQo+IHRoZSBBRVMgYml0cyBmb3Igbm9uLWF1ZGlvLCBhbmQgcGFzcyBJRUM5 NTggZGF0YSB0byB0aGUga2VybmVsICh3aGljaAo+IHN0aWxsIG5lZWRzIHRvIGJlIHJlZm9ybWF0 dGVkIHRvIHRoZSBoYXJkd2FyZSdzIHNwZWNpYWwgZm9ybWF0LikKCkFoLCBzbyB0aGUgQUVTIGJp dHMgYXJlIGFjdHVhbGx5IG92ZXJyaWRhYmxlIGJ5IHVzZXJzcGFjZSwgd2hpY2ggaXMgd2hhdApJ IHdhcyBpbml0aWFsbHkgY29uY2VybmVkIHdpdGggOikKCk9mIGNvdXJzZSwgdGhpcyBtZWFucyB0 aGF0IGFwcGxpY2F0aW9ucyBvcGVuaW5nICJpZWM5NTgiIGJ1dCBub3Qgc2V0dGluZwpyYXRlIGJp dHMgKHdoaWNoIGlzIGNvbW1vbikgd2lsbCBnZXQgdGhlIGRlZmF1bHQgNDhrSHogYml0cyBmcm9t Ci91c3Ivc2hhcmUvYWxzYS9wY20vKGllYzk1OHxoZG1pKS5jb25mKS4gTm90IHN1cmUgaG93IGJp ZyBhbiBpc3N1ZSB0aGF0CmlzLCB0aG91Z2guIFRoZSAiaWVjOTU4IiBBTFNBIHBsdWdpbiBkb2Vz IHNlZW0gdG8gaGF2ZSBhIEZJWE1FIGNvbW1lbnQKYWJvdXQgc2V0dGluZyBBRVMgYml0cyBhY2Nv cmRpbmcgdG8gc2FtcGxlIHJhdGUuCgoKWy4uLl0KPiAKPiA8Y29uZmRpcjpwY20vaWVjOTU4LmNv bmY+Cj4gCj4gZHctaGRtaS1haGItYXVkLnBjbS5pZWM5NTguMCB7CgpJIHRoaW5rIHlvdSBzaG91 bGQgcy9pZWM5NTgvaGRtaS8gZm9yIHRoZSBhYm92ZSB0d28gbGluZXMuIEhETUkgZGV2aWNlcwpz aG91bGQgYmUgdXNpbmcgImhkbWkiIGluc3RlYWQgb2YgImllYzk1OCIgYnkgY29udmVudGlvbiAo dGhlIGxhdHRlciBpcwp1c2VkIGZvciBvcHRpY2FsL2NvYXhpYWwgUy9QRElGKS4KCj4gCUBhcmdz IFsgQ0FSRCBBRVMwIEFFUzEgQUVTMiBBRVMzIF0KPiAJQGFyZ3MuQ0FSRCB7IHR5cGUgc3RyaW5n IH0KPiAJQGFyZ3MuQUVTMCB7IHR5cGUgaW50ZWdlciB9Cj4gCUBhcmdzLkFFUzEgeyB0eXBlIGlu dGVnZXIgfQo+IAlAYXJncy5BRVMyIHsgdHlwZSBpbnRlZ2VyIH0KPiAJQGFyZ3MuQUVTMyB7IHR5 cGUgaW50ZWdlciB9Cj4gCXR5cGUgaWVjOTU4Cj4gCXNsYXZlLnBjbSB7Cj4gCQl0eXBlIGh3Cj4g CQljYXJkICRDQVJECj4gCQlkZXZpY2UgMAo+IAl9Cj4gCXNsYXZlLmZvcm1hdCBJRUM5NThfU1VC RlJBTUVfTEUKPiAJc3RhdHVzIFsgJEFFUzAgJEFFUzEgJEFFUzIgJEFFUzMgXQo+IH0KPiAKPiAK Ci0tIApBbnNzaSBIYW5udWxhCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: anssi.hannula@iki.fi (Anssi Hannula) Date: Sun, 10 May 2015 21:59:42 +0300 Subject: [alsa-devel] [PATCH 12/13] drm: bridge/dw_hdmi-ahb-audio: add audio driver In-Reply-To: <20150509181153.GV2067@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> Message-ID: <554FAA9E.100@iki.fi> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 09.05.2015, 21:11, Russell King - ARM Linux kirjoitti: > On Sat, May 09, 2015 at 08:55:10PM +0300, Anssi Hannula wrote: >> 09.05.2015, 20:40, Russell King - ARM Linux kirjoitti: >>> Even VLC _doesn't_ if it's outputting to a standard audio - in other >>> words, if you don't tick the SPDIF direct output option which defaults >>> to disabled (which, when enabled, opens the device passing the AES >>> bits _and_ permits it to send a compressed audio stream.) I've looked >>> at this in VLC many times... >> >> That is my understanding as well. Same for pulseaudio, it doesn't set >> any AES bits except for passthrough (and most other applications never >> set them). > > Right, so when you're dealing with HDMI, where it's required that the > AES bits contain accurate information, the only real option is to set > it appropriately in the driver if userspace doesn't specify the AES > data bits. I wonder whether receivers actually care with HDMI (they generally don't with S/PDIF) - that's one tidbit for me to test later... But of course it doesn't change much with the matter at hand, in any case we should strive to get the bits correct if only because the HDMI spec requires them to be (I don't think they were optional in IEC 60958-3 either, though). > Now, with the dw-hdmi-ahb driver, I'm doing something sensible Right. 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... > - and > yes, I do have a card file in /usr/share/alsa (see below). > > What this does is ensure that linear PCM is converted to 24-bit PCM > (which makes the kernel conversion to the required hardware format > easier - I hate this, I'd much prefer it to be done in userspace.) 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)... > 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. [...] > > > > 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). > @args [ CARD AES0 AES1 AES2 AES3 ] > @args.CARD { type string } > @args.AES0 { type integer } > @args.AES1 { type integer } > @args.AES2 { type integer } > @args.AES3 { type integer } > type iec958 > slave.pcm { > type hw > card $CARD > device 0 > } > slave.format IEC958_SUBFRAME_LE > status [ $AES0 $AES1 $AES2 $AES3 ] > } > > -- Anssi Hannula