Lines Matching full:mmc

3  *  linux/drivers/mmc/host/sdhci.c - Secure Digital Host Controller Interface driver
30 #include <linux/mmc/mmc.h>
31 #include <linux/mmc/host.h>
32 #include <linux/mmc/card.h>
33 #include <linux/mmc/sdio.h>
34 #include <linux/mmc/slot-gpio.h>
41 pr_debug("%s: " DRIVER_NAME ": " f, mmc_hostname(host->mmc), ## x)
44 pr_err("%s: " DRIVER_NAME ": " f, mmc_hostname(host->mmc), ## x)
160 !mmc_card_is_removable(host->mmc) || mmc_can_gpio_cd(host->mmc)) in sdhci_set_card_detection()
192 pm_runtime_get_noresume(host->mmc->parent); in sdhci_runtime_pm_bus_on()
200 pm_runtime_put_noidle(host->mmc->parent); in sdhci_runtime_pm_bus_off()
227 mmc_hostname(host->mmc), (int)mask); in sdhci_reset()
239 struct mmc_host *mmc = host->mmc; in sdhci_do_reset() local
241 if (!mmc->ops->get_cd(mmc)) in sdhci_do_reset()
322 struct mmc_host *mmc = host->mmc; in sdhci_init() local
342 mmc->ops->set_ios(mmc, &mmc->ios); in sdhci_init()
360 mmc_detect_change(host->mmc, msecs_to_jiffies(200)); in sdhci_reinit()
409 struct mmc_host *mmc = host->mmc; in sdhci_led_register() local
415 "%s::", mmc_hostname(mmc)); in sdhci_led_register()
419 host->led.default_trigger = mmc_hostname(mmc); in sdhci_led_register()
422 return led_classdev_register(mmc_dev(mmc), &host->led); in sdhci_led_register()
637 mmc_hostname(host->mmc), length, in sdhci_pre_dma_transfer()
652 dma_sync_single_for_device(host->mmc->parent, in sdhci_pre_dma_transfer()
660 sg_count = dma_map_sg(mmc_dev(host->mmc), in sdhci_pre_dma_transfer()
821 dma_sync_sg_for_cpu(mmc_dev(host->mmc), data->sg, in sdhci_adma_table_post()
898 struct mmc_host *mmc = host->mmc; in sdhci_calc_sw_timeout() local
899 struct mmc_ios *ios = &mmc->ios; in sdhci_calc_sw_timeout()
911 freq = host->mmc->actual_clock ? : host->clock; in sdhci_calc_sw_timeout()
1050 BUG_ON(data->blksz > host->mmc->max_blk_size); in sdhci_initialize_data()
1178 struct mmc_host *mmc = host->mmc; in sdhci_external_dma_init() local
1180 host->tx_chan = dma_request_chan(mmc->parent, "tx"); in sdhci_external_dma_init()
1189 host->rx_chan = dma_request_chan(mmc->parent, "rx"); in sdhci_external_dma_init()
1301 mmc_hostname(host->mmc)); in sdhci_external_dma_prepare_data()
1709 mmc_hostname(host->mmc)); in sdhci_send_command_retry()
1719 present = host->mmc->ops->get_cd(host->mmc); in sdhci_send_command_retry()
1772 mmc_command_done(host->mmc, cmd->mrq); in sdhci_finish_command()
1838 mmc_hostname(host->mmc)); in sdhci_get_preset_value()
1954 mmc_hostname(host->mmc)); in sdhci_enable_clk()
1976 mmc_hostname(host->mmc)); in sdhci_enable_clk()
1993 host->mmc->actual_clock = 0; in sdhci_set_clock()
2000 clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock); in sdhci_set_clock()
2008 struct mmc_host *mmc = host->mmc; in sdhci_set_power_reg() local
2010 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd); in sdhci_set_power_reg()
2045 mmc_hostname(host->mmc), vdd); in sdhci_set_power_noreg()
2095 if (IS_ERR(host->mmc->supply.vmmc)) in sdhci_set_power()
2112 if (!IS_ERR(host->mmc->supply.vmmc)) { in sdhci_set_power_and_bus_voltage()
2113 struct mmc_host *mmc = host->mmc; in sdhci_set_power_and_bus_voltage() local
2115 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, vdd); in sdhci_set_power_and_bus_voltage()
2123 * MMC callbacks *
2127 void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq) in sdhci_request() argument
2129 struct sdhci_host *host = mmc_priv(mmc); in sdhci_request()
2135 present = mmc->ops->get_cd(mmc); in sdhci_request()
2159 int sdhci_request_atomic(struct mmc_host *mmc, struct mmc_request *mrq) in sdhci_request_atomic() argument
2161 struct sdhci_host *host = mmc_priv(mmc); in sdhci_request_atomic()
2202 if (host->mmc->caps & MMC_CAP_8_BIT_DATA) in sdhci_set_bus_width()
2238 void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) in sdhci_set_ios() argument
2240 struct sdhci_host *host = mmc_priv(mmc); in sdhci_set_ios()
2247 if (!IS_ERR(mmc->supply.vmmc) && in sdhci_set_ios()
2249 mmc_regulator_set_ocr(mmc, mmc->supply.vmmc, 0); in sdhci_set_ios()
2273 host->timeout_clk = host->mmc->actual_clock ? in sdhci_set_ios()
2274 host->mmc->actual_clock / 1000 : in sdhci_set_ios()
2276 host->mmc->max_busy_timeout = in sdhci_set_ios()
2280 host->mmc->max_busy_timeout /= host->timeout_clk; in sdhci_set_ios()
2332 mmc_hostname(mmc)); in sdhci_set_ios()
2394 static int sdhci_get_cd(struct mmc_host *mmc) in sdhci_get_cd() argument
2396 struct sdhci_host *host = mmc_priv(mmc); in sdhci_get_cd()
2397 int gpio_cd = mmc_gpio_get_cd(mmc); in sdhci_get_cd()
2403 if (!mmc_card_is_removable(host->mmc)) in sdhci_get_cd()
2432 else if (mmc_can_gpio_ro(host->mmc)) in sdhci_check_ro()
2433 is_readonly = mmc_gpio_get_ro(host->mmc); in sdhci_check_ro()
2447 static int sdhci_get_ro(struct mmc_host *mmc) in sdhci_get_ro() argument
2449 struct sdhci_host *host = mmc_priv(mmc); in sdhci_get_ro()
2466 static void sdhci_hw_reset(struct mmc_host *mmc) in sdhci_hw_reset() argument
2468 struct sdhci_host *host = mmc_priv(mmc); in sdhci_hw_reset()
2487 void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable) in sdhci_enable_sdio_irq() argument
2489 struct sdhci_host *host = mmc_priv(mmc); in sdhci_enable_sdio_irq()
2493 pm_runtime_get_noresume(host->mmc->parent); in sdhci_enable_sdio_irq()
2500 pm_runtime_put_noidle(host->mmc->parent); in sdhci_enable_sdio_irq()
2504 static void sdhci_ack_sdio_irq(struct mmc_host *mmc) in sdhci_ack_sdio_irq() argument
2506 struct sdhci_host *host = mmc_priv(mmc); in sdhci_ack_sdio_irq()
2514 int sdhci_start_signal_voltage_switch(struct mmc_host *mmc, in sdhci_start_signal_voltage_switch() argument
2517 struct sdhci_host *host = mmc_priv(mmc); in sdhci_start_signal_voltage_switch()
2538 if (!IS_ERR(mmc->supply.vqmmc)) { in sdhci_start_signal_voltage_switch()
2539 ret = mmc_regulator_set_vqmmc(mmc, ios); in sdhci_start_signal_voltage_switch()
2542 mmc_hostname(mmc)); in sdhci_start_signal_voltage_switch()
2555 mmc_hostname(mmc)); in sdhci_start_signal_voltage_switch()
2561 if (!IS_ERR(mmc->supply.vqmmc)) { in sdhci_start_signal_voltage_switch()
2562 ret = mmc_regulator_set_vqmmc(mmc, ios); in sdhci_start_signal_voltage_switch()
2565 mmc_hostname(mmc)); in sdhci_start_signal_voltage_switch()
2587 mmc_hostname(mmc)); in sdhci_start_signal_voltage_switch()
2593 if (!IS_ERR(mmc->supply.vqmmc)) { in sdhci_start_signal_voltage_switch()
2594 ret = mmc_regulator_set_vqmmc(mmc, ios); in sdhci_start_signal_voltage_switch()
2597 mmc_hostname(mmc)); in sdhci_start_signal_voltage_switch()
2609 static int sdhci_card_busy(struct mmc_host *mmc) in sdhci_card_busy() argument
2611 struct sdhci_host *host = mmc_priv(mmc); in sdhci_card_busy()
2620 static int sdhci_prepare_hs400_tuning(struct mmc_host *mmc, struct mmc_ios *ios) in sdhci_prepare_hs400_tuning() argument
2622 struct sdhci_host *host = mmc_priv(mmc); in sdhci_prepare_hs400_tuning()
2684 mmc_abort_tuning(host->mmc, opcode); in sdhci_abort_tuning()
2697 struct mmc_host *mmc = host->mmc; in sdhci_send_tuning() local
2716 mmc->ios.bus_width == MMC_BUS_WIDTH_8) in sdhci_send_tuning()
2765 mmc_hostname(host->mmc)); in __sdhci_execute_tuning()
2784 mmc_hostname(host->mmc)); in __sdhci_execute_tuning()
2789 int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode) in sdhci_execute_tuning() argument
2791 struct sdhci_host *host = mmc_priv(mmc); in sdhci_execute_tuning()
2841 host->mmc->retune_period = tuning_count; in sdhci_execute_tuning()
2887 static void sdhci_post_req(struct mmc_host *mmc, struct mmc_request *mrq, in sdhci_post_req() argument
2890 struct sdhci_host *host = mmc_priv(mmc); in sdhci_post_req()
2894 dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, in sdhci_post_req()
2900 static void sdhci_pre_req(struct mmc_host *mmc, struct mmc_request *mrq) in sdhci_pre_req() argument
2902 struct sdhci_host *host = mmc_priv(mmc); in sdhci_pre_req()
2928 static void sdhci_card_event(struct mmc_host *mmc) in sdhci_card_event() argument
2930 struct sdhci_host *host = mmc_priv(mmc); in sdhci_card_event()
2938 present = mmc->ops->get_cd(mmc); in sdhci_card_event()
2945 mmc_hostname(host->mmc)); in sdhci_card_event()
2947 mmc_hostname(host->mmc)); in sdhci_card_event()
3030 mmc_hostname(host->mmc), in sdhci_request_done()
3037 host->mmc->parent, in sdhci_request_done()
3048 host->mmc->parent, in sdhci_request_done()
3055 dma_unmap_sg(mmc_dev(host->mmc), data->sg, in sdhci_request_done()
3099 mmc_request_done(host->mmc, mrq); in sdhci_request_done()
3124 mmc_hostname(host->mmc)); in sdhci_timeout_timer()
3146 mmc_hostname(host->mmc)); in sdhci_timeout_data_timer()
3197 mmc_hostname(host->mmc), (unsigned)intmask); in sdhci_cmd_irq()
3327 mmc_hostname(host->mmc), (unsigned)intmask); in sdhci_data_irq()
3342 pr_err("%s: ADMA error: 0x%08x\n", mmc_hostname(host->mmc), in sdhci_data_irq()
3481 mmc_hostname(host->mmc)); in sdhci_irq()
3484 mmc_retune_needed(host->mmc); in sdhci_irq()
3489 sdio_signal_irq(host->mmc); in sdhci_irq()
3536 mmc_request_done(host->mmc, mrqs_done[i]); in sdhci_irq()
3541 mmc_hostname(host->mmc), unexpected); in sdhci_irq()
3570 struct mmc_host *mmc = host->mmc; in sdhci_thread_irq() local
3572 mmc->ops->card_event(mmc); in sdhci_thread_irq()
3573 mmc_detect_change(mmc, msecs_to_jiffies(200)); in sdhci_thread_irq()
3589 return mmc_card_is_removable(host->mmc) && in sdhci_cd_irq_can_wakeup()
3591 !mmc_can_gpio_cd(host->mmc); in sdhci_cd_irq_can_wakeup()
3615 if (mmc_card_wake_sdio_irq(host->mmc)) { in sdhci_enable_irq_wakeups()
3654 mmc_retune_timer_stop(host->mmc); in sdhci_suspend_host()
3656 if (!device_may_wakeup(mmc_dev(host->mmc)) || in sdhci_suspend_host()
3671 struct mmc_host *mmc = host->mmc; in sdhci_resume_host() local
3679 if ((host->mmc->pm_flags & MMC_PM_KEEP_POWER) && in sdhci_resume_host()
3685 mmc->ops->set_ios(mmc, &mmc->ios); in sdhci_resume_host()
3687 sdhci_init(host, (host->mmc->pm_flags & MMC_PM_KEEP_POWER)); in sdhci_resume_host()
3695 mmc_hostname(host->mmc), host); in sdhci_resume_host()
3711 mmc_retune_timer_stop(host->mmc); in sdhci_runtime_suspend_host()
3731 struct mmc_host *mmc = host->mmc; in sdhci_runtime_resume_host() local
3742 if (mmc->ios.power_mode != MMC_POWER_UNDEFINED && in sdhci_runtime_resume_host()
3743 mmc->ios.power_mode != MMC_POWER_OFF) { in sdhci_runtime_resume_host()
3747 mmc->ops->start_signal_voltage_switch(mmc, &mmc->ios); in sdhci_runtime_resume_host()
3748 mmc->ops->set_ios(mmc, &mmc->ios); in sdhci_runtime_resume_host()
3757 if ((mmc->caps2 & MMC_CAP2_HS400_ES) && in sdhci_runtime_resume_host()
3758 mmc->ops->hs400_enhanced_strobe) in sdhci_runtime_resume_host()
3759 mmc->ops->hs400_enhanced_strobe(mmc, &mmc->ios); in sdhci_runtime_resume_host()
3767 if (sdio_irq_claimed(mmc)) in sdhci_runtime_resume_host()
3787 void sdhci_cqe_enable(struct mmc_host *mmc) in sdhci_cqe_enable() argument
3789 struct sdhci_host *host = mmc_priv(mmc); in sdhci_cqe_enable()
3824 mmc_hostname(mmc), host->ier, in sdhci_cqe_enable()
3831 void sdhci_cqe_disable(struct mmc_host *mmc, bool recovery) in sdhci_cqe_disable() argument
3833 struct sdhci_host *host = mmc_priv(mmc); in sdhci_cqe_disable()
3848 mmc_hostname(mmc), host->ier, in sdhci_cqe_disable()
3885 mmc_hostname(host->mmc)); in sdhci_cqe_irq()
3891 mmc_hostname(host->mmc), intmask); in sdhci_cqe_irq()
3908 struct mmc_host *mmc; in sdhci_alloc_host() local
3913 mmc = mmc_alloc_host(sizeof(struct sdhci_host) + priv_size, dev); in sdhci_alloc_host()
3914 if (!mmc) in sdhci_alloc_host()
3917 host = mmc_priv(mmc); in sdhci_alloc_host()
3918 host->mmc = mmc; in sdhci_alloc_host()
3920 mmc->ops = &host->mmc_host_ops; in sdhci_alloc_host()
3946 struct mmc_host *mmc = host->mmc; in sdhci_set_dma_mask() local
3947 struct device *dev = mmc_dev(mmc); in sdhci_set_dma_mask()
3958 mmc_hostname(mmc)); in sdhci_set_dma_mask()
3968 mmc_hostname(mmc)); in sdhci_set_dma_mask()
3997 of_property_read_u64(mmc_dev(host->mmc)->of_node, in __sdhci_read_caps()
3999 of_property_read_u64(mmc_dev(host->mmc)->of_node, in __sdhci_read_caps()
4031 struct mmc_host *mmc = host->mmc; in sdhci_allocate_bounce_buffer() local
4038 * has diminishing returns, this is probably because SD/MMC in sdhci_allocate_bounce_buffer()
4047 if (mmc->max_req_size < bounce_size) in sdhci_allocate_bounce_buffer()
4048 bounce_size = mmc->max_req_size; in sdhci_allocate_bounce_buffer()
4056 host->bounce_buffer = devm_kmalloc(mmc->parent, in sdhci_allocate_bounce_buffer()
4061 mmc_hostname(mmc), in sdhci_allocate_bounce_buffer()
4065 * mmc->max_segs == 1. in sdhci_allocate_bounce_buffer()
4070 host->bounce_addr = dma_map_single(mmc->parent, in sdhci_allocate_bounce_buffer()
4074 ret = dma_mapping_error(mmc->parent, host->bounce_addr); in sdhci_allocate_bounce_buffer()
4081 mmc->max_segs = max_blocks; in sdhci_allocate_bounce_buffer()
4082 mmc->max_seg_size = bounce_size; in sdhci_allocate_bounce_buffer()
4083 mmc->max_req_size = bounce_size; in sdhci_allocate_bounce_buffer()
4086 mmc_hostname(mmc), max_blocks, bounce_size); in sdhci_allocate_bounce_buffer()
4104 struct mmc_host *mmc; in sdhci_setup_host() local
4116 mmc = host->mmc; in sdhci_setup_host()
4124 if (!mmc->supply.vqmmc) { in sdhci_setup_host()
4125 ret = mmc_regulator_get_supply(mmc); in sdhci_setup_host()
4144 mmc_hostname(mmc), host->version); in sdhci_setup_host()
4199 mmc_hostname(mmc)); in sdhci_setup_host()
4227 buf = dma_alloc_coherent(mmc_dev(mmc), in sdhci_setup_host()
4232 mmc_hostname(mmc)); in sdhci_setup_host()
4237 mmc_hostname(mmc)); in sdhci_setup_host()
4239 dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + in sdhci_setup_host()
4257 mmc_dev(mmc)->dma_mask = &host->dma_mask; in sdhci_setup_host()
4270 mmc_hostname(mmc)); in sdhci_setup_host()
4298 mmc->f_min = host->ops->get_min_clock(host); in sdhci_setup_host()
4306 mmc->f_min = host->max_clk / SDHCI_MAX_DIV_SPEC_300; in sdhci_setup_host()
4308 mmc->f_min = host->max_clk / SDHCI_MAX_DIV_SPEC_200; in sdhci_setup_host()
4310 if (!mmc->f_max || mmc->f_max > max_clk) in sdhci_setup_host()
4311 mmc->f_max = max_clk; in sdhci_setup_host()
4322 mmc_hostname(mmc)); in sdhci_setup_host()
4335 mmc->max_busy_timeout = host->ops->get_max_timeout_count ? in sdhci_setup_host()
4337 mmc->max_busy_timeout /= host->timeout_clk; in sdhci_setup_host()
4342 mmc->max_busy_timeout = 0; in sdhci_setup_host()
4344 mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_CMD23; in sdhci_setup_host()
4345 mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD; in sdhci_setup_host()
4367 * 8-bit width must set "mmc->caps |= MMC_CAP_8_BIT_DATA;" in in sdhci_setup_host()
4372 mmc->caps |= MMC_CAP_4_BIT_DATA; in sdhci_setup_host()
4375 mmc->caps &= ~MMC_CAP_CMD23; in sdhci_setup_host()
4378 mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED; in sdhci_setup_host()
4381 mmc_card_is_removable(mmc) && in sdhci_setup_host()
4382 mmc_gpio_get_cd(host->mmc) < 0) in sdhci_setup_host()
4383 mmc->caps |= MMC_CAP_NEEDS_POLL; in sdhci_setup_host()
4385 if (!IS_ERR(mmc->supply.vqmmc)) { in sdhci_setup_host()
4387 ret = regulator_enable(mmc->supply.vqmmc); in sdhci_setup_host()
4392 if (!regulator_is_supported_voltage(mmc->supply.vqmmc, 1700000, in sdhci_setup_host()
4399 if (!regulator_is_supported_voltage(mmc->supply.vqmmc, 2700000, in sdhci_setup_host()
4405 mmc_hostname(mmc), ret); in sdhci_setup_host()
4406 mmc->supply.vqmmc = ERR_PTR(-EINVAL); in sdhci_setup_host()
4416 * (indicated using mmc-hs200-1_8v/mmc-hs400-1_8v dt property), in sdhci_setup_host()
4422 mmc->caps2 &= ~(MMC_CAP2_HSX00_1_8V | MMC_CAP2_HS400_ES); in sdhci_setup_host()
4423 mmc->caps &= ~(MMC_CAP_1_8V_DDR | MMC_CAP_UHS); in sdhci_setup_host()
4429 mmc->caps |= MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25; in sdhci_setup_host()
4433 mmc->caps |= MMC_CAP_UHS_SDR104 | MMC_CAP_UHS_SDR50; in sdhci_setup_host()
4438 mmc->caps2 |= MMC_CAP2_HS200; in sdhci_setup_host()
4440 mmc->caps |= MMC_CAP_UHS_SDR50; in sdhci_setup_host()
4445 mmc->caps2 |= MMC_CAP2_HS400; in sdhci_setup_host()
4447 if ((mmc->caps2 & MMC_CAP2_HSX00_1_2V) && in sdhci_setup_host()
4448 (IS_ERR(mmc->supply.vqmmc) || in sdhci_setup_host()
4449 !regulator_is_supported_voltage(mmc->supply.vqmmc, 1100000, in sdhci_setup_host()
4451 mmc->caps2 &= ~MMC_CAP2_HSX00_1_2V; in sdhci_setup_host()
4455 mmc->caps |= MMC_CAP_UHS_DDR50; in sdhci_setup_host()
4463 mmc->caps |= MMC_CAP_DRIVER_TYPE_A; in sdhci_setup_host()
4465 mmc->caps |= MMC_CAP_DRIVER_TYPE_C; in sdhci_setup_host()
4467 mmc->caps |= MMC_CAP_DRIVER_TYPE_D; in sdhci_setup_host()
4493 if (!max_current_caps && !IS_ERR(mmc->supply.vmmc)) { in sdhci_setup_host()
4494 int curr = regulator_get_current_limit(mmc->supply.vmmc); in sdhci_setup_host()
4512 mmc->max_current_330 = FIELD_GET(SDHCI_MAX_CURRENT_330_MASK, in sdhci_setup_host()
4519 mmc->max_current_300 = FIELD_GET(SDHCI_MAX_CURRENT_300_MASK, in sdhci_setup_host()
4526 mmc->max_current_180 = FIELD_GET(SDHCI_MAX_CURRENT_180_MASK, in sdhci_setup_host()
4536 if (mmc->ocr_avail) in sdhci_setup_host()
4537 ocr_avail = mmc->ocr_avail; in sdhci_setup_host()
4539 mmc->ocr_avail = ocr_avail; in sdhci_setup_host()
4540 mmc->ocr_avail_sdio = ocr_avail; in sdhci_setup_host()
4542 mmc->ocr_avail_sdio &= host->ocr_avail_sdio; in sdhci_setup_host()
4543 mmc->ocr_avail_sd = ocr_avail; in sdhci_setup_host()
4545 mmc->ocr_avail_sd &= host->ocr_avail_sd; in sdhci_setup_host()
4547 mmc->ocr_avail_sd &= ~MMC_VDD_165_195; in sdhci_setup_host()
4548 mmc->ocr_avail_mmc = ocr_avail; in sdhci_setup_host()
4550 mmc->ocr_avail_mmc &= host->ocr_avail_mmc; in sdhci_setup_host()
4552 if (mmc->ocr_avail == 0) { in sdhci_setup_host()
4554 mmc_hostname(mmc)); in sdhci_setup_host()
4559 if ((mmc->caps & (MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | in sdhci_setup_host()
4562 (mmc->caps2 & (MMC_CAP2_HS200_1_8V_SDR | MMC_CAP2_HS400_1_8V))) in sdhci_setup_host()
4565 if (mmc->caps2 & MMC_CAP2_HSX00_1_2V) in sdhci_setup_host()
4575 mmc->max_req_size = 524288; in sdhci_setup_host()
4582 mmc->max_segs = SDHCI_MAX_SEGS; in sdhci_setup_host()
4584 mmc->max_segs = 1; in sdhci_setup_host()
4588 mmc->max_req_size = min(mmc->max_req_size, in sdhci_setup_host()
4592 mmc->max_segs = SDHCI_MAX_SEGS; in sdhci_setup_host()
4602 mmc->max_seg_size = 65535; in sdhci_setup_host()
4604 mmc->max_seg_size = 65536; in sdhci_setup_host()
4606 mmc->max_seg_size = mmc->max_req_size; in sdhci_setup_host()
4614 mmc->max_blk_size = 2; in sdhci_setup_host()
4616 mmc->max_blk_size = (host->caps & SDHCI_MAX_BLOCK_MASK) >> in sdhci_setup_host()
4618 if (mmc->max_blk_size >= 3) { in sdhci_setup_host()
4620 mmc_hostname(mmc)); in sdhci_setup_host()
4621 mmc->max_blk_size = 0; in sdhci_setup_host()
4625 mmc->max_blk_size = 512 << mmc->max_blk_size; in sdhci_setup_host()
4630 mmc->max_blk_count = (host->quirks & SDHCI_QUIRK_NO_MULTIBLOCK) ? 1 : 65535; in sdhci_setup_host()
4632 if (mmc->max_segs == 1) in sdhci_setup_host()
4633 /* This may alter mmc->*_blk_* parameters */ in sdhci_setup_host()
4640 regulator_disable(mmc->supply.vqmmc); in sdhci_setup_host()
4643 dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + in sdhci_setup_host()
4655 struct mmc_host *mmc = host->mmc; in sdhci_cleanup_host() local
4658 regulator_disable(mmc->supply.vqmmc); in sdhci_cleanup_host()
4661 dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + in sdhci_cleanup_host()
4676 struct mmc_host *mmc = host->mmc; in __sdhci_add_host() local
4679 if ((mmc->caps2 & MMC_CAP2_CQE) && in __sdhci_add_host()
4681 mmc->caps2 &= ~MMC_CAP2_CQE; in __sdhci_add_host()
4682 mmc->cqe_ops = NULL; in __sdhci_add_host()
4699 IRQF_SHARED, mmc_hostname(mmc), host); in __sdhci_add_host()
4702 mmc_hostname(mmc), host->irq, ret); in __sdhci_add_host()
4709 mmc_hostname(mmc), ret); in __sdhci_add_host()
4713 ret = mmc_add_host(mmc); in __sdhci_add_host()
4718 mmc_hostname(mmc), host->hw_name, dev_name(mmc_dev(mmc)), in __sdhci_add_host()
4765 struct mmc_host *mmc = host->mmc; in sdhci_remove_host() local
4775 " transfer!\n", mmc_hostname(mmc)); in sdhci_remove_host()
4784 mmc_remove_host(mmc); in sdhci_remove_host()
4801 regulator_disable(mmc->supply.vqmmc); in sdhci_remove_host()
4804 dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + in sdhci_remove_host()
4819 mmc_free_host(host->mmc); in sdhci_free_host()