2011-06-30 03:28:38

by Seungwon Jeon

[permalink] [raw]
Subject: [PATCH] mmc: dw_mmc: Add the function call for board-specific initialization.

Need to call init() function of dw_mci_board.
It seems to be omitted to call this function.

Signed-off-by: Seungwon Jeon <[email protected]>
---
drivers/mmc/host/dw_mmc.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index a524416..073c420 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -1585,6 +1585,15 @@ static void dw_mci_work_routine_card(struct work_struct *work)
}
}

+static irqreturn_t dw_mci_detect_interrupt(int irq, void *dev_id)
+{
+ struct dw_mci_slot *slot = dev_id;
+
+ queue_work(dw_mci_card_workqueue, &host->card_work);
+
+ return IRQ_HANDLED;
+}
+
static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
{
struct mmc_host *mmc;
@@ -1657,6 +1666,8 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
} else
regulator_enable(host->vmmc);

+ host->pdata->init(id, dw_mci_detect_interrupt, host);
+
if (dw_mci_get_cd(mmc))
set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
else
--
1.7.0.4


2011-06-30 06:33:40

by Jaehoon Chung

[permalink] [raw]
Subject: Re: [PATCH] mmc: dw_mmc: Add the function call for board-specific initialization.

Hi Mr.Jeon

This patch is the compiler error.

didn't find host->card_work..

do you want this
queue_work(dw_mci_card_workqueue, &slot->host->card_work); ?


Regards,
Jaehoon Chung


Seungwon Jeon wrote:
> Need to call init() function of dw_mci_board.
> It seems to be omitted to call this function.
>
> Signed-off-by: Seungwon Jeon <[email protected]>
> ---
> drivers/mmc/host/dw_mmc.c | 11 +++++++++++
> 1 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> index a524416..073c420 100644
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -1585,6 +1585,15 @@ static void dw_mci_work_routine_card(struct work_struct *work)
> }
> }
>
> +static irqreturn_t dw_mci_detect_interrupt(int irq, void *dev_id)
> +{
> + struct dw_mci_slot *slot = dev_id;
> +
> + queue_work(dw_mci_card_workqueue, &host->card_work);
> +
> + return IRQ_HANDLED;
> +}
> +
> static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
> {
> struct mmc_host *mmc;
> @@ -1657,6 +1666,8 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
> } else
> regulator_enable(host->vmmc);
>
> + host->pdata->init(id, dw_mci_detect_interrupt, host);
> +
> if (dw_mci_get_cd(mmc))
> set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
> else
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2011-06-30 08:11:47

by James Hogan

[permalink] [raw]
Subject: Re: [PATCH] mmc: dw_mmc: Add the function call for board-specific initialization.

On 30 June 2011 07:33, Jaehoon Chung <[email protected]> wrote:
> Hi Mr.Jeon
>
> This patch is the compiler error.
>
> didn't find host->card_work..
>
> do you want this
> queue_work(dw_mci_card_workqueue, &slot->host->card_work); ?

I think the patch is based on mmc-next, which has the following commit:
35ba9d8 mmc: dw_mmc: convert card tasklet to workqueue

Cheers
James

>
>
> Regards,
> Jaehoon Chung
>
>
> Seungwon Jeon wrote:
>> Need to call init() function of dw_mci_board.
>> It seems to be omitted to call this function.
>>
>> Signed-off-by: Seungwon Jeon <[email protected]>
>> ---
>> ?drivers/mmc/host/dw_mmc.c | ? 11 +++++++++++
>> ?1 files changed, 11 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index a524416..073c420 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -1585,6 +1585,15 @@ static void dw_mci_work_routine_card(struct work_struct *work)
>> ? ? ? }
>> ?}
>>
>> +static irqreturn_t dw_mci_detect_interrupt(int irq, void *dev_id)
>> +{
>> + ? ? struct dw_mci_slot *slot = dev_id;
>> +
>> + ? ? queue_work(dw_mci_card_workqueue, &host->card_work);
>> +
>> + ? ? return IRQ_HANDLED;
>> +}
>> +
>> ?static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>> ?{
>> ? ? ? struct mmc_host *mmc;
>> @@ -1657,6 +1666,8 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>> ? ? ? } else
>> ? ? ? ? ? ? ? regulator_enable(host->vmmc);
>>
>> + ? ? host->pdata->init(id, dw_mci_detect_interrupt, host);
>> +
>> ? ? ? if (dw_mci_get_cd(mmc))
>> ? ? ? ? ? ? ? set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
>> ? ? ? else
>> --
>> 1.7.0.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>> the body of a message to [email protected]
>> 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 [email protected]
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>



