···21 *22 */2324+/*25+ sata_mv TODO list:26+27+ 1) Needs a full errata audit for all chipsets. I implemented most28+ of the errata workarounds found in the Marvell vendor driver, but29+ I distinctly remember a couple workarounds (one related to PCI-X)30+ are still needed.31+32+ 2) Convert to LibATA new EH. Required for hotplug, NCQ, and sane33+ probing/error handling in general. MUST HAVE.34+35+ 3) Add hotplug support (easy, once new-EH support appears)36+37+ 4) Add NCQ support (easy to intermediate, once new-EH support appears)38+39+ 5) Investigate problems with PCI Message Signalled Interrupts (MSI).40+41+ 6) Add port multiplier support (intermediate)42+43+ 7) Test and verify 3.0 Gbps support44+45+ 8) Develop a low-power-consumption strategy, and implement it.46+47+ 9) [Experiment, low priority] See if ATAPI can be supported using48+ "unknown FIS" or "vendor-specific FIS" support, or something creative49+ like that.50+51+ 10) [Experiment, low priority] Investigate interrupt coalescing.52+ Quite often, especially with PCI Message Signalled Interrupts (MSI),53+ the overhead reduced by interrupt mitigation is quite often not54+ worth the latency cost.55+56+ 11) [Experiment, Marvell value added] Is it possible to use target57+ mode to cross-connect two Linux boxes with Marvell cards? If so,58+ creating LibATA target mode support would be very interesting.59+60+ Target mode, for those without docs, is the ability to directly61+ connect two SATA controllers.62+63+ 13) Verify that 7042 is fully supported. I only have a 6042.64+65+*/66+67+68#include <linux/kernel.h>69#include <linux/module.h>70#include <linux/pci.h>