Messages in this thread | | | Date | Tue, 23 Apr 2013 18:35:43 +0200 | From | Wolfram Sang <> | Subject | Re: [PATCH] i2c-designware: fix RX FIFO overrun |
| |
On Mon, Apr 22, 2013 at 03:08:59PM +0100, Josef Ahmad wrote: > From a969728248c3b439dc97a69e7dac133b5efa34e7 Mon Sep 17 00:00:00 2001 > From: Josef Ahmad <josef.ahmad@linux.intel.com> > Date: Fri, 19 Apr 2013 17:28:10 +0100 > Subject: [PATCH] i2c-designware: fix RX FIFO overrun > > i2c_dw_xfer_msg() pushes a number of bytes to transmit/receive > to/from the bus into the TX FIFO. > For master-rx transactions, the maximum amount of data that can be > received is calculated depending solely on TX and RX FIFO load. > > This is racy - TX FIFO may contain master-rx data yet to be > processed, which will eventually land into the RX FIFO. This > data is not taken into account and the function may request more > data than the controller is actually capable of storing. > > This patch ensures the driver takes into account the outstanding > master-rx data in TX FIFO to prevent RX FIFO overrun. > > Signed-off-by: Josef Ahmad <josef.ahmad@linux.intel.com> > Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
This driver had a major cleanup meanwhile. Could you rebase your patch on top of my for-next branch? I guess this version should make it into stable?
| |