In latest version of /usr/src/sys/dev/ata/ata-dma.c and previous too i guess. The switch sentence at line 492 is missing a 'break' for each timing constant selection, resulting in PIO mode 0 timings being set for every mode.