From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Josef Ahmad" Subject: Re: [PATCH] i2c-designware: fix RX FIFO overrun Date: Tue, 23 Apr 2013 10:44:42 -0700 (PDT) Message-ID: <51465.163.33.213.85.1366739082.squirrel@linux.intel.com> References: <20130422071943.GK1283@intel.com> <53398.163.33.213.79.1366630241.squirrel@linux.intel.com> <20130422122808.GO1283@intel.com> <20130423163543.GB3228@the-dreams.de> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Return-path: In-Reply-To: <20130423163543.GB3228-z923LK4zBo2bacvFa/9K2g@public.gmane.org> Sender: linux-i2c-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Wolfram Sang Cc: Josef Ahmad , Mika Westerberg , Ben Dooks , Jean Delvare , Stefan Roese , Axel Lin , linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Dirk Brandewie List-Id: linux-i2c@vger.kernel.org > 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 >> 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 >> Acked-by: Mika Westerberg > > 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? > Hi Wolfram This patch applies just fine on top of your i2c-embedded/for-next branch.