[PATCH 0/4] convert parport to device-model

Sudip Mukherjee
2015-04-15T07:49:16Z

As suggested by Greg, new functions were introduced in the parport
subsystem which will use the device-model and we convert the drivers
one by one. So accordingly we now have parport_register_drv(),
parport_register_dev() and attach_ret() which are using the device-model.
And we have a flag to indicate if the driver has registered using this
new api, and based on that flag other functions are behaving.

The registration of ports is using the device-model and we now will have
/sys/bus/parport and as and when new ports are discovered they will be
added to the tree.

The drivers after converting to the device-model will register their
device as an subdevice under the relevant port it is using and when they
claim the port the actual binding between the device and the driver will
take place.

Greg also suggested to use a probe function in the drivers which will
return 0 for automatic binding, but since we do not have specific
deviceid for many parallel port devices so I was not sure what the
logic will be in the probe to identify and match the device. So instead
I thought of using device_attach() for the actual binding.

As of now only two drivers have been converted, i2c-parport which
Jean says he can test, and staging/panel which i can test as I have
the hardware for LCD part.

The zip-driver is stil not converted, but still cc-ing
gnomes@lxorguk.ukuu.org.uk if he can please check the zip drive to know
if the changes are not breaking the drivers which have not yet been
converted.

I am also in the process of procuring a parallel port printer so that
the code can properly be maintained and can be marked as Maintained.

Sudip Mukherjee (4):
parport: modify parport subsystem to use devicemodel
parport: update TODO and documentation
i2c-parport: use device-model parport
staging: panel: use parport in device-model

Documentation/parport-lowlevel.txt | 49 ++++++++
drivers/i2c/busses/i2c-parport.c | 19 +--
drivers/parport/TODO-parport | 4 +
drivers/parport/procfs.c | 15 ++-
drivers/parport/share.c | 236 +++++++++++++++++++++++++++++++++++--
drivers/staging/panel/panel.c | 20 ++--
include/linux/parport.h | 29 ++++-
7 files changed, 343 insertions(+), 29 deletions(-)

--
1.8.1.2