> Is there any way to reproduce this behavior in libata other than > redefining ioread8/iowrite8? For the cases where hardware so far has needed this there are higher level abstractions. It depends what cases the jasper h/w needs it for. If you are using the SFF taskfile style interface then ->sff_dev_select ->sff_tf_load ->sff_tf_read ->sff_exec_command ->sff_check_status ->sff_check_altstatus ->sff_irq_clear ->sff_data_xfer And for DMA ->bmdma_setup ->bmdma_start ->bmdma_stop ->bmdma_status which are mostly just I/O operations. Abstracting at this higher level helps performance by avoiding huge numbers of indirect function calls through pointers. However the reset logic isn't cleanly separated so might need a bit of work if that is a problem. It's hard to tell without more info whether they do the write on every access because they can't just do it on the ones that need it or because they need to do it each time. -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html