Lines Matching refs:sdhost
442 static void via_pwron_sleep(struct via_crdr_mmc_host *sdhost) in via_pwron_sleep() argument
444 if (sdhost->quirks & VIA_CRDR_QUIRK_300MS_PWRDELAY) in via_pwron_sleep()
872 struct via_crdr_mmc_host *sdhost = dev_id; in via_sdc_isr() local
878 if (!sdhost) in via_sdc_isr()
881 spin_lock(&sdhost->lock); in via_sdc_isr()
883 addrbase = sdhost->pcictrl_mmiobase; in via_sdc_isr()
890 addrbase = sdhost->sdhc_mmiobase; in via_sdc_isr()
903 schedule_work(&sdhost->carddet_work); in via_sdc_isr()
910 via_sdc_cmd_isr(sdhost, sd_status & VIA_CRDR_SDSTS_CMD_MASK); in via_sdc_isr()
915 via_sdc_data_isr(sdhost, sd_status & VIA_CRDR_SDSTS_DATA_MASK); in via_sdc_isr()
921 mmc_hostname(sdhost->mmc), sd_status); in via_sdc_isr()
929 spin_unlock(&sdhost->lock); in via_sdc_isr()
936 struct via_crdr_mmc_host *sdhost; in via_sdc_timeout() local
939 sdhost = (struct via_crdr_mmc_host *)ulongdata; in via_sdc_timeout()
941 spin_lock_irqsave(&sdhost->lock, flags); in via_sdc_timeout()
943 if (sdhost->mrq) { in via_sdc_timeout()
945 "cmd:0x%x\n", mmc_hostname(sdhost->mmc), in via_sdc_timeout()
946 sdhost->mrq->cmd->opcode); in via_sdc_timeout()
948 if (sdhost->data) { in via_sdc_timeout()
950 sdhost->ddma_mmiobase + VIA_CRDR_DMACTRL); in via_sdc_timeout()
951 sdhost->data->error = -ETIMEDOUT; in via_sdc_timeout()
952 via_sdc_finish_data(sdhost); in via_sdc_timeout()
954 if (sdhost->cmd) in via_sdc_timeout()
955 sdhost->cmd->error = -ETIMEDOUT; in via_sdc_timeout()
957 sdhost->mrq->cmd->error = -ETIMEDOUT; in via_sdc_timeout()
958 tasklet_schedule(&sdhost->finish_tasklet); in via_sdc_timeout()
963 spin_unlock_irqrestore(&sdhost->lock, flags); in via_sdc_timeout()
1089 struct via_crdr_mmc_host *sdhost; in via_sd_probe() local
1116 sdhost = mmc_priv(mmc); in via_sd_probe()
1117 sdhost->mmc = mmc; in via_sd_probe()
1118 dev_set_drvdata(&pcidev->dev, sdhost); in via_sd_probe()
1122 sdhost->mmiobase = ioremap_nocache(base, len); in via_sd_probe()
1123 if (!sdhost->mmiobase) { in via_sd_probe()
1128 sdhost->sdhc_mmiobase = in via_sd_probe()
1129 sdhost->mmiobase + VIA_CRDR_SDC_OFF; in via_sd_probe()
1130 sdhost->ddma_mmiobase = in via_sd_probe()
1131 sdhost->mmiobase + VIA_CRDR_DDMA_OFF; in via_sd_probe()
1132 sdhost->pcictrl_mmiobase = in via_sd_probe()
1133 sdhost->mmiobase + VIA_CRDR_PCICTRL_OFF; in via_sd_probe()
1135 sdhost->power = MMC_VDD_165_195; in via_sd_probe()
1138 writeb(gatt, sdhost->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); in via_sd_probe()
1139 via_pwron_sleep(sdhost); in via_sd_probe()
1141 writeb(gatt, sdhost->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); in via_sd_probe()
1144 via_init_mmc_host(sdhost); in via_sd_probe()
1148 sdhost); in via_sd_probe()
1153 sdhost->pcictrl_mmiobase + VIA_CRDR_PCIINTCTRL); in via_sd_probe()
1155 sdhost->pcictrl_mmiobase + VIA_CRDR_PCITMOCTRL); in via_sd_probe()
1160 sdhost->quirks = VIA_CRDR_QUIRK_300MS_PWRDELAY; in via_sd_probe()
1167 iounmap(sdhost->mmiobase); in via_sd_probe()
1181 struct via_crdr_mmc_host *sdhost = pci_get_drvdata(pcidev); in via_sd_remove() local
1185 spin_lock_irqsave(&sdhost->lock, flags); in via_sd_remove()
1188 sdhost->reject = 1; in via_sd_remove()
1191 writeb(0x0, sdhost->pcictrl_mmiobase + VIA_CRDR_PCIINTCTRL); in via_sd_remove()
1194 if (sdhost->mrq) { in via_sd_remove()
1196 "transfer\n", mmc_hostname(sdhost->mmc)); in via_sd_remove()
1200 sdhost->ddma_mmiobase + VIA_CRDR_DMACTRL); in via_sd_remove()
1202 sdhost->mrq->cmd->error = -ENOMEDIUM; in via_sd_remove()
1203 if (sdhost->mrq->stop) in via_sd_remove()
1204 sdhost->mrq->stop->error = -ENOMEDIUM; in via_sd_remove()
1205 tasklet_schedule(&sdhost->finish_tasklet); in via_sd_remove()
1207 spin_unlock_irqrestore(&sdhost->lock, flags); in via_sd_remove()
1209 mmc_remove_host(sdhost->mmc); in via_sd_remove()
1211 free_irq(pcidev->irq, sdhost); in via_sd_remove()
1213 del_timer_sync(&sdhost->timer); in via_sd_remove()
1215 tasklet_kill(&sdhost->finish_tasklet); in via_sd_remove()
1218 gatt = readb(sdhost->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); in via_sd_remove()
1220 writeb(gatt, sdhost->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); in via_sd_remove()
1222 iounmap(sdhost->mmiobase); in via_sd_remove()
1224 mmc_free_host(sdhost->mmc); in via_sd_remove()
1288 struct via_crdr_mmc_host *sdhost; in via_sd_resume() local
1292 sdhost = pci_get_drvdata(pcidev); in via_sd_resume()
1295 if (sdhost->power == MMC_VDD_165_195) in via_sd_resume()
1299 writeb(gatt, sdhost->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); in via_sd_resume()
1300 via_pwron_sleep(sdhost); in via_sd_resume()
1302 writeb(gatt, sdhost->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); in via_sd_resume()
1313 via_restore_pcictrlreg(sdhost); in via_sd_resume()
1314 via_init_sdc_pm(sdhost); in via_sd_resume()