Problem: the "pata_ali" kernel driver does not support ATAPI DMA transfers properly on certain ALI chipsets (even if force-enabled via the driver option "atapi_dma=1"). The "ata_generic" kernel driver supports ATAPI DMA transfers for such chipsets and has a special kernel boot option, "all_generic_ide", which causes it to override the manufacturer-specific drivers. However, this option does not work correctly when the "ata_generic" and "pata_ali" drivers are compiled-in to the kernel, which means that the "ata_generic" driver is impossible to use.
Solution:
Change these kernel config parameters:
CONFIG_PATA_ALI=y
CONFIG_ATA_GENERIC=y
To the following:
CONFIG_PATA_ALI=m
CONFIG_ATA_GENERIC=m
Result:
1. For all other users: there will be no functional difference between the original and modified kernel configuration (as long as the logic to automatically modprobe the "ata_generic"/"pata_ali" kernel modules is properly in place)
2. For users with buggy ALI chipsets, they can now take advantage of the kernel boot options "all_generic_ide" and/or to manually blacklist the "pata_ali" driver, which will cause the ata_generic driver to be used (and as a result, ATAPI DMA will work properly).
Igor,
Let's try to get a summary of action needed.
Problem: the "pata_ali" kernel driver does not support ATAPI DMA transfers properly on certain ALI chipsets (even if force-enabled via the driver option "atapi_dma=1"). The "ata_generic" kernel driver supports ATAPI DMA transfers for such chipsets and has a special kernel boot option, "all_generic_ide", which causes it to override the manufacturer- specific drivers. However, this option does not work correctly when the "ata_generic" and "pata_ali" drivers are compiled-in to the kernel, which means that the "ata_generic" driver is impossible to use.
Solution:
Change these kernel config parameters: ATA_GENERIC= y
CONFIG_PATA_ALI=y
CONFIG_
To the following: ATA_GENERIC= m
CONFIG_PATA_ALI=m
CONFIG_
Result: /"pata_ ali" kernel modules is properly in place)
1. For all other users: there will be no functional difference between the original and modified kernel configuration (as long as the logic to automatically modprobe the "ata_generic"
2. For users with buggy ALI chipsets, they can now take advantage of the kernel boot options "all_generic_ide" and/or to manually blacklist the "pata_ali" driver, which will cause the ata_generic driver to be used (and as a result, ATAPI DMA will work properly).
Am I missing anything, Igor?