Re: [Patch 2/3] via-sdmmc: via-sdmmc.c

From: Oliver Neukum
Date: Tue Dec 16 2008 - 06:56:21 EST


Am Dienstag, 16. Dezember 2008 12:41:35 schrieb JosephChan@xxxxxxxxxx:
> +ÂÂÂÂÂÂÂspin_lock_irqsave(&host->lock, flags);
> +
> +ÂÂÂÂÂÂÂaddrbase = vcrdr_chip->pcictrl_mmiobase;
> +ÂÂÂÂÂÂÂwriteb(PCI_DMA_CLK_SDC, addrbase + PCIDMACLK_REG);
> +ÂÂÂÂÂÂÂvcrdr_chip->cur_device = DEV_SDC;
> +
> +ÂÂÂÂÂÂÂaddrbase = vcrdr_chip->sdhc_mmiobase;
> +ÂÂÂÂÂÂÂstatus = readw(addrbase + SDSTATUS_REG);
> +ÂÂÂÂÂÂÂif (!(status & SD_STS_SLOTG)) {
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂif (host->mrq) {
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂpr_err("%s: Card removed during transfer!\n",
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Â Â Â mmc_hostname(host->mmc));
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂhost->mrq->cmd->error = -ENOMEDIUM;
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂtasklet_schedule(&host->finish_tasklet);
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ}
> +
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂaddrbase = vcrdr_chip->pcictrl_mmiobase;
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂwriteb(PCI_CLK_375K, addrbase + PCISDCCLK_REG);
> +
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂvia_reset_pcictrl(host);

This means a long delay with interrupts off. Is this really needed?

Regards
Oliver


èº{.nÇ+‰·Ÿ®‰­†+%ŠËlzwm…ébëæìr¸›zX§»®w¥Š{ayºÊÚë,j­¢f£¢·hš‹àz¹®w¥¢¸ ¢·¦j:+v‰¨ŠwèjØm¶Ÿÿ¾«‘êçzZ+ƒùšŽŠÝj"ú!¶iO•æ¬z·švØ^¶m§ÿðà nÆàþY&—