--
James Hogan

2011-06-30 08:20:52

by Jaehoon Chung

[permalink] [raw]
Subject: Re: [PATCH] mmc: dw_mmc: Add the function call for board-specific initialization.

Hi James

James Hogan wrote:
> On 30 June 2011 07:33, Jaehoon Chung <[email protected]> wrote:
>> Hi Mr.Jeon
>>
>> This patch is the compiler error.
>>
>> didn't find host->card_work..
>>
>> do you want this
>> queue_work(dw_mci_card_workqueue, &slot->host->card_work); ?
>
> I think the patch is based on mmc-next, which has the following commit:
> 35ba9d8 mmc: dw_mmc: convert card tasklet to workqueue

I also tested this patch based on mmc-next.
But my mean is that there is not host structure in dw_mci_detect_interrupt().

drivers/mmc/host/dw_mmc.c: In function 'dw_mci_detect_interrupt':
drivers/mmc/host/dw_mmc.c:1592: error: 'host' undeclared (first use in this function)
drivers/mmc/host/dw_mmc.c:1592: error: (Each undeclared identifier is reported only once
drivers/mmc/host/dw_mmc.c:1592: error: for each function it appears in.)
drivers/mmc/host/dw_mmc.c:1590: warning: unused variable 'slot'
make[3]: *** [drivers/mmc/host/dw_mmc.o] Error 1
make[2]: *** [drivers/mmc/host] Error 2

Did you really compile fine?

Regards,
Jaehoon Chung

