On Mon, Jun 04, 2012 at 03:21:06AM -0700, Sagar Dharia wrote: > > The enumeration slim_ch_proto is incorrect. It declares 2 transport > > protocols which do not exist in the specification: SLIM_HARD_ISO; > > SLIM_AUTO_ISO. > > The enums are more SW representation (and not 1-1 mapping). Difference > between HARD_ISO and AUTO_ISO with example: > Let's say the root frequency is 24.576MHz. then all 4K family channels > (sample rate multiple of 4K) can run isochronously, and all 11.025KHz > channel can run with good efficiency. > So if a client wants 11.025KHz and is does not want to do flow-control at > this root frequency, then the client can specify AUTO_ISO to get the next > available isochronous frequency. I understand it is not a 1-to-1 mapping. However it *is* used as such: wbuf[2] = (u8)((segdist & 0xF00) >> 8) | (slc->prop.prot << 4); which results in NEXT_DEFINE_CHANNEL messages with an invalid TP field. More importantly I think it makes it harder to understand the framework. The concept of HARD_ISO and AUTO_ISO are extensions, and should really look like such, say perhaps: enum { SLIM_ISO, SLIM_PUSH, SLIM_PULL, SLIM_LOCKED, SLIM_ASYNC_SMPLX, SLIM_ASYNC_HALF_DUP, SLIM_EXT_SMPLX, SLIM_EXT_HALF_DUP, SLIM_AUTO_ISO, SLIM_USER_DEF_1 = 14, SLIM_USER_DEF_2 = 15, /* extensions */ SLIM_HARD_ISO, SLIM_AUTO_ISO }; > > b) Similarly to (a) the driver may be probed before the device has > > been given a logical address (LA). This makes sense in the case of > > driver that turns on the device (say via gpio) once the bus has > > booted. However, the driver then needs to sit and poll > > slim_get_logical_addr() until the logical address. > This is not the case anymore. > While taking care of the comments for RFC, I have introduced a completion > that will be signalled when LA is given to the device. The driver can wait > on that completion (wait_enum) instead of polling. Yes, my mistake. The driver wouldn't have to poll if there was another callback. So I don't see how the completion mechanism is superior: it forces a synchronous interface to asynchronous events, or the driver developer has to work around it. -- If you wake up and you're not in pain, you know you're dead. (Russian Proverb) -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html