From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754756AbbJUPxE (ORCPT ); Wed, 21 Oct 2015 11:53:04 -0400 Received: from mail-bn1bon0081.outbound.protection.outlook.com ([157.56.111.81]:36692 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750758AbbJUPxA (ORCPT ); Wed, 21 Oct 2015 11:53:00 -0400 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0NWKUS4-08-09X-02 X-M-MSG: From: Suravee Suthikulpanit To: , , , , CC: , , , , , , , , Suravee Suthikulpanit Subject: [PATCH V4 0/8] PCI: ACPI: Setting up DMA coherency for PCI device from _CCA attribute Date: Wed, 21 Oct 2015 08:52:03 -0700 Message-ID: <1445442731-28819-1-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 2.1.0 MIME-Version: 1.0 Content-Type: text/plain X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(199003)(189002)(5007970100001)(5008740100001)(11100500001)(5003600100002)(46102003)(189998001)(229853001)(5001770100001)(97736004)(92566002)(5003940100001)(15975445007)(77096005)(36756003)(106466001)(19273905006)(87936001)(105586002)(48376002)(19580395003)(101416001)(53416004)(50986999)(47776003)(2201001)(64706001)(19300405004)(86362001)(15395725005)(50466002)(50226001)(562404015)(563064011);DIR:OUT;SFP:1101;SCL:1;SRVR:BN4PR12MB0852;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;2:X1/ajBv2jaBHqH1hi4ZaA46WJh1zxu8liiabXQPfsdl+VmeRigYBWb9TZjFl3+t6X/Jj8x6VaxmKpc/QHWsbmww8W6dRU5wIpPb9FtYGtV5JNi+y28Twi3JN74gLoMJkCHRU0JtbzsyfAYMxKYNQumlcnMEa7u97lq8w36Yfg9g=;3:a7hmzlEIwGL4X7D49tteyQ1xAZnr9FcH7idfgbiNd7+ilMsCLgSOY7Cjd6ITRioZr1yLfDLnXy3D4vSxvdsheFdVcuJA9FDal2hUfnmBpva/UldWZ+eBxFvCpOlYGxykRhSi6NZR23RfWI43o0+Mc0jfxTTVEPXbuvi/NPvQMH/bxaLd4dicEeeEuy0b6Zkf6wszhALjEdubwXrCTcdy340jE4xpW0MYFS/MfGWBti7dNlSVn8wMH+FCh9BsHHXM;25:TxPQ0g87h8l5MsTH2G7MEVrAhZo1d9eQJA/nyLj9BYrmNZoP9kX/13Bp0piJRjdZ9TWnncJardX5LelIHQA+GBmqzF3IAd/aRd5bIbi++cQw0gbb1uFrUxG2vSsLwSTsOyL840F5gC7jen3v/sPIuFIdMn2YStYMeRYLvwklhYm9McZzgRAAgPAKG/uI9vmhzmI9GGW2Vdg1EvU/XfAwRcpXDrs5eYElF1/QizAaO/GIVqbSw9TKv40uPWUuMX2k X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0852; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;20:LBra7/vShm9patrdYNnHkDAWmcxclf3Qo/lI2+47sLXjB8XK9NJ8xZtBChDf+KfspwhOc3soLkK/ZlKja9VrYqmYZYy7hn3ZVtcC/6vi+9ADw4JCjMDJIC0DU9ad5SUJs2GkqMe4UX83hHMxUtK6i1BioDBUIjStxaTSPmGAHN/VqQ4mDxGujoMA8POkszuhfvQfKevW8kqt6tvuVFgZRuu++BpDskGshWqQDNDXmPnrxFpdipXBKI+f2cvORp8crom5iG5Rn+GA7kIC2boHLVhiBQYteKBQ4c7qYRF8dLVZHoxoH0pjv3xTbtvPG+G543RJP4NRaEWDB96Sxr/lZSlNNOtyLlpBUYZWkxvm6v8FS159rEGiaX8BGcHtWHu9fCP8wNNzMuqRJniAYDPcqtt8OXMqzH611k7STk8DH6gGMsYcjxMrsjAjD3JCMfQonA7eVAmYjXIKBbMz/dGLMNuM6XaDjkTDxkscsNb0D3Aav5w8dZ13eXh/wigHw83S;4:U3brM5MoYLQpSRZcAaH4eEfUBIjlIiIpwCM8kjrCqXFo1lbEFuiWLQgfQppmpRkaQaQxDOyT0qsY4Q99d5e/Og1x1W6h4laskhJQpfWIjXlmzIlM0M2T2IifY0ZOlNI8bwNDJ58xCkWhX6Sk94iJcCeDMYIVKOx3KoXDfRHOeSnM/Y392QxeqEUFYIJ8DOvRYUnHklKRaJ1IXgJx0k9nF+YD9ihTx4u5VJIGpN6JnR8xbnq0IWbk/IClnNa4uUQ7RUivgUushUn4t9eKxsWLr+kXELrvGWJWVd88p+XPBuwgYLAyq4+vET1r2KEUo0cySn9e6feaiaXkXKuqZlB6QZkfgoHNPziXS5ANrpwkDCDYw3KIi1InmpJSpSqyS4o9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(102115026);SRVR:BN4PR12MB0852;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0852; X-Forefront-PRVS: 073631BD3D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN4PR12MB0852;23:d6lxUhfZrik+aruJA9zgiImld35C56/7+STK6LO00?= =?us-ascii?Q?YQ4PMpFZmjN53w7srvKBEknAVKcY7kNcigQvvnGLHxIsJaN2avHEhzkQWMAJ?= =?us-ascii?Q?o0EVvd0MkAt+GE7rMYixqGTrwSWK9mvltize5wWptesmTlST1tParapuZMs0?= =?us-ascii?Q?2La8Cu1ay0PVfCMforvnmZ4nHka4UQiACe0OU1pYzaprVCU67ObwAm4SQ/To?= =?us-ascii?Q?cTww+8gFH3akY7hbbHfAx73oNT/4DR6YpgzsOAXZzTSQvRuqd46upfkyFpUb?= =?us-ascii?Q?BsalXjAyD9dI7CK0rHozPSF+5Rs+5UbmkI/2sTcO8j28W32hc5NaoyCMODMl?= =?us-ascii?Q?afieHeW6H+KXBJrQj5kQNBMSKE62b6RhErPaos+gkbzhRT/NcTkWlNBDVDI9?= =?us-ascii?Q?iuOnUuVbXBwiirLNlB+jP8fzIN2sqCAtuGdXQKWzfQHQVGr2DMoR9HO4zOJA?= =?us-ascii?Q?kFNe5/FFyk3vDwg299ssa5LoOEcJ1yJyx2rPIv5J5GphdhlN3CjTYfJ1JfbL?= =?us-ascii?Q?V6nl8Km1j2hJll6I37DDMehyVvCfbL/32CI3RO2zevq4rTqPYRJ7eorTwDT2?= =?us-ascii?Q?sV1lMPjTHjLFXEErptygE4GP1Cce0v3XH4BSTv3MHNy2clAF6BXMuFQGcluB?= =?us-ascii?Q?SY+sdrYYkqsEHz3cHK3AyNB19LeZ5QgQyY5xLgOX63wAzPqyjaUHU74TdWxe?= =?us-ascii?Q?YNMOf2+B/Ivgg562ZzALh4U9pDFRBvN8Nm1nip8U4FJzcW/ET+0ihED9qvQM?= =?us-ascii?Q?700ukUKf4+kXCCgQqvUBdE0N3butb12oBrpED7LIYw23UtBatmftRzMt8Ofw?= =?us-ascii?Q?k8nBMSneCO4oQJ8KNuz6JzUvRZ775FkZQHUiMBbkF0lsHGob8dhwkBWg1E26?= =?us-ascii?Q?bEHReSgYP3L6v7pg8ofdgpCuRILxTTNaM14lJrQuw8wDIh8A2nmmJi/P29Zs?= =?us-ascii?Q?cYAlZjqzrOd6LUHQEaT5AZ85/6VfrXfU08oRL0b832V5DCMme2QVrMADq25d?= =?us-ascii?Q?fkvDRoGMAXJ1oOzpqh/6d3J674eHJypZzL9iQfqVodwlErhDjze/53UhamuK?= =?us-ascii?Q?Wcb0FQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0852;5:uC9Mdf9pcz9pfSHEpj8OoMxtEdjgV5Xje5+yTNwkWBjR/pmfjH9TB8ObKnM0jQg688xC2ptL4tLcA5D2gBr6W8eEH8ix4R6D5WVdprLESxqCn2qAT9A+q4CuYuaEytWT8r+a8JQmcl2csVn8UMDD9g==;24:g5ikt8xN55d+CeRlQ7XguRIEGz/0smaPAFmZLi/BN4KcWCis99VM9NahX5Fp3gJpQC1BcOKlf2QEvpXWDhh1xgoWFtdky3RhmiWXkqpGWGE=;20:GiWAlDy9ttRgnan3c11+iRioxBxNYg2rERCitW1tH+HrlGdhbckLSVU5IJBJld1XNUGzCepc10C+Gigv4h1+FmfavZ6Uu8dFVHkHq5MMjPecriUNxAmh5Wi2tCZBgJU0CUg3/3MR9uhV/DSD3zfyC1aeVwvzMDY10QfJQ5XIcOriU7OJ4p+/NN0U0OLS4E4XjCe3IXoNbSF87DINqrx4DUfs6Rf/+mWkHThrWn2diojE4M7FVWGore8rNK8+Yyw1 SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2015 15:52:55.8261 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR12MB0852 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series adds support to setup DMA coherency for PCI device using the ACPI _CCA attribute. According to the ACPI spec, the _CCA attribute is required for ARM64. Therefore, this patch is a pre-req for ACPI PCI support for ARM64 which is currently in development. Also, this should not affect other architectures that does not define CONFIG_ACPI_CCA_REQUIRED, since the default value is coherent. In the process, this series also introduces enum dev_dma_attr and a set of APIs to query device DMA attribute. These APIs replace the obsolete device_dma_is_coherent(), and acpi_check_dma(). I have also included a patch from Jeremy posted here: http://www.spinics.net/lists/linux-usb/msg128582.html This patch series has been tested on AMD Seattle RevB platform. The git tree containing tested code and pre-req patches are posted here: http://github.com/ssuthiku/linux.git pci-cca-v4 Changes from V3: (https://lkml.org/lkml/2015/8/26/389) * Clean up suggested by Bjorn * Introduce enum dev_dma_attr * Replace device_dma_is_coherent() and acpi_check_dma() with new APIs. Changes from V2: (https://lkml.org/lkml/2015/8/25/549) * Return -ENOSUPP instead of -1 (per Rafael's suggestion) * Add WARN() when fail to setup DMA for PCI device when booting ACPI (per Arnd's suggestion) * Added Acked-by from Rob. * Minor clean up Changes from V1: (https://lkml.org/lkml/2015/8/13/182) * Include patch 1 from Jeremy to enable support for _CCA=0 * Clean up acpi_check_dma() per Bjorn suggestions * Split the original V1 patch into two patches (patch 3 and 4) Jeremy Linton (1): Honor ACPI _CCA attribute setting Suravee Suthikulpanit (7): device property: Introducing enum dev_dma_attr acpi: Adding DMA Attribute APIs for ACPI Device device property: Adding DMA Attribute APIs for Generic Devices device property: acpi: Make use of the new DMA Attribute APIs device property: acpi: Remove unused DMA APIs PCI: OF: Move of_pci_dma_configure() to pci_dma_configure() PCI: ACPI: Add support for PCI device DMA coherency drivers/acpi/acpi_platform.c | 7 +++++- drivers/acpi/glue.c | 8 +++--- drivers/acpi/scan.c | 42 +++++++++++++++++++++++++++++++ drivers/base/property.c | 32 +++++++++++++++++------ drivers/crypto/ccp/ccp-platform.c | 9 ++++++- drivers/net/ethernet/amd/xgbe/xgbe-main.c | 9 ++++++- drivers/of/of_pci.c | 20 --------------- drivers/pci/probe.c | 36 ++++++++++++++++++++++++-- include/acpi/acpi_bus.h | 36 +++----------------------- include/linux/acpi.h | 7 +++++- include/linux/of_pci.h | 3 --- include/linux/property.h | 10 +++++++- 12 files changed, 145 insertions(+), 74 deletions(-) -- 2.1.0