From: Jaehoon Chung <jh80.chung@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3] mmc-uclass: correct the device number
Date: Fri, 22 Jul 2016 13:14:04 +0900 [thread overview]
Message-ID: <57919D8C.3070002@samsung.com> (raw)
In-Reply-To: <CAPnjgZ0ga3mAU5vtsq6EFNbdNmKsPF8sXFERDbV1mUGufwvEbw@mail.gmail.com>
Hi Simon,
On 07/22/2016 12:21 PM, Simon Glass wrote:
> Hi Kever,
>
> On 19 July 2016 at 07:28, Kever Yang <kever.yang@rock-chips.com> wrote:
>> Not like the mmc-legacy which the devnum starts from 1, it starts from 0
>> in mmc-uclass, so the device number should be (devnum + 1) in get_mmc_num().
>>
>> Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
>> ---
>>
>> Changes in v3:
>> - apply comments from Jaehoon Chung
>>
>> Changes in v2:
>> - add comment for get_mmc_num() in mmc.h
>> - update mmc_get_next_devnum()
>>
>> drivers/mmc/mmc-uclass.c | 4 ++--
>> include/mmc.h | 6 ++++++
>> 2 files changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c
>> index 38ced41..d0ca91b 100644
>> --- a/drivers/mmc/mmc-uclass.c
>> +++ b/drivers/mmc/mmc-uclass.c
>> @@ -111,7 +111,7 @@ struct mmc *find_mmc_device(int dev_num)
>>
>> int get_mmc_num(void)
>> {
>> - return max(blk_find_max_devnum(IF_TYPE_MMC), 0);
>> + return max((blk_find_max_devnum(IF_TYPE_MMC) + 1), 0);
>
> Sorry to be pendantic, but the problem is that this
> blk_find_max_devnum() can return -ENODEV. You change it to 0 in this
> case, which is correct for get_mmc_num(), but not for
> mmc_get_next_devnum(). I think you should adjust the latter to call
> blk_find_max_devnum() directly, so it can return an error if there is
> one.
You're right, blk_find_max_devnum() can be return -ENODEV.
But get_mmc_num() is returned max(-ENODEV, 0), then it should be always returned 0, if there is no device.
0 means no devices, doesn't?
(get_mmc_num() never returned the error number.)
Well, i didn't find that case until now..Is there case that return -ENODEV from mmc_get_num()?
And mmc_get_next_devnum() is called in mmc_legacy.c.
I didn't find anywhere called mmc_get_next_devnum() in mmc_uclass.c
>
> I realise that this may not matter in practice, but it is really
> confusing the way you have it.
Hmm, I'm confusing a lot for MMC DM.
It seems that there are three cases..
1. Use the legacy.
- It's just using the existing model.
2. Use DM_MMC and legacy.
- I don't understand why use the combination of DM_MMC and legacy.
- When i see the u-boot-dm repository,
ifdef CONFIG_DM_MMC
obj-$(CONFIG_GENERIC_MMC) += mmc-uclass.o
endif
ifndef CONFIG_BLK
obj-$(CONFIG_GENERIC_MMC) += mmc_legacy.o
endif
It should be conflicted too many things..
3. Use DM_MMC and BLK
- I think this is our best way.
Right? It might be my misunderstanding.
Even if i shouldn't misunderstand something, i want to help you on MMC and block side.
So i will go ahead for fixing and cleaning.
Best Regards,
Jaehoon Chung
>
>> }
>>
>> int mmc_get_next_devnum(void)
>> @@ -122,7 +122,7 @@ int mmc_get_next_devnum(void)
>> if (ret < 0)
>> return ret;
>>
>> - return ret + 1;
>> + return ret;
>> }
>>
>> struct blk_desc *mmc_get_blk_desc(struct mmc *mmc)
>> diff --git a/include/mmc.h b/include/mmc.h
>> index 8f309f1..dd47f34 100644
>> --- a/include/mmc.h
>> +++ b/include/mmc.h
>> @@ -503,6 +503,12 @@ void mmc_set_clock(struct mmc *mmc, uint clock);
>> struct mmc *find_mmc_device(int dev_num);
>> int mmc_set_dev(int dev_num);
>> void print_mmc_devices(char separator);
>> +
>> +/**
>> + * get_mmc_num() - get the total MMC device number
>> + *
>> + * @return 0 if there is no MMC device, else the number of devices
>> + */
>> int get_mmc_num(void);
>> int mmc_hwpart_config(struct mmc *mmc, const struct mmc_hwpart_conf *conf,
>> enum mmc_hwpart_conf_mode mode);
>> --
>> 1.9.1
>>
>>
>
> Regards,
> Simon
>
>
>
next prev parent reply other threads:[~2016-07-22 4:14 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20160719132909epcas1p11d39c6c29cb951947503ed580b1b61a0@epcas1p1.samsung.com>
2016-07-19 13:28 ` [U-Boot] [PATCH v3] mmc-uclass: correct the device number Kever Yang
2016-07-21 2:04 ` Jaehoon Chung
2016-07-22 3:21 ` Simon Glass
2016-07-22 4:14 ` Jaehoon Chung [this message]
2016-08-01 2:21 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57919D8C.3070002@samsung.com \
--to=jh80.chung@samsung.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox