Lines Matching refs:msgs

436 static int mtk_i2c_do_transfer(struct mtk_i2c *i2c, struct i2c_msg *msgs,  in mtk_i2c_do_transfer()  argument
471 addr_reg = i2c_8bit_addr_from_msg(msgs); in mtk_i2c_do_transfer()
486 writew(msgs->len, i2c->base + OFFSET_TRANSFER_LEN); in mtk_i2c_do_transfer()
487 writew((msgs + 1)->len, i2c->base + in mtk_i2c_do_transfer()
490 writew(msgs->len | ((msgs + 1)->len) << 8, in mtk_i2c_do_transfer()
495 writew(msgs->len, i2c->base + OFFSET_TRANSFER_LEN); in mtk_i2c_do_transfer()
503 rpaddr = dma_map_single(i2c->dev, msgs->buf, in mtk_i2c_do_transfer()
504 msgs->len, DMA_FROM_DEVICE); in mtk_i2c_do_transfer()
514 writel(msgs->len, i2c->pdmabase + OFFSET_RX_LEN); in mtk_i2c_do_transfer()
518 wpaddr = dma_map_single(i2c->dev, msgs->buf, in mtk_i2c_do_transfer()
519 msgs->len, DMA_TO_DEVICE); in mtk_i2c_do_transfer()
529 writel(msgs->len, i2c->pdmabase + OFFSET_TX_LEN); in mtk_i2c_do_transfer()
533 wpaddr = dma_map_single(i2c->dev, msgs->buf, in mtk_i2c_do_transfer()
534 msgs->len, DMA_TO_DEVICE); in mtk_i2c_do_transfer()
537 rpaddr = dma_map_single(i2c->dev, (msgs + 1)->buf, in mtk_i2c_do_transfer()
538 (msgs + 1)->len, in mtk_i2c_do_transfer()
542 msgs->len, DMA_TO_DEVICE); in mtk_i2c_do_transfer()
556 writel(msgs->len, i2c->pdmabase + OFFSET_TX_LEN); in mtk_i2c_do_transfer()
557 writel((msgs + 1)->len, i2c->pdmabase + OFFSET_RX_LEN); in mtk_i2c_do_transfer()
580 msgs->len, DMA_TO_DEVICE); in mtk_i2c_do_transfer()
583 msgs->len, DMA_FROM_DEVICE); in mtk_i2c_do_transfer()
585 dma_unmap_single(i2c->dev, wpaddr, msgs->len, in mtk_i2c_do_transfer()
587 dma_unmap_single(i2c->dev, rpaddr, (msgs + 1)->len, in mtk_i2c_do_transfer()
592 dev_dbg(i2c->dev, "addr: %x, transfer timeout\n", msgs->addr); in mtk_i2c_do_transfer()
600 dev_dbg(i2c->dev, "addr: %x, transfer ACK error\n", msgs->addr); in mtk_i2c_do_transfer()
609 struct i2c_msg msgs[], int num) in mtk_i2c_transfer() argument
623 if (!(msgs[0].flags & I2C_M_RD) && (msgs[1].flags & I2C_M_RD) && in mtk_i2c_transfer()
624 msgs[0].addr == msgs[1].addr) { in mtk_i2c_transfer()
638 if (!msgs->buf) { in mtk_i2c_transfer()
644 if (msgs->flags & I2C_M_RD) in mtk_i2c_transfer()
658 ret = mtk_i2c_do_transfer(i2c, msgs, num, left_num); in mtk_i2c_transfer()
662 msgs++; in mtk_i2c_transfer()