Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
SN25P digital out. Any clue how to get working? [SOLVED]
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
roguetoad
Tux's lil' helper
Tux's lil' helper


Joined: 24 Oct 2005
Posts: 124
Location: Office chair

PostPosted: Mon Oct 24, 2005 8:04 pm    Post subject: SN25P digital out. Any clue how to get working? [SOLVED] Reply with quote

After a quick googlewhack, it looks as though someone's figured out how to make basic sound for the SN25P work under alsa. Won't repeat details here, just follow the link if interested: http://www.nakack.net/2005/03/31/via-envy24ptht-sound-chip/

This gets basic sound up and running, but doesn't enable the digital out capabilities on the FN25 motherboard. Any alsa/hardware gurus out there got a clue as to what extra info is needed to turn the digital out on?

Any program I can run to poke at registers or whatnot to see if I can make them work? Tried filing a bug at bugtrack.alsa.org, but the website keeps dissing me, saying connection refused. So thought I'd give a wag here and see if anyone had any ideas.

Cheers,

-A

[edit] have not tried the ac97/5.1 passthru yet.


Last edited by roguetoad on Fri Oct 28, 2005 10:40 pm; edited 1 time in total
Back to top
View user's profile Send private message
roguetoad
Tux's lil' helper
Tux's lil' helper


Joined: 24 Oct 2005
Posts: 124
Location: Office chair

PostPosted: Fri Oct 28, 2005 7:05 pm    Post subject: Update semi-working Reply with quote

Got some quick feedback from Takashi Iwai, one of the lead ALSA developers.
So I've gotten sound to come out from the COAX and optical out now.

Having a problem with "stuttering" or beating when I try I play mp3's through Rhythmbox with a gstreamer backend. Will increasing the buffer size or period help out here? Time to break out the alsa docs I guess.

Here's the quick hack:
From Takashi:
As an experiment, try to set 0x40 to k8x800_eeprom[3] in
vt1720_mobo.c (currently 0x00).

My tweak on his hack:
This didn't work for me, but looking at the vt1720 docs it needs the lsb enabled for spdif to work at all so I changed k8x800_eeprom[3] to 0x41, and voila! I got sound from spdif.

Hope someone else finds this useful.
Back to top
View user's profile Send private message
roguetoad
Tux's lil' helper
Tux's lil' helper


Joined: 24 Oct 2005
Posts: 124
Location: Office chair

PostPosted: Fri Oct 28, 2005 7:07 pm    Post subject: Reply with quote

BTW,

you will have to recompile the kernel and do a make modules_install to get this fix working.
but on the plus side, no need to reboot. just /etc/init.d/alsasound restart
Back to top
View user's profile Send private message
roguetoad
Tux's lil' helper
Tux's lil' helper


Joined: 24 Oct 2005
Posts: 124
Location: Office chair

PostPosted: Fri Oct 28, 2005 10:38 pm    Post subject: It works! Reply with quote

Seems the stuttering was not really a hardware problem. Downgrading the gst-plugin-alsa to version 0.8.8 fixed it. Listening to music through rhythmbox piped thru optical out right now. :D
Back to top
View user's profile Send private message
fangorn
Veteran
Veteran


Joined: 31 Jul 2004
Posts: 1886

PostPosted: Tue Nov 22, 2005 10:05 am    Post subject: Reply with quote

Hey,

This is good news 8)
Just stumbled over your post.

Been waiting for this news since May and have already given up.

Have news from the Alsa guys?
Any chance this hack will be in alsa some time soon?

It's just annoying hacking the sources each time you try a new kernel version :twisted:

Thanks, Thanks and Thanks again

Will try this as soon as I get home. I'm sick of all the noise coming out of my amplifier (10 meters of basically unshielded audio cable :twisted: )

fangorn
Back to top
View user's profile Send private message
fangorn
Veteran
Veteran


Joined: 31 Jul 2004
Posts: 1886

PostPosted: Tue Nov 22, 2005 11:47 am    Post subject: Reply with quote

I just saw its already in alsa-1.0.10

