forked from Minki/linux
libata: move ata_set_mode() to libata-eh.c
Move ata_set_mode() to libata-eh.c. ata_set_mode() is surely an EH action and will be more tightly coupled with the rest of error handling. Move it to libata-eh.c. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
02c05a27e8
commit
6f1d1e3a03
@ -3182,31 +3182,6 @@ int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* ata_set_mode - Program timings and issue SET FEATURES - XFER
|
||||
* @link: link on which timings will be programmed
|
||||
* @r_failed_dev: out paramter for failed device
|
||||
*
|
||||
* Set ATA device disk transfer mode (PIO3, UDMA6, etc.). If
|
||||
* ata_set_mode() fails, pointer to the failing device is
|
||||
* returned in @r_failed_dev.
|
||||
*
|
||||
* LOCKING:
|
||||
* PCI/etc. bus probe sem.
|
||||
*
|
||||
* RETURNS:
|
||||
* 0 on success, negative errno otherwise
|
||||
*/
|
||||
int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
|
||||
{
|
||||
struct ata_port *ap = link->ap;
|
||||
|
||||
/* has private set_mode? */
|
||||
if (ap->ops->set_mode)
|
||||
return ap->ops->set_mode(link, r_failed_dev);
|
||||
return ata_do_set_mode(link, r_failed_dev);
|
||||
}
|
||||
|
||||
/**
|
||||
* ata_tf_to_host - issue ATA taskfile to host controller
|
||||
* @ap: port to which command is being issued
|
||||
|
@ -2329,6 +2329,31 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
* ata_set_mode - Program timings and issue SET FEATURES - XFER
|
||||
* @link: link on which timings will be programmed
|
||||
* @r_failed_dev: out paramter for failed device
|
||||
*
|
||||
* Set ATA device disk transfer mode (PIO3, UDMA6, etc.). If
|
||||
* ata_set_mode() fails, pointer to the failing device is
|
||||
* returned in @r_failed_dev.
|
||||
*
|
||||
* LOCKING:
|
||||
* PCI/etc. bus probe sem.
|
||||
*
|
||||
* RETURNS:
|
||||
* 0 on success, negative errno otherwise
|
||||
*/
|
||||
int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
|
||||
{
|
||||
struct ata_port *ap = link->ap;
|
||||
|
||||
/* has private set_mode? */
|
||||
if (ap->ops->set_mode)
|
||||
return ap->ops->set_mode(link, r_failed_dev);
|
||||
return ata_do_set_mode(link, r_failed_dev);
|
||||
}
|
||||
|
||||
static int ata_link_nr_enabled(struct ata_link *link)
|
||||
{
|
||||
struct ata_device *dev;
|
||||
|
@ -86,7 +86,6 @@ extern int ata_dev_configure(struct ata_device *dev);
|
||||
extern int sata_down_spd_limit(struct ata_link *link);
|
||||
extern int sata_set_spd_needed(struct ata_link *link);
|
||||
extern int ata_down_xfermask_limit(struct ata_device *dev, unsigned int sel);
|
||||
extern int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev);
|
||||
extern void ata_sg_clean(struct ata_queued_cmd *qc);
|
||||
extern void ata_qc_free(struct ata_queued_cmd *qc);
|
||||
extern void ata_qc_issue(struct ata_queued_cmd *qc);
|
||||
@ -187,6 +186,7 @@ extern void ata_eh_report(struct ata_port *ap);
|
||||
extern int ata_eh_reset(struct ata_link *link, int classify,
|
||||
ata_prereset_fn_t prereset, ata_reset_fn_t softreset,
|
||||
ata_reset_fn_t hardreset, ata_postreset_fn_t postreset);
|
||||
extern int ata_set_mode(struct ata_link *link, struct ata_device **r_failed_dev);
|
||||
extern int ata_eh_recover(struct ata_port *ap, ata_prereset_fn_t prereset,
|
||||
ata_reset_fn_t softreset, ata_reset_fn_t hardreset,
|
||||
ata_postreset_fn_t postreset,
|
||||
|
Loading…
Reference in New Issue
Block a user