diff options
| author | Dmitry Torokhov <dtor@insightbb.com> | 2007-05-08 01:31:11 -0400 |
|---|---|---|
| committer | Dmitry Torokhov <dtor@insightbb.com> | 2007-05-08 01:31:11 -0400 |
| commit | 334d0dd8b660557608142f0f77abc6812b48f08b (patch) | |
| tree | 9393a9aa099d7d42deda5f9f5054796c0c769be7 /include/linux/mmc/card.h | |
| parent | 3f07d8796262f6aee135c8dd9a91210da9f888e4 (diff) | |
| parent | 5b94f675f57e4ff16c8fda09088d7480a84dcd91 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include/linux/mmc/card.h')
| -rw-r--r-- | include/linux/mmc/card.h | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index e45712acfac5..badf702fcff4 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #ifndef LINUX_MMC_CARD_H | 10 | #ifndef LINUX_MMC_CARD_H |
| 11 | #define LINUX_MMC_CARD_H | 11 | #define LINUX_MMC_CARD_H |
| 12 | 12 | ||
| 13 | #include <linux/mmc/mmc.h> | 13 | #include <linux/mmc/core.h> |
| 14 | 14 | ||
| 15 | struct mmc_cid { | 15 | struct mmc_cid { |
| 16 | unsigned int manfid; | 16 | unsigned int manfid; |
| @@ -41,6 +41,7 @@ struct mmc_csd { | |||
| 41 | 41 | ||
| 42 | struct mmc_ext_csd { | 42 | struct mmc_ext_csd { |
| 43 | unsigned int hs_max_dtr; | 43 | unsigned int hs_max_dtr; |
| 44 | unsigned int sectors; | ||
| 44 | }; | 45 | }; |
| 45 | 46 | ||
| 46 | struct sd_scr { | 47 | struct sd_scr { |
| @@ -60,18 +61,17 @@ struct mmc_host; | |||
| 60 | * MMC device | 61 | * MMC device |
| 61 | */ | 62 | */ |
| 62 | struct mmc_card { | 63 | struct mmc_card { |
| 63 | struct list_head node; /* node in hosts devices list */ | ||
| 64 | struct mmc_host *host; /* the host this device belongs to */ | 64 | struct mmc_host *host; /* the host this device belongs to */ |
| 65 | struct device dev; /* the device */ | 65 | struct device dev; /* the device */ |
| 66 | unsigned int rca; /* relative card address of device */ | 66 | unsigned int rca; /* relative card address of device */ |
| 67 | unsigned int type; /* card type */ | ||
| 68 | #define MMC_TYPE_MMC 0 /* MMC card */ | ||
| 69 | #define MMC_TYPE_SD 1 /* SD card */ | ||
| 67 | unsigned int state; /* (our) card state */ | 70 | unsigned int state; /* (our) card state */ |
| 68 | #define MMC_STATE_PRESENT (1<<0) /* present in sysfs */ | 71 | #define MMC_STATE_PRESENT (1<<0) /* present in sysfs */ |
| 69 | #define MMC_STATE_DEAD (1<<1) /* device no longer in stack */ | 72 | #define MMC_STATE_READONLY (1<<1) /* card is read-only */ |
| 70 | #define MMC_STATE_BAD (1<<2) /* unrecognised device */ | 73 | #define MMC_STATE_HIGHSPEED (1<<2) /* card is in high speed mode */ |
| 71 | #define MMC_STATE_SDCARD (1<<3) /* is an SD card */ | 74 | #define MMC_STATE_BLOCKADDR (1<<3) /* card uses block-addressing */ |
| 72 | #define MMC_STATE_READONLY (1<<4) /* card is read-only */ | ||
| 73 | #define MMC_STATE_HIGHSPEED (1<<5) /* card is in high speed mode */ | ||
| 74 | #define MMC_STATE_BLOCKADDR (1<<6) /* card uses block-addressing */ | ||
| 75 | u32 raw_cid[4]; /* raw card CID */ | 75 | u32 raw_cid[4]; /* raw card CID */ |
| 76 | u32 raw_csd[4]; /* raw card CSD */ | 76 | u32 raw_csd[4]; /* raw card CSD */ |
| 77 | u32 raw_scr[2]; /* raw card SCR */ | 77 | u32 raw_scr[2]; /* raw card SCR */ |
| @@ -82,18 +82,15 @@ struct mmc_card { | |||
| 82 | struct sd_switch_caps sw_caps; /* switch (CMD6) caps */ | 82 | struct sd_switch_caps sw_caps; /* switch (CMD6) caps */ |
| 83 | }; | 83 | }; |
| 84 | 84 | ||
| 85 | #define mmc_card_mmc(c) ((c)->type == MMC_TYPE_MMC) | ||
| 86 | #define mmc_card_sd(c) ((c)->type == MMC_TYPE_SD) | ||
| 87 | |||
| 85 | #define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT) | 88 | #define mmc_card_present(c) ((c)->state & MMC_STATE_PRESENT) |
| 86 | #define mmc_card_dead(c) ((c)->state & MMC_STATE_DEAD) | ||
| 87 | #define mmc_card_bad(c) ((c)->state & MMC_STATE_BAD) | ||
| 88 | #define mmc_card_sd(c) ((c)->state & MMC_STATE_SDCARD) | ||
| 89 | #define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY) | 89 | #define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY) |
| 90 | #define mmc_card_highspeed(c) ((c)->state & MMC_STATE_HIGHSPEED) | 90 | #define mmc_card_highspeed(c) ((c)->state & MMC_STATE_HIGHSPEED) |
| 91 | #define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR) | 91 | #define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR) |
| 92 | 92 | ||
| 93 | #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) | 93 | #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) |
| 94 | #define mmc_card_set_dead(c) ((c)->state |= MMC_STATE_DEAD) | ||
| 95 | #define mmc_card_set_bad(c) ((c)->state |= MMC_STATE_BAD) | ||
| 96 | #define mmc_card_set_sd(c) ((c)->state |= MMC_STATE_SDCARD) | ||
| 97 | #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) | 94 | #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) |
| 98 | #define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED) | 95 | #define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED) |
| 99 | #define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR) | 96 | #define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR) |
| @@ -119,11 +116,4 @@ struct mmc_driver { | |||
| 119 | extern int mmc_register_driver(struct mmc_driver *); | 116 | extern int mmc_register_driver(struct mmc_driver *); |
| 120 | extern void mmc_unregister_driver(struct mmc_driver *); | 117 | extern void mmc_unregister_driver(struct mmc_driver *); |
| 121 | 118 | ||
| 122 | static inline int mmc_card_claim_host(struct mmc_card *card) | ||
| 123 | { | ||
| 124 | return __mmc_claim_host(card->host, card); | ||
| 125 | } | ||
| 126 | |||
| 127 | #define mmc_card_release_host(c) mmc_release_host((c)->host) | ||
| 128 | |||
| 129 | #endif | 119 | #endif |
