On Thursday 06 January 2011 04:43:58 Michał Lipski wrote: > Hello, > You forgot to change SOUND_MASK_VOLUME to SOUND_MASK_PCM after switching > to SOUND_MIXER_PCM :) > > Volume control works as expected, finally! Thanks. > > Michał Lipski
It turns out we both had a patch to provide headphone support to the STX. I'm attaching Michał version which is better. Yours, Yair K.
# HG changeset patch # User Michal Lipski <tall...@o2.pl> # Date 1275598840 -7200 # Node ID 81fb3bd6ed979eaab1935aab09ba8d9cb88aec0f # Parent 9883986ecd49cc25c023b90988b41cfd79f650f0 Xonar STX: Add output switch. diff -r 09a210f84f55 kernel/drv/oss_cmi878x/oss_cmi878x.c --- a/kernel/drv/oss_cmi878x/oss_cmi878x.c Thu Jan 06 07:55:36 2011 +0200 +++ b/kernel/drv/oss_cmi878x/oss_cmi878x.c Thu Jan 06 18:43:48 2011 +0200 @@ -1924,6 +1924,17 @@ case 5: value = (INW (devc->osdev, GPIO_DATA) & 0x80) ? 1 : 0; break; + case 6: + { + uint16_t gpio = INW(devc->osdev, GPIO_DATA); + if (!(gpio & 0x80)) + return 0; + else if (gpio & 0x2) + return 1; + else + return 2; + break; + } default: return OSS_EINVAL; break; @@ -2013,6 +2024,20 @@ OUTW(devc->osdev, (INW(devc->osdev, GPIO_DATA) & ~0x80), GPIO_DATA); break; + case 6: + { + uint16_t gpio = INW(devc->osdev, GPIO_DATA); + + if (value == 0) + gpio &= ~(0x80 | 0x2); + else if (value == 1) + gpio |= 0x80 | 0x2; + else + gpio = (gpio | 0x80) & ~0x2; + + OUTW(devc->osdev, gpio, GPIO_DATA); + break; + } default: return OSS_EINVAL; break; @@ -2280,6 +2305,15 @@ MIXF_READABLE | MIXF_WRITEABLE)) < 0) return ctl; + if (devc->model == SUBID_XONAR_STX) + { + if ((ctl = mixer_ext_create_control (dev, group, 6, cmi8788_ext, + MIXT_ENUM, "output", 3, + MIXF_READABLE | MIXF_WRITEABLE)) < 0) + return ctl; + mixer_ext_set_strings (dev, ctl, "Speakers Headphones Front-panel", 0); + } + if (devc->model == SUBID_XONAR_D2 || devc->model == SUBID_XONAR_D2X) if ((ctl = mixer_ext_create_control (dev, group, 5, cmi8788_ext, MIXT_ONOFF, "PCM-LOOPBACK", 1,
_______________________________________________ oss-devel mailing list oss-devel@mailman.opensound.com http://mailman.opensound.com/mailman/listinfo/oss-devel