* Re: [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast [not found] <1149201071.9032.13.camel@localhost.localdomain> @ 2006-06-03 11:39 ` Adrian McMenamin 2006-06-03 15:16 ` Lee Revell 2006-06-06 10:25 ` [Alsa-devel] " Takashi Iwai [not found] ` <20060605095318.GA30339@linux-sh.org> 1 sibling, 2 replies; 10+ messages in thread From: Adrian McMenamin @ 2006-06-03 11:39 UTC (permalink / raw) To: linux-kernel; +Cc: alsa-devel, linux-sh, Paul Mundt, Takashi Iwai, Lee Revell On Thu, 2006-06-01 at 23:31 +0100, Adrian McMenamin wrote: > This adds sound for the Yamaha AICA "Super Intelligent Sound > Processor" (PCM) device on the SEGA Dreamcast > > Signed off by Adrian McMenamin <adrian@mcmen.demon.co.uk> > I've had no comments back on this - I am thinking of committing to the linux-sh cvs, though it really belongs in ALSA. Any reason why I shouldn't? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-03 11:39 ` [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast Adrian McMenamin @ 2006-06-03 15:16 ` Lee Revell 2006-06-03 16:38 ` Adrian McMenamin 2006-06-06 10:25 ` [Alsa-devel] " Takashi Iwai 1 sibling, 1 reply; 10+ messages in thread From: Lee Revell @ 2006-06-03 15:16 UTC (permalink / raw) To: Adrian McMenamin Cc: linux-kernel, alsa-devel, linux-sh, Paul Mundt, Takashi Iwai On Sat, 2006-06-03 at 12:39 +0100, Adrian McMenamin wrote: > On Thu, 2006-06-01 at 23:31 +0100, Adrian McMenamin wrote: > > This adds sound for the Yamaha AICA "Super Intelligent Sound > > Processor" (PCM) device on the SEGA Dreamcast > > > > Signed off by Adrian McMenamin <adrian@mcmen.demon.co.uk> > > > I've had no comments back on this - I am thinking of committing to the > linux-sh cvs, though it really belongs in ALSA. > > Any reason why I shouldn't? > Did you fix all of the issues that were raised by Paul and Takashi-san? Lee ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-03 15:16 ` Lee Revell @ 2006-06-03 16:38 ` Adrian McMenamin 0 siblings, 0 replies; 10+ messages in thread From: Adrian McMenamin @ 2006-06-03 16:38 UTC (permalink / raw) To: Lee Revell; +Cc: linux-kernel, alsa-devel, linux-sh, Paul Mundt, Takashi Iwai On Sat, 2006-06-03 at 11:16 -0400, Lee Revell wrote: > On Sat, 2006-06-03 at 12:39 +0100, Adrian McMenamin wrote: > > On Thu, 2006-06-01 at 23:31 +0100, Adrian McMenamin wrote: > > > This adds sound for the Yamaha AICA "Super Intelligent Sound > > > Processor" (PCM) device on the SEGA Dreamcast > > > > > > Signed off by Adrian McMenamin <adrian@mcmen.demon.co.uk> > > > > > I've had no comments back on this - I am thinking of committing to the > > linux-sh cvs, though it really belongs in ALSA. > > > > Any reason why I shouldn't? > > > > Did you fix all of the issues that were raised by Paul and Takashi-san? > > Lee Those ones that were fixable, yes. At least I think so :) ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Alsa-devel] [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-03 11:39 ` [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast Adrian McMenamin 2006-06-03 15:16 ` Lee Revell @ 2006-06-06 10:25 ` Takashi Iwai 2006-06-06 23:10 ` [linuxsh-dev] [Alsa-devel] " Adrian McMenamin 1 sibling, 1 reply; 10+ messages in thread From: Takashi Iwai @ 2006-06-06 10:25 UTC (permalink / raw) To: Adrian McMenamin Cc: linux-kernel, alsa-devel, Paul Mundt, Lee Revell, linux-sh At Sat, 03 Jun 2006 12:39:48 +0100, Adrian McMenamin wrote: > > On Thu, 2006-06-01 at 23:31 +0100, Adrian McMenamin wrote: > > This adds sound for the Yamaha AICA "Super Intelligent Sound > > Processor" (PCM) device on the SEGA Dreamcast > > > > Signed off by Adrian McMenamin <adrian@mcmen.demon.co.uk> > > > I've had no comments back on this - I am thinking of committing to the > linux-sh cvs, though it really belongs in ALSA. Sorry for the delay. I've had a long weekend. > Any reason why I shouldn't? As Paul already pointed, the platform_device things must be fixed. Also, better to clean up the code directly accessing hardcoded addresses. Another big concern is that spu_dma_work is initialized/rewritten dynamically in spu_begin_dma() and aica_period_elapsed() via INIT_WORK() and PREPARE_WOR(). This looks pretty strange and may be racy. Takashi ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linuxsh-dev] [Alsa-devel] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-06 10:25 ` [Alsa-devel] " Takashi Iwai @ 2006-06-06 23:10 ` Adrian McMenamin 2006-06-07 9:51 ` Takashi Iwai 0 siblings, 1 reply; 10+ messages in thread From: Adrian McMenamin @ 2006-06-06 23:10 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel, Paul Mundt, Lee Revell, linux-kernel, linux-sh On Tue, 2006-06-06 at 12:25 +0200, Takashi Iwai wrote: > > As Paul already pointed, the platform_device things must be fixed. > Also, better to clean up the code directly accessing hardcoded > addresses. Working on that, some new code in my personal CVS now - but I suspect it will be the weekend before that gets fully fixed. > > Another big concern is that spu_dma_work is initialized/rewritten > dynamically in spu_begin_dma() and aica_period_elapsed() via > INIT_WORK() and PREPARE_WOR(). This looks pretty strange and may be > racy. Actually, the two macros INIT_WORK and PREPARE_WORK use the same work queue but ask it to schedule the execution of two different (if very similar) functions start_spu_dma() - which does the initial transfer and more_spu_dma - which tops up the dma transfers. So I think I've got that right. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linuxsh-dev] [Alsa-devel] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-06 23:10 ` [linuxsh-dev] [Alsa-devel] " Adrian McMenamin @ 2006-06-07 9:51 ` Takashi Iwai 2006-06-07 18:16 ` [Alsa-devel] [linuxsh-dev] " Adrian McMenamin 0 siblings, 1 reply; 10+ messages in thread From: Takashi Iwai @ 2006-06-07 9:51 UTC (permalink / raw) To: Adrian McMenamin Cc: alsa-devel, Paul Mundt, Lee Revell, linux-kernel, linux-sh At Wed, 07 Jun 2006 00:10:48 +0100, Adrian McMenamin wrote: > > On Tue, 2006-06-06 at 12:25 +0200, Takashi Iwai wrote: > > > Another big concern is that spu_dma_work is initialized/rewritten > > dynamically in spu_begin_dma() and aica_period_elapsed() via > > INIT_WORK() and PREPARE_WOR(). This looks pretty strange and may be > > racy. > > Actually, the two macros INIT_WORK and PREPARE_WORK use the same work > queue but ask it to schedule the execution of two different (if very > similar) functions start_spu_dma() - which does the initial transfer and > more_spu_dma - which tops up the dma transfers. > > So I think I've got that right. What's wrong with using two individual work struct so that you initialize them only once? I wonder it because you already have unused fields work and work2... Takashi ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Alsa-devel] [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-07 9:51 ` Takashi Iwai @ 2006-06-07 18:16 ` Adrian McMenamin 2006-06-08 10:35 ` Takashi Iwai 0 siblings, 1 reply; 10+ messages in thread From: Adrian McMenamin @ 2006-06-07 18:16 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel, Paul Mundt, Lee Revell, linux-kernel, linux-sh On Wed, 2006-06-07 at 11:51 +0200, Takashi Iwai wrote: > At Wed, 07 Jun 2006 00:10:48 +0100, > Adrian McMenamin wrote: > > > > On Tue, 2006-06-06 at 12:25 +0200, Takashi Iwai wrote: > > > > > Another big concern is that spu_dma_work is initialized/rewritten > > > dynamically in spu_begin_dma() and aica_period_elapsed() via > > > INIT_WORK() and PREPARE_WOR(). This looks pretty strange and may be > > > racy. > > > > Actually, the two macros INIT_WORK and PREPARE_WORK use the same work > > queue but ask it to schedule the execution of two different (if very > > similar) functions start_spu_dma() - which does the initial transfer and > > more_spu_dma - which tops up the dma transfers. > > > > So I think I've got that right. > > What's wrong with using two individual work struct so that you > initialize them only once? > I wonder it because you already have unused fields work and work2... > They've gone actually. I need to initialise them because every call is a discrete processing job - ie I send one thing to go, then when a period has elapsed I schedule another transfer to run on the kernel thread. Isn't this the way it is meant to work? ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Alsa-devel] [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-07 18:16 ` [Alsa-devel] [linuxsh-dev] " Adrian McMenamin @ 2006-06-08 10:35 ` Takashi Iwai 2006-06-08 18:16 ` [linuxsh-dev] [Alsa-devel] " Adrian McMenamin 0 siblings, 1 reply; 10+ messages in thread From: Takashi Iwai @ 2006-06-08 10:35 UTC (permalink / raw) To: Adrian McMenamin Cc: alsa-devel, Paul Mundt, Lee Revell, linux-kernel, linux-sh At Wed, 07 Jun 2006 19:16:42 +0100, Adrian McMenamin wrote: > > On Wed, 2006-06-07 at 11:51 +0200, Takashi Iwai wrote: > > At Wed, 07 Jun 2006 00:10:48 +0100, > > Adrian McMenamin wrote: > > > > > > On Tue, 2006-06-06 at 12:25 +0200, Takashi Iwai wrote: > > > > > > > Another big concern is that spu_dma_work is initialized/rewritten > > > > dynamically in spu_begin_dma() and aica_period_elapsed() via > > > > INIT_WORK() and PREPARE_WOR(). This looks pretty strange and may be > > > > racy. > > > > > > Actually, the two macros INIT_WORK and PREPARE_WORK use the same work > > > queue but ask it to schedule the execution of two different (if very > > > similar) functions start_spu_dma() - which does the initial transfer and > > > more_spu_dma - which tops up the dma transfers. > > > > > > So I think I've got that right. > > > > What's wrong with using two individual work struct so that you > > initialize them only once? > > I wonder it because you already have unused fields work and work2... > > > They've gone actually. > > I need to initialise them because every call is a discrete processing > job - ie I send one thing to go, then when a period has elapsed I > schedule another transfer to run on the kernel thread. > > Isn't this the way it is meant to work? It's uncoventional that a work struct is re-initialized on the fly. IMO, it's better to introduce a flag indicating the stream is already running and use a single function/work struct. For example, static void do_first_event(struct stream *str) { ... str->running = 1; } static void do_more_event(struct stream *str) { ... } static void work_event(void *data) { struct stream *str = data; if (str->running) do_more_event(str); else do_first_event(str); } trigger_start() { queue_work(queue, &this_work); } interrupt_handler() { ... queue_work(queue, &this_work); ... } initialization() { ... queue = create_workqueue("xxx"); INIT_WORK(&this_work, work_event, str); ... } ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linuxsh-dev] [Alsa-devel] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast 2006-06-08 10:35 ` Takashi Iwai @ 2006-06-08 18:16 ` Adrian McMenamin 0 siblings, 0 replies; 10+ messages in thread From: Adrian McMenamin @ 2006-06-08 18:16 UTC (permalink / raw) To: Takashi Iwai; +Cc: alsa-devel, Paul Mundt, Lee Revell, linux-kernel, linux-sh On Thu, 2006-06-08 at 12:35 +0200, Takashi Iwai wrote: > > It's uncoventional that a work struct is re-initialized on the fly. > > IMO, it's better to introduce a flag indicating the stream is already > running and use a single function/work struct. For example, Yes, I've did this sort of thing last night :) ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <20060605095318.GA30339@linux-sh.org>]
* Re: [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast [not found] ` <20060605095318.GA30339@linux-sh.org> @ 2006-06-05 9:59 ` Adrian McMenamin 0 siblings, 0 replies; 10+ messages in thread From: Adrian McMenamin @ 2006-06-05 9:59 UTC (permalink / raw) To: Paul Mundt; +Cc: linux-kernel, alsa-devel, linux-sh, Takashi Iwai, Lee Revell On Mon, 2006-06-05 at 12:53 +0300, Paul Mundt wrote: > > +static void spu_init(void) > > This can probably be inlined.. > > > +/* aica_chn_start - write to spu to start playback */ > > +static void aica_chn_start(void) > > +{ > > + spu_write_wait(); > > + writel(AICA_CMD_KICK | AICA_CMD_START, > > + (uint32_t *) AICA_CONTROL_POINT); > > +} > > + > > +/* aica_chn_halt - write to spu to halt playback */ > > +static void aica_chn_halt(void) > > +{ > > + spu_write_wait(); > > + writel(AICA_CMD_KICK | AICA_CMD_STOP, > > + (uint32_t *) AICA_CONTROL_POINT); > > +} > > + > These too. > No point in inlining these as they all wait on a FIFO to clear - ie the benefit of inling will be tiny. I notice a stray inline still lurking from the code that can go... ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2006-06-08 18:17 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1149201071.9032.13.camel@localhost.localdomain>
2006-06-03 11:39 ` [linuxsh-dev] [PATCH] Add support for Yamaha AICA sound on SEGA Dreamcast Adrian McMenamin
2006-06-03 15:16 ` Lee Revell
2006-06-03 16:38 ` Adrian McMenamin
2006-06-06 10:25 ` [Alsa-devel] " Takashi Iwai
2006-06-06 23:10 ` [linuxsh-dev] [Alsa-devel] " Adrian McMenamin
2006-06-07 9:51 ` Takashi Iwai
2006-06-07 18:16 ` [Alsa-devel] [linuxsh-dev] " Adrian McMenamin
2006-06-08 10:35 ` Takashi Iwai
2006-06-08 18:16 ` [linuxsh-dev] [Alsa-devel] " Adrian McMenamin
[not found] ` <20060605095318.GA30339@linux-sh.org>
2006-06-05 9:59 ` Adrian McMenamin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome