Skip to content

Commit 78f76b0

Browse files
committed
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 <[email protected]> Reviewed-by: Niklas Cassel <[email protected]> Reviewed-by: Hannes Reinecke <[email protected]>
1 parent b642212 commit 78f76b0

File tree

3 files changed

+43
-37
lines changed

3 files changed

+43
-37
lines changed

drivers/ata/libata-core.c

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,6 @@ const struct ata_port_operations ata_base_port_ops = {
7272
.end_eh = ata_std_end_eh,
7373
};
7474

75-
const struct ata_port_operations sata_port_ops = {
76-
.inherits = &ata_base_port_ops,
77-
78-
.qc_defer = ata_std_qc_defer,
79-
.hardreset = sata_std_hardreset,
80-
};
81-
EXPORT_SYMBOL_GPL(sata_port_ops);
82-
8375
static unsigned int ata_dev_init_params(struct ata_device *dev,
8476
u16 heads, u16 sectors);
8577
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)
36763668
}
36773669
EXPORT_SYMBOL_GPL(ata_std_prereset);
36783670

3679-
/**
3680-
* sata_std_hardreset - COMRESET w/o waiting or classification
3681-
* @link: link to reset
3682-
* @class: resulting class of attached device
3683-
* @deadline: deadline jiffies for the operation
3684-
*
3685-
* Standard SATA COMRESET w/o waiting or classification.
3686-
*
3687-
* LOCKING:
3688-
* Kernel thread context (may sleep)
3689-
*
3690-
* RETURNS:
3691-
* 0 if link offline, -EAGAIN if link online, -errno on errors.
3692-
*/
3693-
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
3694-
unsigned long deadline)
3695-
{
3696-
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
3697-
bool online;
3698-
int rc;
3699-
3700-
/* do hardreset */
3701-
rc = sata_link_hardreset(link, timing, deadline, &online, NULL);
3702-
return online ? -EAGAIN : rc;
3703-
}
3704-
EXPORT_SYMBOL_GPL(sata_std_hardreset);
3705-
37063671
/**
37073672
* ata_std_postreset - standard postreset callback
37083673
* @link: the target ata_link

drivers/ata/libata-sata.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,34 @@ int sata_link_hardreset(struct ata_link *link, const unsigned int *timing,
706706
}
707707
EXPORT_SYMBOL_GPL(sata_link_hardreset);
708708

709+
/**
710+
* sata_std_hardreset - COMRESET w/o waiting or classification
711+
* @link: link to reset
712+
* @class: resulting class of attached device
713+
* @deadline: deadline jiffies for the operation
714+
*
715+
* Standard SATA COMRESET w/o waiting or classification.
716+
*
717+
* LOCKING:
718+
* Kernel thread context (may sleep)
719+
*
720+
* RETURNS:
721+
* 0 if link offline, -EAGAIN if link online, -errno on errors.
722+
*/
723+
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
724+
unsigned long deadline)
725+
{
726+
const unsigned int *timing = sata_ehc_deb_timing(&link->eh_context);
727+
bool online;
728+
int rc;
729+
730+
rc = sata_link_hardreset(link, timing, deadline, &online, NULL);
731+
if (online)
732+
return -EAGAIN;
733+
return rc;
734+
}
735+
EXPORT_SYMBOL_GPL(sata_std_hardreset);
736+
709737
/**
710738
* ata_qc_complete_multiple - Complete multiple qcs successfully
711739
* @ap: port in question
@@ -1654,3 +1682,11 @@ void ata_eh_analyze_ncq_error(struct ata_link *link)
16541682
ehc->i.err_mask &= ~AC_ERR_DEV;
16551683
}
16561684
EXPORT_SYMBOL_GPL(ata_eh_analyze_ncq_error);
1685+
1686+
const struct ata_port_operations sata_port_ops = {
1687+
.inherits = &ata_base_port_ops,
1688+
1689+
.qc_defer = ata_std_qc_defer,
1690+
.hardreset = sata_std_hardreset,
1691+
};
1692+
EXPORT_SYMBOL_GPL(sata_port_ops);

include/linux/libata.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,8 +1104,6 @@ static inline bool ata_port_is_frozen(const struct ata_port *ap)
11041104
extern int ata_std_prereset(struct ata_link *link, unsigned long deadline);
11051105
extern int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
11061106
int (*check_ready)(struct ata_link *link));
1107-
extern int sata_std_hardreset(struct ata_link *link, unsigned int *class,
1108-
unsigned long deadline);
11091107
extern void ata_std_postreset(struct ata_link *link, unsigned int *classes);
11101108

11111109
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);
12291227
extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
12301228
extern int sata_scr_write_flush(struct ata_link *link, int reg, u32 val);
12311229
extern int sata_set_spd(struct ata_link *link);
1230+
int sata_std_hardreset(struct ata_link *link, unsigned int *class,
1231+
unsigned long deadline);
12321232
extern int sata_link_hardreset(struct ata_link *link,
12331233
const unsigned int *timing, unsigned long deadline,
12341234
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)
12561256
return -EOPNOTSUPP;
12571257
}
12581258
static inline int sata_set_spd(struct ata_link *link) { return -EOPNOTSUPP; }
1259+
static inline int sata_std_hardreset(struct ata_link *link, unsigned int *class,
1260+
unsigned long deadline)
1261+
{
1262+
return -EOPNOTSUPP;
1263+
}
12591264
static inline int sata_link_hardreset(struct ata_link *link,
12601265
const unsigned int *timing,
12611266
unsigned long deadline,

0 commit comments

Comments
 (0)