From owner-freebsd-embedded@FreeBSD.ORG Sun Jun 6 16:02:34 2010 Return-Path: Delivered-To: freebsd-embedded@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E8A7B106564A for ; Sun, 6 Jun 2010 16:02:34 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from adsum.doit.wisc.edu (adsum.doit.wisc.edu [144.92.197.210]) by mx1.freebsd.org (Postfix) with ESMTP id B99248FC24 for ; Sun, 6 Jun 2010 16:02:34 +0000 (UTC) MIME-version: 1.0 Content-type: multipart/mixed; boundary="Boundary_(ID_Ft8RPkqIzUB3Osaxs5gnOg)" Received: from avs-daemon.smtpauth1.wiscmail.wisc.edu by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0L3L00L00LS98200@smtpauth1.wiscmail.wisc.edu> for freebsd-embedded@freebsd.org; Sun, 06 Jun 2010 10:02:33 -0500 (CDT) Received: from comporellon.tachypleus.net (adsl-76-208-69-183.dsl.mdsnwi.sbcglobal.net [76.208.69.183]) by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0L3L00FY3LS7K610@smtpauth1.wiscmail.wisc.edu> for freebsd-embedded@freebsd.org; Sun, 06 Jun 2010 10:02:32 -0500 (CDT) Date: Sun, 06 Jun 2010 10:02:31 -0500 From: Nathan Whitehorn To: freebsd-embedded@freebsd.org Message-id: <4C0BB887.5070103@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.208.69.183 X-Spam-PmxInfo: Server=avs-14, Version=5.5.9.395186, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2010.6.6.145415, SenderIP=76.208.69.183 User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.9) Gecko/20100407 Thunderbird/3.0.4 Subject: Review request: iicbus_transfer_gen() repeated start support X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 06 Jun 2010 16:02:35 -0000 This is a multi-part message in MIME format. --Boundary_(ID_Ft8RPkqIzUB3Osaxs5gnOg) Content-type: text/plain; CHARSET=US-ASCII; format=flowed Content-transfer-encoding: 7BIT I committed yesterday some changes to the iicbus_transfer() API that allow using that interface to send messages containing repeated starts. The attached patch implements this for the iicbus_transfer_gen() case, but I don't have any I2C controllers that use this routine, so I can't test it. I would much appreciate it if someone could review and test the patch for me. -Nathan --Boundary_(ID_Ft8RPkqIzUB3Osaxs5gnOg) Content-type: text/plain; name=iicbus_transfer_gen.diff Content-transfer-encoding: 7BIT Content-disposition: attachment; filename=iicbus_transfer_gen.diff Index: iiconf.c =================================================================== --- iiconf.c (revision 208832) +++ iiconf.c (working copy) @@ -363,7 +363,7 @@ int iicbus_transfer_gen(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) { - int i, error, lenread, lenwrote, nkid; + int i, error, lenread, lenwrote, nkid, rpstart, addr; device_t *children, bus; if ((error = device_get_children(dev, &children, &nkid)) != 0) @@ -373,14 +373,38 @@ return (EIO); } bus = children[0]; + rpstart = 0; free(children, M_TEMP); for (i = 0, error = 0; i < nmsgs && error == 0; i++) { + addr = msgs[i].slave; if (msgs[i].flags & IIC_M_RD) - error = iicbus_block_read(bus, msgs[i].slave, - msgs[i].buf, msgs[i].len, &lenread); + addr |= LSB; else - error = iicbus_block_write(bus, msgs[i].slave, - msgs[i].buf, msgs[i].len, &lenwrote); + addr &= ~LSB; + + if (!(msgs[i].flags & IIC_M_NOSTART)) { + if (rpstart) + error = iicbus_repeated_start(bus, addr, 0); + else + error = iicbus_start(bus, addr, 0); + } + + if (error) + break; + + if (msgs[i].flags & IIC_M_RD) + error = iicbus_read(bus, msgs[i].buf, msgs[i].len, + &lenread, IIC_LAST_READ, 0); + else + error = iicbus_write(bus, msgs[i].buf, msgs[i].len, + &lenwrote, 0); + + if (!(msgs[i].flags & IIC_M_NOSTOP)) { + rpstart = 0; + iicbus_stop(bus); + } else { + rpstart = 1; /* Next message gets repeated start */ + } } return (error); } --Boundary_(ID_Ft8RPkqIzUB3Osaxs5gnOg)-- From owner-freebsd-embedded@FreeBSD.ORG Mon Jun 7 11:06:52 2010 Return-Path: Delivered-To: freebsd-embedded@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 51C43106566B for ; Mon, 7 Jun 2010 11:06:52 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (unknown [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 40B198FC1F for ; Mon, 7 Jun 2010 11:06:51 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o57B6pDg008595 for ; Mon, 7 Jun 2010 11:06:51 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o57B6plN008591 for freebsd-embedded@FreeBSD.org; Mon, 7 Jun 2010 11:06:51 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 7 Jun 2010 11:06:51 GMT Message-Id: <201006071106.o57B6plN008591@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-embedded@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-embedded@FreeBSD.org X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jun 2010 11:06:52 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o misc/136889 embedded [nanobsd] [path] nanobsd error reporting and other ref p misc/135588 embedded [nanobsd] simple patch for adding amd64 support o misc/52256 embedded [picobsd] picobsd build script does not read in user/s o kern/42728 embedded [picobsd] many problems in src/usr.sbin/ppp/* after c 4 problems total.