From owner-svn-src-head@FreeBSD.ORG Mon Sep 27 15:58:20 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 450221065672; Mon, 27 Sep 2010 15:58:20 +0000 (UTC) (envelope-from ticso@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 34CE08FC34; Mon, 27 Sep 2010 15:58:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RFwKlu041220; Mon, 27 Sep 2010 15:58:20 GMT (envelope-from ticso@svn.freebsd.org) Received: (from ticso@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RFwKwt041218; Mon, 27 Sep 2010 15:58:20 GMT (envelope-from ticso@svn.freebsd.org) Message-Id: <201009271558.o8RFwKwt041218@svn.freebsd.org> From: Bernd Walter Date: Mon, 27 Sep 2010 15:58:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213203 - head/sys/arm/at91 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 15:58:20 -0000 Author: ticso Date: Mon Sep 27 15:58:19 2010 New Revision: 213203 URL: http://svn.freebsd.org/changeset/base/213203 Log: The TWI controller automatically stops if we don't fill up with new data in time. Modified: head/sys/arm/at91/at91_twi.c Modified: head/sys/arm/at91/at91_twi.c ============================================================================== --- head/sys/arm/at91/at91_twi.c Mon Sep 27 15:55:39 2010 (r213202) +++ head/sys/arm/at91/at91_twi.c Mon Sep 27 15:58:19 2010 (r213203) @@ -338,7 +338,7 @@ at91_twi_transfer(device_t dev, struct i err = EINVAL; goto out; } - if (len == 1) + if (len == 1 && msgs[i].flags & IIC_M_RD) WR4(sc, TWI_CR, TWI_CR_START | TWI_CR_STOP); else WR4(sc, TWI_CR, TWI_CR_START); @@ -358,8 +358,6 @@ at91_twi_transfer(device_t dev, struct i } } else { while (len--) { - if (len == 0 && msgs[i].len != 1) - WR4(sc, TWI_CR, TWI_CR_STOP); if ((err = at91_twi_wait(sc, TWI_SR_TXRDY))) goto out; WR4(sc, TWI_THR, *buf++);