lkml.org 
[lkml]   [2022]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH] mmc: use mmc_card_* macro and add it for sd_combo
Date
Dear Uffe,

Thank you for your review comment. :)
I'll split this patch into two, and re-submit this as your request.


> -----Original Message-----
> From: Ulf Hansson <ulf.hansson@linaro.org>
> Sent: Tuesday, July 12, 2022 7:57 PM
> To: Seunghui Lee <sh043.lee@samsung.com>
> Cc: linux-mmc@vger.kernel.org; linux-kernel@vger.kernel.org;
> axboe@kernel.dk; Avri.Altman@wdc.com; shawn.lin@rock-chips.com;
> adrian.hunter@intel.com; grant.jung@samsung.com; jt77.jang@samsung.com;
> dh0421.hwang@samsung.com; junwoo80.lee@samsung.com; jangsub.yi@samsung.com;
> cw9316.lee@samsung.com; sh8267.baek@samsung.com; wkon.kim@samsung.com;
> seunghwan.hyun@samsung.com
> Subject: Re: [PATCH] mmc: use mmc_card_* macro and add it for sd_combo
>
> On Tue, 5 Jul 2022 at 03:25, Seunghui Lee <sh043.lee@samsung.com> wrote:
> >
> > add mmc_card_sd_combo() macro for sd combo type card and use
> > mmc_card_* macro to simplify instead of comparing card->type
> >
> > Signed-off-by: Seunghui Lee <sh043.lee@samsung.com>
>
> Nice cleanup! I minor thing though, see below.
>
> > ---
> > drivers/mmc/core/block.c | 4 ++--
> > drivers/mmc/core/bus.c | 4 ++--
> > drivers/mmc/core/sd.c | 2 +-
> > drivers/mmc/core/sdio.c | 16 ++++++++--------
> > drivers/mmc/host/mxcmmc.c | 2 +-
>
> Please split this patch into two. One for the core and one for the mxcmmc
> driver.
>
> Otherwise this looks good to me!
>
> Kind regards
> Uffe
>
> > include/linux/mmc/card.h | 1 +
> > 6 files changed, 15 insertions(+), 14 deletions(-)
> >
> > diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index
> > bda6c67ce93f..4d7ae8fc2901 100644
> > --- a/drivers/mmc/core/block.c
> > +++ b/drivers/mmc/core/block.c
> > @@ -2987,7 +2987,7 @@ static int mmc_blk_probe(struct mmc_card *card)
> > * Don't enable runtime PM for SD-combo cards here. Leave that
> > * 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_enable(&card->dev);
> > }
> > @@ -3014,7 +3014,7 @@ static void mmc_blk_remove(struct mmc_card *card)
> > mmc_blk_part_switch(card, md->part_type);
> > 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_put_noidle(&card->dev);
> > mmc_blk_remove_req(md);
> > diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c index
> > 58a60afa650b..d8762fa3d5cd 100644
> > --- a/drivers/mmc/core/bus.c
> > +++ b/drivers/mmc/core/bus.c
> > @@ -85,7 +85,7 @@ mmc_bus_uevent(struct device *dev, struct
> kobj_uevent_env *env)
> > 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",
> > card->cis.vendor, card->cis.device);
> > if (retval)
> > @@ -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
> > * have accessible CID register which used by mmc_card_name()
> function.
> > */
> > - if (card->type == MMC_TYPE_SDIO)
> > + if (mmc_card_sdio(card))
> > return 0;
> >
> > retval = add_uevent_var(env, "MMC_NAME=%s",
> > mmc_card_name(card)); diff --git a/drivers/mmc/core/sd.c
> > b/drivers/mmc/core/sd.c index c5f1df6ce4c0..f0186bdf2025 100644
> > --- a/drivers/mmc/core/sd.c
> > +++ b/drivers/mmc/core/sd.c
> > @@ -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_info3.attr ||
> > attr == &dev_attr_info4.attr
> > - ) && card->type != MMC_TYPE_SD_COMBO)
> > + ) &&!mmc_card_sd_combo(card))
> > return 0;
> >
> > return attr->mode;
> > diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index
> > 25799accf8a0..b589df1c35e0 100644
> > --- a/drivers/mmc/core/sdio.c
> > +++ b/drivers/mmc/core/sdio.c
> > @@ -335,7 +335,7 @@ static int sdio_disable_4bit_bus(struct mmc_card
> > *card) {
> > int err;
> >
> > - if (card->type == MMC_TYPE_SDIO)
> > + if (mmc_card_sdio(card))
> > goto out;
> >
> > if (!(card->host->caps & MMC_CAP_4_BIT_DATA)) @@ -360,7 +360,7
> > @@ static int sdio_enable_4bit_bus(struct mmc_card *card)
> > err = sdio_enable_wide(card);
> > if (err <= 0)
> > return err;
> > - if (card->type == MMC_TYPE_SDIO)
> > + if (mmc_card_sdio(card))
> > goto out;
> >
> > if (card->scr.bus_widths & SD_SCR_BUS_WIDTH_4) { @@ -415,7
> > +415,7 @@ static int sdio_enable_hs(struct mmc_card *card)
> > int ret;
> >
> > ret = mmc_sdio_switch_hs(card, true);
> > - if (ret <= 0 || card->type == MMC_TYPE_SDIO)
> > + if (ret <= 0 || mmc_card_sdio(card))
> > return ret;
> >
> > ret = mmc_sd_switch_hs(card);
> > @@ -441,7 +441,7 @@ static unsigned mmc_sdio_get_max_clock(struct
> mmc_card *card)
> > 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));
> >
> > return max_dtr;
> > @@ -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) {
> > 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)) {
> > err = -ENOENT;
> > goto mismatch; @@ -697,7 +697,7 @@ static int
> > mmc_sdio_init_card(struct mmc_host *host, u32 ocr,
> > } else {
> > card->type = MMC_TYPE_SDIO;
> >
> > - if (oldcard && oldcard->type != MMC_TYPE_SDIO) {
> > + if (oldcard && !mmc_card_sdio(oldcard)) {
> > err = -ENOENT;
> > goto mismatch;
> > }
> > @@ -754,7 +754,7 @@ static int mmc_sdio_init_card(struct mmc_host *host,
> u32 ocr,
> > /*
> > * 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);
> > if (err)
> > goto remove;
> > @@ -827,7 +827,7 @@ static int mmc_sdio_init_card(struct mmc_host
> > *host, u32 ocr,
> >
> > 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);
> > /* handle as SDIO-only card if memory init failed */
> > if (err) {
> > diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c
> > index 613f13306433..2cf0413407ea 100644
> > --- a/drivers/mmc/host/mxcmmc.c
> > +++ b/drivers/mmc/host/mxcmmc.c
> > @@ -923,7 +923,7 @@ static void mxcmci_init_card(struct mmc_host *host,
> struct mmc_card *card)
> > * One way to prevent this is to only allow 1-bit transfers.
> > */
> >
> > - if (is_imx31_mmc(mxcmci) && card->type == MMC_TYPE_SDIO)
> > + if (is_imx31_mmc(mxcmci) && mmc_card_sdio(card))
> > host->caps &= ~MMC_CAP_4_BIT_DATA;
> > else
> > host->caps |= MMC_CAP_4_BIT_DATA; diff --git
> > a/include/linux/mmc/card.h b/include/linux/mmc/card.h index
> > 37f975875102..156a7b673a28 100644
> > --- a/include/linux/mmc/card.h
> > +++ b/include/linux/mmc/card.h
> > @@ -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_sd(c) ((c)->type == MMC_TYPE_SD)
> > #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 */
> > --
> > 2.29.0
> >

\
 
 \ /
  Last update: 2022-07-13 03:26    [W:0.067 / U:0.492 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site