The following diagram is a high-level overview of the SD/MMC driver. The "SD/MMC block device" implements the standard block_device interface. The "SD/MMC request interface" is the external interface, and it's conforming to the asynchronous interface design (see Asynchronous Request Architecture). The "SD/MMC probe engine" is a task running in a workqueue probing for presense of cards.
A sdmmc_request contains parts of the typical data for a communication sequence against a SD or MMC card. One of the field is required and that is the command (sdmmc_request::cmd). Other optional fields are:
1.5.8