Lines Matching refs:msgs

356 					struct i2c_msg *msgs)  in i2c_imx_dma_xfer()  argument
363 dma->dma_buf = dma_map_single(chan_dev, msgs->buf, in i2c_imx_dma_xfer()
601 struct i2c_msg *msgs) in i2c_imx_dma_write() argument
613 dma->dma_len = msgs->len - 1; in i2c_imx_dma_write()
614 result = i2c_imx_dma_xfer(i2c_imx, msgs); in i2c_imx_dma_write()
626 imx_i2c_write_reg(msgs->addr << 1, i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_write()
654 imx_i2c_write_reg(msgs->buf[msgs->len-1], in i2c_imx_dma_write()
664 struct i2c_msg *msgs, bool is_lastmsg) in i2c_imx_dma_read() argument
681 dma->dma_len = msgs->len - 2; in i2c_imx_dma_read()
682 result = i2c_imx_dma_xfer(i2c_imx, msgs); in i2c_imx_dma_read()
717 msgs->buf[msgs->len-2] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_read()
746 msgs->buf[msgs->len-1] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_read()
751 static int i2c_imx_write(struct imx_i2c_struct *i2c_imx, struct i2c_msg *msgs) in i2c_imx_write() argument
756 __func__, msgs->addr << 1); in i2c_imx_write()
759 imx_i2c_write_reg(msgs->addr << 1, i2c_imx, IMX_I2C_I2DR); in i2c_imx_write()
769 for (i = 0; i < msgs->len; i++) { in i2c_imx_write()
772 __func__, i, msgs->buf[i]); in i2c_imx_write()
773 imx_i2c_write_reg(msgs->buf[i], i2c_imx, IMX_I2C_I2DR); in i2c_imx_write()
784 static int i2c_imx_read(struct imx_i2c_struct *i2c_imx, struct i2c_msg *msgs, bool is_lastmsg) in i2c_imx_read() argument
788 int block_data = msgs->flags & I2C_M_RECV_LEN; in i2c_imx_read()
792 __func__, (msgs->addr << 1) | 0x01); in i2c_imx_read()
795 imx_i2c_write_reg((msgs->addr << 1) | 0x01, i2c_imx, IMX_I2C_I2DR); in i2c_imx_read()
813 if ((msgs->len - 1) || block_data) in i2c_imx_read()
820 if (i2c_imx->dma && msgs->len >= DMA_THRESHOLD && !block_data) in i2c_imx_read()
821 return i2c_imx_dma_read(i2c_imx, msgs, is_lastmsg); in i2c_imx_read()
824 for (i = 0; i < msgs->len; i++) { in i2c_imx_read()
842 msgs->len += len; in i2c_imx_read()
844 if (i == (msgs->len - 1)) { in i2c_imx_read()
869 } else if (i == (msgs->len - 2)) { in i2c_imx_read()
877 msgs->buf[0] = len; in i2c_imx_read()
879 msgs->buf[i] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_read()
882 __func__, i, msgs->buf[i]); in i2c_imx_read()
888 struct i2c_msg *msgs, int num) in i2c_imx_xfer() argument
937 if (msgs[i].flags & I2C_M_RD) in i2c_imx_xfer()
938 result = i2c_imx_read(i2c_imx, &msgs[i], is_lastmsg); in i2c_imx_xfer()
940 if (i2c_imx->dma && msgs[i].len >= DMA_THRESHOLD) in i2c_imx_xfer()
941 result = i2c_imx_dma_write(i2c_imx, &msgs[i]); in i2c_imx_xfer()
943 result = i2c_imx_write(i2c_imx, &msgs[i]); in i2c_imx_xfer()