Update of /cvsroot/alsa/alsa-kernel/pci
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14557/pci

Modified Files:
        atiixp.c 
Log Message:
- fixed the direct SPDIF playback mode.  (still experimental)
- use the different driver id name for the direct spdif mode, so that
  alsa-lib can read another corresponding configuration.


Index: atiixp.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/atiixp.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- atiixp.c    23 Apr 2004 15:07:54 -0000      1.7
+++ atiixp.c    4 May 2004 15:24:29 -0000       1.8
@@ -862,9 +862,7 @@
                              ATI_REG_CMD_INTERLEAVE_OUT : 0);
        } else {
                atiixp_update(chip, CMD, ATI_REG_CMD_SPDF_CONFIG_MASK, 0);
-               atiixp_update(chip, CMD, ATI_REG_CMD_INTERLEAVE_SPDF,
-                             substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE ?
-                             ATI_REG_CMD_INTERLEAVE_SPDF : 0);
+               atiixp_update(chip, CMD, ATI_REG_CMD_INTERLEAVE_SPDF, 0);
        }
        spin_unlock(&chip->reg_lock);
        return 0;
@@ -1024,9 +1022,8 @@
                runtime->hw.rates = chip->pcms[pcm_type]->rates;
                snd_pcm_limit_hw_rates(runtime);
        } else {
-               /* SPDIF */
-               runtime->hw.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_44100 | 
SNDRV_PCM_RATE_32000;
-               runtime->hw.rate_min = 32000;
+               /* direct SPDIF */
+               runtime->hw.formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE;
        }
        if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) 
< 0)
                return err;
@@ -1277,7 +1274,10 @@
                return err;
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_atiixp_spdif_ops);
        pcm->private_data = chip;
-       strcpy(pcm->name, "ATI IXP IEC958");
+       if (chip->spdif_over_aclink)
+               strcpy(pcm->name, "ATI IXP IEC958 (AC97)");
+       else
+               strcpy(pcm->name, "ATI IXP IEC958 (Direct)");
        chip->pcmdevs[1] = pcm;
 
        snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
@@ -1584,7 +1584,7 @@
 
        pci_read_config_byte(pci, PCI_REVISION_ID, &revision);
 
-       strcpy(card->driver, "ATIIXP");
+       strcpy(card->driver, spdif_aclink[dev] ? "ATIIXP" : "ATIIXP-SPDMA");
        strcpy(card->shortname, "ATI IXP");
        if ((err = snd_atiixp_create(card, pci, &chip)) < 0)
                goto __error;



-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to