mISDN: Fixed hardware bridging/conference check routine of mISDN_dsp.ko.
authorAndreas Eversberg <jolly@eversberg.eu>
Tue, 24 Apr 2012 02:51:50 +0000 (02:51 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 26 Apr 2012 07:10:45 +0000 (03:10 -0400)
In some cases the hardware bridging/conference (2-n parties) was selected,
but still pure software bridging/conference was used.

Signed-off-by: Andreas Eversberg <jolly@eversberg.eu>
Signed-off-by: Karsten Keil <keil@b1-systems.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/mISDN/dsp_cmx.c

index b7589c2..0c104b9 100644 (file)
@@ -742,8 +742,8 @@ dsp_cmx_hardware(struct dsp_conf *conf, struct dsp *dsp)
                                               member->dsp->pcm_slot_tx,
                                               member->dsp->pcm_bank_tx,
                                               member->dsp->pcm_bank_rx);
-                               conf->hardware = 0;
-                               conf->software = 1;
+                               conf->hardware = 1;
+                               conf->software = tx_data;
                                return;
                        }
                        /* find a new slot */
@@ -834,8 +834,8 @@ dsp_cmx_hardware(struct dsp_conf *conf, struct dsp *dsp)
                                               nextm->dsp->name,
                                               member->dsp->pcm_slot_tx,
                                               member->dsp->pcm_slot_rx);
-                               conf->hardware = 0;
-                               conf->software = 1;
+                               conf->hardware = 1;
+                               conf->software = tx_data;
                                return;
                        }
                        /* find two new slot */
@@ -939,8 +939,11 @@ dsp_cmx_hardware(struct dsp_conf *conf, struct dsp *dsp)
        /* for more than two members.. */
 
        /* if all members already have the same conference */
-       if (all_conf)
+       if (all_conf) {
+               conf->hardware = 1;
+               conf->software = tx_data;
                return;
+       }
 
        /*
         * if there is an existing conference, but not all members have joined
@@ -1013,6 +1016,8 @@ dsp_cmx_hardware(struct dsp_conf *conf, struct dsp *dsp)
                        dsp_cmx_hw_message(member->dsp,
                                           MISDN_CTRL_HFC_CONF_JOIN, current_conf, 0, 0, 0);
                }
+               conf->hardware = 1;
+               conf->software = tx_data;
                return;
        }