Last edited by fangorn on Thu Nov 24, 2005 12:55 pm; edited 1 time in total
Back to top
View user's profile Send private message
fangorn
Veteran
Veteran


Joined: 31 Jul 2004
Posts: 1886

PostPosted: Thu Nov 24, 2005 12:53 pm    Post subject: Reply with quote

In the Changelog it says there is support for SPDIF on SN25P, but I installed alsa-driver-1.0.10 and there is no spdif device in alsamixer and no sound coming out of my receiver :cry:

Know a solution for this?
Back to top
View user's profile Send private message
Cintra
Advocate
Advocate


Joined: 03 Apr 2004
Posts: 2111
Location: Norway

PostPosted: Thu Nov 24, 2005 1:56 pm    Post subject: Reply with quote

in http://cvs.sourceforge.net/viewcvs.py/alsa/alsa-kernel/Documentation/ALSA-Configuration.txt?rev=1.85 and here http://www.via.com.tw/en/products/audio/controllers/envy24pt/ it certainly looks as though its supported..
do you see the card OK in lspci?
and did you try the above hack?
mvh

Btw, how noisy is this box?
_________________
"I am not bound to please thee with my answers" W.S.
Back to top
View user's profile Send private message
roguetoad
Tux's lil' helper
Tux's lil' helper


Joined: 24 Oct 2005
Posts: 124
Location: Office chair

PostPosted: Tue Nov 29, 2005 5:59 am    Post subject: Reply with quote

I haven't checked to see if the patch made into the next alsa rev. Takashi was committing it so if now this one then the next for sure

Here is the patch Takashi sent me
Code:

Index: alsa-kernel/pci/ice1712/vt1720_mobo.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/ice1712/vt1720_mobo.c,v
retrieving revision 1.4
diff -u -r1.4 vt1720_mobo.c
--- alsa-kernel/pci/ice1712/vt1720_mobo.c   24 May 2005 12:15:59 -0000   1.4
+++ alsa-kernel/pci/ice1712/vt1720_mobo.c   31 Oct 2005 15:26:45 -0000
@@ -71,6 +71,22 @@
    0x00,   /* - */
 };
 
+static unsigned char sn25p_eeprom[] __devinitdata = {
+   0x01,   /* SYSCONF: clock 256, 1ADC, 2DACs */
+   0x02,   /* ACLINK: ACLINK, packed */
+   0x00,   /* I2S: - */
+   0x41,   /* SPDIF: - */
+   0xff,   /* GPIO_DIR */
+   0xff,   /* GPIO_DIR1 */
+   0x00,   /* - */
+   0xff,   /* GPIO_MASK */
+   0xff,   /* GPIO_MASK1 */
+   0x00,   /* - */
+   0x00,   /* GPIO_STATE */
+   0x00,   /* GPIO_STATE1 */
+   0x00,   /* - */
+};
+
 
 /* entry point */
 struct snd_ice1712_card_info snd_vt1720_mobo_cards[] __devinitdata = {
@@ -113,11 +129,11 @@
    {
       .subvendor = VT1720_SUBDEVICE_SN25P,
       .name = "Shuttle SN25P",
-      /* identical with k8x800 */
+      .model = "sn25p",
       .chip_init = k8x800_init,
       .build_controls = k8x800_add_controls,
       .eeprom_size = sizeof(k8x800_eeprom),
-      .eeprom_data = k8x800_eeprom,
+      .eeprom_data = sn25p_eeprom,
    },
    { } /* terminator */
 };


I also wanted to route sound to the headphones simultaneously. So he sent me this other patch as well, which I haven't tried yet. He said it could be flakey, so I've been holding off.

Code:

Index: alsa-kernel/pci/ice1712/ice1712.h
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/ice1712/ice1712.h,v
retrieving revision 1.33
diff -u -r1.33 ice1712.h
--- alsa-kernel/pci/ice1712/ice1712.h   11 Apr 2005 13:07:45 -0000   1.33
+++ alsa-kernel/pci/ice1712/ice1712.h   18 Oct 2005 15:18:53 -0000
@@ -333,6 +333,8 @@
    unsigned int num_total_dacs;   /* total DACs */
    unsigned int num_total_adcs;   /* total ADCs */
    unsigned int cur_rate;      /* current rate */
