There's no way to reliably know if a PCI064x controller is enabled or not. If the driver finds a PCI064x, it will assume it is enabled unless the PCIIDE_CMD064x_DISABLE option is specified in the kernel config file. This will be a problem only if the controller has been disabled in the BIOS and another controller has been installed and uses the ISA legacy I/O ports and interrupts.
The PCI0646U controller is known to be buggy with Ultra-DMA transfers, so Ultra-DMA is disabled by default for this controller. To enable Ultra-DMA, use the PCIIDE_CMD0646U_ENABLEUDMA option. Ultra-DMA can eventually be disabled on a per-drive basis with config flags, see
wd(4).
The timings used for the PIO and DMA modes for controllers listed above are for a PCI bus running at 30 or 33 MHz. This driver may not work properly on overclocked systems.