pata_acpi: Add ACPI method driver
PATCH 1/1 pata_acpi: Add ACPI method driver
This adds a driver that use the ACPI methods to drive the hardware. It can therefore in theory drive any SFF like controller for which the BIOS provides methods.
Signed-off-by Alan Cox <[email protected]>
drivers/ata/libata-acpi.h new file +47 -0
@@ -0,0 +1,47 @@ +/* +* libata-acpi.h - helper library for ATA ACPI drivers +* +* Copyright 2007 Red Hat, Inc. All rights reserved. +* Copyright 2007 Alan Cox +* +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation; either version 2, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; see the file COPYING. If not, write to +* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +* +* +* libata documentation is available via 'make {ps|pdf}docs', +* as Documentation/DocBook/libata.* +* +*/ + +#ifndef __LIBATA_ACPI_H__ +#define __LIBATA_ACPI_H__ + +struct acpi_drive +{ +u32 pio; +u32 dma; +}; + +struct acpi_gtm { +struct acpi_drive drive[2 ]; +u32 flags; +}; + +extern int ata_acpi_gtm (const struct ata_port *p,void *handle,struct acpi_gtm *gtm); +extern int ata_acpi_stm (const struct ata_port *ap,void *handle,struct acpi_gtm *stm); +extern void *ata_pata_acpi_handle (const struct ata_port *ap); +extern int ata_pata_acpi_present (struct pci_dev *pdev); + +#endif
drivers/ata/Kconfig +9 -0
@@ -169,6 +169,15 @@ config SATA_ACPI You can disable this at kernel boot time by using the option libata.noacpi=1 +config PATA_ACPI + tristate "ACPI firmware driver for PATA" + depends on ACPI && PCI && SATA_ACPI + help + This option enables an ACPI method driver which drives + motherboard PATA controller interfaces through the ACPI + firmware in the BIOS. This driver can sometimes handle + otherwise unsupported hardware. + config PATA_ALI tristate "ALi PATA support (Experimental)" depends on PCI && EXPERIMENTAL
drivers/ata/Makefile +2 -0
@@ -62,6 +62,8 @@ obj-$(CONFIG_PATA_TRIFLEX) += pata_trifl obj-$(CONFIG_PATA_IXP4XX_CF) += pata_ixp4xx_cf.o obj-$(CONFIG_PATA_SCC) += pata_scc.o obj-$(CONFIG_PATA_PLATFORM) += pata_platform.o +# Should be last but two libata driver +obj-$(CONFIG_PATA_ACPI) += pata_acpi.o # Should be last but one libata driver obj-$(CONFIG_ATA_GENERIC) += ata_generic.o # Should be last libata driver
drivers/ata/libata-acpi.c +86 -1
96 lines not on this page · raw message
drivers/ata/pata_acpi.c new file +424 -0
424 lines not on this page · raw message