From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King - ARM Linux Subject: [PATCH 0/9] Fix Marvell mv63xxx I2C driver Date: Thu, 16 May 2013 21:29:21 +0100 Message-ID: <20130516202921.GW18614@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: linux-arm-kernel@lists.infradead.org Cc: Jason Cooper , Wolfram Sang , "Mark A. Greer" , linux-i2c@vger.kernel.org, "Ben Dooks (embedded platforms)" , Sebastian Hesselbarth List-Id: linux-i2c@vger.kernel.org This patch series fixes a whole chunk of problems with this driver, discovered with the Marvell Armada 510 chip on the Solid-run cubox. Most notable of these is the I2C driver aborting a transaction because a signal is pending - which might be SIGPIPE or SIGALRM for the process. Meanwhile, the calling driver may be in the middle of a critical read-modify-write cycle on a device register, causing it to fail. Other problems are race conditions in the handling of multi-part messages, where we end up sending multiple start conditions - sometimes more times than we have i2c_msg's to send. Lastly is the rather poor probe error handling, which ranges from non-existent to lacking propagating the provided error code.