diff options
author | Tejun Heo <htejun@gmail.com> | 2008-04-07 22:47:22 +0900 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-04-17 15:44:25 -0400 |
commit | 88fcd5627563722483427a55113c0a83f56e8080 (patch) | |
tree | 6a596e33d6497fbed58147e8fdb59b611d956c12 /include/linux/libata.h | |
parent | 071f44b1d2c051641b62a3571223314737ccbe59 (diff) | |
download | linux-88fcd5627563722483427a55113c0a83f56e8080.tar.gz linux-88fcd5627563722483427a55113c0a83f56e8080.tar.bz2 linux-88fcd5627563722483427a55113c0a83f56e8080.zip |
libata: make PMP support optional
Make PMP support optional by adding CONFIG_SATA_PMP and leaving out
libata-pmp.c if it isn't set. PMP helpers return constant values if
PMP support is not enabled and PMP declarations alias non-PMP
counterparts. This makes the compiler to leave out PMP related part
out and LLDs to use non-PMP counterparts automatically.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r-- | include/linux/libata.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 1908bf484743..165734a2dd47 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -1092,6 +1092,7 @@ extern const struct ata_port_operations sata_port_ops; /* * PMP helpers */ +#ifdef CONFIG_SATA_PMP static inline bool sata_pmp_supported(struct ata_port *ap) { return ap->flags & ATA_FLAG_PMP; @@ -1106,6 +1107,22 @@ static inline int ata_is_host_link(const struct ata_link *link) { return link == &link->ap->link; } +#else /* CONFIG_SATA_PMP */ +static inline bool sata_pmp_supported(struct ata_port *ap) +{ + return false; +} + +static inline bool sata_pmp_attached(struct ata_port *ap) +{ + return false; +} + +static inline int ata_is_host_link(const struct ata_link *link) +{ + return 1; +} +#endif /* CONFIG_SATA_PMP */ static inline int sata_srst_pmp(struct ata_link *link) { @@ -1369,11 +1386,21 @@ static inline struct ata_port *ata_shost_to_port(struct Scsi_Host *host) /************************************************************************** * PMP - drivers/ata/libata-pmp.c */ +#ifdef CONFIG_SATA_PMP + extern const struct ata_port_operations sata_pmp_port_ops; extern int sata_pmp_qc_defer_cmd_switch(struct ata_queued_cmd *qc); extern void sata_pmp_error_handler(struct ata_port *ap); +#else /* CONFIG_SATA_PMP */ + +#define sata_pmp_port_ops sata_port_ops +#define sata_pmp_qc_defer_cmd_switch ata_std_qc_defer +#define sata_pmp_error_handler ata_std_error_handler + +#endif /* CONFIG_SATA_PMP */ + /************************************************************************** * SFF - drivers/ata/libata-sff.c |