mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
ata: libata: Move sata_std_hardreset() definition to libata-sata.c
Unlike ata_std_prereset() and ata_std_postreset(), the function sata_std_hardreset() applies only to SATA devices, as its name implies. So move its definition to libata-sata.c. Together with this, also move the definition of sata_port_ops to libata-sata.c, where it belongs. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Niklas Cassel <cassel@kernel.org> Reviewed-by: Hannes Reinecke <hare@suse.de>
This commit is contained in:
parent
b642212d88
commit
78f76b09c9
@ -72,14 +72,6 @@ const struct ata_port_operations ata_base_port_ops = {
|
||||
.end_eh = ata_std_end_eh,
|
||||
};
|
||||
|
||||
const struct ata_port_operations sata_port_ops = {
|
||||
.inherits = &ata_base_port_ops,
|
||||
|
||||
.qc_defer = ata_std_qc_defer,
|
||||
.hardreset = sata_std_hardreset,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(sata_port_ops);
|
||||
|
||||
static unsigned int ata_dev_init_params(struct ata_device *dev,
|
||||
u16 heads, u16 sectors);
|
||||
static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
|
||||
@ -3676,33 +3668,6 @@ int ata_std_prereset(struct ata_link *link, unsigned long deadline)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ata_std_prereset);
|
||||
|
||||
/**
|
||||
* sata_std_hardreset - COMRESET w/o waiting or classification
|
||||
* @link: link to reset
|
||||
* @class: resulting class of attached device
|
||||
* @deadline: deadline jiffies for the operation
|
||||
*
|
||||
* Standard SATA COMRESET w/o waiting or classification.
|
||||
*
|
||||
* LOCKING:
|
||||
* Kernel thread context (may sleep)
|
||||
*
|
||||
* RETURNS:
|
||||
* 0 if link offline, -EAGAIN if link online, -errno on errors.
|
||||
*/
|
||||
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline)
|
||||
{
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
bool online;
|
||||
int rc;
|
||||
|
||||
/* do hardreset */
|
||||
rc = sata_link_hardreset(link, timing, deadline, &online, NULL);
|
||||
return online ? -EAGAIN : rc;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sata_std_hardreset);
|
||||
|
||||
/**
|
||||
* ata_std_postreset - standard postreset callback
|
||||
* @link: the target ata_link
|
||||
|
@ -706,6 +706,34 @@ int sata_link_hardreset(struct ata_link *link, const unsigned int *timing,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sata_link_hardreset);
|
||||
|
||||
/**
|
||||
* sata_std_hardreset - COMRESET w/o waiting or classification
|
||||
* @link: link to reset
|
||||
* @class: resulting class of attached device
|
||||
* @deadline: deadline jiffies for the operation
|
||||
*
|
||||
* Standard SATA COMRESET w/o waiting or classification.
|
||||
*
|
||||
* LOCKING:
|
||||
* Kernel thread context (may sleep)
|
||||
*
|
||||
* RETURNS:
|
||||
* 0 if link offline, -EAGAIN if link online, -errno on errors.
|
||||
*/
|
||||
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline)
|
||||
{
|
||||
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
|
||||
bool online;
|
||||
int rc;
|
||||
|
||||
rc = sata_link_hardreset(link, timing, deadline, &online, NULL);
|
||||
if (online)
|
||||
return -EAGAIN;
|
||||
return rc;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sata_std_hardreset);
|
||||
|
||||
/**
|
||||
* ata_qc_complete_multiple - Complete multiple qcs successfully
|
||||
* @ap: port in question
|
||||
@ -1654,3 +1682,11 @@ void ata_eh_analyze_ncq_error(struct ata_link *link)
|
||||
ehc->i.err_mask &= ~AC_ERR_DEV;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ata_eh_analyze_ncq_error);
|
||||
|
||||
const struct ata_port_operations sata_port_ops = {
|
||||
.inherits = &ata_base_port_ops,
|
||||
|
||||
.qc_defer = ata_std_qc_defer,
|
||||
.hardreset = sata_std_hardreset,
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(sata_port_ops);
|
||||
|
@ -1104,8 +1104,6 @@ static inline bool ata_port_is_frozen(const struct ata_port *ap)
|
||||
extern int ata_std_prereset(struct ata_link *link, unsigned long deadline);
|
||||
extern int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
|
||||
int (*check_ready)(struct ata_link *link));
|
||||
extern int sata_std_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline);
|
||||
extern void ata_std_postreset(struct ata_link *link, unsigned int *classes);
|
||||
|
||||
extern struct ata_host *ata_host_alloc(struct device *dev, int n_ports);
|
||||
@ -1229,6 +1227,8 @@ extern int sata_scr_read(struct ata_link *link, int reg, u32 *val);
|
||||
extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
|
||||
extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val);
|
||||
extern int sata_set_spd(struct ata_link *link);
|
||||
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline);
|
||||
extern int sata_link_hardreset(struct ata_link *link,
|
||||
const unsigned int *timing, unsigned long deadline,
|
||||
bool *online, int (*check_ready)(struct ata_link *));
|
||||
@ -1256,6 +1256,11 @@ static inline int sata_scr_write_flush(struct ata_link *link, int reg, u32 val)
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int sata_set_spd(struct ata_link *link) { return -EOPNOTSUPP; }
|
||||
static inline int sata_std_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
static inline int sata_link_hardreset(struct ata_link *link,
|
||||
const unsigned int *timing,
|
||||
unsigned long deadline,
|
||||
|
Loading…
Reference in New Issue
Block a user