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

Reply via email to