Hi Guenter,

> > > I was waiting for feedback from Wim, who submitted a similar driver, 
> > > about his
> > > thoughts. Key question is how to reserve access to the shared resource - 
> > > either
> > > through an exported function in the mfd driver requesting a mutex, or 
> > > through
> > > request_muxed_region(). I am going back and forth myself on which one is 
> > > better.
> > > 
> > > Maybe it does not really matter, but using a function has the slight 
> > > advantage
> > > that it auto-loads and locks the mfd module while one of its client 
> > > modules
> > > is loaded. If we use request_muxed_region, that is not the case and the 
> > > client
> > > module must use another means to request and lock the mfd module.
> > > 
> > > Maybe you have an opinion ?
> > 
> > This is indeed the main issue that has to be solved. Both options will work.
> > I like the auto-load and lock, but I need to look at the 
> > request_muxed_region
> > code again first before I can see what the possible drawbacks are :-).
> > 
> One drawback of using request_muxed_region is that it needs a return value
> from superio_enter. Also, it needs some code in the client driver init 
> function
> to ensure that the mfd driver gets loaded, and possibly a call to 
> __module_get()
> in the client driver probe function to keep the mfd driver loaded.
> 
> winbond_superio_enter() would not need a return value and could use
> devm_request_region. We could also consider allocating the hwmon memory space 
> in
> the mfd driver and pass it as resource to the client drivers, which would 
> remove
> a few more lines of code from those.
> 
> Overall I am slightly in favor of using an exported function.

I looked at commit 8b6d043b7ee2d1b819dc833d677ea2aead71a0c0 (which implements
request_muxed_region). You indeed need some extra code for loading the 
lowl-level
mfd driver. So I am also in favour of the exported function.

Kind regards,
Wim.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to