On Monday 14 July 2008, Jean Delvare wrote:
> We call adapter->client_register for both legacy and new-style i2c
> devices, however we only call adapter->client_unregister for legacy
> drivers. This doesn't make much sense. Usually, drivers will undo
> in client_unregister what they did in client_register, so we should
> call neither or both for every given i2c device.
> 
> In order to ease the transition from legacy to new-style devices, it
> seems preferable to actually call both.
> 
> Signed-off-by: Jean Delvare <[EMAIL PROTECTED]>
> Cc: David Brownell <[EMAIL PROTECTED]>
> ---
> David, is this OK with you?

The symmetry point is good; client_unregister() is only
called (for now) in i2c_detach_client() -- a legacy-only
procedure, which I guess is mandatory for legacy drivers
to call at various points.

Did you consider moving the call into i2c_device_remove()
instead?  That'd simplify things by minimizing call sites,
and would ensure that no code path could skip the call.
(The list_del calls could move there too...)

It seems that all users of these adapater callbacks are
in the drivers/media/video subtree, which has an atypical
model for adapters.  A more general notion for this kind
of notification might be useful to non-video adapters,
like a notifier scheme that's usable by third parties.

- Dave

_______________________________________________
i2c mailing list
i2c@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/i2c

Reply via email to