Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian McMenamin <adrian@mcmen.demon.co.uk>
To: James Courtier-Dutton <James@superbug.co.uk>
Cc: Lee Revell <rlrevell@joe-job.com>,
	Alsa-devel <alsa-devel@lists.sourceforge.net>
Subject: Re: pointer callback in pcm
Date: Sat, 11 Mar 2006 19:55:57 +0000	[thread overview]
Message-ID: <1142106957.9496.45.camel@localhost.localdomain> (raw)
In-Reply-To: <441326EB.8070801@superbug.co.uk>

On Sat, 2006-03-11 at 19:37 +0000, James Courtier-Dutton wrote:
> Adrian McMenamin wrote:
> > On Sat, 2006-03-11 at 19:15 +0000, James Courtier-Dutton wrote:
> >
> >   
> >>>   
> >>>       
> >> Ok, that is not what is needed.
> >> The value returned should be the position of the ADC in the hardware's 
> >> ring buffer in units of frames.
> >> Not the cumulative number of samples played.
> >> E.g. If the buffer is 32768 frames long, the returned value should only 
> >> have a value from 0 to 32767
> >> Once it gets to 32767, it should then role over to 0 again.
> >>
> >>     
> > Yes, that's what I meant :) Sorry if I wasn't clear enough.
> >   
> Which application are you using to test.
> Have you tried "speaker-test"

I cannot get aplay to work so I am just do cat somefile.wav > /dev/dsp

As I couldn't get the ack callback to work I have just rewritten the
interrupt handler as below:

static irqreturn_t aica_period_elapsed(int irq, void *dev_id, struct
pt_regs *regs)
{
	int transferred;
	snd_pcm_runtime_t *runtime;
	if (dev_id != dreamcastcard) return IRQ_NONE;
	/* clear the interrupt on the ARM side */
	spu_memset(0x28BC, 0x20, 4);
	runtime = (((snd_card_aica_t *)dev_id)->substream)->runtime;
	dma_xfer(0, runtime->dma_area + (0x1000 * dreamcastcard->clicks),
0x11000 + (0x1000 * dreamcastcard->clicks), 0x1000, 5);
	do {
		mdelay(1);
		transferred = get_dma_residue(0);
		snd_printk("Transfer reports 0x%X\n", transferred);
	}
	while (transferred < 0x1000);

	snd_pcm_period_elapsed(((snd_card_aica_t *)dev_id)->substream);
	dreamcastcard->clicks++;
	if (dreamcastcard->clicks == 8) dreamcastcard->clicks = 0;
	snd_printk("Clicks is %d\n", dreamcastcard->clicks);	
	return IRQ_HANDLED;
}


which shows the transfers work (the rate is about 12 Mb/s so it's fast)
but still just plays the same stuff over and over in an endless loop :(



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642

  reply	other threads:[~2006-03-11 19:55 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-09 22:21 pointer callback in pcm Adrian McMenamin
2006-03-10  0:53 ` Lee Revell
2006-03-10 19:51   ` Adrian McMenamin
2006-03-10 20:16     ` Takashi Iwai
2006-03-10 20:21       ` Adrian McMenamin
2006-03-10 20:23       ` Lee Revell
2006-03-11 11:16     ` James Courtier-Dutton
2006-03-11 11:27       ` Adrian McMenamin
2006-03-11 15:42         ` James Courtier-Dutton
2006-03-11 15:53           ` Adrian McMenamin
2006-03-11 17:30           ` Adrian McMenamin
2006-03-11 18:47             ` James Courtier-Dutton
2006-03-11 19:08               ` Adrian McMenamin
2006-03-11 19:15                 ` James Courtier-Dutton
2006-03-11 19:18                   ` Adrian McMenamin
2006-03-11 19:37                     ` James Courtier-Dutton
2006-03-11 19:55                       ` Adrian McMenamin [this message]
2006-03-11 19:26               ` Adrian McMenamin
2006-03-11 19:35                 ` James Courtier-Dutton

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=1142106957.9496.45.camel@localhost.localdomain \
    --to=adrian@mcmen.demon.co.uk \
    --cc=James@superbug.co.uk \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=rlrevell@joe-job.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox