···2121 *2222 */23232424+/*2525+ sata_mv TODO list:2626+2727+ 1) Needs a full errata audit for all chipsets. I implemented most2828+ of the errata workarounds found in the Marvell vendor driver, but2929+ I distinctly remember a couple workarounds (one related to PCI-X)3030+ are still needed.3131+3232+ 2) Convert to LibATA new EH. Required for hotplug, NCQ, and sane3333+ probing/error handling in general. MUST HAVE.3434+3535+ 3) Add hotplug support (easy, once new-EH support appears)3636+3737+ 4) Add NCQ support (easy to intermediate, once new-EH support appears)3838+3939+ 5) Investigate problems with PCI Message Signalled Interrupts (MSI).4040+4141+ 6) Add port multiplier support (intermediate)4242+4343+ 7) Test and verify 3.0 Gbps support4444+4545+ 8) Develop a low-power-consumption strategy, and implement it.4646+4747+ 9) [Experiment, low priority] See if ATAPI can be supported using4848+ "unknown FIS" or "vendor-specific FIS" support, or something creative4949+ like that.5050+5151+ 10) [Experiment, low priority] Investigate interrupt coalescing.5252+ Quite often, especially with PCI Message Signalled Interrupts (MSI),5353+ the overhead reduced by interrupt mitigation is quite often not5454+ worth the latency cost.5555+5656+ 11) [Experiment, Marvell value added] Is it possible to use target5757+ mode to cross-connect two Linux boxes with Marvell cards? If so,5858+ creating LibATA target mode support would be very interesting.5959+6060+ Target mode, for those without docs, is the ability to directly6161+ connect two SATA controllers.6262+6363+ 13) Verify that 7042 is fully supported. I only have a 6042.6464+6565+*/6666+6767+2468#include <linux/kernel.h>2569#include <linux/module.h>2670#include <linux/pci.h>