+   unsigned char spdif_mirror_mode;
+   unsigned char spdif_slave;
 
    struct semaphore open_mutex;
    snd_pcm_substream_t *pcm_reserved[4];
Index: alsa-kernel/pci/ice1712/ice1724.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-kernel/pci/ice1712/ice1724.c,v
retrieving revision 1.68
diff -u -r1.68 ice1724.c
--- alsa-kernel/pci/ice1712/ice1724.c   12 Oct 2005 09:02:05 -0000   1.68
+++ alsa-kernel/pci/ice1712/ice1724.c   18 Oct 2005 15:18:53 -0000
@@ -97,6 +97,10 @@
 static int PRO_RATE_RESET = 1;
 static unsigned int PRO_RATE_DEFAULT = 44100;
 
+enum {
+   ICE_SPDIF_FREE, ICE_SPDIF_SLAVE, ICE_SPDIF_LOCKED
+};
+
 /*
  *  Basic I/O
  */
@@ -344,6 +348,9 @@
       what |= reg->start;
       snd_pcm_trigger_done(s, substream);
    }
+   if (ice->spdif_slave == ICE_SPDIF_SLAVE &&
+       (what & VT1724_PDMA0_START))
+      what |= VT1724_PDMA4_START;
 
    switch (cmd) {
    case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
@@ -500,6 +507,12 @@
          if (ice->pcm_reserved[i] == substream)
             ice->pcm_reserved[i] = NULL;
       }
+      if (ice->spdif_slave != ICE_SPDIF_LOCKED) {
+         if (params_channels(hw_params) == 2 && ice->spdif_mirror_mode)
+            ice->spdif_slave = ICE_SPDIF_SLAVE;
+         else
+            ice->spdif_slave = ICE_SPDIF_FREE;
+      }
    } else {
       for (i = 0; i < 3; i++) {
          /* check individual playback stream */
@@ -532,12 +545,23 @@
    return snd_pcm_lib_free_pages(substream);
 }
 
+static void snd_vt1724_prepare_spdif_mirror(snd_pcm_substream_t *substream);
+
 static int snd_vt1724_playback_pro_prepare(snd_pcm_substream_t * substream)
 {
    ice1712_t *ice = snd_pcm_substream_chip(substream);
    unsigned char val;
    unsigned int size;
 
+   printk(KERN_DEBUG "XXX multi_prepare: channels = %d\n",
+          substream->runtime->channels);
+   printk(KERN_DEBUG "XXX multi_prepare: 0x%x\n",
+          (unsigned int)substream->runtime->dma_addr);
+   printk(KERN_DEBUG "XXX multi_prepare: 0x%x\n",
+          (unsigned int)(snd_pcm_lib_buffer_bytes(substream) >> 2) - 1);
+   printk(KERN_DEBUG "XXX multi_prepare: 0x%x\n",
+          (unsigned int)(snd_pcm_lib_period_bytes(substream) >> 2) - 1);
+
    spin_lock_irq(&ice->reg_lock);
    val = (8 - substream->runtime->channels) >> 1;
    outb(val, ICEMT1724(ice, BURST));
@@ -556,6 +580,10 @@
    spin_unlock_irq(&ice->reg_lock);
 
    // printk("pro prepare: ch = %d, addr = 0x%x, buffer = 0x%x, period = 0x%x\n", substream->runtime->channels, (unsigned int)substream->runtime->dma_addr, snd_pcm_lib_buffer_bytes(substream), snd_pcm_lib_period_bytes(substream));
+
+   if (ice->spdif_slave == ICE_SPDIF_SLAVE)
+      snd_vt1724_prepare_spdif_mirror(substream);
+
    return 0;
 }
 
@@ -594,16 +622,27 @@
    return ptr;
 }
 
