__mmc_switch(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ __mmc_switch(9) πŸŽ€

okay so bestie, welcome to the Kernel API Manual β€” we're looking at __mmc_switch(9), and she's literally the function that modifies the EXT_CSD register. main character energy for MMC cards, no cap. πŸ’…

πŸ’– NAME πŸ’–

__mmc_switch β€” modify EXT_CSD register. that's the whole vibe: one function, one register glow-up. ✨

✨ SYNOPSIS ✨

int __mmc_switch (struct mmc_card *card , u8 set , u8 index , u8 value ,
unsigned int timeout_ms , unsigned char timing , bool send_status , bool
retry_crc_err , unsigned int retries );

πŸŽ€ ARGUMENTS πŸŽ€

  • card β€” the MMC card associated with the data transfer. she's the main character here, obviously. πŸ’³
  • set β€” cmd set values. yep, exactly what it says.
  • index β€” EXT_CSD register index. this is the lil address situation.
  • value β€” value to program into the EXT_CSD register. the actual content going in.
  • timeout_ms β€” timeout in milliseconds for the operation performed by the register write. a timeout of zero implies the maximum possible timeout β€” so bestie, zero does not mean "instant", it means "wait as long as possible". 😭
  • timing β€” new timing to change to. glow-up timing, basically.
  • send_status β€” send a status cmd to poll for busy. yes, we're checking if she's still working.
  • retry_crc_err β€” retry when there are CRC errors when polling with CMD13 for busy. because sometimes the vibe check fails and we try again. πŸ’€
  • retries β€” number of retries. literally how many do-overs you get.

πŸ¦‹ DESCRIPTION πŸ¦‹

Modifies the EXT_CSD register for the selected card. that's it, that's the function β€” pick a card, write the register, keep it cute. no extra lore needed. ✨

🌈 SEE ALSO 🌈

go read those if you want the full friend-group lore. iykyk. 🫢


xoxo, your kernel bestie πŸ’‹ β€” source/version: ./drivers/mmc/core, dated October 2026. periodt. πŸŽ€

πŸ“¦ where this page comes from