기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
sound/soc/s3c/s3c64xx-ac97.c
static void s3c6400_ac97_warm_reset(struct snd_ac97 *ac97)
{
u32 ac_glbctrl = 0;
u32 ac_glbstat = 0;
s3cdbg("Entered %sn", __FUNCTION__);
ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
ac_glbctrl = S3C_AC97_GLBCTRL_WARMRESET;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
ac_glbctrl &= ~S3C_AC97_GLBCTRL_WARMRESET;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
ac_glbctrl = S3C_AC97_GLBCTRL_ACLINKON;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
ac_glbctrl |= S3C_AC97_GLBCTRL_TRANSFERDATAENABLE;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
ac_glbctrl |= S3C_AC97_GLBCTRL_PCMOUTTM_DMA |
S3C_AC97_GLBCTRL_PCMINTM_DMA | S3C_AC97_GLBCTRL_MICINTM_DMA;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
ac_glbctrl = readl(s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
ac_glbctrl |= S3C_AC97_GLBCTRL_ACLINKON;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
udelay(1000);
}
static void s3c6400_ac97_cold_reset(struct snd_ac97 *ac97)
{
u32 ac_glbctrl = 0;
u32 ac_glbstat = 0;
s3cdbg("Entered %sn", __FUNCTION__);
ac_glbctrl = S3C_AC97_GLBCTRL_COLDRESET;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
ac_glbctrl &= ~S3C_AC97_GLBCTRL_COLDRESET;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
ac_glbctrl = S3C_AC97_GLBCTRL_COLDRESET;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
ac_glbctrl &= ~S3C_AC97_GLBCTRL_COLDRESET;
writel(ac_glbctrl, s3c24xx_ac97.regs + S3C_AC97_GLBCTRL);
msleep(1);
}
를 다음과 같이 수정해서 테스트해 보시기 바랍니다.
그럼...
계속 외부에 나가 있어서요...이따 저녁때 그 부분 발췌해서 올려드리겠습니다.