Message ID | 20230419063048.10516-1-wenbin.mei@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mmc: mtk-sd: reduce CIT for better performance | expand |
On Wed, 19 Apr 2023 at 08:30, Wenbin Mei <wenbin.mei@mediatek.com> wrote: > > CQHCI_SSC1 indicates to CQE the polling period to use when using > periodic SEND_QUEUE_STATUS(CMD13) polling. > The default value is 0x1000, now change it to 0x40, which can > improve the performance of some eMMC devices. Rather than just providing hexadecimal numbers, would you mind explaining a bit what it translates into? For example, "the default value 0x1000 that corresponds to x ms..., ... lets' decrease it to 0x40 that corresponds to x ms". Moreover, it would be nice to have a comment in the code too, explaining what 0x40 translates into. Other than this, this looks good to me. Kind regards Uffe > > Signed-off-by: Wenbin Mei <wenbin.mei@mediatek.com> > --- > drivers/mmc/host/mtk-sd.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c > index edade0e54a0c..483353ea3a99 100644 > --- a/drivers/mmc/host/mtk-sd.c > +++ b/drivers/mmc/host/mtk-sd.c > @@ -2453,6 +2453,7 @@ static void msdc_hs400_enhanced_strobe(struct mmc_host *mmc, > static void msdc_cqe_enable(struct mmc_host *mmc) > { > struct msdc_host *host = mmc_priv(mmc); > + struct cqhci_host *cq_host = mmc->cqe_private; > > /* enable cmdq irq */ > writel(MSDC_INT_CMDQ, host->base + MSDC_INTEN); > @@ -2462,6 +2463,8 @@ static void msdc_cqe_enable(struct mmc_host *mmc) > msdc_set_busy_timeout(host, 20 * 1000000000ULL, 0); > /* default read data timeout 1s */ > msdc_set_timeout(host, 1000000000ULL, 0); > + > + cqhci_writel(cq_host, 0x40, CQHCI_SSC1); > } > > static void msdc_cqe_disable(struct mmc_host *mmc, bool recovery) > -- > 2.25.1 >
On Tue, 2023-05-09 at 11:29 +0200, Ulf Hansson wrote: > External email : Please do not click links or open attachments until > you have verified the sender or the content. > > > On Wed, 19 Apr 2023 at 08:30, Wenbin Mei <wenbin.mei@mediatek.com> > wrote: > > > > CQHCI_SSC1 indicates to CQE the polling period to use when using > > periodic SEND_QUEUE_STATUS(CMD13) polling. > > The default value is 0x1000, now change it to 0x40, which can > > improve the performance of some eMMC devices. > > Rather than just providing hexadecimal numbers, would you mind > explaining a bit what it translates into? > > For example, "the default value 0x1000 that corresponds to x ms..., > ... lets' decrease it to 0x40 that corresponds to x ms". > > Moreover, it would be nice to have a comment in the code too, > explaining what 0x40 translates into. > > Other than this, this looks good to me. > > Kind regards > Uffe > Thanks for your review. I will follow your comment in next change. > > > > Signed-off-by: Wenbin Mei <wenbin.mei@mediatek.com> > > --- > > drivers/mmc/host/mtk-sd.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c > > index edade0e54a0c..483353ea3a99 100644 > > --- a/drivers/mmc/host/mtk-sd.c > > +++ b/drivers/mmc/host/mtk-sd.c > > @@ -2453,6 +2453,7 @@ static void msdc_hs400_enhanced_strobe(struct > > mmc_host *mmc, > > static void msdc_cqe_enable(struct mmc_host *mmc) > > { > > struct msdc_host *host = mmc_priv(mmc); > > + struct cqhci_host *cq_host = mmc->cqe_private; > > > > /* enable cmdq irq */ > > writel(MSDC_INT_CMDQ, host->base + MSDC_INTEN); > > @@ -2462,6 +2463,8 @@ static void msdc_cqe_enable(struct mmc_host > > *mmc) > > msdc_set_busy_timeout(host, 20 * 1000000000ULL, 0); > > /* default read data timeout 1s */ > > msdc_set_timeout(host, 1000000000ULL, 0); > > + > > + cqhci_writel(cq_host, 0x40, CQHCI_SSC1); > > } > > > > static void msdc_cqe_disable(struct mmc_host *mmc, bool recovery) > > -- > > 2.25.1 > >
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c index edade0e54a0c..483353ea3a99 100644 --- a/drivers/mmc/host/mtk-sd.c +++ b/drivers/mmc/host/mtk-sd.c @@ -2453,6 +2453,7 @@ static void msdc_hs400_enhanced_strobe(struct mmc_host *mmc, static void msdc_cqe_enable(struct mmc_host *mmc) { struct msdc_host *host = mmc_priv(mmc); + struct cqhci_host *cq_host = mmc->cqe_private; /* enable cmdq irq */ writel(MSDC_INT_CMDQ, host->base + MSDC_INTEN); @@ -2462,6 +2463,8 @@ static void msdc_cqe_enable(struct mmc_host *mmc) msdc_set_busy_timeout(host, 20 * 1000000000ULL, 0); /* default read data timeout 1s */ msdc_set_timeout(host, 1000000000ULL, 0); + + cqhci_writel(cq_host, 0x40, CQHCI_SSC1); } static void msdc_cqe_disable(struct mmc_host *mmc, bool recovery)
CQHCI_SSC1 indicates to CQE the polling period to use when using periodic SEND_QUEUE_STATUS(CMD13) polling. The default value is 0x1000, now change it to 0x40, which can improve the performance of some eMMC devices. Signed-off-by: Wenbin Mei <wenbin.mei@mediatek.com> --- drivers/mmc/host/mtk-sd.c | 3 +++ 1 file changed, 3 insertions(+)