All of lore.kernel.org
 help / color / mirror / Atom feed
* Advice on writing driver
@ 2006-02-25 23:53 Adrian McMenamin
  2006-02-26  2:40 ` James Courtier-Dutton
  0 siblings, 1 reply; 2+ messages in thread
From: Adrian McMenamin @ 2006-02-25 23:53 UTC (permalink / raw)
  To: alsa-devel

I have asked some the questions below in piecemeal form before and only
occasionally got an answer, so i'll go through it all now and see if you
can help.

I am writing a driver for the Sega Dreamcast. Years ago I wrote an OSS
driver but the sound dma had not been reversed then so it was slower and
tended to lock the system.

On the Dreamcast (DC) sound the main CPU is an SH4 but there is a
separate low powered ARM7 to handle sound (PCM). The ARM7 has its own
memory space which is directly accessible to the SH4 only through a FIFO
like gateway (so slow) unless DMA is used.

The ARM7 also has to have its own program to be told how to play the
sound (this looks like firmware to the SH4).

The driver currently allocates a buffer in the main SH4 memory (using
the DMA buffer allocation APIs). This is then transferred to the ARM7
space using DMA.

The ARM7 code raises an interrupt to the SH4 whenever it plays 4096
bytes of the sound - ie every period.

What should my pointer callback return? the number of bytes/frames still
to be transferred from the DMA buffer to the ARM memory or the number of
bytes/frames still to play, or what?

Adrian



-------------------------------------------------------
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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Advice on writing driver
  2006-02-25 23:53 Advice on writing driver Adrian McMenamin
@ 2006-02-26  2:40 ` James Courtier-Dutton
  0 siblings, 0 replies; 2+ messages in thread
From: James Courtier-Dutton @ 2006-02-26  2:40 UTC (permalink / raw)
  To: Adrian McMenamin; +Cc: alsa-devel

Adrian McMenamin wrote:
> I have asked some the questions below in piecemeal form before and only
> occasionally got an answer, so i'll go through it all now and see if you
> can help.
>
> I am writing a driver for the Sega Dreamcast. Years ago I wrote an OSS
> driver but the sound dma had not been reversed then so it was slower and
> tended to lock the system.
>
> On the Dreamcast (DC) sound the main CPU is an SH4 but there is a
> separate low powered ARM7 to handle sound (PCM). The ARM7 has its own
> memory space which is directly accessible to the SH4 only through a FIFO
> like gateway (so slow) unless DMA is used.
>
> The ARM7 also has to have its own program to be told how to play the
> sound (this looks like firmware to the SH4).
>
> The driver currently allocates a buffer in the main SH4 memory (using
> the DMA buffer allocation APIs). This is then transferred to the ARM7
> space using DMA.
>
> The ARM7 code raises an interrupt to the SH4 whenever it plays 4096
> bytes of the sound - ie every period.
>
> What should my pointer callback return? the number of bytes/frames still
> to be transferred from the DMA buffer to the ARM memory or the number of
> bytes/frames still to play, or what?
>
> Adrian
>
>   
The pointer callback should return the current playback position in the 
sound  ring buffer.
So, NOT the following:

a) the number of bytes/frames still to be transferred from the DMA buffer to the ARM memory
b) the number of bytes/frames still to play

but instead it should return the position in the ring buffer of the 
frame currently being played by the ADC.


James



-------------------------------------------------------
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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-02-26  2:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-25 23:53 Advice on writing driver Adrian McMenamin
2006-02-26  2:40 ` James Courtier-Dutton

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.