-static int snd_vt1724_pcm_prepare(snd_pcm_substream_t *substream)
+static void snd_vt1724_setup_pcm_reg(snd_pcm_substream_t *substream,
+                 struct vt1724_pcm_reg *reg)
 {
    ice1712_t *ice = snd_pcm_substream_chip(substream);
-   struct vt1724_pcm_reg *reg = substream->runtime->private_data;
-
+   printk(KERN_DEBUG "XXX setup_pcm_reg: addr 0x%x, 0x%x\n",
+          reg->addr, (unsigned int)substream->runtime->dma_addr);
+   printk(KERN_DEBUG "XXX setup_pcm_reg: size 0x%x, 0x%x\n",
+          reg->size, (unsigned int)(snd_pcm_lib_buffer_bytes(substream) >> 2) - 1);
+   printk(KERN_DEBUG "XXX setup_pcm_reg: count 0x%x, 0x%x\n",
+          reg->count, (unsigned int)(snd_pcm_lib_period_bytes(substream) >> 2) - 1);
    spin_lock_irq(&ice->reg_lock);
    outl(substream->runtime->dma_addr, ice->profi_port + reg->addr);
    outw((snd_pcm_lib_buffer_bytes(substream) >> 2) - 1, ice->profi_port + reg->size);
    outw((snd_pcm_lib_period_bytes(substream) >> 2) - 1, ice->profi_port + reg->count);
    spin_unlock_irq(&ice->reg_lock);
+}
+
+static int snd_vt1724_pcm_prepare(snd_pcm_substream_t *substream)
+{
+   struct vt1724_pcm_reg *reg = substream->runtime->private_data;
+   snd_vt1724_setup_pcm_reg(substream, reg);
    return 0;
 }
 
@@ -759,15 +798,21 @@
    snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24);
    set_rate_constraints(ice, substream);
    down(&ice->open_mutex);
-   /* calculate the currently available channels */
-   for (chs = 0; chs < 3; chs++) {
-      if (ice->pcm_reserved[chs])
-         break;
+   if (ice->spdif_mirror_mode) {
+      /* override */
+      printk(KERN_DEBUG "XXX open with mirror mode\n");
+      runtime->hw = snd_vt1724_spdif;
+   } else {
+      /* calculate the currently available channels */
+      for (chs = 0; chs < 3; chs++) {
+         if (ice->pcm_reserved[chs])
+            break;
+      }
+      chs = (chs + 1) * 2;
+      runtime->hw.channels_max = chs;
+      if (chs > 2) /* channels must be even */
+         snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, 2);
    }
-   chs = (chs + 1) * 2;
-   runtime->hw.channels_max = chs;
-   if (chs > 2) /* channels must be even */
-      snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, 2);
    up(&ice->open_mutex);
    snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
                VT1724_BUFFER_ALIGN);
@@ -800,6 +845,10 @@
 
    if (PRO_RATE_RESET)
       snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0);
+   down(&ice->open_mutex);
+   if (ice->spdif_slave != ICE_SPDIF_LOCKED)
+      ice->spdif_slave = ICE_SPDIF_FREE;
+   up(&ice->open_mutex);
    ice->playback_pro_substream = NULL;
 
    return 0;
@@ -921,16 +970,33 @@
 static int snd_vt1724_playback_spdif_prepare(snd_pcm_substream_t * substream)
 {
    ice1712_t *ice = snd_pcm_substream_chip(substream);
+   printk(KERN_DEBUG "XXX prepare_spdif\n");
    if (! ice->force_pdma4)
       update_spdif_rate(ice, substream->runtime->rate);
    return snd_vt1724_pcm_prepare(substream);
 }
 
+static void snd_vt1724_prepare_spdif_mirror(snd_pcm_substream_t *substream)
+{
+   ice1712_t *ice = snd_pcm_substream_chip(substream);
+   printk(KERN_DEBUG "XXX prepare_spdif_mirror\n");
+   update_spdif_rate(ice, substream->runtime->rate);
+   snd_vt1724_setup_pcm_reg(substream, &vt1724_playback_spdif_reg);
+}
+
 static int snd_vt1724_playback_spdif_open(snd_pcm_substream_t *substream)
 {
    ice1712_t *ice = snd_pcm_substream_chip(substream);
    snd_pcm_runtime_t *runtime = substream->runtime;
 
+   down(&ice->open_mutex);
+   if (ice->spdif_slave == ICE_SPDIF_SLAVE) {
+      up(&ice->open_mutex);
+      return -EBUSY;
+   }
+   ice->spdif_slave = ICE_SPDIF_LOCKED;
+   up(&ice->open_mutex);
+
    runtime->private_data = &vt1724_playback_spdif_reg;
    ice->playback_con_substream = substream;
    if (ice->force_pdma4) {
@@ -954,6 +1020,7 @@
    if (PRO_RATE_RESET)
       snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 0);
    ice->playback_con_substream = NULL;
+   ice->spdif_slave = ICE_SPDIF_FREE;
 
    return 0;
 }
@@ -1483,6 +1550,34 @@
    .put =      snd_vt1724_spdif_sw_put
 };
 
+static int snd_vt1724_spdif_mirror_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
+{
+   ice1712_t *ice = snd_kcontrol_chip(kcontrol);
+   ucontrol->value.integer.value[0] = ice->spdif_mirror_mode;
+   return 0;
+}
+
+static int snd_vt1724_spdif_mirror_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
+{
+   ice1712_t *ice = snd_kcontrol_chip(kcontrol);
+   int change;
+
+   down(&ice->open_mutex);
+   change = ice->spdif_mirror_mode != (int)ucontrol->value.integer.value[0];
+   ice->spdif_mirror_mode = ucontrol->value.integer.value[0];
+   up(&ice->open_mutex);
+   return change;
+}
+
+static snd_kcontrol_new_t snd_vt1724_spdif_mirror __devinitdata =
+{
+   .iface =   SNDRV_CTL_ELEM_IFACE_MIXER,
+   .name =         "ICE958 Mirror Playback Switch",
+   .info =      snd_vt1724_spdif_sw_info, /* mono boolean */
+   .get =      snd_vt1724_spdif_mirror_get,
+   .put =      snd_vt1724_spdif_mirror_put
+};
+
 
 #if 0 /* NOT USED YET */
 /*
@@ -2058,6 +2153,10 @@
    kctl->id.device = ice->pcm->device;
    ice->spdif.stream_ctl = kctl;
 #endif
+   err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_vt1724_spdif_mirror, ice));
+   if (err < 0)
+      return err;
+
    return 0;
 }
 


Good luck hacking.
Back to top
View user's profile Send private message
fangorn
Veteran
Veteran


Joined: 31 Jul 2004
Posts: 1886

PostPosted: Thu Dec 01, 2005 10:31 am    Post subject: Reply with quote

Thanks, will hack my way ASAP :roll:

@Cintra
Have more silent boxes at work (even with dual core cpus), but it is not as loud as a cheap pentium 4 box :twisted:
But with 2 250 GB Maxtor HDDs and a passively cooled NVIDIA 6600 GT there is quite a little warmth to get out of the box.

And I would never take the boxes at work under one arm and the display under the other arm to go elsewhere :wink:
Back to top
View user's profile Send private message
dspgen
Tux's lil' helper
Tux's lil' helper


Joined: 17 Aug 2005
Posts: 103

PostPosted: Sat Dec 31, 2005 1:43 pm    Post subject: Reply with quote

I changed to vt1720_mobo.c to
Code:
 0x41,   /* SPDIF: - */


recompiled & rebooted

the optical out still does not light up, and i didn't see any changes in alsamixer.

you said spdif is working - is that both the coax and optical?
Back to top
View user's profile Send private message
dspgen
Tux's lil' helper
Tux's lil' helper


Joined: 17 Aug 2005
Posts: 103

PostPosted: Mon Jan 02, 2006 5:56 pm    Post subject: Reply with quote

I also noticed that the inputs are not 'labeled' correctly:
'Sur' jack - the lower left of the 4 out on the back - is controlled by 'headphone'; 'master' as no effect on it.
'L/R' jack - upper right - is effected by master, nothing else.
the front headphone jack is effected by 'master', nothing else.

plugging headphones into the front turns off the 'L/R' jack.

Anyone else have this mixed-up mapping?

Anyone have optical-out working?
Back to top
View user's profile Send private message
fangorn
Veteran
Veteran


