The patch titled pata: libata: Enable per device speed setting has been added to the -mm tree. Its filename is pata-libata-enable-per-device-speed-setting.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: pata: libata: Enable per device speed setting From: Alan Cox <alan@xxxxxxxxxx> Testing says that nothing seems to break when we do this. Signed-off-by: Alan Cox <alan@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/scsi/libata-core.c | 36 +++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff -puN drivers/scsi/libata-core.c~pata-libata-enable-per-device-speed-setting drivers/scsi/libata-core.c --- a/drivers/scsi/libata-core.c~pata-libata-enable-per-device-speed-setting +++ a/drivers/scsi/libata-core.c @@ -3046,6 +3046,7 @@ static void ata_dev_xfermask(struct ata_ unsigned long xfer_mask; int i; + /* Controller modes available */ xfer_mask = ata_pack_xfermask(ap->pio_mask, ap->mwdma_mask, ap->udma_mask); @@ -3055,30 +3056,21 @@ static void ata_dev_xfermask(struct ata_ if (ap->cbl == ATA_CBL_PATA40) xfer_mask &= ~(0xF8 << ATA_SHIFT_UDMA); - /* FIXME: Use port-wide xfermask for now */ - for (i = 0; i < ATA_MAX_DEVICES; i++) { - struct ata_device *d = &ap->device[i]; - - if (ata_dev_absent(d)) - continue; - - if (ata_dev_disabled(d)) { - /* to avoid violating device selection timing */ - xfer_mask &= ata_pack_xfermask(d->pio_mask, - UINT_MAX, UINT_MAX); - continue; - } + if (ata_dev_disabled(dev)) { + /* to avoid violating device selection timing */ + xfer_mask &= ata_pack_xfermask(dev->pio_mask, + UINT_MAX, UINT_MAX); + goto out; + } + xfer_mask &= ata_pack_xfermask(dev->pio_mask, + dev->mwdma_mask, dev->udma_mask); + xfer_mask &= ata_id_xfermask(dev->id); - xfer_mask &= ata_pack_xfermask(d->pio_mask, - d->mwdma_mask, d->udma_mask); - xfer_mask &= ata_id_xfermask(d->id); - if (ata_dma_blacklisted(d)) - xfer_mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); - } - - if (ata_dma_blacklisted(dev)) + if (ata_dma_blacklisted(dev)) { + xfer_mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); ata_dev_printk(dev, KERN_WARNING, "device is on DMA blacklist, disabling DMA\n"); + } if (hs->flags & ATA_HOST_SIMPLEX) { if (hs->simplex_claimed) @@ -3087,7 +3079,7 @@ static void ata_dev_xfermask(struct ata_ if (ap->ops->mode_filter) xfer_mask = ap->ops->mode_filter(ap, dev, xfer_mask); - +out: ata_unpack_xfermask(xfer_mask, &dev->pio_mask, &dev->mwdma_mask, &dev->udma_mask); } _ Patches currently in -mm which might be from alan@xxxxxxxxxx are origin.patch my-name-is-ingo-molnar-you-killed-my-make-allyesconfig-prepare-to-die.patch jmicron-pci-identifiers.patch pata-ata_piix-time0-time1-setup.patch pata-pata_ali-further-debug-work.patch pata-pata_amd-new-chips.patch pata-pata_ali-revisions-below-0x20-need-cd-config-poking-too.patch pata-sort-out-mc65-compile-for-now.patch pata-libata-fix-the-host_set-hacks-and-sort-out-simplex-mode.patch pata-pata_it821x-fix-pass-through.patch pata-ahci-ensure-that-we-dont-grab-both-functions.patch pata-jmicron-add-quirks-to-force-the-device-into-a-sane-mode.patch pata-jmicron-configuration.patch pata-ata_generic-generic-bios-setup-sff-ata-driver.patch pata-jmicron-ide-old-type-driver.patch pata-pata_qdi-fix-return-code.patch pata-ide-jmicron-finish-writing.patch pata-jmicron-it-works-better-if-you-get-the-file-name-right.patch pata-jmicron-further-clean-up.patch pata-ata_jmicro-fix-an-escapee.patch pata-jmicron-jmicron-multifunction-setup.patch pata-libata-enable-per-device-speed-setting.patch pata-jmicron-missed-one.patch sanitize-3c589_cs.patch ide-backport-piix-fixes-from-libata-into-the-legacy-driver.patch move-ide-to-unmaintained-drop-reference-to-old-git-tree.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html