|
@@ -59,7 +59,7 @@
|
|
|
|
|
|
#include "libata.h"
|
|
|
|
|
|
-#define DRV_VERSION "2.20" /* must be exactly four chars */
|
|
|
+#define DRV_VERSION "2.21" /* must be exactly four chars */
|
|
|
|
|
|
|
|
|
/* debounce timing parameters in msecs { interval, duration, timeout } */
|
|
@@ -977,7 +977,7 @@ static u64 ata_hpa_resize(struct ata_device *dev)
|
|
|
{
|
|
|
u64 sectors = dev->n_sectors;
|
|
|
u64 hpa_sectors;
|
|
|
-
|
|
|
+
|
|
|
if (ata_id_has_lba48(dev->id))
|
|
|
hpa_sectors = ata_read_native_max_address_ext(dev);
|
|
|
else
|
|
@@ -1588,7 +1588,7 @@ unsigned int ata_do_simple_cmd(struct ata_device *dev, u8 cmd)
|
|
|
* Check if the current speed of the device requires IORDY. Used
|
|
|
* by various controllers for chip configuration.
|
|
|
*/
|
|
|
-
|
|
|
+
|
|
|
unsigned int ata_pio_need_iordy(const struct ata_device *adev)
|
|
|
{
|
|
|
/* Controller doesn't support IORDY. Probably a pointless check
|
|
@@ -1611,7 +1611,7 @@ unsigned int ata_pio_need_iordy(const struct ata_device *adev)
|
|
|
* Compute the highest mode possible if we are not using iordy. Return
|
|
|
* -1 if no iordy mode is available.
|
|
|
*/
|
|
|
-
|
|
|
+
|
|
|
static u32 ata_pio_mask_no_iordy(const struct ata_device *adev)
|
|
|
{
|
|
|
/* If we have no drive specific rule, then PIO 2 is non IORDY */
|
|
@@ -2663,7 +2663,7 @@ int ata_timing_compute(struct ata_device *adev, unsigned short speed,
|
|
|
t->active += (t->cycle - (t->active + t->recover)) / 2;
|
|
|
t->recover = t->cycle - t->active;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/* In a few cases quantisation may produce enough errors to
|
|
|
leave t->cycle too low for the sum of active and recovery
|
|
|
if so we must correct this */
|
|
@@ -2893,9 +2893,6 @@ int ata_do_set_mode(struct ata_port *ap, struct ata_device **r_failed_dev)
|
|
|
if (used_dma && (ap->host->flags & ATA_HOST_SIMPLEX))
|
|
|
ap->host->simplex_claimed = ap;
|
|
|
|
|
|
- /* step5: chip specific finalisation */
|
|
|
- if (ap->ops->post_set_mode)
|
|
|
- ap->ops->post_set_mode(ap);
|
|
|
out:
|
|
|
if (rc)
|
|
|
*r_failed_dev = dev;
|
|
@@ -3771,6 +3768,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
|
|
|
{ "ATAPI CD-ROM DRIVE 40X MAXIMUM",NULL,ATA_HORKAGE_NODMA },
|
|
|
{ "_NEC DV5800A", NULL, ATA_HORKAGE_NODMA },
|
|
|
{ "SAMSUNG CD-ROM SN-124","N001", ATA_HORKAGE_NODMA },
|
|
|
+ { "Seagate STT20000A", NULL, ATA_HORKAGE_NODMA },
|
|
|
|
|
|
/* Weird ATAPI devices */
|
|
|
{ "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 |
|