Re: [PATCH 08/18] spi: qup: Handle v1 dma completion differently
On Wed, Jun 14, 2017 at 12:45:51PM +0530, Sricharan R wrote: > Hi Varada, > > On 6/14/2017 11:22 AM, Varadarajan Narayanan wrote: > > Do not assign i/o completion callbacks while running > > on v1 of QUP. > > > > Signed-off-by: Varadarajan Narayanan> > --- > > drivers/spi/spi-qup.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c > > index 7c22ee4..0f6a4c7 100644 > > --- a/drivers/spi/spi-qup.c > > +++ b/drivers/spi/spi-qup.c > > @@ -334,6 +334,7 @@ static int spi_qup_do_dma(struct spi_master *master, > > struct spi_transfer *xfer, > > unsigned long timeout) > > { > > struct spi_qup *qup = spi_master_get_devdata(master); > > + dma_async_tx_callback done = qup->qup_v1 ? NULL : spi_qup_dma_done; > > int ret; > > > > /* before issuing the descriptors, set the QUP to run */ > > @@ -346,7 +347,7 @@ static int spi_qup_do_dma(struct spi_master *master, > > struct spi_transfer *xfer, > > > > if (xfer->rx_buf) { > > ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, > > - spi_qup_dma_done, >rxc); > > + done, >rxc); > > if (ret) > > return ret; > > > > @@ -355,7 +356,7 @@ static int spi_qup_do_dma(struct spi_master *master, > > struct spi_transfer *xfer, > > > > if (xfer->tx_buf) { > > ret = spi_qup_prep_sg(master, xfer, DMA_MEM_TO_DEV, > > - spi_qup_dma_done, >txc); > > + done, >txc); > > if (ret) > > return ret; > > > > > > Not sure why we cannot use dma callback for V1 ? V1 is for ADMA. V2+ is BAM. We only needed the callback for BAM Regards, Andy
Re: [PATCH 08/18] spi: qup: Handle v1 dma completion differently
On Wed, Jun 14, 2017 at 12:45:51PM +0530, Sricharan R wrote: > Hi Varada, > > On 6/14/2017 11:22 AM, Varadarajan Narayanan wrote: > > Do not assign i/o completion callbacks while running > > on v1 of QUP. > > > > Signed-off-by: Varadarajan Narayanan > > --- > > drivers/spi/spi-qup.c | 5 +++-- > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c > > index 7c22ee4..0f6a4c7 100644 > > --- a/drivers/spi/spi-qup.c > > +++ b/drivers/spi/spi-qup.c > > @@ -334,6 +334,7 @@ static int spi_qup_do_dma(struct spi_master *master, > > struct spi_transfer *xfer, > > unsigned long timeout) > > { > > struct spi_qup *qup = spi_master_get_devdata(master); > > + dma_async_tx_callback done = qup->qup_v1 ? NULL : spi_qup_dma_done; > > int ret; > > > > /* before issuing the descriptors, set the QUP to run */ > > @@ -346,7 +347,7 @@ static int spi_qup_do_dma(struct spi_master *master, > > struct spi_transfer *xfer, > > > > if (xfer->rx_buf) { > > ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, > > - spi_qup_dma_done, >rxc); > > + done, >rxc); > > if (ret) > > return ret; > > > > @@ -355,7 +356,7 @@ static int spi_qup_do_dma(struct spi_master *master, > > struct spi_transfer *xfer, > > > > if (xfer->tx_buf) { > > ret = spi_qup_prep_sg(master, xfer, DMA_MEM_TO_DEV, > > - spi_qup_dma_done, >txc); > > + done, >txc); > > if (ret) > > return ret; > > > > > > Not sure why we cannot use dma callback for V1 ? V1 is for ADMA. V2+ is BAM. We only needed the callback for BAM Regards, Andy
Re: [PATCH 08/18] spi: qup: Handle v1 dma completion differently
Hi Varada, On 6/14/2017 11:22 AM, Varadarajan Narayanan wrote: > Do not assign i/o completion callbacks while running > on v1 of QUP. > > Signed-off-by: Varadarajan Narayanan> --- > drivers/spi/spi-qup.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c > index 7c22ee4..0f6a4c7 100644 > --- a/drivers/spi/spi-qup.c > +++ b/drivers/spi/spi-qup.c > @@ -334,6 +334,7 @@ static int spi_qup_do_dma(struct spi_master *master, > struct spi_transfer *xfer, > unsigned long timeout) > { > struct spi_qup *qup = spi_master_get_devdata(master); > + dma_async_tx_callback done = qup->qup_v1 ? NULL : spi_qup_dma_done; > int ret; > > /* before issuing the descriptors, set the QUP to run */ > @@ -346,7 +347,7 @@ static int spi_qup_do_dma(struct spi_master *master, > struct spi_transfer *xfer, > > if (xfer->rx_buf) { > ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, > - spi_qup_dma_done, >rxc); > + done, >rxc); > if (ret) > return ret; > > @@ -355,7 +356,7 @@ static int spi_qup_do_dma(struct spi_master *master, > struct spi_transfer *xfer, > > if (xfer->tx_buf) { > ret = spi_qup_prep_sg(master, xfer, DMA_MEM_TO_DEV, > - spi_qup_dma_done, >txc); > + done, >txc); > if (ret) > return ret; > > Not sure why we cannot use dma callback for V1 ? Regards, Sricharan -- "QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Re: [PATCH 08/18] spi: qup: Handle v1 dma completion differently
Hi Varada, On 6/14/2017 11:22 AM, Varadarajan Narayanan wrote: > Do not assign i/o completion callbacks while running > on v1 of QUP. > > Signed-off-by: Varadarajan Narayanan > --- > drivers/spi/spi-qup.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c > index 7c22ee4..0f6a4c7 100644 > --- a/drivers/spi/spi-qup.c > +++ b/drivers/spi/spi-qup.c > @@ -334,6 +334,7 @@ static int spi_qup_do_dma(struct spi_master *master, > struct spi_transfer *xfer, > unsigned long timeout) > { > struct spi_qup *qup = spi_master_get_devdata(master); > + dma_async_tx_callback done = qup->qup_v1 ? NULL : spi_qup_dma_done; > int ret; > > /* before issuing the descriptors, set the QUP to run */ > @@ -346,7 +347,7 @@ static int spi_qup_do_dma(struct spi_master *master, > struct spi_transfer *xfer, > > if (xfer->rx_buf) { > ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, > - spi_qup_dma_done, >rxc); > + done, >rxc); > if (ret) > return ret; > > @@ -355,7 +356,7 @@ static int spi_qup_do_dma(struct spi_master *master, > struct spi_transfer *xfer, > > if (xfer->tx_buf) { > ret = spi_qup_prep_sg(master, xfer, DMA_MEM_TO_DEV, > - spi_qup_dma_done, >txc); > + done, >txc); > if (ret) > return ret; > > Not sure why we cannot use dma callback for V1 ? Regards, Sricharan -- "QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
[PATCH 08/18] spi: qup: Handle v1 dma completion differently
Do not assign i/o completion callbacks while running on v1 of QUP. Signed-off-by: Varadarajan Narayanan--- drivers/spi/spi-qup.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c index 7c22ee4..0f6a4c7 100644 --- a/drivers/spi/spi-qup.c +++ b/drivers/spi/spi-qup.c @@ -334,6 +334,7 @@ static int spi_qup_do_dma(struct spi_master *master, struct spi_transfer *xfer, unsigned long timeout) { struct spi_qup *qup = spi_master_get_devdata(master); + dma_async_tx_callback done = qup->qup_v1 ? NULL : spi_qup_dma_done; int ret; /* before issuing the descriptors, set the QUP to run */ @@ -346,7 +347,7 @@ static int spi_qup_do_dma(struct spi_master *master, struct spi_transfer *xfer, if (xfer->rx_buf) { ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, - spi_qup_dma_done, >rxc); + done, >rxc); if (ret) return ret; @@ -355,7 +356,7 @@ static int spi_qup_do_dma(struct spi_master *master, struct spi_transfer *xfer, if (xfer->tx_buf) { ret = spi_qup_prep_sg(master, xfer, DMA_MEM_TO_DEV, - spi_qup_dma_done, >txc); + done, >txc); if (ret) return ret; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
[PATCH 08/18] spi: qup: Handle v1 dma completion differently
Do not assign i/o completion callbacks while running on v1 of QUP. Signed-off-by: Varadarajan Narayanan --- drivers/spi/spi-qup.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-qup.c b/drivers/spi/spi-qup.c index 7c22ee4..0f6a4c7 100644 --- a/drivers/spi/spi-qup.c +++ b/drivers/spi/spi-qup.c @@ -334,6 +334,7 @@ static int spi_qup_do_dma(struct spi_master *master, struct spi_transfer *xfer, unsigned long timeout) { struct spi_qup *qup = spi_master_get_devdata(master); + dma_async_tx_callback done = qup->qup_v1 ? NULL : spi_qup_dma_done; int ret; /* before issuing the descriptors, set the QUP to run */ @@ -346,7 +347,7 @@ static int spi_qup_do_dma(struct spi_master *master, struct spi_transfer *xfer, if (xfer->rx_buf) { ret = spi_qup_prep_sg(master, xfer, DMA_DEV_TO_MEM, - spi_qup_dma_done, >rxc); + done, >rxc); if (ret) return ret; @@ -355,7 +356,7 @@ static int spi_qup_do_dma(struct spi_master *master, struct spi_transfer *xfer, if (xfer->tx_buf) { ret = spi_qup_prep_sg(master, xfer, DMA_MEM_TO_DEV, - spi_qup_dma_done, >txc); + done, >txc); if (ret) return ret; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation