On Mon, Jun 07, 2004 at 03:40:23PM +0200, Takashi Iwai wrote:
> At Mon, 7 Jun 2004 14:08:17 +0100,
> Russell King wrote:
> > 
> > On Mon, Jun 07, 2004 at 02:45:20PM +0200, Takashi Iwai wrote:
> > > i guess so, too.  as you can see in the original post, the error
> > > returned from hw_params callback (sample not available), thus it
> > > doesn't call trigger(START) callback yet at all.
> > 
> > If we never got past hw_params() then we didn't enable the IO,
> > and it must be that something else in the system fiddled with
> > the chip and set it incorrectly.
> > 
> > > unfurtunately i can't tell any more unless i read the driver code.
> > > where can i find the code?
> > 
> > I never officially released the driver, though it was part of the
> > old -rmk patches back in the 2.6.0-test era.  Where Roc has got
> > the source from, and what modifications have been made is anyones
> > guess.
> 
> Roc sent me the code now :)
> 
> after a quick look, it seems that txcr isn't initialized in the open
> callback but only in hw_params callback (which was never called in
> this case).

Why should it be explicitly initialised?  Take a moment to consider
what guarantees snd_card_new() gives for the allocated memory.  Yep,
that's right - it's initialised to zero.  So, chan->txcr is already
initialised to zero.

So, let's step back and consider.

At init time.
        chan->txcr is zeroed.
open
        no change.
hw_parms
        chan->txcr may be set to the required format if successful,
        but isn't.
close
        chan->txcr should still be zero.

Even if hw_params did succeed, then chan->txcr will be set to something
which doesn't have TXCR_TXEN set, until the trigger is called with
SNDRV_PCM_TRIGGER_START.

So I still assert that the problem is in ALSA core or in modifications
to the code.

> if my guess is correct, adding the following to
> aacpi_playback_open() should fix this problem:
> 
>       chan->txcr = 0;

So respectfully I think the above is crap.

But unfortunately I don't have the driver code myself to be able to
comment, so its probably been fscked.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core


-------------------------------------------------------
This SF.Net email is sponsored by the new InstallShield X.
>From Windows to Linux, servers to mobile, InstallShield X is the one
installation-authoring solution that does it all. Learn more and
evaluate today! http://www.installshield.com/Dev2Dev/0504
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to