
GeForce 520 (1 codec, up to 4 pins per, but 2 pins disabled):
[swarren@swarren-lx2 alsa-driver-build]$ sudo amixer -c1 controls | grep ELD numid=5,iface=PCM,name='ELD',device=3 numid=10,iface=PCM,name='ELD',device=7
GeForce 200 series (4 codecs, 1 pin per):
[swarren@swarren-lx2 alsa-driver-build]$ sudo amixer -c2 controls | grep ELD numid=5,iface=PCM,name='ELD',device=3 numid=10,iface=PCM,name='ELD',device=7 numid=15,iface=PCM,name='ELD',device=8 numid=20,iface=PCM,name='ELD',device=9
That looks pretty sane to me.
Excellent. Thanks for your time!
It doesn't apply to ToT; it conflicts slightly with Takashi's recent ELD bytes cleanup.
Ah, yes. Haven't updated since kernel.org went down.
pin_idx = kcontrol->private_value; ...
- if (pin_idx < 0) {
uinfo->count = 0;
I don't think you need that conditional. I'd just assume that pin_idx was set correctly when the control was created, and not create the control if that wasn't the case. At most, BUG_ON here?
Agree. All this was copy/pasted debug code in case I modified things.
One question: How do we know that ucontrol is large enough to accept eld->eld_size; are all BYTES controls always big enough, or do we need a check here on ucontrol->value.bytes.size or something like that?
The ELD is limited to 256 bytes. Same as the size of a BYTES control.