diff options
author | Tejun Heo <htejun@gmail.com> | 2006-03-05 11:55:58 +0300 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-05 19:09:42 +0300 |
commit | 623a3128aa2b86caa8e06e762e9e444177e4fa47 (patch) | |
tree | 3e861e10c2963a22d2f097e5545fdcd865667602 /include/linux/libata.h | |
parent | 4c2d721ab6413ee4ff33617ed1413458261f36ea (diff) | |
download | linux-623a3128aa2b86caa8e06e762e9e444177e4fa47.tar.xz |
[PATCH] libata: implement ata_dev_revalidate()
ata_dev_revalidate() re-reads IDENTIFY PAGE of the given device and
makes sure it's the same device as the configured one. Once it's
verified that it's the same device, @dev is configured according to
newly read IDENTIFY PAGE. Note that revalidation currently doesn't
invoke transfer mode reconfiguration.
Criteria for 'same device'
* same class (of course)
* same model string
* same serial string
* if ATA, same n_sectors (to catch geometry parameter changes)
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r-- | include/linux/libata.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 86a504f0ef06..66dce58f1941 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -485,6 +485,8 @@ extern int ata_std_softreset(struct ata_port *ap, int verbose, extern int sata_std_hardreset(struct ata_port *ap, int verbose, unsigned int *class); extern void ata_std_postreset(struct ata_port *ap, unsigned int *classes); +extern int ata_dev_revalidate(struct ata_port *ap, struct ata_device *dev, + int post_reset); extern void ata_port_disable(struct ata_port *); extern void ata_std_ports(struct ata_ioports *ioaddr); #ifdef CONFIG_PCI |