Joined: 31 Jul 2004
Posts: 1886

PostPosted: Tue Jan 03, 2006 7:53 am    Post subject: Reply with quote

I have alsa-driver-1.0.10 and spdif works smoothly. No hacking necessary any more!

You need to use an .asoundrc you can get at the alsa homepage in the commentaries for the ice1724 chipset driver to get spdif working. This one will route any sound through the spdif.
Back to top
View user's profile Send private message
dspgen
Tux's lil' helper
Tux's lil' helper


Joined: 17 Aug 2005
Posts: 103

PostPosted: Tue Jan 03, 2006 7:35 pm    Post subject: Reply with quote

I tried what I found at http://www.alsa-project.org/alsa-doc/doc-php/template.php?company=AudioTrak&card=Prodigy+7.1.&chip=Envy24HT&module=ice1724
optical out is still not light-up.
It lights-up pretty early in the WindowsXP boot.

If you have an ice1724 and working optical out, could you post the relevant configs you used?

I am using
Code:
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.10rc3.
Compiled on Jan  2 2006 for kernel 2.6.14-gentoo-r5.
Code:

cat /etc/modules.d/alsa
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-ice1724
# module options should go here

# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0If you have an ice1724 and working optical out, could you post the relevant configs you used?


# card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss


Code:

cat /etc/asound.conf
pcm.ice1724 {
    type hw
    card 0
}

ctl.ice1724 {
    type hw
    card 0
}


pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw
    card 0
}
pcm.!default {
type plug
slave.pcm "dmixer"
}

pcm.dmixer  {
type dmix
ipc_key 1024
slave {
pcm "hw:0,1"
format S32_LE
period_time 0
period_size 1024

# increased buffer_size because in my system 1024 cause bad
# audio performance (for totem media player and mplayer)
buffer_size 8192

rate 44100
}
bindings {
0 0
1 1
}
}

ctl.dmixer {
type hw
card 0
device 1
}


~/.asoundrc is copy of /etc/asound.conf
Back to top
View user's profile Send private message
fangorn
Veteran
Veteran


Joined: 31 Jul 2004
Posts: 1886

PostPosted: Tue Jan 03, 2006 10:14 pm    Post subject: Reply with quote

As I dont own a optical cable that I can plug into the connector (cable too good, thick metal housing) I never tried optical. converting signal from electrical plug to optical to bridge 10 m to the receiver.
Back to top
View user's profile Send private message
dspgen
Tux's lil' helper
Tux's lil' helper


Joined: 17 Aug 2005
Posts: 103

PostPosted: Tue Jan 03, 2006 10:36 pm    Post subject: Reply with quote

fangorn wrote:
As I dont own a optical cable that I can plug into the connector (cable too good, thick metal housing) I never tried optical. converting signal from electrical plug to optical to bridge 10 m to the receiver.


When optical is on, it lights up the port (with no cable plugged in) enough to see that it is on.

Anyone else have working optical?

When I plug the coax digital into my amp, it says 'Din Unlock' - meaning its got no signal.

Your coax digital out works, right? Did my config files look like yours?
Back to top
View user's profile Send private message
dspgen
Tux's lil' helper
Tux's lil' helper


Joined: 17 Aug 2005
Posts: 103

PostPosted: Wed Jan 04, 2006 1:56 am    Post subject: Reply with quote

optical out is now working!

in alsamixer it is controlled by:
IEC958 [PCM Out] (left channel?)
IEC958 Output [Not Muted]
IEC958 1 [PCM Out] (right channel?)


I've done many things, so not sure which one fixed it - multiple reinstalls of different version of alsa-driver.

Problems now:
Nothing(!) controls the volume of digital out - the windows driver had a SPDIF volume control - by no mute for some reason.
No other output at all.

this page has useful info: http://alsa.opensrc.org/DigitalOut
Back to top
View user's profile Send private message
roguetoad
Tux's lil' helper
Tux's lil' helper


Joined: 24 Oct 2005
Posts: 124
Location: Office chair

PostPosted: Fri Feb 24, 2006 3:39 am    Post subject: Getting stuttering again! Reply with quote

