Jim Cromie wrote: > this patchset (on hwmon-git) re-introduces superio_locks module, > previously RFC'd here, where I 'borrowed' another thread.. > > http://marc.info/?l=linux-kernel&m=115821759424601&w=2 > > The module shares out slots/shared-reservations containing > a mutex, so that multiple modules can coordinate access to > the sio-port. > > Im crossposting - LKML for more reviewers, lm-sensors for > folks with the hardware and (perhaps) more interest. > > If its not too late, please consider for 2.6.24-rc0 > > 01 - adds superio_locks module > > User-drivers specify the sio-port characteristics they can support > device-ids, sio-port-addrs, enter & exit sequences, etc in > a struct superio_search (in __devinit, preferably). > > superio_find() then searches existing slots/shared-reservations > for a matching sio-port, and returns it if found. > Otherwize it probes port-addrs, specified by find() user, > and makes and returns a new reservation. > > superio_find() finds and reserves the slot, > returned as ptr or null > superio_release() relinguishes the slot (ref-counted) > > Once theyve got the reservation in struct superio * gate > (as named in patches 2-5) they *may* use > > superio_lock(gate) > superio_enter/exit(gate) > superio_inb/w(gate, regaddr), > superio_outb/w(gate, regaddr, val) > > or they can do it themselves with inb/outb, by using gate->sioaddr, etc. > <snip> > > - Hans, I think Ive added all your suggestions, thanks. > Your welcome, at a first look over things look pretty sane now. I'm willing to do a full review of this, but first I would like to see some more input from others. Regards, Hans