On Thu, Jul 03, 2014 at 08:09:41PM +0800, Kevin Hao wrote: > The sata on fsl mpc8315e is broken after the commit 8a4aeec8d2d6 > ("libata/ahci: accommodate tag ordered controllers"). The reason is > that the ata controller on this SoC only implement a queue depth of > 16. When issuing the commands in tag order, all the commands in tag > 16 ~ 17 are mapped to tag 0 unconditionally and then causes the sata > malfunction. It makes no senses to use a 32 queue in software while > the hardware has less queue depth. This patch provides the function > for libata to adjust the queue depth for a host controller. ATA_TAG_INTERNAL is an internal way of marking an EH command and doesn't actually get used as a command tag. After all, EH doesn't issue any tagged command. We can use tag 32 for it but have been using 31 for it for historical reasons, so the only necessary part is updating the tag allocator to wrap according to the max number of tags supported by the controller. Thanks. -- tejun -- 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