X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fata%2Flibata.h;h=4aeeabb10a478c26cdf094d12ff7bd72cd14ac65;hb=3887ed5231fb6f339f36c3a0297c996cd1a1dad9;hp=08af43e2c081303c3f92e0fb85569f49186b5a84;hpb=aa2731ad9ad80ac3fca48bd1c4cf0eceede4810e;p=linux-2.6 diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h index 08af43e2c0..4aeeabb10a 100644 --- a/drivers/ata/libata.h +++ b/drivers/ata/libata.h @@ -38,6 +38,17 @@ struct ata_scsi_args { void (*done)(struct scsi_cmnd *); }; +static inline int ata_is_builtin_hardreset(ata_reset_fn_t reset) +{ + if (reset == sata_std_hardreset) + return 1; +#ifdef CONFIG_ATA_SFF + if (reset == sata_sff_hardreset) + return 1; +#endif + return 0; +} + /* libata-core.c */ enum { /* flags for ata_dev_read_id() */ @@ -168,11 +179,6 @@ extern void ata_schedule_scsi_eh(struct Scsi_Host *shost); extern void ata_scsi_dev_rescan(struct work_struct *work); extern int ata_bus_probe(struct ata_port *ap); -/* libata-pmp.c */ -extern int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val); -extern int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val); -extern int sata_pmp_attach(struct ata_device *dev); - /* libata-eh.c */ extern enum scsi_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd); extern void ata_scsi_error(struct Scsi_Host *host); @@ -196,10 +202,34 @@ extern int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset, struct ata_link **r_failed_disk); extern void ata_eh_finish(struct ata_port *ap); +/* libata-pmp.c */ +#ifdef CONFIG_SATA_PMP +extern int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val); +extern int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val); +extern int sata_pmp_attach(struct ata_device *dev); +#else /* CONFIG_SATA_PMP */ +static inline int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val) +{ + return -EINVAL; +} + +static inline int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val) +{ + return -EINVAL; +} + +static inline int sata_pmp_attach(struct ata_device *dev) +{ + return -EINVAL; +} +#endif /* CONFIG_SATA_PMP */ + /* libata-sff.c */ +#ifdef CONFIG_ATA_SFF extern void ata_dev_select(struct ata_port *ap, unsigned int device, unsigned int wait, unsigned int can_sleep); extern u8 ata_irq_on(struct ata_port *ap); extern void ata_pio_task(struct work_struct *work); +#endif /* CONFIG_ATA_SFF */ #endif /* __LIBATA_H__ */