Message ID | 20170803094947.1490-1-wsa+renesas@sang-engineering.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Aug 03, 2017 at 11:49:47AM +0200, Wolfram Sang wrote: > This reverts commit 785b215250310c690142abb1bdbb0767b8487c49. There is a > secondary SDHI instance on Gen2 with has a 32-bit wide SDBUF register > while all other registers are 16 bit apart. So, the logic used here does > not apply and we need to rethink this and start cleanly from scratch. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Extra info for Ulf: I can't work on that in the next days, so I thought it would be good to ASAP fix the regression in mmc/next at least.
Tested this patch on iWave RZ/G1M platform. Tested-by: Biju Das <biju.das@bp.renesas.com> Regards, Biju > -----Original Message----- > From: Wolfram Sang [mailto:wsa+renesas@sang-engineering.com] > Sent: 03 August 2017 10:50 > To: linux-mmc@vger.kernel.org > Cc: linux-renesas-soc@vger.kernel.org; Simon Horman <horms@verge.net.au>; > Biju Das <biju.das@bp.renesas.com>; Ulf Hansson <ulf.hansson@linaro.org>; > Wolfram Sang <wsa+renesas@sang-engineering.com> > Subject: [PATCH] Revert "mmc: sdhi: use maximum width for the sdbuf > register" > > This reverts commit 785b215250310c690142abb1bdbb0767b8487c49. There is > a secondary SDHI instance on Gen2 with has a 32-bit wide SDBUF register while > all other registers are 16 bit apart. So, the logic used here does not apply and > we need to rethink this and start cleanly from scratch. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > --- > drivers/mmc/host/renesas_sdhi_core.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/renesas_sdhi_core.c > b/drivers/mmc/host/renesas_sdhi_core.c > index 48da28dfef6465..dd215723fa4312 100644 > --- a/drivers/mmc/host/renesas_sdhi_core.c > +++ b/drivers/mmc/host/renesas_sdhi_core.c > @@ -461,7 +461,8 @@ static void renesas_sdhi_enable_dma(struct > tmio_mmc_host *host, bool enable) { > sd_ctrl_write16(host, CTL_DMA_ENABLE, enable ? > DMA_ENABLE_DMASDRW : 0); > > -renesas_sdhi_sdbuf_width(host, enable ? (16 << host->bus_shift) : 16); > +/* enable 32bit access if DMA mode if possibile */ > +renesas_sdhi_sdbuf_width(host, enable ? 32 : 16); > } > > int renesas_sdhi_probe(struct platform_device *pdev, > -- > 2.11.0 Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under Registered No. 04586709. -- 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 3 August 2017 at 11:53, Wolfram Sang <wsa@the-dreams.de> wrote: > On Thu, Aug 03, 2017 at 11:49:47AM +0200, Wolfram Sang wrote: >> This reverts commit 785b215250310c690142abb1bdbb0767b8487c49. There is a >> secondary SDHI instance on Gen2 with has a 32-bit wide SDBUF register >> while all other registers are 16 bit apart. So, the logic used here does >> not apply and we need to rethink this and start cleanly from scratch. >> >> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > > Extra info for Ulf: I can't work on that in the next days, so I thought > it would be good to ASAP fix the regression in mmc/next at least. > Instead of applying this revert, I decided to just drop the original commit from my next branch. While working on new version of how to deal with the 32/16 bit register correctly, please try to include Biju Das in the changelog as to give him cred from his help with testing. Kind regards Uffe -- 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
> Instead of applying this revert, I decided to just drop the original > commit from my next branch. Hmmmm, yes, rebasing creates a clean history for occasions like this, but makes working on your next-branch kinda complicated if the base I merged has gone. > While working on new version of how to deal with the 32/16 bit > register correctly, please try to include Biju Das in the changelog as > to give him cred from his help with testing. Will do. If you had kept the revert, he would have got a tag for Reported-by even ;)
diff --git a/drivers/mmc/host/renesas_sdhi_core.c b/drivers/mmc/host/renesas_sdhi_core.c index 48da28dfef6465..dd215723fa4312 100644 --- a/drivers/mmc/host/renesas_sdhi_core.c +++ b/drivers/mmc/host/renesas_sdhi_core.c @@ -461,7 +461,8 @@ static void renesas_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable) { sd_ctrl_write16(host, CTL_DMA_ENABLE, enable ? DMA_ENABLE_DMASDRW : 0); - renesas_sdhi_sdbuf_width(host, enable ? (16 << host->bus_shift) : 16); + /* enable 32bit access if DMA mode if possibile */ + renesas_sdhi_sdbuf_width(host, enable ? 32 : 16); } int renesas_sdhi_probe(struct platform_device *pdev,
This reverts commit 785b215250310c690142abb1bdbb0767b8487c49. There is a secondary SDHI instance on Gen2 with has a 32-bit wide SDBUF register while all other registers are 16 bit apart. So, the logic used here does not apply and we need to rethink this and start cleanly from scratch. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> --- drivers/mmc/host/renesas_sdhi_core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)