dmaengine.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Robin Gong <yibin.gong@nxp.com>
Cc: "mark.rutland@arm.com" <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
	"kernel@pengutronix.de" <kernel@pengutronix.de>,
	"shawnguo@kernel.org" <shawnguo@kernel.org>,
	"will.deacon@arm.com" <will.deacon@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
	"vkoul@kernel.org" <vkoul@kernel.org>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	dl-linux-imx <linux-imx@nxp.com>,
	"martin.fuzzey@flowbird.group" <martin.fuzzey@flowbird.group>,
	"u.kleine-koenig@pengutronix.de" <u.kleine-koenig@pengutronix.de>,
	"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
	"dan.j.williams@intel.com" <dan.j.williams@intel.com>,
	"festevam@gmail.com" <festevam@gmail.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"l.stach@pengutronix.de" <l.stach@pengutronix.de>
Subject: Re: [PATCH v7 RESEND 07/13] spi: imx: fix ERR009165
Date: Wed, 13 May 2020 11:20:17 +0200	[thread overview]
Message-ID: <20200513092017.GQ5877@pengutronix.de> (raw)
In-Reply-To: <VE1PR04MB6638DE9AB1E51213DACCCA0F89BF0@VE1PR04MB6638.eurprd04.prod.outlook.com>

On Wed, May 13, 2020 at 09:05:33AM +0000, Robin Gong wrote:
> On 2020/05/13 Sascha Hauer <s.hauer@pengutronix.de> wrote:d
> > >  drivers/spi/spi-imx.c | 16 ++++++++--------
> > >  1 file changed, 8 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index
> > > f4f28a4..70df8e6 100644
> > > --- a/drivers/spi/spi-imx.c
> > > +++ b/drivers/spi/spi-imx.c
> > > @@ -585,8 +585,8 @@ static int mx51_ecspi_prepare_transfer(struct
> > spi_imx_data *spi_imx,
> > >  	ctrl |= mx51_ecspi_clkdiv(spi_imx, t->speed_hz, &clk);
> > >  	spi_imx->spi_bus_clk = clk;
> > >
> > > -	if (spi_imx->usedma)
> > > -		ctrl |= MX51_ECSPI_CTRL_SMC;
> > > +	/* ERR009165: work in XHC mode as PIO */
> > > +	ctrl &= ~MX51_ECSPI_CTRL_SMC;
> > >
> > >  	writel(ctrl, spi_imx->base + MX51_ECSPI_CTRL);
> > >
> > > @@ -617,7 +617,7 @@ static void mx51_setup_wml(struct spi_imx_data
> > *spi_imx)
> > >  	 * and enable DMA request.
> > >  	 */
> > >  	writel(MX51_ECSPI_DMA_RX_WML(spi_imx->wml - 1) |
> > > -		MX51_ECSPI_DMA_TX_WML(spi_imx->wml) |
> > > +		MX51_ECSPI_DMA_TX_WML(0) |
> > >  		MX51_ECSPI_DMA_RXT_WML(spi_imx->wml) |
> > >  		MX51_ECSPI_DMA_TEDEN | MX51_ECSPI_DMA_RXDEN |
> > >  		MX51_ECSPI_DMA_RXTDEN, spi_imx->base + MX51_ECSPI_DMA);
> > @@ -1171,7
> > > +1171,11 @@ static int spi_imx_dma_configure(struct spi_master *master)
> > >  	tx.direction = DMA_MEM_TO_DEV;
> > >  	tx.dst_addr = spi_imx->base_phys + MXC_CSPITXDATA;
> > >  	tx.dst_addr_width = buswidth;
> > > -	tx.dst_maxburst = spi_imx->wml;
> > > +	/*
> > > +	 * For ERR009165 with tx_wml = 0 could enlarge burst size to fifo size
> > > +	 * to speed up fifo filling as possible.
> > > +	 */
> > > +	tx.dst_maxburst = spi_imx->devtype_data->fifo_size;
> > 
> > In the next patch this is changed again to:
> > 
> > +       if (spi_imx->devtype_data->tx_glitch_fixed)
> > +               tx.dst_maxburst = spi_imx->wml;
> > +       else
> > +               tx.dst_maxburst = spi_imx->devtype_data->fifo_size;
> > 
> > So with tx_glitch_fixed we end up with tx.dst_maxburst being the same as two
> > patches before which is rather confusing. Better introduce tx_glitch_fixed in
> > this patch, or maybe even merge this patch and the next one.
> Sorry confused you, I should repleace 'tx_wml=0' in the above comments
> with ' TX_THRESHOLD=0', which means tx transfer dma have to wait all
> the tx data in tx fifo transferred with ERR009165 rather than
> generically 'tx_wml' (for example --half fifo size used as
> TX_THRESHOLD). Obviously TX_THRESHOLD=0 would down performance, so
> enlarge dst_maxburst to fifo size as PIO with ERR009165. After
> ERR009165 fixed at HW level. TX_THRESHOLD could be used as common
> 'spi_imx->wml' so change it back. Will add more detail information in
> v8.

I am not confused, I meant the patches are confusing. What you are doing
is:

No patch:
	tx.dst_maxburst = a;

1st patch
	tx.dst_maxburst = b;

2nd patch:

	if (foo)
		tx.dst_maxburst = a;
	else
		tx.dst_maxburst = b;

It would be better readable and understandable if you did that in one
patch, because that would directly say "Under certain conditions we have
to choose a, otherwise b". That's much better than changing "a" to "b" and
then to "a or b"

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

  reply	other threads:[~2020-05-13  9:20 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-11 17:32 [PATCH v7 RESEND 00/13] add ecspi ERR009165 for i.mx6/7 soc family Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 01/13] Revert "ARM: dts: imx6q: Use correct SDMA script for SPI5 core" Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 02/13] Revert "ARM: dts: imx6: Use correct SDMA script for SPI cores" Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 03/13] Revert "dmaengine: imx-sdma: fix context cache" Robin Gong
