Lines Matching refs:card
57 static inline int __mmc_send_status(struct mmc_card *card, u32 *status, in __mmc_send_status() argument
63 BUG_ON(!card); in __mmc_send_status()
64 BUG_ON(!card->host); in __mmc_send_status()
67 if (!mmc_host_is_spi(card->host)) in __mmc_send_status()
68 cmd.arg = card->rca << 16; in __mmc_send_status()
73 err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES); in __mmc_send_status()
86 int mmc_send_status(struct mmc_card *card, u32 *status) in mmc_send_status() argument
88 return __mmc_send_status(card, status, false); in mmc_send_status()
91 static int _mmc_select_card(struct mmc_host *host, struct mmc_card *card) in _mmc_select_card() argument
100 if (card) { in _mmc_select_card()
101 cmd.arg = card->rca << 16; in _mmc_select_card()
115 int mmc_select_card(struct mmc_card *card) in mmc_select_card() argument
117 BUG_ON(!card); in mmc_select_card()
119 return _mmc_select_card(card->host, card); in mmc_select_card()
245 int mmc_set_relative_addr(struct mmc_card *card) in mmc_set_relative_addr() argument
250 BUG_ON(!card); in mmc_set_relative_addr()
251 BUG_ON(!card->host); in mmc_set_relative_addr()
254 cmd.arg = card->rca << 16; in mmc_set_relative_addr()
257 err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES); in mmc_set_relative_addr()
291 mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host, in mmc_send_cxd_data() argument
328 mmc_set_data_timeout(&data, card); in mmc_send_cxd_data()
340 int mmc_send_csd(struct mmc_card *card, u32 *csd) in mmc_send_csd() argument
345 if (!mmc_host_is_spi(card->host)) in mmc_send_csd()
346 return mmc_send_cxd_native(card->host, card->rca << 16, in mmc_send_csd()
353 ret = mmc_send_cxd_data(card, card->host, MMC_SEND_CSD, csd_tmp, 16); in mmc_send_csd()
371 if (!host->card) in mmc_send_cid()
373 return mmc_send_cxd_native(host, host->card->rca << 16, in mmc_send_cid()
393 int mmc_get_ext_csd(struct mmc_card *card, u8 **new_ext_csd) in mmc_get_ext_csd() argument
398 if (!card || !new_ext_csd) in mmc_get_ext_csd()
401 if (!mmc_can_ext_csd(card)) in mmc_get_ext_csd()
412 err = mmc_send_cxd_data(card, card->host, MMC_SEND_EXT_CSD, ext_csd, in mmc_get_ext_csd()
482 int __mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value, in __mmc_switch() argument
486 struct mmc_host *host = card->host; in __mmc_switch()
548 err = __mmc_send_status(card, &status, ignore_crc); in __mmc_switch()
583 int mmc_switch(struct mmc_card *card, u8 set, u8 index, u8 value, in mmc_switch() argument
586 return __mmc_switch(card, set, index, value, timeout_ms, true, true, in mmc_switch()
661 mmc_send_bus_test(struct mmc_card *card, struct mmc_host *host, u8 opcode, in mmc_send_bus_test() argument
716 mmc_set_data_timeout(&data, card); in mmc_send_bus_test()
737 int mmc_bus_test(struct mmc_card *card, u8 bus_width) in mmc_bus_test() argument
754 mmc_send_bus_test(card, card->host, MMC_BUS_TEST_W, width); in mmc_bus_test()
755 err = mmc_send_bus_test(card, card->host, MMC_BUS_TEST_R, width); in mmc_bus_test()
759 int mmc_send_hpi_cmd(struct mmc_card *card, u32 *status) in mmc_send_hpi_cmd() argument
765 if (!card->ext_csd.hpi) { in mmc_send_hpi_cmd()
767 mmc_hostname(card->host)); in mmc_send_hpi_cmd()
771 opcode = card->ext_csd.hpi_cmd; in mmc_send_hpi_cmd()
778 cmd.arg = card->rca << 16 | 1; in mmc_send_hpi_cmd()
780 err = mmc_wait_for_cmd(card->host, &cmd, 0); in mmc_send_hpi_cmd()
783 "HPI command response %#x\n", mmc_hostname(card->host), in mmc_send_hpi_cmd()
793 int mmc_can_ext_csd(struct mmc_card *card) in mmc_can_ext_csd() argument
795 return (card && card->csd.mmca_vsn > CSD_SPEC_VER_3); in mmc_can_ext_csd()