* [PATCH v2] mmc: dw-mmc: relocate the position called dw_mci_setup_bus()
@ 2012-10-29 5:19 Jaehoon Chung
2012-10-29 9:08 ` Seungwon Jeon
0 siblings, 1 reply; 5+ messages in thread
From: Jaehoon Chung @ 2012-10-29 5:19 UTC (permalink / raw)
To: linux-mmc
Cc: Chris Ball, Will Newton, James Hogan, Kyungmin Park, Seungwon Jeon
After power-on, must be ensured at least 74~80 clocks before sending any first command.
To ensure, it's good that dw_mci_setup_bus() is located at dw_mci_set_ios
instead of __dw_mci_start_request()
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
------
Changelog V2:
- Modified the commit-message.
---
drivers/mmc/host/dw_mmc.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index 4b2bedc..de79093 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -682,9 +682,6 @@ static void __dw_mci_start_request(struct dw_mci *host,
if (host->pdata->select_slot)
host->pdata->select_slot(slot->id);
- /* Slot specific timing and width adjustment */
- dw_mci_setup_bus(slot);
-
host->cur_slot = slot;
host->mrq = mrq;
@@ -810,6 +807,9 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
if (slot->host->drv_data->set_ios)
slot->host->drv_data->set_ios(slot->host, ios);
+ /* Slot specific timing and width adjustment */
+ dw_mci_setup_bus(slot);
+
switch (ios->power_mode) {
case MMC_POWER_UP:
set_bit(DW_MMC_CARD_NEED_INIT, &slot->flags);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* RE: [PATCH v2] mmc: dw-mmc: relocate the position called dw_mci_setup_bus()
2012-10-29 5:19 [PATCH v2] mmc: dw-mmc: relocate the position called dw_mci_setup_bus() Jaehoon Chung
@ 2012-10-29 9:08 ` Seungwon Jeon
2012-10-29 9:38 ` Jaehoon Chung
0 siblings, 1 reply; 5+ messages in thread
From: Seungwon Jeon @ 2012-10-29 9:08 UTC (permalink / raw)
To: 'Jaehoon Chung', 'linux-mmc'
Cc: 'Chris Ball', 'Will Newton',
'James Hogan', 'Kyungmin Park'
Monday, October 29, 2012, Jaehoon Chung <jh80.chung@samsung.com>
> After power-on, must be ensured at least 74~80 clocks before sending any first command.
> To ensure, it's good that dw_mci_setup_bus() is located at dw_mci_set_ios
> instead of __dw_mci_start_request()
After power-up, host driver sets 'DW_MMC_CARD_NEED_INIT' flag, right?
And then, this flag help to add SDMMC_CMD_INIT flag into CMD, when __dw_mci_start_request is executed.
74~80 clocks is ensured with SDMMC_CMD_INIT regardless location change, isn't it?
I mentioned this part in previous mail. Could you check it?
Thanks,
Seungwon Jeon
>
> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
> ------
> Changelog V2:
> - Modified the commit-message.
> ---
> drivers/mmc/host/dw_mmc.c | 6 +++---
> 1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index 4b2bedc..de79093 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -682,9 +682,6 @@ static void __dw_mci_start_request(struct dw_mci *host,
> if (host->pdata->select_slot)
> host->pdata->select_slot(slot->id);
>
> - /* Slot specific timing and width adjustment */
> - dw_mci_setup_bus(slot);
> -
> host->cur_slot = slot;
> host->mrq = mrq;
>
> @@ -810,6 +807,9 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
> if (slot->host->drv_data->set_ios)
> slot->host->drv_data->set_ios(slot->host, ios);
>
> + /* Slot specific timing and width adjustment */
> + dw_mci_setup_bus(slot);
> +
> switch (ios->power_mode) {
> case MMC_POWER_UP:
> set_bit(DW_MMC_CARD_NEED_INIT, &slot->flags);
> --
> 1.7.4.1
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] mmc: dw-mmc: relocate the position called dw_mci_setup_bus()
2012-10-29 9:08 ` Seungwon Jeon
@ 2012-10-29 9:38 ` Jaehoon Chung
2012-10-30 5:27 ` Seungwon Jeon
0 siblings, 1 reply; 5+ messages in thread
From: Jaehoon Chung @ 2012-10-29 9:38 UTC (permalink / raw)
To: Seungwon Jeon
Cc: 'Jaehoon Chung', 'linux-mmc',
'Chris Ball', 'Will Newton',
'James Hogan', 'Kyungmin Park'
On 10/29/2012 06:08 PM, Seungwon Jeon wrote:
> Monday, October 29, 2012, Jaehoon Chung <jh80.chung@samsung.com>
>> After power-on, must be ensured at least 74~80 clocks before sending any first command.
>> To ensure, it's good that dw_mci_setup_bus() is located at dw_mci_set_ios
>> instead of __dw_mci_start_request()
> After power-up, host driver sets 'DW_MMC_CARD_NEED_INIT' flag, right?
> And then, this flag help to add SDMMC_CMD_INIT flag into CMD, when __dw_mci_start_request is executed.
> 74~80 clocks is ensured with SDMMC_CMD_INIT regardless location change, isn't it?
> I mentioned this part in previous mail. Could you check it?
According to eMMC spec, after power-on, need to wait for 74-clock before sending first command
You can see code that after mmc_set_ios(), waiting for mmc_delay(10) into mmc_power_up().
(You can read the comment at mmc_power_up(), Maybe mmc_delay(10) didn't ensure the 74-clock).
Best Regards,
Jaehoon Chung
>
> Thanks,
> Seungwon Jeon
>
>>
>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>> Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
>> ------
>> Changelog V2:
>> - Modified the commit-message.
>> ---
>> drivers/mmc/host/dw_mmc.c | 6 +++---
>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index 4b2bedc..de79093 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -682,9 +682,6 @@ static void __dw_mci_start_request(struct dw_mci *host,
>> if (host->pdata->select_slot)
>> host->pdata->select_slot(slot->id);
>>
>> - /* Slot specific timing and width adjustment */
>> - dw_mci_setup_bus(slot);
>> -
>> host->cur_slot = slot;
>> host->mrq = mrq;
>>
>> @@ -810,6 +807,9 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
>> if (slot->host->drv_data->set_ios)
>> slot->host->drv_data->set_ios(slot->host, ios);
>>
>> + /* Slot specific timing and width adjustment */
>> + dw_mci_setup_bus(slot);
>> +
>> switch (ios->power_mode) {
>> case MMC_POWER_UP:
>> set_bit(DW_MMC_CARD_NEED_INIT, &slot->flags);
>> --
>> 1.7.4.1
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH v2] mmc: dw-mmc: relocate the position called dw_mci_setup_bus()
2012-10-29 9:38 ` Jaehoon Chung
@ 2012-10-30 5:27 ` Seungwon Jeon
2012-10-30 5:50 ` Jaehoon Chung
0 siblings, 1 reply; 5+ messages in thread
From: Seungwon Jeon @ 2012-10-30 5:27 UTC (permalink / raw)
To: 'Jaehoon Chung'
Cc: 'linux-mmc', 'Chris Ball', 'Will Newton',
'James Hogan', 'Kyungmin Park'
Monday, October 29, 2012, Jaehoon Chung <jh80.chung@samsung.com> wrote:
> On 10/29/2012 06:08 PM, Seungwon Jeon wrote:
> > Monday, October 29, 2012, Jaehoon Chung <jh80.chung@samsung.com>
> >> After power-on, must be ensured at least 74~80 clocks before sending any first command.
> >> To ensure, it's good that dw_mci_setup_bus() is located at dw_mci_set_ios
> >> instead of __dw_mci_start_request()
> > After power-up, host driver sets 'DW_MMC_CARD_NEED_INIT' flag, right?
> > And then, this flag help to add SDMMC_CMD_INIT flag into CMD, when __dw_mci_start_request is
> executed.
> > 74~80 clocks is ensured with SDMMC_CMD_INIT regardless location change, isn't it?
> > I mentioned this part in previous mail. Could you check it?
> According to eMMC spec, after power-on, need to wait for 74-clock before sending first command
> You can see code that after mmc_set_ios(), waiting for mmc_delay(10) into mmc_power_up().
> (You can read the comment at mmc_power_up(), Maybe mmc_delay(10) didn't ensure the 74-clock).
There is 'send_initialization' bit in CMD register.
If this bit set with CMD0, it will guarantee 80 clocks by host controller.
Currently this is applied in driver.
I agree change the location of dw_mci_setup_bus.
But commit message seem not proper for it.
Please let me know, if I miss something.
Thanks,
Seungwon Jeon
>
> Best Regards,
> Jaehoon Chung
> >
> > Thanks,
> > Seungwon Jeon
> >
> >>
> >> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
> >> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> >> Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
> >> ------
> >> Changelog V2:
> >> - Modified the commit-message.
> >> ---
> >> drivers/mmc/host/dw_mmc.c | 6 +++---
> >> 1 files changed, 3 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> >> index 4b2bedc..de79093 100644
> >> --- a/drivers/mmc/host/dw_mmc.c
> >> +++ b/drivers/mmc/host/dw_mmc.c
> >> @@ -682,9 +682,6 @@ static void __dw_mci_start_request(struct dw_mci *host,
> >> if (host->pdata->select_slot)
> >> host->pdata->select_slot(slot->id);
> >>
> >> - /* Slot specific timing and width adjustment */
> >> - dw_mci_setup_bus(slot);
> >> -
> >> host->cur_slot = slot;
> >> host->mrq = mrq;
> >>
> >> @@ -810,6 +807,9 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
> >> if (slot->host->drv_data->set_ios)
> >> slot->host->drv_data->set_ios(slot->host, ios);
> >>
> >> + /* Slot specific timing and width adjustment */
> >> + dw_mci_setup_bus(slot);
> >> +
> >> switch (ios->power_mode) {
> >> case MMC_POWER_UP:
> >> set_bit(DW_MMC_CARD_NEED_INIT, &slot->flags);
> >> --
> >> 1.7.4.1
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2] mmc: dw-mmc: relocate the position called dw_mci_setup_bus()
2012-10-30 5:27 ` Seungwon Jeon
@ 2012-10-30 5:50 ` Jaehoon Chung
0 siblings, 0 replies; 5+ messages in thread
From: Jaehoon Chung @ 2012-10-30 5:50 UTC (permalink / raw)
To: Seungwon Jeon
Cc: 'Jaehoon Chung', 'linux-mmc',
'Chris Ball', 'Will Newton',
'James Hogan', 'Kyungmin Park'
Dear Seungwon,
On 10/30/2012 02:27 PM, Seungwon Jeon wrote:
> Monday, October 29, 2012, Jaehoon Chung <jh80.chung@samsung.com> wrote:
>> On 10/29/2012 06:08 PM, Seungwon Jeon wrote:
>>> Monday, October 29, 2012, Jaehoon Chung <jh80.chung@samsung.com>
>>>> After power-on, must be ensured at least 74~80 clocks before sending any first command.
>>>> To ensure, it's good that dw_mci_setup_bus() is located at dw_mci_set_ios
>>>> instead of __dw_mci_start_request()
>>> After power-up, host driver sets 'DW_MMC_CARD_NEED_INIT' flag, right?
>>> And then, this flag help to add SDMMC_CMD_INIT flag into CMD, when __dw_mci_start_request is
>> executed.
>>> 74~80 clocks is ensured with SDMMC_CMD_INIT regardless location change, isn't it?
>>> I mentioned this part in previous mail. Could you check it?
>> According to eMMC spec, after power-on, need to wait for 74-clock before sending first command
>> You can see code that after mmc_set_ios(), waiting for mmc_delay(10) into mmc_power_up().
>> (You can read the comment at mmc_power_up(), Maybe mmc_delay(10) didn't ensure the 74-clock).
> There is 'send_initialization' bit in CMD register.
> If this bit set with CMD0, it will guarantee 80 clocks by host controller.
Is it guaranteed 80-clocks by host-controller? So I understood something wrong.
My understanding is that "if flags is set, need to wait for 80-clock."
If host-controller can ensure the 80-clock, location is not important.
My point was just entire sequence with core.c and dw_mmc.c
Anyway, thank you for review.
If i miss other thing. let me know, plz.
Best Regards,
Jaehoon Chung
> Currently this is applied in driver.
> I agree change the location of dw_mci_setup_bus.
> But commit message seem not proper for it.
> Please let me know, if I miss something.
>
> Thanks,
> Seungwon Jeon
>>
>> Best Regards,
>> Jaehoon Chung
>>>
>>> Thanks,
>>> Seungwon Jeon
>>>
>>>>
>>>> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
>>>> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
>>>> Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
>>>> ------
>>>> Changelog V2:
>>>> - Modified the commit-message.
>>>> ---
>>>> drivers/mmc/host/dw_mmc.c | 6 +++---
>>>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>>> index 4b2bedc..de79093 100644
>>>> --- a/drivers/mmc/host/dw_mmc.c
>>>> +++ b/drivers/mmc/host/dw_mmc.c
>>>> @@ -682,9 +682,6 @@ static void __dw_mci_start_request(struct dw_mci *host,
>>>> if (host->pdata->select_slot)
>>>> host->pdata->select_slot(slot->id);
>>>>
>>>> - /* Slot specific timing and width adjustment */
>>>> - dw_mci_setup_bus(slot);
>>>> -
>>>> host->cur_slot = slot;
>>>> host->mrq = mrq;
>>>>
>>>> @@ -810,6 +807,9 @@ static void dw_mci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
>>>> if (slot->host->drv_data->set_ios)
>>>> slot->host->drv_data->set_ios(slot->host, ios);
>>>>
>>>> + /* Slot specific timing and width adjustment */
>>>> + dw_mci_setup_bus(slot);
>>>> +
>>>> switch (ios->power_mode) {
>>>> case MMC_POWER_UP:
>>>> set_bit(DW_MMC_CARD_NEED_INIT, &slot->flags);
>>>> --
>>>> 1.7.4.1
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-10-30 5:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-29 5:19 [PATCH v2] mmc: dw-mmc: relocate the position called dw_mci_setup_bus() Jaehoon Chung
2012-10-29 9:08 ` Seungwon Jeon
2012-10-29 9:38 ` Jaehoon Chung
2012-10-30 5:27 ` Seungwon Jeon
2012-10-30 5:50 ` Jaehoon Chung
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.