> >> drivers/i2c/busses/Kconfig | 2 +- > >> drivers/i2c/busses/i2c-tegra.c | 362 > >> ++++++++++++++++++++++++++++++++++++++--- > >> 2 files changed, 339 insertions(+), 25 deletions(-) > > > > Tegra20 crashes because of this patch: > > > [snip] > > <4>[ 3.395915] ------------[ cut here ]------------ > > <2>[ 3.395919] kernel BUG at drivers/i2c/busses/i2c-tegra.c:810! > The BUG line is from: > > if (status & I2C_INT_PACKET_XFER_COMPLETE) { > if (i2c_dev->is_curr_dma_xfer) > i2c_dev->msg_buf_remaining = 0; > BUG_ON(i2c_dev->msg_buf_remaining); > complete(&i2c_dev->msg_complete); > } > BUG_ON line is not part of this change. It was already there in existing driver. Based on log, I see DMA transfer is done for 224 bytes followed by 1 successful PIO transfer and then on next PIO transfer it received packet xfer complete interrupt with incomplete transfer bytes and that where it hit BUG_ON condition.