* perhaps I missed this, but why is this module param necessary? In
general we avoid things like this.

The CF interface is on the SOC's Boot Bus. Under some circumstances a
board wide hardware reset can occur while DMA is in progress, this
results in the CF driving the Boot Bus while the processor is trying to
read the boot code from the boot ROM which results in an unbootable
system. The only recourse is to cycle power to the board. By allowing
DMA to be disabled, we eliminate this problem.

* I would avoid pretending to be an SFF DMA engine, and just code it in
the style of a custom DMA engine with SFF registers/mode, such as
sata_mv or sata_promise.

It is certainly possible to do that, however I think it will result in a
much larger driver. If you strongly object, we would have to bite the
bullet and do as you suggest.