[git-patch] libata: improve initialization and legacy handling, take #3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

tj-upstream, tj-pata-drivers, tj-ALL have been updated per Alan's comment[1]. tj-upstream-fixes isn't affected. Diff against the last take[L] is attached.

Updated git trees are available at...

http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-upstream-fixes
git://htj.dyndns.org/libata-tj tj-upstream-fixes

http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-upstream
git://htj.dyndns.org/libata-tj tj-upstream

http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-pata-drivers
git://htj.dyndns.org/libata-tj tj-pata-drivers

http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-ALL
git://htj.dyndns.org/libata-tj tj-ALL

Thanks.

--
tejun

[L] http://article.gmane.org/gmane.linux.ide/12401
[1] http://article.gmane.org/gmane.linux.ide/12412
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 0bcf867..d3dd8e6 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -3048,6 +3048,7 @@ static void ata_dev_xfermask(struct ata_
 	struct ata_port *ap = dev->ap;
 	struct ata_host_set *hs = ap->host_set;
 	unsigned long xfer_mask;
+	int i;
 
 	/* controller modes available */
 	xfer_mask = ata_pack_xfermask(ap->pio_mask,
@@ -3075,6 +3076,16 @@ static void ata_dev_xfermask(struct ata_
 			       "other device, disabling DMA\n");
 	}
 
+	/* Use the lowest common PIO mode to avoid violating device
+	 * selection timing.
+	 */
+	for (i = 0; i < ATA_MAX_DEVICES; i++) {
+		struct ata_device *d = &ap->device[i];
+		if (!ata_dev_absent(d))
+			xfer_mask &= ata_pack_xfermask(d->pio_mask,
+						       UINT_MAX, UINT_MAX);
+	}
+
 	if (ap->ops->mode_filter)
 		xfer_mask = ap->ops->mode_filter(ap, dev, xfer_mask);
 

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux