Messages in this thread | | | Subject | Re: [PATCH] IDE 58 | Date | Wed, 8 May 2002 21:31:55 +0100 (BST) | From | Alan Cox <> |
| |
> ata_channel (or ata_drive, but I doubt that would be really > necessary) a set of 4 access functions: taskfile_in/out for > access to taskfile registers (8 bits), and data_in/out for > steaming datas in/out of the data reg (16 bits).
Please push it higher level than that. Load the taskfile as a set in each method. Remember its 1 potentially paired instruction to do an MMIO write, its a whole mess of synchronziation and stalls to do a function pointer.
> address at all (that is kill the array of port addresses) but > just pass the taskfile_in/out functions the register number > (cyl_hi, cyl_lo, select, ....) as a nice symbolic constant, > and let the channel specific implementation figure it out.
Pass dev->taskfile_load() a struct at least for the common paths. Make the PIO block transfers also single callbacks for each block not word.
Alan - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |