On Wed, 14 Mar 2012, Turquette, Mike wrote:
On Wed, Mar 14, 2012 at 2:28 PM, Thomas Gleixner tglx@linutronix.de wrote:
So the right way to deal with it is to have an array of valid names with no holes and NULL pointers allowed and have a mapping from the array index to the register value.
This is essentially what the .set_rate callback does. It takes as input "u8 index" and peforms the hardware specific magic to select the correct parent clock. This might be a register write using that exact same index, or it might be a single-bit register write using that index as the shift value, or it might translate that index into the data sent to an i2c device (where the address would be stored in struct clk_foo), etc etc.
We both agree that .parent_names must contain valid names and should not have holes. What I don't understand is if you are saying that we should allow NULL ptrs as names; that seems contradictory but I want to make sure I'm reading you correctly.
I should have said: no holes and no NULL pointers, just an array of valid names.
Thanks,
tglx