On Mon, Jan 04, 2010 at 05:39:58PM +0000, Alan Cox wrote: > > Firstly, icside shares its two IDE channels with one DMA engine - so it's > > a simplex interface. IDE supports those (or did when the code was written) > > serializing requests between the two interfaces. libata does not. > > Libata does the driver may not. libata certainly didn't when I wrote the driver in 2007. int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev) { /* Record simplex status. If we selected DMA then the other * host channels are not permitted to do so. */ if (used_dma && (ap->host->flags & ATA_HOST_SIMPLEX)) ap->host->simplex_claimed = ap; ... static void ata_dev_xfermask(struct ata_device *dev) { ... if ((host->flags & ATA_HOST_SIMPLEX) && host->simplex_claimed && host->simplex_claimed != ap) { xfer_mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA); ata_dev_printk(dev, KERN_WARNING, "simplex DMA is claimed by " "other device, disabling DMA\n"); } and apparantly still doesn't. Only one channel of a simplex device is permitted to be configured for DMA at any one time. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html