Messages in this thread | | | Date | Sat, 13 Jan 2007 10:01:58 +0000 | From | Alan <> | Subject | Re: Proposed changes for libata speed handling |
| |
O> Wouldn't it be better to have ->determine_xfer_mask() and > ->set_specific_mode() than having two somewhat overlapping callbacks? > Or is there some problem that can't be handled that way?
I'm not sure I follow what you are suggesting - can you explain further.
Right now ->set_mode does all the policy management with regards to picking the right modes which is sometimes done by the usual ATA rules and sometimes by card specific code.
->set_specific_mode does no policy work but merely sets up a mode.
The default behaviour of ->set_mode() is the ATA mode selection by best mode available, and this function is normally not provided by a driver.
The default behaviour of ->set_specific_mode() is to verify the mode is valid then issue ->set_pio|dma_mode() (for both devices in case a timing change on both is triggered). This function is overridable because of things like IT821x where the IDE mode is imaginary.
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/
| |