Lines Matching refs:msgs
363 struct i2c_msg *msgs) in i2c_imx_dma_xfer() argument
370 dma->dma_buf = dma_map_single(chan_dev, msgs->buf, in i2c_imx_dma_xfer()
608 struct i2c_msg *msgs) in i2c_imx_dma_write() argument
620 dma->dma_len = msgs->len - 1; in i2c_imx_dma_write()
621 result = i2c_imx_dma_xfer(i2c_imx, msgs); in i2c_imx_dma_write()
633 imx_i2c_write_reg(msgs->addr << 1, i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_write()
661 imx_i2c_write_reg(msgs->buf[msgs->len-1], in i2c_imx_dma_write()
671 struct i2c_msg *msgs, bool is_lastmsg) in i2c_imx_dma_read() argument
688 dma->dma_len = msgs->len - 2; in i2c_imx_dma_read()
689 result = i2c_imx_dma_xfer(i2c_imx, msgs); in i2c_imx_dma_read()
724 msgs->buf[msgs->len-2] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_read()
753 msgs->buf[msgs->len-1] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_dma_read()
758 static int i2c_imx_write(struct imx_i2c_struct *i2c_imx, struct i2c_msg *msgs) in i2c_imx_write() argument
763 __func__, msgs->addr << 1); in i2c_imx_write()
766 imx_i2c_write_reg(msgs->addr << 1, i2c_imx, IMX_I2C_I2DR); in i2c_imx_write()
776 for (i = 0; i < msgs->len; i++) { in i2c_imx_write()
779 __func__, i, msgs->buf[i]); in i2c_imx_write()
780 imx_i2c_write_reg(msgs->buf[i], i2c_imx, IMX_I2C_I2DR); in i2c_imx_write()
791 static int i2c_imx_read(struct imx_i2c_struct *i2c_imx, struct i2c_msg *msgs, bool is_lastmsg) in i2c_imx_read() argument
795 int block_data = msgs->flags & I2C_M_RECV_LEN; in i2c_imx_read()
799 __func__, (msgs->addr << 1) | 0x01); in i2c_imx_read()
802 imx_i2c_write_reg((msgs->addr << 1) | 0x01, i2c_imx, IMX_I2C_I2DR); in i2c_imx_read()
820 if ((msgs->len - 1) || block_data) in i2c_imx_read()
827 if (i2c_imx->dma && msgs->len >= DMA_THRESHOLD && !block_data) in i2c_imx_read()
828 return i2c_imx_dma_read(i2c_imx, msgs, is_lastmsg); in i2c_imx_read()
831 for (i = 0; i < msgs->len; i++) { in i2c_imx_read()
849 msgs->len += len; in i2c_imx_read()
851 if (i == (msgs->len - 1)) { in i2c_imx_read()
876 } else if (i == (msgs->len - 2)) { in i2c_imx_read()
884 msgs->buf[0] = len; in i2c_imx_read()
886 msgs->buf[i] = imx_i2c_read_reg(i2c_imx, IMX_I2C_I2DR); in i2c_imx_read()
889 __func__, i, msgs->buf[i]); in i2c_imx_read()
895 struct i2c_msg *msgs, int num) in i2c_imx_xfer() argument
951 if (msgs[i].flags & I2C_M_RD) in i2c_imx_xfer()
952 result = i2c_imx_read(i2c_imx, &msgs[i], is_lastmsg); in i2c_imx_xfer()
954 if (i2c_imx->dma && msgs[i].len >= DMA_THRESHOLD) in i2c_imx_xfer()
955 result = i2c_imx_dma_write(i2c_imx, &msgs[i]); in i2c_imx_xfer()
957 result = i2c_imx_write(i2c_imx, &msgs[i]); in i2c_imx_xfer()