libata: Fix display of sata speed
6.0 Gbps link speed was not decoded properly: speed was reported at 3.0 Gbps only. Tested: On a machine where libata reports 6.0 Gbps in /var/log/messages: ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300) Before: cat /sys/class/ata_link/link1/sata_spd 3.0 Gbps After: cat /sys/class/ata_link/link1/sata_spd 6.0 Gbps Signed-off-by: Gwendal Grignou <gwendal@google.com> Signed-off-by: Tejun Heo <tj@kernel.org> Cc: stable@vger.kernel.org
This commit is contained in:
parent
8b789d8981
commit
3e85c3ecbc
@ -321,25 +321,25 @@ int ata_tport_add(struct device *parent,
|
|||||||
/*
|
/*
|
||||||
* ATA link attributes
|
* ATA link attributes
|
||||||
*/
|
*/
|
||||||
|
static int noop(int x) { return x; }
|
||||||
|
|
||||||
|
#define ata_link_show_linkspeed(field, format) \
|
||||||
#define ata_link_show_linkspeed(field) \
|
|
||||||
static ssize_t \
|
static ssize_t \
|
||||||
show_ata_link_##field(struct device *dev, \
|
show_ata_link_##field(struct device *dev, \
|
||||||
struct device_attribute *attr, char *buf) \
|
struct device_attribute *attr, char *buf) \
|
||||||
{ \
|
{ \
|
||||||
struct ata_link *link = transport_class_to_link(dev); \
|
struct ata_link *link = transport_class_to_link(dev); \
|
||||||
\
|
\
|
||||||
return sprintf(buf,"%s\n", sata_spd_string(fls(link->field))); \
|
return sprintf(buf, "%s\n", sata_spd_string(format(link->field))); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ata_link_linkspeed_attr(field) \
|
#define ata_link_linkspeed_attr(field, format) \
|
||||||
ata_link_show_linkspeed(field) \
|
ata_link_show_linkspeed(field, format) \
|
||||||
static DEVICE_ATTR(field, S_IRUGO, show_ata_link_##field, NULL)
|
static DEVICE_ATTR(field, S_IRUGO, show_ata_link_##field, NULL)
|
||||||
|
|
||||||
ata_link_linkspeed_attr(hw_sata_spd_limit);
|
ata_link_linkspeed_attr(hw_sata_spd_limit, fls);
|
||||||
ata_link_linkspeed_attr(sata_spd_limit);
|
ata_link_linkspeed_attr(sata_spd_limit, fls);
|
||||||
ata_link_linkspeed_attr(sata_spd);
|
ata_link_linkspeed_attr(sata_spd, noop);
|
||||||
|
|
||||||
|
|
||||||
static DECLARE_TRANSPORT_CLASS(ata_link_class,
|
static DECLARE_TRANSPORT_CLASS(ata_link_class,
|
||||||
|
Loading…
Reference in New Issue
Block a user