Message ID | 20220209210356.2848-1-jorcrous@amazon.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | i2c: qcom-geni: Fix return value for master_xfer | expand |
On Wed, Feb 09, 2022 at 09:03:56PM +0000, jorcrous@amazon.com wrote: > From: Jordan Crouse <jorcrous@amazon.com> > > The master_xfer function is supposed to return the number of messages that > were processed. Both geni_i2c_gpi_xfer and geni_i2c_fifo_xfer are > returning 0 which is being interpeted as a error in the upper layers. > > Fixes: 8133682618cb ("i2c: qcom-geni: Add support for GPI DMA") > Signed-off-by: Jordan Crouse <jorcrous@amazon.com> For the record, this patch is not upstream yet and needs to be folded into the next version of the GPI DMA patch by Vinod.
On 18-02-22, 10:44, Wolfram Sang wrote: > On Wed, Feb 09, 2022 at 09:03:56PM +0000, jorcrous@amazon.com wrote: > > From: Jordan Crouse <jorcrous@amazon.com> > > > > The master_xfer function is supposed to return the number of messages that > > were processed. Both geni_i2c_gpi_xfer and geni_i2c_fifo_xfer are > > returning 0 which is being interpeted as a error in the upper layers. > > > > Fixes: 8133682618cb ("i2c: qcom-geni: Add support for GPI DMA") > > Signed-off-by: Jordan Crouse <jorcrous@amazon.com> > > For the record, this patch is not upstream yet and needs to be folded > into the next version of the GPI DMA patch by Vinod. I have folder this into into my patch and will be posting updated one (this was also in Dmitry's review) Thanks
diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c index c5345f3421a8..e008161e1a67 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -619,7 +619,7 @@ static int geni_i2c_gpi_xfer(struct geni_i2c_dev *gi2c, struct i2c_msg msgs[], i geni_i2c_gpi_unmap(gi2c, &msgs[i], tx_buf, tx_addr, rx_buf, rx_addr); } - return 0; + return num; err: dmaengine_terminate_sync(gi2c->rx_c); @@ -645,10 +645,10 @@ static int geni_i2c_fifo_xfer(struct geni_i2c_dev *gi2c, ret = geni_i2c_tx_one_msg(gi2c, &msgs[i], m_param); if (ret) - break; + return ret; } - return ret; + return num; } static int geni_i2c_xfer(struct i2c_adapter *adap,