From owner-svn-src-head@FreeBSD.ORG Wed Aug 19 15:48:54 2009 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 61C99106568D; Wed, 19 Aug 2009 15:48:54 +0000 (UTC) (envelope-from sam@errno.com) Received: from ebb.errno.com (ebb.errno.com [69.12.149.25]) by mx1.freebsd.org (Postfix) with ESMTP id 31FCB8FC70; Wed, 19 Aug 2009 15:48:54 +0000 (UTC) Received: from ice.local ([10.0.0.115]) (authenticated bits=0) by ebb.errno.com (8.13.6/8.12.6) with ESMTP id n7JFmrM6027766 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 19 Aug 2009 08:48:53 -0700 (PDT) (envelope-from sam@errno.com) Message-ID: <4A8C1EE5.3030103@errno.com> Date: Wed, 19 Aug 2009 08:48:53 -0700 From: Sam Leffler User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Rafal Jaworowski References: <200908191439.n7JEd892057035@svn.freebsd.org> <4A8C1AA0.20303@errno.com> <81BE0575-26B5-4EBE-90D5-4B3DDB42F79F@semihalf.com> In-Reply-To: <81BE0575-26B5-4EBE-90D5-4B3DDB42F79F@semihalf.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-DCC-sonic.net-Metrics: ebb.errno.com; whitelist Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r196380 - head/sys/dev/usb 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: Wed, 19 Aug 2009 15:48:54 -0000 Rafal Jaworowski wrote: > > On 2009-08-19, at 17:30, Sam Leffler wrote: > >> Rafal Jaworowski wrote: >>> Author: raj >>> Date: Wed Aug 19 14:39:08 2009 >>> New Revision: 196380 >>> URL: http://svn.freebsd.org/changeset/base/196380 >>> Log: >>> Fix USB cache sync operations for platforms with non-coherent DMA. >>> - usb_pc_cpu_invalidate() is called between [consecutive] reads >>> from a device, >>> so a sequence of BUS_DMASYNC_POSTREAD and _PREREAD should be used. >>> Note we >>> cannot use or'ed shorthand ( _POSTREAD | _PREREAD) for BUS_DMASYNC >>> flags, as >>> the low level bus dma sync operation is implementation dependent >>> and we >>> cannot assume the required order of operations to be guaranteed. >>> - usb_pc_cpu_flush() is called before writing to a device, so >>> BUS_DMASYNC_PREWRITE should be used. >>> Submitted by: Grzegorz Bernacki >>> Reviewed by: HPS, arm@, usb@ ML >>> Tested by: HPS, Mike Tancsa >>> Approved by: re (kib) >>> Obtained from: Semihalf >> >> Is this different from the patch I tested on Gateworks 2358 boards >> which didn't completely resolve problems? > > Hm, not sure what patch you have tested with GW. There was an initial > workaround for this problem from late June time frame, and this commit > is a refined fix identical to the patch posted 05 Aug to arm@. There > were other ARM patches in the meantime involving cache sync, but they > were pmap-related. I'm pretty sure it's the same one and was combined with other changes you describe. Unfortunately reproducing the problem requires an out-of-tree driver so we can't be sure whether all issues are resolved on the platform. Sam