Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754031AbbKBPwL (ORCPT ); Mon, 2 Nov 2015 10:52:11 -0500 Received: from mail-bn1bon0073.outbound.protection.outlook.com ([157.56.111.73]:6272 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751914AbbKBPwF (ORCPT ); Mon, 2 Nov 2015 10:52:05 -0500 Authentication-Results: spf=none (sender IP is 165.204.84.221) 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: 0NX72QN-07-4PN-02 X-M-MSG: Subject: Re: [PATCH V5 1/9] ACPI: Honor ACPI _CCA attribute setting To: Hanjun Guo , Dennis Chen , , , , , References: <20151102040224.GA16979@arm.org> <56374FF7.6050008@linaro.org> CC: , , , , , , , , From: Suravee Suthikulanit Message-ID: <56378692.9060208@amd.com> Date: Mon, 2 Nov 2015 09:51:46 -0600 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <56374FF7.6050008@linaro.org> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(189002)(199003)(164054003)(377454003)(24454002)(479174004)(19580405001)(230700001)(87266999)(59896002)(120886001)(47776003)(2201001)(106466001)(189998001)(65956001)(105586002)(99136001)(2950100001)(87936001)(36756003)(4001350100001)(64126003)(5008740100001)(5001770100001)(5007970100001)(11100500001)(97736004)(86362001)(65806001)(5001920100001)(50986999)(77096005)(92566002)(23746002)(101416001)(83506001)(54356999)(19580395003)(50466002)(117636001)(76176999)(65816999)(62816006);DIR:OUT;SFP:1101;SCL:1;SRVR:DM3PR12MB0859;H:atltwp01.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0859;2:9kL8QHQM1GKae1O/V1RNUkvzD1nA7D4BQHykidwthpoidcN//h+E+ZwGqr0o2sgj8fR/tS4R6WeOWIrozS/Q8/J2+6E6Im5Y+irdEp/ZqaN2zi2EkkV0moGlV11zPegIVJEOR61g9QiOauHePlP57VVKfN+Va9voiLBg1IB1qao=;3:EeFbuLwGITyJ67Qq87n+bXrVOOPkWDUhmnsfVzyVfIoMLxGvgAQ0HkPs5DhhCzfBpAuUsm6f0lf5UlC+0s9egBLoBhS7kG0iubmLWgkwNmKUxkCmB30gPLklkcSXC9xKcoX0X3rkvBPfaUGFC64SSJT6Oh9bqcgAJ9Tp1ma9TgH3rbadA/ssQ9FEARI2Fkquh6bTQWU2glSerg1yTcza1uMYZR0hke7MAAgeqI5Rty1yYJ+mSWFqfPtbLIjP8hh7;25:gAkXzjsbjYAbuyjfxZeBw5a5Y1fwnyFv8KLiPI24VzuRzyUuIupUlwZ5mqAVBKe7lVWPmrkdofSo69PCFAqMqaJMCwzrzn9RtKxbHCM13pSpkn9Jp8kYck+TFlkVdcSer97t9yb/BDVxB3jllZuVhNvhAJhk8xpm2yVMyXZ26TAQWyFr/Nukw8klcjH+7tc+t0DqzejA+nk6jOK4mJdZitoiJnmeghu9OpxLe5XwC26ASvLPohejfH33IDOx82kOPAqeqgmqGik8QztlLmwPqQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM3PR12MB0859; X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0859;20:N7pnaqsK3J3O3KdqFdQaxdzvLEkVVtPR8k++YGkJW9aZJPeCfGWW+I/2qk82jAh7cZajE/NNKiTeP+hps/TG5N6FJLZywYLPu/UXxsMhXOeS5fb67fqOOA8j7LY7uJCRZabLDM/IKKt6r+wyff82mNZyWoFQeRGwcpX9dYGauhcBJwHdR9IF4daWWO78PwpnTYeCnE23pDD6xCraqGhaOdmchJmbJhlLFdCaJY9RIX9/31yXhTNaZFEGvBEYV5miso0irfo51HOYXHzjBh6rNqu8WaL8qD3BlBoxxeYWRPmzBtDWWhjhv6K4tQqxwtuR4X39+yI35g+utm7NRYJ8rPUCBcJXjYhETqJgsO9ruehqAARZbHAGkogCOFlCd6HzNdAkJL+ojL4PbV1JusWelABJh2OXBmiG6NQ9HEEHRjX5F+vzCAXXjfTp7XZIXI1tQwPyVdJP0BXHTZbB5/qBZKLTptno8eQ6bgDfPN7aWqEkyMrEhmF9IyM8LSsB4Fl7;4:5XK5O9HuI6OurU/P3OfNWIbB8r6JpqN7m+NqGV+UAhzxnF35T88MHdwOLIGrEc+Yi8UcLliEzrJ0eFxlT6jROI20YDZMYJItAZ1OSPqtAQ8RCWqBOb1kIJed497n/UXjOX93H5ghyDShdT/FCP2FzW06NBRuHmYyltyno94Ck9Ewgcey36FoS0prAe1YB63GQ2nrQtwTWC9wb7viag095H4S+TYpoQHkl0u2jZfHHXJi3jjL59+E4ASY2kujGmPGmVqeYxrtEM7dMRVq2j4LuCzbe5BhvJYjm6K0CKyfnKINuvcIwE0OfPNvMe5xzd+hPSgZgctPJgQSoYWAiX8W88gkohSNNOSPc1lsH1nRKLwxPUDavjq1x9ycu4Qk6n1U X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(10201501046)(3002001);SRVR:DM3PR12MB0859;BCL:0;PCL:0;RULEID:;SRVR:DM3PR12MB0859; X-Forefront-PRVS: 0748FF9A04 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DM3PR12MB0859;23:4bXgds+zpvPCXmmTJC/EvVkmGEJX+nWOCJOHn?= =?Windows-1252?Q?ujMKiZnmbRaJAjxNazHy8IVa7tIYJkVr5F+oy2LhAarCO8AWNzky/nNB?= =?Windows-1252?Q?ykV1/vojwRlriEG3oCEVG/BrbOe6g6t7CM+7hAGZlhSlH2kAr9637ndS?= =?Windows-1252?Q?8jr+uCUHBqhLlpEYNHjhiV5FaPO0aozEe+dNhZp+6U+uWVEg3ugembeD?= =?Windows-1252?Q?4eDhuNO/YOSiXmXVpn2e17my0o06EeIIznypblKLCrpuiJaTsHziFUQI?= =?Windows-1252?Q?qJF/TNDqwpoWYqDpJyp/xo5GbhyBoZuNehPla8hE9wG5pOCGQ1eKIPu0?= =?Windows-1252?Q?OTea5sZPxxtiGN4rLlq55B76LgO3vV47mm6zCQaJomv+QEoC0FtLBJN/?= =?Windows-1252?Q?O+CGeCuiIsfcY6Xfr+Ukj/uy13ZpB3mG7eGwGk/KCeARf/fLok6KDKf2?= =?Windows-1252?Q?Bl3COhsWM0VJZjyY+reMAuWvVDdiSsZMKjgPzPrdbqUgtxlFdfWUgq/c?= =?Windows-1252?Q?h0qLwUeQlpj1g/3qaHtwlqv4iZCAO7jwFEGDmchshl6+Ip98SYIypg/u?= =?Windows-1252?Q?C66PYwje43s5InuxTcXlODaxNo6I16n/6nrO8in5F2y+DlNLABq/7CG0?= =?Windows-1252?Q?v/JRzPLQBHHVrP9zVoWD/i8oHiL61r83APo8pLqpThJVbUP6Ws9ufI2F?= =?Windows-1252?Q?8XoVb0ppRfyiLFMIBN8paQpZZs3fcpG47OqvR9TVFmTkHdeMMwX+YZTZ?= =?Windows-1252?Q?arp/+309/jyOQABRTfpbav81vmetq5on7KeemoGEW/A/WBaxIv3F0EPp?= =?Windows-1252?Q?LcdAXAtri9VrC3/MSe3PQf/jpPYrrH4NQRdTMpChr0tDr56T5OHh6Cjm?= =?Windows-1252?Q?iYvmSFTzaPiQz2uJZnj8x2WphZqbL5KaoRc+mxYvJx7seg8tXG+Bzn6D?= =?Windows-1252?Q?sbIrSgBHFmEYpD3hMgo5W5pQ3jeaRQEXZx3MO4CetrgG31VxU2meB51o?= =?Windows-1252?Q?vap3kRCdasNifxIee9ELIrAeIjgLID4d5pHiAHaFaxyn7/YkDCJrARNf?= =?Windows-1252?Q?uBHdMICLWAVvcP4XTDpnpjCM5FosEEtsKsPb6Nad50EgG4GetZ8io603?= =?Windows-1252?Q?WzBboYD5lLqQy49b0wDMCYxCWUpAFeFkYuHs+BeRJKfPlQZmfY+tgdew?= =?Windows-1252?Q?bfoWYoCPsqxZpFxuHoHIkiTUMuAF+l/uK5dIRQteMXXHa0eV6KOcZ6q2?= =?Windows-1252?Q?y/EXd/BJHl3OiGeCTd74tH6eIdDY8uOY2QggjZXdNLAIWP16e5XT9Kgw?= =?Windows-1252?Q?n/lTEC0voGHpauCiFwk+wHkXYEpqhlRQqle09/HM7m7Xj4=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR12MB0859;5:dPCWEldq1HeOFrsMravpwaf+BOOTYYJn9Hmb5ssy6Q6wFTtGZyGdWS/31vIaS1CxRkdqR0kbH+PrnOQKse4kqOk7eUgKZHOE+Kyn99UjRuc+gny/gsA278rqtPMfftn5EUGerSIRa9fmE6OHpvIonQ==;24:Oi81cUB2pNO3Lem9op3EzVrUyHgKcONfgcNF5SCW9V+rRru09oLN/Ez41WrbNvJY0//CEtvmVajci94xtcJMZrCX4Ksa8xUznxyK8Y11hwY=;20:B2uVnHoEOF4JNEHtvd337QtWLI0ZtfccGdHCAYvn7sZlJeTUVghe6pmOD0NN44SX0HDvNfntAp2UGutQf+JRBKXl5gX0Qv1qKbBNZLvSt5qCHBAs+XUWI5+mrl6VfWduGV2CUR5PNNMqmXoFt2GzmpbiKNut/t4BXmCZS+is3XC3TgAq54Vcwx5FY1bsn7qzivnGBCDrCb35aoXOKdwj57vWjrfMKlaiYtzqqyq3SHx0vx4MScH3N61KgiHo0McZ SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2015 15:52:00.9211 (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.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB0859 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4221 Lines: 109 Hi Dennis / Hanjun, On 11/2/2015 5:58 AM, Hanjun Guo wrote: > Hi Dennis, > > On 11/02/2015 12:02 PM, Dennis Chen wrote: >> On Thu, Oct 29, 2015 at 6:50 AM, Suravee Suthikulpanit >> wrote: >>> From: Jeremy Linton >>> >>> ACPI configurations can now mark devices as noncoherent, >>> support that choice. >>> >>> NOTE: This is required to support USB on ARM Juno Development Board. >>> >>> Signed-off-by: Jeremy Linton >>> Signed-off-by: Suravee Suthikulpanit >>> CC: Bjorn Helgaas >>> CC: Catalin Marinas >>> CC: Rob Herring >>> CC: Will Deacon >>> CC: Rafael J. Wysocki >>> --- >>> include/acpi/acpi_bus.h | 5 +++-- >>> 1 file changed, 3 insertions(+), 2 deletions(-) >>> >>> diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h >>> index d11eff8..0f131d2 100644 >>> --- a/include/acpi/acpi_bus.h >>> +++ b/include/acpi/acpi_bus.h >>> @@ -407,7 +407,7 @@ static inline bool acpi_check_dma(struct >>> acpi_device *adev, bool *coherent) >>> * case 1. Do not support and disable DMA. >>> * case 2. Support but rely on arch-specific cache maintenance for >>> * non-coherence DMA operations. >>> - * Currently, we implement case 1 above. >>> + * Currently, we implement case 2 above. >>> * >>> * For the case when _CCA is missing (i.e. cca_seen=0) and >>> * platform specifies ACPI_CCA_REQUIRED, we do not support DMA, >>> @@ -415,7 +415,8 @@ static inline bool acpi_check_dma(struct >>> acpi_device *adev, bool *coherent) >>> * >>> * See acpi_init_coherency() for more info. >>> */ >>> - if (adev->flags.coherent_dma) { >>> + if (adev->flags.coherent_dma || >>> + (adev->flags.cca_seen && IS_ENABLED(CONFIG_ARM64))) { >>> ret = true; >>> if (coherent) >>> *coherent = adev->flags.coherent_dma; >> >> Hi Suravee, >> >> The acpi_check_dma function has been removed in patch 6 of this patch >> set, why it is still be used >> here, am I missing something? If the acpi_check_dma will be used in >> the future, personally I'd like > > I think this patch just to let people know that there is > case that arch-specific cache maintenance is still needed > for ACPI (such as Juno board), and in the later patches will > cover this case. > > acpi_check_dma() will be replaced by acpi_get_dma_attr(), > and in acpi_get_dma_attr() will cover that case and will > be easily understood. (Suravee, correct me if I'm wrong :) ) Thanks Hanjun for filling in the info. Yes, this is mainly to document the logic changes required by Juno, which would be more clear than just merging this change in the later patch. >> to use IS_ENABLED(CONFIG_ACPI_CCA_REQUIRED) while not CONFIG_ARM64 >> macro here, We could have used CONFIG_ACPI_CCA_REQUIRED here, but this will be replaced by logic in patch 5, and removed in patch 6 anyways. So, I think it is okay. Eventually, the rest of the logic will be using CONFIG_ACPI_CCA_REQUIRED. or since _CCA attribute >> is arch-specific, it's reasonable to leave the _CCA handling policy to >> the arch-specific code. For example, >> with a link weak function like acpi_arch_check_dma() as a default >> handling if no arch-specific code >> provided, the actual _CCA handling will be implemented in the ARM, >> Intel or other Arch if required. > > Actually Intel platform don't need _CCA and it's coherent > in default, since _CCA is in ACPI spec, I would like it's > handled in ACPI core. > > Thanks > Hanjun I also agree with Hanjun that the CCA parsing should be handled by the ACPI core driver. Since we are using the CONFIG_ACPI_CCA_REQUIRED, we should not need to have arch-specific code. If the ACPI spec gets more complicate in the future, we can revisit this. :) Thanks, Suravee -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/