dahdi-linux/drivers/dahdi/wctdm24xxp
Shaun Ruffell 1d03f6f8a8 wctdm24xxp: Probe for and configure modules in parallel.
Use the newly create bg_create and bg_join to actually probe / configure
groups of 4 modules in parallel. This currently has to be done in groups
of four due to the way 4-port modules are identified relative to single
port modules.

This provides a dramatic improvement in driver load time. When loading a
single TDM2400 with 24 FXS ports before this change:

    # time modprobe wctdm24xxp vpmsupport=0

    real    0m46.674s
    user    0m0.000s
    sys     0m0.520s

And after this change:

    # time modprobe wctdm24xxp vpmsupport=0

    real    0m7.900s
    user    0m0.000s
    sys     0m0.070s

Note that the boards themselves are still configured serially. Board
configuration can be parallelized once the assignment of board position
is moved out of the function that is run in parallel. Otherwise it could
be possible for board numbers to switch on repeated loads.

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Acked-by: Russ Meyerriecks <rmeyerriecks@digium.com>

git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10160 a0bf4364-ded3-4de4-8d8a-66a801d63aff
2011-08-30 16:37:57 +00:00
..
base.c wctdm24xxp: Probe for and configure modules in parallel. 2011-08-30 16:37:57 +00:00
Kbuild wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
Makefile wct4xxp: Moving the transmit short detection behind debug module param. 2010-08-27 21:59:27 +00:00
wctdm24xxp.h wctdm24xxp: Use our own free list for IRQ commands. 2011-08-18 19:21:44 +00:00
xhfc.c wcte12xp, wctdm24xxp: Load VPMOCT032 firmware in background. 2011-06-28 22:29:00 +00:00
xhfc.h wctdm24xxp: Pass the pointer to struct wctdm_module directly instead of index. 2011-06-02 20:03:15 +00:00