2020-05-13  6:05   ` Sascha Hauer
2020-05-13  7:12     ` Fuzzey, Martin
2020-05-13  8:06       ` Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 04/13] Revert "dmaengine: imx-sdma: refine to load context only once" Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 05/13] dmaengine: imx-sdma: remove dupilicated sdma_load_context Robin Gong
2020-05-13  6:05   ` Sascha Hauer
2020-05-13  8:04     ` Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 06/13] dmaengine: imx-sdma: add mcu_2_ecspi script Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 07/13] spi: imx: fix ERR009165 Robin Gong
2020-05-13  7:21   ` Sascha Hauer
2020-05-13  8:38     ` Robin Gong
2020-05-13  8:48       ` Sascha Hauer
2020-05-13  8:52         ` Robin Gong
2020-05-13  9:20           ` Sascha Hauer
2020-05-13 15:48             ` Robin Gong
2020-05-13  7:33   ` Sascha Hauer
2020-05-13  9:05     ` Robin Gong
2020-05-13  9:20       ` Sascha Hauer [this message]
2020-05-13  9:36         ` Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 08/13] spi: imx: remove ERR009165 workaround on i.mx6ul Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 09/13] spi: imx: add new i.mx6ul compatible name in binding doc Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 10/13] dmaengine: imx-sdma: remove ERR009165 on i.mx6ul Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 11/13] dma: imx-sdma: add i.mx6ul compatible name Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 12/13] dmaengine: imx-sdma: fix ecspi1 rx dma not work on i.mx8mm Robin Gong
2020-05-11 17:32 ` [PATCH v7 RESEND 13/13] dmaengine: imx-sdma: add uart rom script Robin Gong
2020-05-13 21:06   ` Fabio Estevam
2020-05-14  1:45     ` Robin Gong
2020-05-13  7:20 ` [PATCH v7 RESEND 00/13] add ecspi ERR009165 for i.mx6/7 soc family Sascha Hauer
2020-05-13  8:20   ` Robin Gong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200513092017.GQ5877@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=catalin.marinas@arm.com \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=l.stach@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=martin.fuzzey@flowbird.group \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=vkoul@kernel.org \
    --cc=will.deacon@arm.com \
    --cc=yibin.gong@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).