ns, clks, timeout + 1);
}
-#if 0
-static void msdc_tasklet_card(unsigned long arg)
-{
- struct msdc_host *host = (struct msdc_host *)arg;
-#else
static void msdc_tasklet_card(struct work_struct *work)
{
struct msdc_host *host = (struct msdc_host *)container_of(work,
struct msdc_host, card_delaywork.work);
-#endif
void __iomem *base = host->base;
u32 inserted;
u32 status = 0;
if (host->mmc->caps & MMC_CAP_NEEDS_POLL)
return IRQ_HANDLED;
IRQ_MSG("MSDC_INT_CDSC irq<0x%.8x>", intsts);
-#if 0 /* ---/+++ by chhung: fix slot mechanical bounce issue */
- tasklet_hi_schedule(&host->card_tasklet);
-#else
schedule_delayed_work(&host->card_delaywork, HZ);
-#endif
/* tuning when plug card ? */
}
}
msdc_init_gpd_bd(host, &host->dma);
-#if 0
- tasklet_init(&host->card_tasklet, msdc_tasklet_card, (ulong)host);
-#else
INIT_DELAYED_WORK(&host->card_delaywork, msdc_tasklet_card);
-#endif
spin_lock_init(&host->lock);
msdc_init_hw(host);
release:
platform_set_drvdata(pdev, NULL);
msdc_deinit_hw(host);
-
-#if 0
- tasklet_kill(&host->card_tasklet);
-#else
cancel_delayed_work_sync(&host->card_delaywork);
-#endif
release_mem:
if (host->dma.gpd)
mmc_remove_host(host->mmc);
msdc_deinit_hw(host);
-#if 0
- tasklet_kill(&host->card_tasklet);
-#else
cancel_delayed_work_sync(&host->card_delaywork);
-#endif
dma_free_coherent(&pdev->dev, MAX_GPD_NUM * sizeof(struct gpd),
host->dma.gpd, host->dma.gpd_addr);