All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Timofei V. Bondarenko" <tim@ipi.ac.ru>
To: alsa-devel@alsa-project.org
Subject: Re: [PATCH] cmipci - allow capture of raw spdif subframes
Date: Wed, 07 Nov 2007 15:13:52 +0300	[thread overview]
Message-ID: <4731AC00.7040103@ipi.ac.ru> (raw)
In-Reply-To: <4731ABBE.8030805@ipi.ac.ru>

[-- Attachment #1: Type: text/plain, Size: 364 bytes --]

Timofei V. Bondarenko wrote:
> Hi.
> 
> Enable capturing of raw 32bit IEC958_SUBFRAME.
> 
> The 24-bits PCM data can be obtained using iec958 plugin.
> 
> Known problem: captured stream may begin with either left or right 
> subframe. Since the iec958 plugin doesn't decode preamble it may swap 
> the channels sometime.

Sorry, i've forgot to attach the patch...

[-- Attachment #2: cmi-capt-spdif24.patch --]
[-- Type: text/x-patch, Size: 1420 bytes --]

Signed-off-by: Timofei Bondarenko <tim@ipi.ac.ru>

--- alsa-driver-hg20071107/alsa-kernel/pci/cmipci.c	2007-11-01 04:00:07.000000000 +0300
+++ alsa-driver/alsa-kernel/pci/cmipci.c	2007-11-07 14:55:05.000000000 +0300
@@ -1400,6 +1407,11 @@ static int snd_cmipci_capture_spdif_prep
 		else
 			snd_cmipci_clear_bit(cm, CM_REG_CHFORMAT, CM_DBLSPDS);
 	}
+	if (snd_pcm_format_width(substream->runtime->format) > 16)
+		snd_cmipci_set_bit(cm, CM_REG_MISC_CTRL, CM_SPD32SEL);
+	else
+		snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_SPD32SEL);
+
 	spin_unlock_irq(&cm->reg_lock);
 
 	return snd_cmipci_pcm_prepare(cm, &cm->channel[CM_CH_CAPT], substream);
@@ -1411,6 +1423,7 @@ static int snd_cmipci_capture_spdif_hw_f
 
 	spin_lock_irq(&cm->reg_lock);
 	snd_cmipci_clear_bit(cm, CM_REG_FUNCTRL1, CM_CAPTURE_SPDF);
+	snd_cmipci_clear_bit(cm, CM_REG_MISC_CTRL, CM_SPD32SEL);
 	spin_unlock_irq(&cm->reg_lock);
 
 	return snd_cmipci_hw_free(subs);
@@ -1562,7 +1575,8 @@ static struct snd_pcm_hardware snd_cmipc
 	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_PAUSE |
 				 SNDRV_PCM_INFO_RESUME | SNDRV_PCM_INFO_MMAP_VALID),
-	.formats =	        SNDRV_PCM_FMTBIT_S16_LE,
+	.formats =	        SNDRV_PCM_FMTBIT_S16_LE |
+				SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE,
 	.rates =		SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
 	.rate_min =		44100,
 	.rate_max =		48000,

[-- Attachment #3: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

      parent reply	other threads:[~2007-11-07 12:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-07 12:12 [PATCH] cmipci - allow capture of raw spdif subframes Timofei V. Bondarenko
2007-11-07 11:47 ` Takashi Iwai
2007-11-13 13:47   ` Timofei V. Bondarenko
2007-11-13 10:15     ` Takashi Iwai
2007-11-07 12:13 ` Timofei V. Bondarenko [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4731AC00.7040103@ipi.ac.ru \
    --to=tim@ipi.ac.ru \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.