Hello Kernel Developers, The bunch of patches add support for IndustryPack devices as a carrier board called TEWS TPCI-200 and a mezzanine board called IP-OCTAL, among a virtual bus driver called ipack. TPCI-200 is a bridge between PCIe and IndustryPack with 4 slots. IP-OCTAL is a 8 channel serial port device that, depending of the model, can talk RS-232, RS-422 or RS-485. The ipack driver is just an abstraction of the bus providing the common operations between the two aforementioned devices. These drivers have been tested some time ago in an old kernel version at CERN (2.6.24) and they are working there. The present ones are just a clean-up of the original ones to be, hopefully, integrated mainstream. These drivers have several ugly hacks that I want to fix: * TPCI-200: it receives the name of the mezzanine plugged in each slot by SYSFS. No autodetection supported yet, because the mezzanine driver could not be loaded at the time that the tpci200 driver loads. * IP-OCTAL: it has a linked list which saves the devices it is currently managing. It should use the driver_for_each_device() function. It is not there due to the impossibility of using container_of macro to recover the corresponding "struct ipoctal" because the attribute "struct ipack_device" is a pointer. This code should be refactored. * Ipack: the structures and API exported can be improved a lot. For example, the way to unregistering mezzanine devices, doing the mezzanine driver a call to remove_device() to notify the carrier driver, or the opposite with the call to the ipack_driver_ops' remove() function could be improved. The idea is to receive some feedback: comments, suggestions, critics... improving the code's quality. Also, public this development to receive new contributions. Thanks, Sam Samuel Iglesias Gonsalvez (3): Staging: IndustryPack bus for the Linux Kernel Staging: ipack: added support for the TEWS TPCI-200 carrier board Staging: ipack: add support for IP-OCTAL mezzanine board drivers/staging/Kconfig | 2 + drivers/staging/Makefile | 1 + drivers/staging/ipack/Kconfig | 17 + drivers/staging/ipack/Makefile | 6 + drivers/staging/ipack/TODO | 15 + drivers/staging/ipack/bridges/Kconfig | 7 + drivers/staging/ipack/bridges/Makefile | 1 + drivers/staging/ipack/bridges/tpci200.c | 1163 +++++++++++++++++++++++++++++++ drivers/staging/ipack/bridges/tpci200.h | 165 +++++ drivers/staging/ipack/devices/Kconfig | 7 + drivers/staging/ipack/devices/Makefile | 1 + drivers/staging/ipack/devices/ipoctal.c | 841 ++++++++++++++++++++++ drivers/staging/ipack/devices/ipoctal.h | 81 +++ drivers/staging/ipack/devices/scc2698.h | 229 ++++++ drivers/staging/ipack/ipack.c | 179 +++++ drivers/staging/ipack/ipack.h | 186 +++++ 16 files changed, 2901 insertions(+) create mode 100644 drivers/staging/ipack/Kconfig create mode 100644 drivers/staging/ipack/Makefile create mode 100644 drivers/staging/ipack/TODO create mode 100644 drivers/staging/ipack/bridges/Kconfig create mode 100644 drivers/staging/ipack/bridges/Makefile create mode 100644 drivers/staging/ipack/bridges/tpci200.c create mode 100644 drivers/staging/ipack/bridges/tpci200.h create mode 100644 drivers/staging/ipack/devices/Kconfig create mode 100644 drivers/staging/ipack/devices/Makefile create mode 100644 drivers/staging/ipack/devices/ipoctal.c create mode 100644 drivers/staging/ipack/devices/ipoctal.h create mode 100644 drivers/staging/ipack/devices/scc2698.h create mode 100644 drivers/staging/ipack/ipack.c create mode 100644 drivers/staging/ipack/ipack.h -- 1.7.10 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel