Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c2c0af9 authored by Pierre Ossman's avatar Pierre Ossman
Browse files

mmc: add type field to cards



Split out the type of card into its own field as it hardly
qualifies as a state.

Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
parent 85a18ad9
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -980,7 +980,7 @@ static void mmc_discover_cards(struct mmc_host *host)
		card->state &= ~MMC_STATE_DEAD;

		if (host->mode == MMC_MODE_SD) {
			mmc_card_set_sd(card);
			card->type = MMC_TYPE_SD;

			cmd.opcode = SD_SEND_RELATIVE_ADDR;
			cmd.arg = 0;
@@ -1003,6 +1003,7 @@ static void mmc_discover_cards(struct mmc_host *host)
				}
			}
		} else {
			card->type = MMC_TYPE_MMC;
			cmd.opcode = MMC_SET_RELATIVE_ADDR;
			cmd.arg = card->rca << 16;
			cmd.flags = MMC_RSP_R1 | MMC_CMD_AC;
+9 −6
Original line number Diff line number Diff line
@@ -65,14 +65,16 @@ struct mmc_card {
	struct mmc_host		*host;		/* the host this device belongs to */
	struct device		dev;		/* the device */
	unsigned int		rca;		/* relative card address of device */
	unsigned int		type;		/* card type */
#define MMC_TYPE_MMC		0		/* MMC card */
#define MMC_TYPE_SD		1		/* SD card */
	unsigned int		state;		/* (our) card state */
#define MMC_STATE_PRESENT	(1<<0)		/* present in sysfs */
#define MMC_STATE_DEAD		(1<<1)		/* device no longer in stack */
#define MMC_STATE_BAD		(1<<2)		/* unrecognised device */
#define MMC_STATE_SDCARD	(1<<3)		/* is an SD card */
#define MMC_STATE_READONLY	(1<<4)		/* card is read-only */
#define MMC_STATE_HIGHSPEED	(1<<5)		/* card is in high speed mode */
#define MMC_STATE_BLOCKADDR	(1<<6)		/* card uses block-addressing */
#define MMC_STATE_READONLY	(1<<3)		/* card is read-only */
#define MMC_STATE_HIGHSPEED	(1<<4)		/* card is in high speed mode */
#define MMC_STATE_BLOCKADDR	(1<<5)		/* card uses block-addressing */
	u32			raw_cid[4];	/* raw card CID */
	u32			raw_csd[4];	/* raw card CSD */
	u32			raw_scr[2];	/* raw card SCR */
@@ -83,10 +85,12 @@ struct mmc_card {
	struct sd_switch_caps	sw_caps;	/* switch (CMD6) caps */
};

#define mmc_card_mmc(c)		((c)->type == MMC_TYPE_MMC)
#define mmc_card_sd(c)		((c)->type == MMC_TYPE_SD)

#define mmc_card_present(c)	((c)->state & MMC_STATE_PRESENT)
#define mmc_card_dead(c)	((c)->state & MMC_STATE_DEAD)
#define mmc_card_bad(c)		((c)->state & MMC_STATE_BAD)
#define mmc_card_sd(c)		((c)->state & MMC_STATE_SDCARD)
#define mmc_card_readonly(c)	((c)->state & MMC_STATE_READONLY)
#define mmc_card_highspeed(c)	((c)->state & MMC_STATE_HIGHSPEED)
#define mmc_card_blockaddr(c)	((c)->state & MMC_STATE_BLOCKADDR)
@@ -94,7 +98,6 @@ struct mmc_card {
#define mmc_card_set_present(c)	((c)->state |= MMC_STATE_PRESENT)
#define mmc_card_set_dead(c)	((c)->state |= MMC_STATE_DEAD)
#define mmc_card_set_bad(c)	((c)->state |= MMC_STATE_BAD)
#define mmc_card_set_sd(c)	((c)->state |= MMC_STATE_SDCARD)
#define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
#define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED)
#define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR)