From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suravee Suthikulpanit Subject: [V7 PATCH 0/3] Introduce ACPI support for ahci_platform driver Date: Thu, 26 Mar 2015 14:13:12 -0500 Message-ID: <1427397195-15273-1-git-send-email-Suravee.Suthikulpanit@amd.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from mail-bn1bon0139.outbound.protection.outlook.com ([157.56.111.139]:64949 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752544AbbCZTNh (ORCPT ); Thu, 26 Mar 2015 15:13:37 -0400 Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: rjw@rjwysocki.net, mika.westerberg@linux.intel.com, robert.moore@intel.com, lv.zheng@intel.com, hanjun.guo@linaro.org Cc: lenb@kernel.org, hdegoede@redhat.com, tj@kernel.org, mjg59@srcf.ucam.org, gregkh@linuxfoundation.org, al.stone@linaro.org, graeme.gregory@linaro.org, leo.duran@amd.com, linux-ide@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, linaro-acpi@lists.linaro.org, Suravee Suthikulpanit This patch series introduce ACPI support for AHCI platform driver. Existing ACPI support for AHCI assumes the device controller is a PCI device. Since there is no ACPI _CID for generic AHCI controller, the driver could not use it for matching devices. Therefore, this patch introduces a mechanism for drivers to match devices using ACPI _CLS method. _CLS contains PCI-defined class-code. This patch series also modifies ACPI modalias to add class-code to the exisiting format, which currently only uses _HID and _CIDs. This is required to support loadable modules w/ _CLS. This is rebased from and tested with: http://git.linaro.org/leg/acpi/acpi.git acpi-5.1-v11 This topic was discussed earlier here (as part of introducing support for AMD Seattle SATA controller): http://marc.info/?l=linux-arm-kernel&m=141083492521584&w=2 Changes from V6 (https://lkml.org/lkml/2015/3/25/797) * Adding Acked-by Mika, and Reviewed-by Hanjun * Minor clen up to use lower case 0xffffff for cls_msk (per Mika suggestions). * Modify the ACPI_DEVICE_CLASS macro to use designated initializer (per Mika suggestions). Changes from V5 (https://lkml.org/lkml/2015/3/6/24) * Rebased and tested with acpi-5.1-v11 * Splitting up the ACPICA changes into a separate patch [1/3]. (per Mika suggestion) * Adding class-code mask support (per Mika suggestion) * Use macro to define struct acpi_device_id entry (per Mika suggestion) * Note: Mika also recommend reordering the member of struct acpi_device_id and define a macro to be used for declaring each table entry. This is a large amount of changes, and will be done separtely from this patch series. Changes from V4 (https://lkml.org/lkml/2015/3/2/56) * [1/2] Bug fixed: Reorder the declaration of struct acpi_pnp_device_id cls in the struct acpi_device_info (include/acpi/actypes.h) since compatible_id_list must be last one. * [2/2] Added Acked-by: Tejun Heo Changes from V3 (https://lkml.org/lkml/2015/2/8/106) * Instead of introducing new structure acpi_device_cls, add cls into the acpi_device_id, and modify the __acpi_match_device to also match for cls. (per Mika suggestion.) * Add loadable module support, which requires changes in ACPI modalias. (per Mika suggestion.) * Rebased and tested with acpi-5.1-v9 Changes from V2 (https://lkml.org/lkml/2015/1/5/662) * Update with review comment from Rafael in patch 1/2 * Rebased and tested with acpi-5.1-v8 Changes from V1 (https://lkml.org/lkml/2014/12/19/345) * Rebased to 3.19.0-rc2 * Change from acpi_cls in device_driver to acpi_match_cls (Hanjun comment) * Change the matching logic in acpi_driver_match_device() due to the new special PRP0001 _HID. * Simplify the return type of acpi_match_device_cls() to boolean. Changes from RFC (https://lkml.org/lkml/2014/12/17/446) * Remove #ifdef and make non-ACPI version of the acpi_match_device_cls as inline. (per Arnd) * Simplify logic to retrieve and evaluate _CLS handle. (per Hanjun) Suravee Suthikulpanit (3): ACPICA: Add ACPI _CLS processing ACPI / scan: Add support for ACPI _CLS device matching ata: ahci_platform: Add ACPI _CLS matching drivers/acpi/acpica/acutils.h | 3 ++ drivers/acpi/acpica/nsxfname.c | 21 ++++++++++-- drivers/acpi/acpica/utids.c | 71 +++++++++++++++++++++++++++++++++++++++ drivers/acpi/scan.c | 36 +++++++++++++++++--- drivers/ata/Kconfig | 2 +- drivers/ata/ahci_platform.c | 9 +++++ include/acpi/acnames.h | 1 + include/acpi/actypes.h | 4 ++- include/linux/acpi.h | 13 +++++++ include/linux/mod_devicetable.h | 2 ++ scripts/mod/devicetable-offsets.c | 2 ++ scripts/mod/file2alias.c | 32 ++++++++++++++++-- 12 files changed, 186 insertions(+), 10 deletions(-) -- 2.1.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752916AbbCZTNp (ORCPT ); Thu, 26 Mar 2015 15:13:45 -0400 Received: from mail-bn1bon0139.outbound.protection.outlook.com ([157.56.111.139]:64949 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752544AbbCZTNh (ORCPT ); Thu, 26 Mar 2015 15:13:37 -0400 X-WSS-ID: 0NLU2QG-07-DSI-02 X-M-MSG: From: Suravee Suthikulpanit To: , , , , CC: , , , , , , , , , , , , "Suravee Suthikulpanit" Subject: [V7 PATCH 0/3] Introduce ACPI support for ahci_platform driver Date: Thu, 26 Mar 2015 14:13:12 -0500 Message-ID: <1427397195-15273-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 Authentication-Results: spf=none (sender IP is 165.204.84.221) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; intel.com; dkim=none (message not signed) header.d=none; X-Forefront-Antispam-Report: CIP:165.204.84.221;CTRY:US;IPV:NLI;EFV:NLI;BMV:1;SFV:NSPM;SFS:(10019020)(6009001)(428002)(209900001)(199003)(189002)(50226001)(87936001)(48376002)(50466002)(46102003)(15395725005)(92566002)(77096005)(15975445007)(47776003)(36756003)(50986999)(86362001)(2201001)(101416001)(53416004)(105586002)(229853001)(62966003)(19580405001)(19273905006)(19300405004)(19580395003)(77156002)(562404015)(6606295002);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0201MB0881;H:atltwp01.amd.com;FPR:;SPF:None;MLV:sfv;A:1;MX:1;LANG:en; X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0201MB0881; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5002010)(5005006);SRVR:BN3PR0201MB0881;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0201MB0881; X-Forefront-PRVS: 0527DFA348 X-OriginatorOrg: amd4.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2015 19:13:31.5063 (UTC) X-MS-Exchange-CrossTenant-Id: fde4dada-be84-483f-92cc-e026cbee8e96 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fde4dada-be84-483f-92cc-e026cbee8e96;Ip=[165.204.84.221];Helo=[atltwp01.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0201MB0881 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series introduce ACPI support for AHCI platform driver. Existing ACPI support for AHCI assumes the device controller is a PCI device. Since there is no ACPI _CID for generic AHCI controller, the driver could not use it for matching devices. Therefore, this patch introduces a mechanism for drivers to match devices using ACPI _CLS method. _CLS contains PCI-defined class-code. This patch series also modifies ACPI modalias to add class-code to the exisiting format, which currently only uses _HID and _CIDs. This is required to support loadable modules w/ _CLS. This is rebased from and tested with: http://git.linaro.org/leg/acpi/acpi.git acpi-5.1-v11 This topic was discussed earlier here (as part of introducing support for AMD Seattle SATA controller): http://marc.info/?l=linux-arm-kernel&m=141083492521584&w=2 Changes from V6 (https://lkml.org/lkml/2015/3/25/797) * Adding Acked-by Mika, and Reviewed-by Hanjun * Minor clen up to use lower case 0xffffff for cls_msk (per Mika suggestions). * Modify the ACPI_DEVICE_CLASS macro to use designated initializer (per Mika suggestions). Changes from V5 (https://lkml.org/lkml/2015/3/6/24) * Rebased and tested with acpi-5.1-v11 * Splitting up the ACPICA changes into a separate patch [1/3]. (per Mika suggestion) * Adding class-code mask support (per Mika suggestion) * Use macro to define struct acpi_device_id entry (per Mika suggestion) * Note: Mika also recommend reordering the member of struct acpi_device_id and define a macro to be used for declaring each table entry. This is a large amount of changes, and will be done separtely from this patch series. Changes from V4 (https://lkml.org/lkml/2015/3/2/56) * [1/2] Bug fixed: Reorder the declaration of struct acpi_pnp_device_id cls in the struct acpi_device_info (include/acpi/actypes.h) since compatible_id_list must be last one. * [2/2] Added Acked-by: Tejun Heo Changes from V3 (https://lkml.org/lkml/2015/2/8/106) * Instead of introducing new structure acpi_device_cls, add cls into the acpi_device_id, and modify the __acpi_match_device to also match for cls. (per Mika suggestion.) * Add loadable module support, which requires changes in ACPI modalias. (per Mika suggestion.) * Rebased and tested with acpi-5.1-v9 Changes from V2 (https://lkml.org/lkml/2015/1/5/662) * Update with review comment from Rafael in patch 1/2 * Rebased and tested with acpi-5.1-v8 Changes from V1 (https://lkml.org/lkml/2014/12/19/345) * Rebased to 3.19.0-rc2 * Change from acpi_cls in device_driver to acpi_match_cls (Hanjun comment) * Change the matching logic in acpi_driver_match_device() due to the new special PRP0001 _HID. * Simplify the return type of acpi_match_device_cls() to boolean. Changes from RFC (https://lkml.org/lkml/2014/12/17/446) * Remove #ifdef and make non-ACPI version of the acpi_match_device_cls as inline. (per Arnd) * Simplify logic to retrieve and evaluate _CLS handle. (per Hanjun) Suravee Suthikulpanit (3): ACPICA: Add ACPI _CLS processing ACPI / scan: Add support for ACPI _CLS device matching ata: ahci_platform: Add ACPI _CLS matching drivers/acpi/acpica/acutils.h | 3 ++ drivers/acpi/acpica/nsxfname.c | 21 ++++++++++-- drivers/acpi/acpica/utids.c | 71 +++++++++++++++++++++++++++++++++++++++ drivers/acpi/scan.c | 36 +++++++++++++++++--- drivers/ata/Kconfig | 2 +- drivers/ata/ahci_platform.c | 9 +++++ include/acpi/acnames.h | 1 + include/acpi/actypes.h | 4 ++- include/linux/acpi.h | 13 +++++++ include/linux/mod_devicetable.h | 2 ++ scripts/mod/devicetable-offsets.c | 2 ++ scripts/mod/file2alias.c | 32 ++++++++++++++++-- 12 files changed, 186 insertions(+), 10 deletions(-) -- 2.1.0