>
> Cheers
> James
>
>>
>> Regards,
>> Jaehoon Chung
>>
>>
>> Seungwon Jeon wrote:
>>> Need to call init() function of dw_mci_board.
>>> It seems to be omitted to call this function.
>>>
>>> Signed-off-by: Seungwon Jeon <[email protected]>
>>> ---
>>> drivers/mmc/host/dw_mmc.c | 11 +++++++++++
>>> 1 files changed, 11 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>> index a524416..073c420 100644
>>> --- a/drivers/mmc/host/dw_mmc.c
>>> +++ b/drivers/mmc/host/dw_mmc.c
>>> @@ -1585,6 +1585,15 @@ static void dw_mci_work_routine_card(struct work_struct *work)
>>> }
>>> }
>>>
>>> +static irqreturn_t dw_mci_detect_interrupt(int irq, void *dev_id)
>>> +{
>>> + struct dw_mci_slot *slot = dev_id;
>>> +
>>> + queue_work(dw_mci_card_workqueue, &host->card_work);
>>> +
>>> + return IRQ_HANDLED;
>>> +}
>>> +
>>> static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>>> {
>>> struct mmc_host *mmc;
>>> @@ -1657,6 +1666,8 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>>> } else
>>> regulator_enable(host->vmmc);
>>>
>>> + host->pdata->init(id, dw_mci_detect_interrupt, host);
>>> +
>>> if (dw_mci_get_cd(mmc))
>>> set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
>>> else
>>> --
>>> 1.7.0.4
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>>> the body of a message to [email protected]
>>> 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 [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
>
>

2011-06-30 08:43:10

by James Hogan

[permalink] [raw]
Subject: Re: [PATCH] mmc: dw_mmc: Add the function call for board-specific initialization.

Hi,

On 30 June 2011 09:20, Jaehoon Chung <[email protected]> wrote:
> Hi James
>
> James Hogan wrote:
>> On 30 June 2011 07:33, Jaehoon Chung <[email protected]> wrote:
>>> Hi Mr.Jeon
>>>
>>> This patch is the compiler error.
>>>
>>> didn't find host->card_work..
>>>
>>> do you want this
>>> queue_work(dw_mci_card_workqueue, &slot->host->card_work); ?
>>
>> I think the patch is based on mmc-next, which has the following commit:
>> 35ba9d8 mmc: dw_mmc: convert card tasklet to workqueue
>
> I also tested this patch based on mmc-next.
> But my mean is that there is not host structure in dw_mci_detect_interrupt().
>
> drivers/mmc/host/dw_mmc.c: In function 'dw_mci_detect_interrupt':
> drivers/mmc/host/dw_mmc.c:1592: error: 'host' undeclared (first use in this function)
> drivers/mmc/host/dw_mmc.c:1592: error: (Each undeclared identifier is reported only once
> drivers/mmc/host/dw_mmc.c:1592: error: for each function it appears in.)
> drivers/mmc/host/dw_mmc.c:1590: warning: unused variable 'slot'
> make[3]: *** [drivers/mmc/host/dw_mmc.o] Error 1
> make[2]: *** [drivers/mmc/host] Error 2

Sorry, I misunderstood. You are correct.

Cheers
James

>
> Did you really compile fine?
>
> Regards,
> Jaehoon Chung
>
>>
>> Cheers
>> James
>>
>>>
>>> Regards,
>>> Jaehoon Chung
>>>
>>>
>>> Seungwon Jeon wrote:
>>>> Need to call init() function of dw_mci_board.
>>>> It seems to be omitted to call this function.
>>>>
>>>> Signed-off-by: Seungwon Jeon <[email protected]>
>>>> ---
>>>> ?drivers/mmc/host/dw_mmc.c | ? 11 +++++++++++
>>>> ?1 files changed, 11 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>>>> index a524416..073c420 100644
>>>> --- a/drivers/mmc/host/dw_mmc.c
>>>> +++ b/drivers/mmc/host/dw_mmc.c
>>>> @@ -1585,6 +1585,15 @@ static void dw_mci_work_routine_card(struct work_struct *work)
>>>> ? ? ? }
>>>> ?}
>>>>
>>>> +static irqreturn_t dw_mci_detect_interrupt(int irq, void *dev_id)
>>>> +{
>>>> + ? ? struct dw_mci_slot *slot = dev_id;
>>>> +
>>>> + ? ? queue_work(dw_mci_card_workqueue, &host->card_work);
>>>> +
>>>> + ? ? return IRQ_HANDLED;
>>>> +}
>>>> +
>>>> ?static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>>>> ?{
>>>> ? ? ? struct mmc_host *mmc;
>>>> @@ -1657,6 +1666,8 @@ static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int id)
>>>> ? ? ? } else
>>>> ? ? ? ? ? ? ? regulator_enable(host->vmmc);
>>>>
>>>> + ? ? host->pdata->init(id, dw_mci_detect_interrupt, host);
>>>> +
>>>> ? ? ? if (dw_mci_get_cd(mmc))
>>>> ? ? ? ? ? ? ? set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
>>>> ? ? ? else
>>>> --
>>>> 1.7.0.4
>>>>
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
>>>> the body of a message to [email protected]
>>>> 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 [email protected]
>>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>>>
>>
>>
>>
>
>



--
James Hogan

2011-07-01 02:28:08

by Seungwon Jeon

[permalink] [raw]
Subject: RE: [PATCH] mmc: dw_mmc: Add the function call for board-specific initialization.

Hi,
Thank you for comment.

