Lines Matching full:if
36 if (mmc_card_nonstd_func_interface(func->card)) { in sdio_read_fbr()
43 if (ret) in sdio_read_fbr()
48 if (data == 0x0f) { in sdio_read_fbr()
51 if (ret) in sdio_read_fbr()
69 if (IS_ERR(func)) in sdio_init_func()
74 if (!(card->quirks & MMC_QUIRK_NONSTD_SDIO)) { in sdio_init_func()
76 if (ret) in sdio_init_func()
80 if (ret) in sdio_init_func()
112 if (ret) in sdio_read_cccr()
117 if (cccr_vsn > SDIO_CCCR_REV_3_00) { in sdio_read_cccr()
126 if (ret) in sdio_read_cccr()
129 if (data & SDIO_CCCR_CAP_SMB) in sdio_read_cccr()
131 if (data & SDIO_CCCR_CAP_LSC) in sdio_read_cccr()
133 if (data & SDIO_CCCR_CAP_4BLS) in sdio_read_cccr()
136 if (cccr_vsn >= SDIO_CCCR_REV_1_10) { in sdio_read_cccr()
138 if (ret) in sdio_read_cccr()
141 if (data & SDIO_POWER_SMPC) in sdio_read_cccr()
145 if (cccr_vsn >= SDIO_CCCR_REV_1_20) { in sdio_read_cccr()
147 if (ret) in sdio_read_cccr()
153 if (cccr_vsn >= SDIO_CCCR_REV_3_00 && uhs) { in sdio_read_cccr()
157 if (ret) in sdio_read_cccr()
160 if (card->host->caps & in sdio_read_cccr()
164 if (data & SDIO_UHS_DDR50) in sdio_read_cccr()
168 if (data & SDIO_UHS_SDR50) in sdio_read_cccr()
172 if (data & SDIO_UHS_SDR104) in sdio_read_cccr()
179 if (ret) in sdio_read_cccr()
182 if (data & SDIO_DRIVE_SDTA) in sdio_read_cccr()
184 if (data & SDIO_DRIVE_SDTC) in sdio_read_cccr()
186 if (data & SDIO_DRIVE_SDTD) in sdio_read_cccr()
190 /* if no uhs mode ensure we check for high speed */ in sdio_read_cccr()
191 if (!card->sw_caps.sd3_bus_mode) { in sdio_read_cccr()
192 if (speed & SDIO_SPEED_SHS) { in sdio_read_cccr()
211 if (!(card->host->caps & MMC_CAP_4_BIT_DATA)) in sdio_enable_wide()
214 if (card->cccr.low_speed && !card->cccr.wide_bus) in sdio_enable_wide()
218 if (ret) in sdio_enable_wide()
224 if (ret) in sdio_enable_wide()
231 * If desired, disconnect the pull-up resistor on CD/DAT[3] (pin 1)
241 if (!mmc_card_disable_cd(card)) in sdio_disable_cd()
245 if (ret) in sdio_disable_cd()
262 if (!(card->host->caps & MMC_CAP_4_BIT_DATA)) in sdio_disable_wide()
265 if (card->cccr.low_speed && !card->cccr.wide_bus) in sdio_disable_wide()
269 if (ret) in sdio_disable_wide()
272 if (!(ctrl & SDIO_BUS_WIDTH_4BIT)) in sdio_disable_wide()
279 if (ret) in sdio_disable_wide()
292 if (card->type == MMC_TYPE_SDIO) in sdio_enable_4bit_bus()
295 if ((card->host->caps & MMC_CAP_4_BIT_DATA) && in sdio_enable_4bit_bus()
298 if (err) in sdio_enable_4bit_bus()
304 if (err <= 0) in sdio_enable_4bit_bus()
312 * Test if the card supports high-speed mode and, if so, switch to it.
319 if (!(card->host->caps & MMC_CAP_SD_HIGHSPEED)) in mmc_sdio_switch_hs()
322 if (!card->cccr.high_speed) in mmc_sdio_switch_hs()
326 if (ret) in mmc_sdio_switch_hs()
329 if (enable) in mmc_sdio_switch_hs()
335 if (ret) in mmc_sdio_switch_hs()
342 * Enable SDIO/combo card's high-speed mode. Return 0/1 if [not]supported.
349 if (ret <= 0 || card->type == MMC_TYPE_SDIO) in sdio_enable_hs()
353 if (ret <= 0) in sdio_enable_hs()
363 if (mmc_card_highspeed(card)) { in mmc_sdio_get_max_clock()
375 if (card->type == MMC_TYPE_SD_COMBO) in mmc_sdio_get_max_clock()
406 * If the host doesn't support any of the Driver Types A,C or D, in sdio_select_driver_type()
410 if (!(card->host->caps & in sdio_select_driver_type()
416 if (!card->host->ops->select_drive_strength) in sdio_select_driver_type()
419 if (card->host->caps & MMC_CAP_DRIVER_TYPE_A) in sdio_select_driver_type()
422 if (card->host->caps & MMC_CAP_DRIVER_TYPE_C) in sdio_select_driver_type()
425 if (card->host->caps & MMC_CAP_DRIVER_TYPE_D) in sdio_select_driver_type()
428 if (card->sw_caps.sd3_drv_type & SD_DRIVER_TYPE_A) in sdio_select_driver_type()
431 if (card->sw_caps.sd3_drv_type & SD_DRIVER_TYPE_C) in sdio_select_driver_type()
434 if (card->sw_caps.sd3_drv_type & SD_DRIVER_TYPE_D) in sdio_select_driver_type()
447 /* if error just use default for drive strength B */ in sdio_select_driver_type()
450 if (err) in sdio_select_driver_type()
459 /* if error default to drive strength B */ in sdio_select_driver_type()
460 if (!err) in sdio_select_driver_type()
472 * If the host doesn't support any of the UHS-I modes, fallback on in sdio_set_bus_speed_mode()
475 if (!(card->host->caps & (MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25 | in sdio_set_bus_speed_mode()
481 if ((card->host->caps & MMC_CAP_UHS_SDR104) && in sdio_set_bus_speed_mode()
486 } else if ((card->host->caps & MMC_CAP_UHS_DDR50) && in sdio_set_bus_speed_mode()
491 } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | in sdio_set_bus_speed_mode()
497 } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | in sdio_set_bus_speed_mode()
503 } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | in sdio_set_bus_speed_mode()
513 if (err) in sdio_set_bus_speed_mode()
519 if (err) in sdio_set_bus_speed_mode()
522 if (bus_speed) { in sdio_set_bus_speed_mode()
537 if (!card->scr.sda_spec3) in mmc_sdio_init_uhs_card()
541 * Switch to wider bus (if supported). in mmc_sdio_init_uhs_card()
543 if (card->host->caps & MMC_CAP_4_BIT_DATA) { in mmc_sdio_init_uhs_card()
545 if (err > 0) { in mmc_sdio_init_uhs_card()
556 if (err) in mmc_sdio_init_uhs_card()
560 if (!mmc_host_is_spi(card->host) && card->host->ops->execute_tuning) in mmc_sdio_init_uhs_card()
587 if (!powered_resume) { in mmc_sdio_init_card()
592 if (err) in mmc_sdio_init_card()
599 if (mmc_host_is_spi(host)) { in mmc_sdio_init_card()
601 if (err) in mmc_sdio_init_card()
609 if (IS_ERR(card)) { in mmc_sdio_init_card()
614 if ((ocr & R4_MEMORY_PRESENT) && in mmc_sdio_init_card()
618 if (oldcard && (oldcard->type != MMC_TYPE_SD_COMBO || in mmc_sdio_init_card()
626 if (oldcard && oldcard->type != MMC_TYPE_SDIO) { in mmc_sdio_init_card()
635 if (host->ops->init_card) in mmc_sdio_init_card()
639 * If the host and card support UHS-I mode request the card in mmc_sdio_init_card()
640 * to switch to 1.8V signaling level. No 1.8v signalling if in mmc_sdio_init_card()
645 if ((ocr & R4_18V_PRESENT) && in mmc_sdio_init_card()
652 if (err) { in mmc_sdio_init_card()
665 if (!powered_resume && !mmc_host_is_spi(host)) { in mmc_sdio_init_card()
667 if (err) in mmc_sdio_init_card()
675 if (oldcard) in mmc_sdio_init_card()
682 if (!oldcard && card->type == MMC_TYPE_SD_COMBO) { in mmc_sdio_init_card()
684 if (err) in mmc_sdio_init_card()
693 if (!powered_resume && !mmc_host_is_spi(host)) { in mmc_sdio_init_card()
695 if (err) in mmc_sdio_init_card()
699 if (card->quirks & MMC_QUIRK_NONSTD_SDIO) { in mmc_sdio_init_card()
708 if (card->cccr.high_speed) { in mmc_sdio_init_card()
720 if (err) in mmc_sdio_init_card()
727 if (err) in mmc_sdio_init_card()
730 if (oldcard) { in mmc_sdio_init_card()
734 if (!same) in mmc_sdio_init_card()
741 if (card->type == MMC_TYPE_SD_COMBO) { in mmc_sdio_init_card()
743 /* handle as SDIO-only card if memory init failed */ in mmc_sdio_init_card()
744 if (err) { in mmc_sdio_init_card()
746 if (mmc_host_is_spi(host)) in mmc_sdio_init_card()
755 * If needed, disconnect card detection pull-up resistor. in mmc_sdio_init_card()
758 if (err) in mmc_sdio_init_card()
762 /* Only if card supports 1.8v and UHS signaling */ in mmc_sdio_init_card()
763 if ((ocr & R4_18V_PRESENT) && card->sw_caps.sd3_bus_mode) { in mmc_sdio_init_card()
765 if (err) in mmc_sdio_init_card()
772 * Switch to high-speed (if supported). in mmc_sdio_init_card()
775 if (err > 0) in mmc_sdio_init_card()
777 else if (err) in mmc_sdio_init_card()
786 * Switch to wider bus (if supported). in mmc_sdio_init_card()
789 if (err > 0) in mmc_sdio_init_card()
791 else if (err) in mmc_sdio_init_card()
795 if (!oldcard) in mmc_sdio_init_card()
800 if (!oldcard) in mmc_sdio_init_card()
818 if (host->card->sdio_func[i]) { in mmc_sdio_remove()
847 if (host->caps & MMC_CAP_POWER_OFF_CARD) { in mmc_sdio_detect()
849 if (err < 0) in mmc_sdio_detect()
856 * Just check if our card has been removed. in mmc_sdio_detect()
873 if (host->caps & MMC_CAP_POWER_OFF_CARD) in mmc_sdio_detect()
877 if (err) { in mmc_sdio_detect()
898 if (func && sdio_func_present(func) && func->dev.driver) { in mmc_sdio_suspend()
900 if (!pmops || !pmops->suspend || !pmops->resume) { in mmc_sdio_suspend()
905 if (err) in mmc_sdio_suspend()
911 if (func && sdio_func_present(func) && func->dev.driver) { in mmc_sdio_suspend()
917 if (!err && mmc_card_keep_power(host) && mmc_card_wake_sdio_irq(host)) { in mmc_sdio_suspend()
937 if (mmc_card_is_removable(host) || !mmc_card_keep_power(host)) in mmc_sdio_resume()
940 else if (mmc_card_keep_power(host) && mmc_card_wake_sdio_irq(host)) { in mmc_sdio_resume()
943 if (err > 0) { in mmc_sdio_resume()
949 if (!err && host->sdio_irqs) in mmc_sdio_resume()
954 * If the card looked to be the same as before suspending, then in mmc_sdio_resume()
955 * we proceed to resume all card functions. If one of them returns in mmc_sdio_resume()
965 if (func && sdio_func_present(func) && func->dev.driver) { in mmc_sdio_resume()
1004 if (!mmc_card_keep_power(host)) in mmc_sdio_power_restore()
1012 if (ret) in mmc_sdio_power_restore()
1015 if (host->ocr_avail_sdio) in mmc_sdio_power_restore()
1019 if (!host->ocr) { in mmc_sdio_power_restore()
1026 if (!ret && host->sdio_irqs) in mmc_sdio_power_restore()
1058 if (err) in mmc_attach_sdio()
1062 if (host->ocr_avail_sdio) in mmc_attach_sdio()
1069 if (ocr & 0x7F) { in mmc_attach_sdio()
1081 if (!host->ocr) { in mmc_attach_sdio()
1090 if (err) { in mmc_attach_sdio()
1091 if (err == -EAGAIN) { in mmc_attach_sdio()
1098 if (err) in mmc_attach_sdio()
1104 * Enable runtime PM only if supported by host+card+board in mmc_attach_sdio()
1106 if (host->caps & MMC_CAP_POWER_OFF_CARD) { in mmc_attach_sdio()
1111 if (err) in mmc_attach_sdio()
1132 if (err) in mmc_attach_sdio()
1136 * Enable Runtime PM for this func (if supported) in mmc_attach_sdio()
1138 if (host->caps & MMC_CAP_POWER_OFF_CARD) in mmc_attach_sdio()
1147 if (err) in mmc_attach_sdio()
1155 if (err) in mmc_attach_sdio()
1164 /* Remove without lock if the device has been added. */ in mmc_attach_sdio()
1168 /* And with lock if it hasn't been added. */ in mmc_attach_sdio()
1170 if (host->card) in mmc_attach_sdio()