提交 3beb0ab5 编写于 作者: S Seunghui Lee 提交者: Ulf Hansson

mmc: core: Use mmc_card_* macro and add a new for the sd_combo type

Add mmc_card_sd_combo() macro for sd combo type card and use the mmc_card_*
macro to simplify code instead of comparing card->type.
Signed-off-by: NSeunghui Lee <sh043.lee@samsung.com>
Link: https://lore.kernel.org/r/20220713033635.28432-2-sh043.lee@samsung.comSigned-off-by: NUlf Hansson <ulf.hansson@linaro.org>
上级 54c16b52
...@@ -2988,7 +2988,7 @@ static int mmc_blk_probe(struct mmc_card *card) ...@@ -2988,7 +2988,7 @@ static int mmc_blk_probe(struct mmc_card *card)
* Don't enable runtime PM for SD-combo cards here. Leave that * Don't enable runtime PM for SD-combo cards here. Leave that
* decision to be taken during the SDIO init sequence instead. * decision to be taken during the SDIO init sequence instead.
*/ */
if (card->type != MMC_TYPE_SD_COMBO) { if (!mmc_card_sd_combo(card)) {
pm_runtime_set_active(&card->dev); pm_runtime_set_active(&card->dev);
pm_runtime_enable(&card->dev); pm_runtime_enable(&card->dev);
} }
...@@ -3015,7 +3015,7 @@ static void mmc_blk_remove(struct mmc_card *card) ...@@ -3015,7 +3015,7 @@ static void mmc_blk_remove(struct mmc_card *card)
mmc_blk_part_switch(card, md->part_type); mmc_blk_part_switch(card, md->part_type);
mmc_release_host(card->host); mmc_release_host(card->host);
} }
if (card->type != MMC_TYPE_SD_COMBO) if (!mmc_card_sd_combo(card))
pm_runtime_disable(&card->dev); pm_runtime_disable(&card->dev);
pm_runtime_put_noidle(&card->dev); pm_runtime_put_noidle(&card->dev);
mmc_blk_remove_req(md); mmc_blk_remove_req(md);
......
...@@ -85,7 +85,7 @@ mmc_bus_uevent(struct device *dev, struct kobj_uevent_env *env) ...@@ -85,7 +85,7 @@ mmc_bus_uevent(struct device *dev, struct kobj_uevent_env *env)
return retval; return retval;
} }
if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) { if (mmc_card_sdio(card) || mmc_card_sd_combo(card)) {
retval = add_uevent_var(env, "SDIO_ID=%04X:%04X", retval = add_uevent_var(env, "SDIO_ID=%04X:%04X",
card->cis.vendor, card->cis.device); card->cis.vendor, card->cis.device);
if (retval) if (retval)
...@@ -107,7 +107,7 @@ mmc_bus_uevent(struct device *dev, struct kobj_uevent_env *env) ...@@ -107,7 +107,7 @@ mmc_bus_uevent(struct device *dev, struct kobj_uevent_env *env)
* SDIO (non-combo) cards are not handled by mmc_block driver and do not * SDIO (non-combo) cards are not handled by mmc_block driver and do not
* have accessible CID register which used by mmc_card_name() function. * have accessible CID register which used by mmc_card_name() function.
*/ */
if (card->type == MMC_TYPE_SDIO) if (mmc_card_sdio(card))
return 0; return 0;
retval = add_uevent_var(env, "MMC_NAME=%s", mmc_card_name(card)); retval = add_uevent_var(env, "MMC_NAME=%s", mmc_card_name(card));
......
...@@ -793,7 +793,7 @@ static umode_t sd_std_is_visible(struct kobject *kobj, struct attribute *attr, ...@@ -793,7 +793,7 @@ static umode_t sd_std_is_visible(struct kobject *kobj, struct attribute *attr,
attr == &dev_attr_info2.attr || attr == &dev_attr_info2.attr ||
attr == &dev_attr_info3.attr || attr == &dev_attr_info3.attr ||
attr == &dev_attr_info4.attr attr == &dev_attr_info4.attr
) && card->type != MMC_TYPE_SD_COMBO) ) &&!mmc_card_sd_combo(card))
return 0; return 0;
return attr->mode; return attr->mode;
......
...@@ -335,7 +335,7 @@ static int sdio_disable_4bit_bus(struct mmc_card *card) ...@@ -335,7 +335,7 @@ static int sdio_disable_4bit_bus(struct mmc_card *card)
{ {
int err; int err;
if (card->type == MMC_TYPE_SDIO) if (mmc_card_sdio(card))
goto out; goto out;
if (!(card->host->caps & MMC_CAP_4_BIT_DATA)) if (!(card->host->caps & MMC_CAP_4_BIT_DATA))
...@@ -360,7 +360,7 @@ static int sdio_enable_4bit_bus(struct mmc_card *card) ...@@ -360,7 +360,7 @@ static int sdio_enable_4bit_bus(struct mmc_card *card)
err = sdio_enable_wide(card); err = sdio_enable_wide(card);
if (err <= 0) if (err <= 0)
return err; return err;
if (card->type == MMC_TYPE_SDIO) if (mmc_card_sdio(card))
goto out; goto out;
if (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4) { if (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4) {
...@@ -415,7 +415,7 @@ static int sdio_enable_hs(struct mmc_card *card) ...@@ -415,7 +415,7 @@ static int sdio_enable_hs(struct mmc_card *card)
int ret; int ret;
ret = mmc_sdio_switch_hs(card, true); ret = mmc_sdio_switch_hs(card, true);
if (ret <= 0 || card->type == MMC_TYPE_SDIO) if (ret <= 0 || mmc_card_sdio(card))
return ret; return ret;
ret = mmc_sd_switch_hs(card); ret = mmc_sd_switch_hs(card);
...@@ -441,7 +441,7 @@ static unsigned mmc_sdio_get_max_clock(struct mmc_card *card) ...@@ -441,7 +441,7 @@ static unsigned mmc_sdio_get_max_clock(struct mmc_card *card)
max_dtr = card->cis.max_dtr; max_dtr = card->cis.max_dtr;
} }
if (card->type == MMC_TYPE_SD_COMBO) if (mmc_card_sd_combo(card))
max_dtr = min(max_dtr, mmc_sd_get_max_clock(card)); max_dtr = min(max_dtr, mmc_sd_get_max_clock(card));
return max_dtr; return max_dtr;
...@@ -689,7 +689,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, ...@@ -689,7 +689,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
mmc_sd_get_cid(host, ocr & rocr, card->raw_cid, NULL) == 0) { mmc_sd_get_cid(host, ocr & rocr, card->raw_cid, NULL) == 0) {
card->type = MMC_TYPE_SD_COMBO; card->type = MMC_TYPE_SD_COMBO;
if (oldcard && (oldcard->type != MMC_TYPE_SD_COMBO || if (oldcard && (!mmc_card_sd_combo(oldcard) ||
memcmp(card->raw_cid, oldcard->raw_cid, sizeof(card->raw_cid)) != 0)) { memcmp(card->raw_cid, oldcard->raw_cid, sizeof(card->raw_cid)) != 0)) {
err = -ENOENT; err = -ENOENT;
goto mismatch; goto mismatch;
...@@ -697,7 +697,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, ...@@ -697,7 +697,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
} else { } else {
card->type = MMC_TYPE_SDIO; card->type = MMC_TYPE_SDIO;
if (oldcard && oldcard->type != MMC_TYPE_SDIO) { if (oldcard && !mmc_card_sdio(oldcard)) {
err = -ENOENT; err = -ENOENT;
goto mismatch; goto mismatch;
} }
...@@ -754,7 +754,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, ...@@ -754,7 +754,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
/* /*
* Read CSD, before selecting the card * Read CSD, before selecting the card
*/ */
if (!oldcard && card->type == MMC_TYPE_SD_COMBO) { if (!oldcard && mmc_card_sd_combo(card)) {
err = mmc_sd_get_csd(card); err = mmc_sd_get_csd(card);
if (err) if (err)
goto remove; goto remove;
...@@ -827,7 +827,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, ...@@ -827,7 +827,7 @@ static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
mmc_fixup_device(card, sdio_fixup_methods); mmc_fixup_device(card, sdio_fixup_methods);
if (card->type == MMC_TYPE_SD_COMBO) { if (mmc_card_sd_combo(card)) {
err = mmc_sd_setup_card(host, card, oldcard != NULL); err = mmc_sd_setup_card(host, card, oldcard != NULL);
/* handle as SDIO-only card if memory init failed */ /* handle as SDIO-only card if memory init failed */
if (err) { if (err) {
......
...@@ -348,5 +348,6 @@ bool mmc_card_is_blockaddr(struct mmc_card *card); ...@@ -348,5 +348,6 @@ bool mmc_card_is_blockaddr(struct mmc_card *card);
#define mmc_card_mmc(c) ((c)->type == MMC_TYPE_MMC) #define mmc_card_mmc(c) ((c)->type == MMC_TYPE_MMC)
#define mmc_card_sd(c) ((c)->type == MMC_TYPE_SD) #define mmc_card_sd(c) ((c)->type == MMC_TYPE_SD)
#define mmc_card_sdio(c) ((c)->type == MMC_TYPE_SDIO) #define mmc_card_sdio(c) ((c)->type == MMC_TYPE_SDIO)
#define mmc_card_sd_combo(c) ((c)->type == MMC_TYPE_SD_COMBO)
#endif /* LINUX_MMC_CARD_H */ #endif /* LINUX_MMC_CARD_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册