> -----Original Message-----
> From: [email protected] [mailto:linux-mmc-
> [email protected]] On Behalf Of James Hogan
> Sent: Thursday, June 30, 2011 5:43 PM
> To: Jaehoon Chung
> Cc: Seungwon Jeon; [email protected]; [email protected]; linux-
> [email protected]
> Subject: Re: [PATCH] mmc: dw_mmc: Add the function call for board-specific
> initialization.
>
> Hi,
>
> On 30 June 2011 09:20, Jaehoon Chung <[email protected]> wrote:
> > Hi James
> >
> > James Hogan wrote:
> >> On 30 June 2011 07:33, Jaehoon Chung <[email protected]> wrote:
> >>> Hi Mr.Jeon
> >>>
> >>> This patch is the compiler error.
> >>>
> >>> didn't find host->card_work..
> >>>
> >>> do you want this
> >>> queue_work(dw_mci_card_workqueue, &slot->host->card_work); ?
> >>
> >> I think the patch is based on mmc-next, which has the following commit:
> >> 35ba9d8 mmc: dw_mmc: convert card tasklet to workqueue
> >
> > I also tested this patch based on mmc-next.
> > But my mean is that there is not host structure in
> dw_mci_detect_interrupt().
> >
> > drivers/mmc/host/dw_mmc.c: In function 'dw_mci_detect_interrupt':
> > drivers/mmc/host/dw_mmc.c:1592: error: 'host' undeclared (first use in
> this function)
> > drivers/mmc/host/dw_mmc.c:1592: error: (Each undeclared identifier is
> reported only once
> > drivers/mmc/host/dw_mmc.c:1592: error: for each function it appears in.)
> > drivers/mmc/host/dw_mmc.c:1590: warning: unused variable 'slot'
> > make[3]: *** [drivers/mmc/host/dw_mmc.o] Error 1
> > make[2]: *** [drivers/mmc/host] Error 2
>
> Sorry, I misunderstood. You are correct.


queue_work(dw_mci_card_workqueue, &host->card_work);
'slot' is omitted. (&slot->host->card_work)

Sorry for my mistake.
I'll fix it.

Best regards,
Seungwon.


> Cheers
> James
>
> >
> > Did you really compile fine?
> >
> > Regards,
> > Jaehoon Chung
> >
> >>
> >> Cheers
> >> James
> >>
> >>>
> >>> Regards,
> >>> Jaehoon Chung
> >>>
> >>>
> >>> Seungwon Jeon wrote:
> >>>> Need to call init() function of dw_mci_board.
> >>>> It seems to be omitted to call this function.
> >>>>
> >>>> Signed-off-by: Seungwon Jeon <[email protected]>
> >>>> ---
> >>>> drivers/mmc/host/dw_mmc.c | 11 +++++++++++
> >>>> 1 files changed, 11 insertions(+), 0 deletions(-)
> >>>>
> >>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> >>>> index a524416..073c420 100644
> >>>> --- a/drivers/mmc/host/dw_mmc.c
> >>>> +++ b/drivers/mmc/host/dw_mmc.c
> >>>> @@ -1585,6 +1585,15 @@ static void dw_mci_work_routine_card(struct
> work_struct *work)
> >>>> }
> >>>> }
> >>>>
> >>>> +static irqreturn_t dw_mci_detect_interrupt(int irq, void *dev_id)
> >>>> +{
> >>>> + struct dw_mci_slot *slot = dev_id;
> >>>> +
> >>>> + queue_work(dw_mci_card_workqueue, &host->card_work);
> >>>> +
> >>>> + return IRQ_HANDLED;
> >>>> +}
> >>>> +
> >>>> static int __init dw_mci_init_slot(struct dw_mci *host, unsigned int
> id)
> >>>> {
> >>>> struct mmc_host *mmc;
> >>>> @@ -1657,6 +1666,8 @@ static int __init dw_mci_init_slot(struct
> dw_mci *host, unsigned int id)
> >>>> } else
> >>>> regulator_enable(host->vmmc);
> >>>>
> >>>> + host->pdata->init(id, dw_mci_detect_interrupt, host);
> >>>> +
> >>>> if (dw_mci_get_cd(mmc))
> >>>> set_bit(DW_MMC_CARD_PRESENT, &slot->flags);
> >>>> else
> >>>> --
> >>>> 1.7.0.4
> >>>>
> >>>> --
> >>>> To unsubscribe from this list: send the line "unsubscribe linux-mmc"
> in
> >>>> the body of a message to [email protected]
> >>>> 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 [email protected]
> >>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> >>>
> >>
> >>
> >>
> >
> >
>
>
>
> --
> James Hogan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html