narmstrong changed the topic of #linux-amlogic to: Amlogic mainline kernel development discussion - our wiki http://linux-meson.com/ - ml linux-amlogic@lists.infradead.org - official channel moved from Freenode - publicly logged on https://libera.irclog.whitequark.org/linux-amlogic
jacobk has quit [Quit: http://quassel-irc.org - Chat comfortably. Anywhere.]
naoki has joined #linux-amlogic
kenny has quit [Quit: WeeChat 4.1.1]
Guest86 has joined #linux-amlogic
Guest86 has left #linux-amlogic [#linux-amlogic]
vagrantc has quit [Quit: leaving]
Daanct12 has joined #linux-amlogic
hexdump0815 has quit [Ping timeout: 252 seconds]
hexdump0815 has joined #linux-amlogic
repk_ has quit [Ping timeout: 245 seconds]
repk_ has joined #linux-amlogic
JohnnyonFlame has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
djrscally has joined #linux-amlogic
ldevulder has joined #linux-amlogic
<jbrunet> phh: https://dl.khadas.com/products/vim3l/datasheet/s905d3_datasheet_0.2_wesion.pdf - Check page 840 - table 9-32. PDM input is "IN 4" on this SoC ... assuming your board is indeed an SEI610 with an S905D/X3
<jbrunet> The error mentioned may happen for several reasons, including incorrect routing. PDM cannot provide S16_LE. `hw_params` will throw a similar error because params setup fails in ASoC.
<jbrunet> Also I'd recommend setting a rate. PDM won't come up with one on its own. Something like: `amixer sset "TODDR_A SRC SEL" "IN 4"` then `arecord -D hw:0,3 -f S32_LE -c 2 -r48000`
<jbrunet> `hw:0,5` is most likely TODDR_C. Check `/proc/asound/pcm` against DT. if you tried playing with `TODDR_A SRC SEL`, it did not change anything for you. Try `hw:0,3`
<phh> thanks for the datasheet and the mention of IN 4 in dts, I indeed failed to notice that. I did try setting 48kHz rate (and other values), sorry for not mentioning that. I'm pretty sure I did try hw:0,3 with TODDR_A set to IN 4, but I'll try again. It's possible I didn't try that whole combination, thanks
<phh> well, it does work
<phh> thanks
<jbrunet> :) There is a lot of knobs to adjust indeed. That's how the HW is ...
<f_> UCM profiles would be helpful there
<f_> As for DRAM..I'll probably have to reimplement dual-channel mode..
<jbrunet> UCM works when the use case is known.
<jbrunet> Out of that, there is no "one size fits all"
<jbrunet> That's not entirely obvious on SBCs, especially if it is used out the basic desktop/HDMI UI scenario.
<jbrunet> Even which TODDR you pick depends on what you intend to do. TODDR_A usually has a bigger FIFO more suited for high throughput capture than the other
<phh> the thing I don't really understand, is why does the dts doesn't exclusively declare "TODDR_A IN 4" and nothing else? What's the point of exposing 0 and 1? And the other thing is, dts only exposes in 0/1/4, why does the mixer expose them all? and then, there should be some defaults in the dts? ofc ucm is needed for changing usecases/routing, but that can be static
<phh> that being said I don't understand why that dts has tdmin_a/tdmin_b
<jbrunet> What you see through alsamixer/amixer is the kcontrol of the mux: This FIFO does have 16 inputs: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/soc/meson/axg-toddr.c?h=v6.7-rc4#n267
<jbrunet> Depending on the SoC, some inputs are connected, some are not.
<jbrunet> To help confuse people a bit, the routing table in DT mixes routes internal to the SoC (between the internal components) and external (route to you PDM mics for example) ... and you can only add route for component which are instantiated in the card. Can't put the route for TDM_C if the card is not using it. That why you have this big (ugly) routing table on each card. All cards are differents.
<jbrunet> I'm working on something to split the internal and external routing in DT so that we can add, once a for all, the internal routes somewhere and only worry about the external one in the board dts.
<jbrunet> That takes time
<phh> yeah yeah, I know this has forever been like this on all platforms on Linux, so hard to blame anyone
<jbrunet> tdmin_a/tdmin_b may be used for Playback loopback on this device
<phh> ok
<jbrunet> > there should be some defaults in the dts
<jbrunet> - Make your configuration as you want it
<jbrunet> Best way to have sane default is
<jbrunet> No DT is meant for configuration, and again, sane default depends on what you want to do.
<jbrunet> - use `alsactl store/restore` save and restore it on boot
GNUtoo has quit [Remote host closed the connection]
<jbrunet> not meant to :)
GNUtoo has joined #linux-amlogic
<f_> jbrunet: yeah
<phh> DT has chosen {} which is literally configuration. It also has CMA sizes which are opiniated configurations
<f_> (said 'yeah' to >That's not entirely obvious on SBCs, especially...)
f11f12 has joined #linux-amlogic
<f_> Set-top box looks like it's dying?
<f_> Or did I worry for nothing?
<f_> Was booting BL2 (from USB) and in pmOS screen suddently became garbled. I just rebooted
naoki has quit [Quit: naoki]
psydroid has joined #linux-amlogic
Daanct12 has quit [Quit: WeeChat 4.1.2]
f_[xmpp] has quit [Ping timeout: 256 seconds]
f_ has quit [Ping timeout: 276 seconds]
f_[xmpp] has joined #linux-amlogic
f_ has joined #linux-amlogic
djrscally has quit [Ping timeout: 255 seconds]
f11f12 has quit [Quit: Leaving]
vagrantc has joined #linux-amlogic
mripard has quit [Quit: mripard]
ldevulder has quit [Remote host closed the connection]
eery has quit [Ping timeout: 268 seconds]
eery has joined #linux-amlogic
psydroid has quit [Remote host closed the connection]
vagrantc has quit [Quit: leaving]