AACI broken with commit 29a4f2d3
Takashi Iwai
tiwai at suse.de
Thu Mar 25 07:12:52 EDT 2010
At Wed, 24 Mar 2010 15:18:06 -0000,
Will Deacon wrote:
>
> Hi Catalin,
>
> > aaci: Use writew() to the AC97_POWERDOWN 16-bit register
> >
> > From: Catalin Marinas <catalin.marinas at arm.com>
> >
> > The writel() introduced by commit 29a4f2d3 generates an alignment fault
> > on ARM.
> >
> > Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
> > Cc: Philby John <pjohn at in.mvista.com>
> > Cc: Takashi Iwai <tiwai at suse.de>
> > ---
> > sound/arm/aaci.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
> > index 656e474..d66d4ff 100644
> > --- a/sound/arm/aaci.c
> > +++ b/sound/arm/aaci.c
> > @@ -863,7 +863,7 @@ static int __devinit aaci_probe_ac97(struct aaci *aaci)
> > struct snd_ac97 *ac97;
> > int ret;
> >
> > - writel(0, aaci->base + AC97_POWERDOWN);
> > + writew(0, aaci->base + AC97_POWERDOWN);
> > /*
> > * Assert AACIRESET for 2us
> > */
>
> A writel() looks wrong anyway because even if it could succeed, it would
> send half of its write to AC97_EXTENDED_ID, which sounds suspiciously read-only
> to me.
>
> Tested-by: Will Deacon <will.deacon at arm.com>
Looking back at the original patch again, I wonder now whether using
AC97_* for the register offset here is really correct. Usually AC97
registers are accessed indirectly.
Is it just same 0x26, or is this intentional?
thanks,
Takashi
More information about the linux-arm-kernel
mailing list