From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Suthikulpanit, Suravee" Subject: Re: [Linaro-acpi] [PATCH 2/2] ACPI / scan: Parse _CCA and setup device coherency Date: Wed, 29 Apr 2015 14:57:10 +0000 Message-ID: References: <3246744.xVj4sLRlWl@wuerfel> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT Return-path: In-Reply-To: <3246744.xVj4sLRlWl@wuerfel> Content-Language: en-US Content-ID: <6CAF71ED978F994C838BF63F72F3B77F@amd.com> Sender: linux-kernel-owner@vger.kernel.org To: Arnd Bergmann , "linaro-acpi@lists.linaro.org" Cc: "linux-arm-kernel@lists.infradead.org" , "catalin.marinas@arm.com" , "rjw@rjwysocki.net" , "linux-kernel@vger.kernel.org" , "will.deacon@arm.com" , "linux-acpi@vger.kernel.org" , "lenb@kernel.org" , Charles Garcia-Tobin List-Id: linux-acpi@vger.kernel.org On 4/29/15, 09:47, "Arnd Bergmann" wrote: >On Wednesday 29 April 2015 09:45:43 Suravee Suthikulpanit wrote: >> On 04/29/2015 09:03 AM, Arnd Bergmann wrote: >> > On Wednesday 29 April 2015 08:44:09 Suravee Suthikulpanit wrote: >> >> + device->flags.cca_seen = 1; >> >> + } else if (IS_ENABLED(CONFIG_ACPI_MUST_HAVE_CCA)) { >> >> + /* >> >> + * Architecture has specified that if the >>device >> >> + * can do DMA, it must have ACPI _CCA object. >> >> + * Here, there could be two cases: >> >> + * 1. Not DMA-able device. >> >> + * 2. DMA-able device, but missing _CCA >>object. >> >> + * >> >> + * In both cases, we will default to dma >>non-coherent. >> >> + */ >> >> + cca = 0; >> >> + } else { >> >> + /* >> >> + * If architecture does not specify that >>device must >> >> + * specify ACPI _CCA (e.g. x86), we default >>to use >> >> + * dma coherent. >> >> + */ >> >> + cca = 1; >> >> + } >> >> >> > >> > What does it mean here if a device does DMA but is not coherent? Do >>you >> > have an example of a server that needs this? >> > >> > Can we please make the default for ARM64 cca=1 as well? >> > >> > Arnd >> > >> >> Actually, I am trying to implement the logic for when missing _CCA to >>be >> consistent with the behavior when the devicetree entry does not specify >> "dma-coherent" property. IIUC, in such case, Linux will default to >>using >> non-coherent DMA. > >Why? > > Arnd Otherwise, it would seem inconsistent with what states in the ACPI spec: CCA objects are only relevant for devices that can access CPU-visible memory, such as devices that are DMA capable. On ARM based systems, the _CCA object must be supplied all such devices. On Intel platforms, if the _CCA object is not supplied, the OSPM will assume the devices are hardware cache coherent. >>From the statement above, I interpreted as if it is not present, it would be non-coherent. Suravee