On Thu, Nov 06, 2014 at 07:48:29AM -0600, Suravee Suthikulpanit wrote:
On 11/6/14 07:28, Arnd Bergmann wrote:
On Thursday 06 November 2014 06:52:59 Suravee Suthikulpanit wrote:
On 11/6/14 04:06, Arnd Bergmann wrote:
On Wednesday 05 November 2014 20:32:27 al.stone@linaro.org wrote:
From: Suravee Suthikulpanit Suravee.Suthikulpanit@amd.com
This patch adds ACPI support for non-PCI SATA contoller in ahci_platform driver. It adds ACPI matching table in ahci_platform to support AMD Seattle SATA controller with following ASL structure in DSDT:
Device (SATA0) { Name(_HID, "AMDI0600") // Seattle AHSATA Name (_CCA, 1) // Cache-coherent controller Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xE0300000, 0x00010000) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) { 387 } }) }
Since ATA driver should not require PCI support for ATA_ACPI, this patch also removes dependency in the driver/ata/Kconfig.
Signed-off-by: Suravee Suthikulpanit Suravee.Suthikulpanit@amd.com
Question: is this DSDT structure specified somewhere? The AHCI specification requires a PCI bus, but I expect that other SoCs will do the same thing as Seattle, and it would be a shame if they came up with a different representation.
Arnd
Actually, this patch might be a bit old now. As suggested earlier on the ML (`https://lkml.org/lkml/2014/10/6/343), we have thought about reusing the PCI class code (_CLS) instead as following.
Device (SATA0) // AHCI { Name(_HID, "AMDI0600") // Seattle AHCI/SATA Name (_CCA, 1) // Cache-coherent controller Name (_CLS, Package (3) { 0x01, // Base Class: Mass Storage 0x06, // Sub-Class: Serial ATA 0x01, // Interface: AHCI }) .......
So, this patch should now be deprecated and not to be going upstream.
Ok, but is the new way of doing this standardized anywhere, or is it just better than the original approach?
Arnd
I believe it is being discussed in the ARM/Linaro ACPI meetings, and it's probably a better approach.
Leo could probably comment more on this as well.
I beleive Windows can already instantiate devices from _CLS, linux just never had the ability. So its not new to ACPI just new to Linux. It was suggested as a better solution for generic devices that do not have a generic ACPI identifier but do have a generic _CLS.
Leo found some issues with the spec in this area and it is being improved.
Graeme