Thought this was gone, but it seems that the alsa-1.0.11-rc3 and gstreamer-0.11 combo has once again brought my SN25P to audio hell.

I get stuttering whenever I try to play anything through an alsa/gstreamer combo. gstreamer-properties, totem, rhythmbox, quodlibet. Stuttering all around. Funny thing is I can through bmpx just fine, although then software volume control does not work.

I have played with my .asoundrc for another hour or so to no avail. I don't even know where to begin to collect info for a bug report.

Anywho, here is my .asoundrc.
Code:

   pcm.ice1724 {
           type hw
           card 0
      device 1
        }

   pcm.ossmix {
       type dmix
       ipc_key 1024          # must be unique!
       ipc_perm 0660         # sound for everybody (at least in your group)
       slave {
           #pcm "hw:0,1"      # you cannot use a "plug" device here, darn.
           pcm {
         type hw
         card 0
         device 2
      }
      period_time 0
           period_size 1024  # must be power of 2
           buffer_size 8192  # dito. It
           format "S32_LE"
           #periods 128      # dito.
           #rate 8000        # with rate 8000 you *will* hear,
                               # if ossmix is used :)
       }


# bindings are cool. This says, that only the first
# two channels are to be used by dmix, which is enough for
# (most) oss apps and also lets multichannel chios work
# much faster:

bindings {
        0 0   # from 0 => to 0
        1 1   # from 1 => to 1
}
}
pcm.ossin{
     type dsnoop
     ipc_key 5150
     slave.pcm "ice1724"
}

#pcm.dsp0 pcm.default
pcm.dsp0 {
    type plug
    slave.pcm "ossmix"     # use our new PCM here
    #slave.pcm "output"
    #slave.pcm "hw:0,1"
}

pcm.ossduplex {
     type asym
     playback.pcm "ossmix"
     capture.pcm "ossin"
}

# mixer0 like above
ctl.mixer0 {
    type hw
    card 0
    #device 1
}

pcm.output {
    type dmix
    ipc_key 1234
    ipc_perm 0660
    slave {
        #pcm "ice1724"
   pcm {
      type hw
      card 0
      device 1
   }

        #period_time 0
        period_size 1024
        buffer_size 8192       # buffer size < 6653, but pow(x, 2)
        #period_size 2048
        #buffer_size 16384       # buffer size < 6653, but pow(x, 2)
       # rate 44100              # we want to play CDs only
       format S32_LE
    }
}
# Allow reading from the default device.
# Also known as record or capture.
pcm.input {
     type dsnoop
     ipc_key 2048
     slave.pcm "ice1724"
}
## Possible artsd full duplex fix:
#     slave {
#          period_time 0
#          period_size 1024
#          buffer_size 8192
#     }


# This is what we want as our default device
# a fully duplex (read/write) audio device.
pcm.duplex {
     type asym
     playback.pcm "output"
     capture.pcm "input"
}
pcm.!default {
   type plug
   #slave.pcm "spdif"
   #slave.pcm "output"
   slave.pcm "duplex"
   #slave.pcm "acopy"
}
pcm.doom3 {
   type plug
   slave.pcm "spdif"
   #slave.pcm "acopy"
}

#pcm.acopy {
#        type copy
#        slave
#   {pcm "hw0:0"
#    }
     
#}
        ctl.ice1724 {
           type hw
           card 0
        }


Crossing my fingers, a future update will finally put this to bed once and for all.
Back to top
View user's profile Send private message
bergoo
n00b
n00b


Joined: 22 Apr 2007
Posts: 1

PostPosted: Sun Apr 22, 2007 1:32 pm    Post subject: Reply with quote

I have got my SPDIF out working at last. But I cant get any 5.1 sounds working, only stereo. My VLC quits when trying to watch a ac3 coded movie. In xine, MPlayer I cant get any other sound but stereo. in aplay it says that the SPDIF is already in use and I cant control the volume at all in the softwares. I use the .asoundrc file that I found in the comments for vt1724.
Anyone that got 5.1 from SPDIF working at all with this soundcard?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum