Re: [RFC PATCHv2 1/4] drivers/otp: add initial support for OTP memory

Jamie Iles
2011-03-25T22:52:24Z

On Fri, Mar 25, 2011 at 06:38:00PM -0400, Mike Frysinger wrote:
> On Fri, Mar 25, 2011 at 18:35, Arnd Bergmann wrote:
> > One more thing that I just realized:
> > I think it would be better not to allow arbitrary ioctl commands to
> > be interpreted by the individual drivers. Instead, interpret them
> > in the common code and pass the data to the drivers through separate
> > otp_device_ops function pointers, one per ioctl command.
> >
> > This will reduce the amount of code needed in each driver when you
> > have multiple ones implementing the same ioctls, and help to
> > ensure that they all treat the arguments in the same way.
>
> i think we should do what the rtc framework did ... there are common
> ioctls which call specific function pointers in the driver, and any
> unhandled ioctls get passed to the driver-specific ioctl function.
> this should cover everyone's needs.

That's what I intended but I guess it isn't that clear from the code.
Perhaps instead of:

mutex_lock();
region->ops->ioctl();
mutex_unlock();

if I change it to:

mutex_lock();
switch (cmd) {
default:
region->ops->ioctl();
}
mutex_unlock();

then that's a bit clearer. If there's stuff common across different OTP
implementations then we can add it to the region ops and decode it here
and if not fall back to the specific implementation.

Jamie