libata: improve initialization and legacy handling, take #3
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-fixesgit://htj.dyndns.org/libata-tj tj-upstream-fixes
http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-upstreamgit://htj.dyndns.org/libata-tj tj-upstream
http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-pata-driversgit://htj.dyndns.org/libata-tj tj-pata-drivers
http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=tj-ALLgit://htj.dyndns.org/libata-tj tj-ALL
Thanks.
Signature · 4 lines
tejun [L] http://article.gmane.org/gmane.linux.ide/12401 [1] http://article.gmane.org/gmane.linux.ide/12412
drivers/scsi/libata-core.c +11 -0
@@ -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);
Quoted 3 lines · Tejun Heo
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.
What's the difference?
The patch you attached seems to be exactly the same as what Alan objected to...
Jeff
Quoted 8 lines · Jeff Garzik
Quoted 3 lines · Tejun Heo
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.
What's the difference?
The patch you attached seems to be exactly the same as what Alan objected to...
Sorry, diff was done the other way around. That part is removed.
Signature · 1 line
tejun