On Sun 4 Jan 2009 03:25, [email protected] pondered:
> --- trunk/drivers/mmc/host/bfin_sdh.c 2009-01-01 22:36:34 UTC (rev 5939)
> +++ trunk/drivers/mmc/host/bfin_sdh.c 2009-01-04 08:25:55 UTC (rev 5940)
> @@ -428,12 +445,20 @@
> int handled = 0;
>
> pr_debug("%s enter\n", __FUNCTION__);
> - if (bfin_read_SDH_E_STATUS() & SD_CARD_DET) {
> + status = bfin_read_SDH_E_STATUS();
> + if (status & SD_CARD_DET) {
> mmc_detect_change(host->mmc, 0);
> bfin_write_SDH_E_STATUS(SD_CARD_DET);
> SSYNC();
I don't think you need the SSYNC - do you?
> }
> -
> +#ifdef CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ
> + if (status & SDIO_INT_DET) {
> + mmc_signal_sdio_irq(host->mmc);
> + bfin_write_SDH_E_STATUS(SDIO_INT_DET);
> + SSYNC();
Same here?
> + handled = 1;
> + }
> +#endif
> status = bfin_read_SDH_STATUS();
> if (status & (CMD_SENT | CMD_RESP_END | CMD_TIME_OUT | CMD_CRC_FAIL)) {
> handled |= sdh_cmd_done(host, status);
> @@ -497,7 +522,9 @@
> mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
> mmc->f_min = get_sclk() >> 9;
> mmc->f_max = get_sclk();
> +#ifndef CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ
> mmc->caps = MMC_CAP_4_BIT_DATA;
> +#endif
> host = mmc_priv(mmc);
> host->mmc = mmc;
And when comparing some of the functions to others in drivers/mmc/host/* -
they have more functions marked __init or __devinit than we do - any reason?
ricoh_mmc.c:static int __devinit ricoh_mmc_probe(struct pci_dev *pdev,
ricoh_mmc.c: .probe = ricoh_mmc_probe,
static int __init mmc_omap_probe(struct platform_device *pdev)
.probe = mmc_omap_probe,
static int __devinit au1xmmc_probe(struct platform_device *pdev)
.probe = au1xmmc_probe,
no __init in our driver...
static int sdh_probe(struct platform_device *pdev)
.probe = sdh_probe,
?
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits