Message ID | 1309402665-29228-1-git-send-email-tgih.jun@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 30 June 2011 07:33, Jaehoon Chung <jh80.chung@samsung.com> 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 <tgih.jun@samsung.com> >> --- >> 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 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 >
Hi James James Hogan wrote: > On 30 June 2011 07:33, Jaehoon Chung <jh80.chung@samsung.com> 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 <tgih.jun@samsung.com> >>> --- >>> 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 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
Hi, On 30 June 2011 09:20, Jaehoon Chung <jh80.chung@samsung.com> wrote: > Hi James > > James Hogan wrote: >> On 30 June 2011 07:33, Jaehoon Chung <jh80.chung@samsung.com> 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 <tgih.jun@samsung.com> >>>> --- >>>> 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 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 >>> >> >> >> > >
Hi, Thank you for comment. > -----Original Message----- > From: linux-mmc-owner@vger.kernel.org [mailto:linux-mmc- > owner@vger.kernel.org] On Behalf Of James Hogan > Sent: Thursday, June 30, 2011 5:43 PM > To: Jaehoon Chung > Cc: Seungwon Jeon; linux-mmc@vger.kernel.org; cjb@laptop.org; linux- > kernel@vger.kernel.org > Subject: Re: [PATCH] mmc: dw_mmc: Add the function call for board-specific > initialization. > > Hi, > > On 30 June 2011 09:20, Jaehoon Chung <jh80.chung@samsung.com> wrote: > > Hi James > > > > James Hogan wrote: > >> On 30 June 2011 07:33, Jaehoon Chung <jh80.chung@samsung.com> 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 <tgih.jun@samsung.com> > >>>> --- > >>>> 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 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 > >>> > >> > >> > >> > > > > > > > > -- > James Hogan > -- > 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
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
Need to call init() function of dw_mci_board. It seems to be omitted to call this function. Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com> --- drivers/mmc/host/dw_mmc.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) -- 1.7.0.4 -- 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