Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e85c3ec authored by Gwendal Grignou's avatar Gwendal Grignou Committed by Tejun Heo
Browse files

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: default avatarGwendal Grignou <gwendal@google.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org
parent 8b789d89
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -321,25 +321,25 @@ int ata_tport_add(struct device *parent,
/*
 * ATA link attributes
 */
static int noop(int x) { return x; }


#define ata_link_show_linkspeed(field)					\
#define ata_link_show_linkspeed(field, format)			        \
static ssize_t								\
show_ata_link_##field(struct device *dev,				\
		      struct device_attribute *attr, char *buf)		\
{									\
	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)					\
	ata_link_show_linkspeed(field)					\
#define ata_link_linkspeed_attr(field, format)				\
	ata_link_show_linkspeed(field, format)				\
static DEVICE_ATTR(field, S_IRUGO, show_ata_link_##field, NULL)

ata_link_linkspeed_attr(hw_sata_spd_limit);
ata_link_linkspeed_attr(sata_spd_limit);
ata_link_linkspeed_attr(sata_spd);
ata_link_linkspeed_attr(hw_sata_spd_limit, fls);
ata_link_linkspeed_attr(sata_spd_limit, fls);
ata_link_linkspeed_attr(sata_spd, noop);


static DECLARE_TRANSPORT_CLASS(ata_link_class,