Message ID | 1391798398-24634-1-git-send-email-puthik@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi, On 02/08/2014 03:39 AM, Puthikorn Voravootivat wrote: > Force host to have erase capacity to enable trim or > discard feature in supported eMMC device. > > Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org> > --- > In mmc_init_queue() before setting up the discard function, mmc driver > will call mmc_can_erase() which will always return 0 because the host > erase capacity is not set anywhere. So to enable discard function, we > need to add erase capacity to the host. > > drivers/mmc/host/dw_mmc.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 55cd110..f47f1c1 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -55,6 +55,8 @@ > #define DW_MCI_FREQ_MAX 200000000 /* unit: HZ */ > #define DW_MCI_FREQ_MIN 400000 /* unit: HZ */ > > +#define DW_MCI_DEFAULT_CAPS (MMC_CAP_ERASE) > + This define didn't need. > #ifdef CONFIG_MMC_DW_IDMAC > #define IDMAC_INT_CLR (SDMMC_IDMAC_INT_AI | SDMMC_IDMAC_INT_NI | \ > SDMMC_IDMAC_INT_CES | SDMMC_IDMAC_INT_DU | \ > @@ -2371,6 +2373,8 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) > return ERR_PTR(-ENOMEM); > } > > + pdata->caps |= DW_MCI_DEFAULT_CAPS; > + I didn't want to enable by default. If it's possible, how about using dt-file? Well, if need to enable by default, just use the "pdata->caps |= MMC_CAPS_ERASE;" Best Regards, Jaehoon Chung > /* find out number of slots supported */ > if (of_property_read_u32(dev->of_node, "num-slots", > &pdata->num_slots)) { > -- 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
On 10 February 2014 05:07, Jaehoon Chung <jh80.chung@samsung.com> wrote: > Hi, > > On 02/08/2014 03:39 AM, Puthikorn Voravootivat wrote: >> Force host to have erase capacity to enable trim or >> discard feature in supported eMMC device. >> >> Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org> >> --- >> In mmc_init_queue() before setting up the discard function, mmc driver >> will call mmc_can_erase() which will always return 0 because the host >> erase capacity is not set anywhere. So to enable discard function, we >> need to add erase capacity to the host. >> >> drivers/mmc/host/dw_mmc.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c >> index 55cd110..f47f1c1 100644 >> --- a/drivers/mmc/host/dw_mmc.c >> +++ b/drivers/mmc/host/dw_mmc.c >> @@ -55,6 +55,8 @@ >> #define DW_MCI_FREQ_MAX 200000000 /* unit: HZ */ >> #define DW_MCI_FREQ_MIN 400000 /* unit: HZ */ >> >> +#define DW_MCI_DEFAULT_CAPS (MMC_CAP_ERASE) >> + > > This define didn't need. > >> #ifdef CONFIG_MMC_DW_IDMAC >> #define IDMAC_INT_CLR (SDMMC_IDMAC_INT_AI | SDMMC_IDMAC_INT_NI | \ >> SDMMC_IDMAC_INT_CES | SDMMC_IDMAC_INT_DU | \ >> @@ -2371,6 +2373,8 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) >> return ERR_PTR(-ENOMEM); >> } >> >> + pdata->caps |= DW_MCI_DEFAULT_CAPS; >> + > I didn't want to enable by default. If it's possible, how about using dt-file? > Well, if need to enable by default, just use the "pdata->caps |= MMC_CAPS_ERASE;" Why not push this one step further; remove MMC_CAPS_ERASE and make it default enabled for all hosts? Kind regards Ulf Hansson > > Best Regards, > Jaehoon Chung >> /* find out number of slots supported */ >> if (of_property_read_u32(dev->of_node, "num-slots", >> &pdata->num_slots)) { >> > > -- > 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
On 02/10/2014 06:41 PM, Ulf Hansson wrote: > On 10 February 2014 05:07, Jaehoon Chung <jh80.chung@samsung.com> wrote: >> Hi, >> >> On 02/08/2014 03:39 AM, Puthikorn Voravootivat wrote: >>> Force host to have erase capacity to enable trim or >>> discard feature in supported eMMC device. >>> >>> Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org> >>> --- >>> In mmc_init_queue() before setting up the discard function, mmc driver >>> will call mmc_can_erase() which will always return 0 because the host >>> erase capacity is not set anywhere. So to enable discard function, we >>> need to add erase capacity to the host. >>> >>> drivers/mmc/host/dw_mmc.c | 4 ++++ >>> 1 file changed, 4 insertions(+) >>> >>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c >>> index 55cd110..f47f1c1 100644 >>> --- a/drivers/mmc/host/dw_mmc.c >>> +++ b/drivers/mmc/host/dw_mmc.c >>> @@ -55,6 +55,8 @@ >>> #define DW_MCI_FREQ_MAX 200000000 /* unit: HZ */ >>> #define DW_MCI_FREQ_MIN 400000 /* unit: HZ */ >>> >>> +#define DW_MCI_DEFAULT_CAPS (MMC_CAP_ERASE) >>> + >> >> This define didn't need. >> >>> #ifdef CONFIG_MMC_DW_IDMAC >>> #define IDMAC_INT_CLR (SDMMC_IDMAC_INT_AI | SDMMC_IDMAC_INT_NI | \ >>> SDMMC_IDMAC_INT_CES | SDMMC_IDMAC_INT_DU | \ >>> @@ -2371,6 +2373,8 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) >>> return ERR_PTR(-ENOMEM); >>> } >>> >>> + pdata->caps |= DW_MCI_DEFAULT_CAPS; >>> + >> I didn't want to enable by default. If it's possible, how about using dt-file? >> Well, if need to enable by default, just use the "pdata->caps |= MMC_CAPS_ERASE;" > > Why not push this one step further; remove MMC_CAPS_ERASE and make it > default enabled for all hosts? I think more better that All host used the MMC_CAP_ERASE by default, than this patch. Best Regards, Jaehoon Chung > > Kind regards > Ulf Hansson > >> >> Best Regards, >> Jaehoon Chung >>> /* find out number of slots supported */ >>> if (of_property_read_u32(dev->of_node, "num-slots", >>> &pdata->num_slots)) { >>> >> >> -- >> 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
OK, I will send a v2 patch to make MMC_CAP_ERASE default enabled for all host. Best Regards, Puthikorn Voravootivat On Mon, Feb 10, 2014 at 1:53 AM, Jaehoon Chung <jh80.chung@samsung.com> wrote: > On 02/10/2014 06:41 PM, Ulf Hansson wrote: >> On 10 February 2014 05:07, Jaehoon Chung <jh80.chung@samsung.com> wrote: >>> Hi, >>> >>> On 02/08/2014 03:39 AM, Puthikorn Voravootivat wrote: >>>> Force host to have erase capacity to enable trim or >>>> discard feature in supported eMMC device. >>>> >>>> Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org> >>>> --- >>>> In mmc_init_queue() before setting up the discard function, mmc driver >>>> will call mmc_can_erase() which will always return 0 because the host >>>> erase capacity is not set anywhere. So to enable discard function, we >>>> need to add erase capacity to the host. >>>> >>>> drivers/mmc/host/dw_mmc.c | 4 ++++ >>>> 1 file changed, 4 insertions(+) >>>> >>>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c >>>> index 55cd110..f47f1c1 100644 >>>> --- a/drivers/mmc/host/dw_mmc.c >>>> +++ b/drivers/mmc/host/dw_mmc.c >>>> @@ -55,6 +55,8 @@ >>>> #define DW_MCI_FREQ_MAX 200000000 /* unit: HZ */ >>>> #define DW_MCI_FREQ_MIN 400000 /* unit: HZ */ >>>> >>>> +#define DW_MCI_DEFAULT_CAPS (MMC_CAP_ERASE) >>>> + >>> >>> This define didn't need. >>> >>>> #ifdef CONFIG_MMC_DW_IDMAC >>>> #define IDMAC_INT_CLR (SDMMC_IDMAC_INT_AI | SDMMC_IDMAC_INT_NI | \ >>>> SDMMC_IDMAC_INT_CES | SDMMC_IDMAC_INT_DU | \ >>>> @@ -2371,6 +2373,8 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) >>>> return ERR_PTR(-ENOMEM); >>>> } >>>> >>>> + pdata->caps |= DW_MCI_DEFAULT_CAPS; >>>> + >>> I didn't want to enable by default. If it's possible, how about using dt-file? >>> Well, if need to enable by default, just use the "pdata->caps |= MMC_CAPS_ERASE;" >> >> Why not push this one step further; remove MMC_CAPS_ERASE and make it >> default enabled for all hosts? > > I think more better that All host used the MMC_CAP_ERASE by default, than this patch. > > Best Regards, > Jaehoon Chung > >> >> Kind regards >> Ulf Hansson >> >>> >>> Best Regards, >>> Jaehoon Chung >>>> /* find out number of slots supported */ >>>> if (of_property_read_u32(dev->of_node, "num-slots", >>>> &pdata->num_slots)) { >>>> >>> >>> -- >>> 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
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c index 55cd110..f47f1c1 100644 --- a/drivers/mmc/host/dw_mmc.c +++ b/drivers/mmc/host/dw_mmc.c @@ -55,6 +55,8 @@ #define DW_MCI_FREQ_MAX 200000000 /* unit: HZ */ #define DW_MCI_FREQ_MIN 400000 /* unit: HZ */ +#define DW_MCI_DEFAULT_CAPS (MMC_CAP_ERASE) + #ifdef CONFIG_MMC_DW_IDMAC #define IDMAC_INT_CLR (SDMMC_IDMAC_INT_AI | SDMMC_IDMAC_INT_NI | \ SDMMC_IDMAC_INT_CES | SDMMC_IDMAC_INT_DU | \ @@ -2371,6 +2373,8 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) return ERR_PTR(-ENOMEM); } + pdata->caps |= DW_MCI_DEFAULT_CAPS; + /* find out number of slots supported */ if (of_property_read_u32(dev->of_node, "num-slots", &pdata->num_slots)) {
Force host to have erase capacity to enable trim or discard feature in supported eMMC device. Signed-off-by: Puthikorn Voravootivat <puthik@chromium.org> --- In mmc_init_queue() before setting up the discard function, mmc driver will call mmc_can_erase() which will always return 0 because the host erase capacity is not set anywhere. So to enable discard function, we need to add erase capacity to the host. drivers/mmc/host/dw_mmc.c | 4 ++++ 1 file changed, 4 insertions(+)