From: Eero Nurkkala <[email protected]>

Instead of having a large broadcast_event() - function, split
it with a sub function msm_fill_evt_payload() that fills the
structures. This makes the broadcast_event() more readable.

Signed-off-by: Eero Nurkkala <[email protected]>
---
branch: android-msm-2.6.35
 .../mach-msm/include/mach/qdsp6v2/audio_dev_ctl.h  |    2 +
 arch/arm/mach-msm/qdsp6v2/audio_dev_ctl.c          |  149 +++++++++++---------
 2 files changed, 82 insertions(+), 69 deletions(-)

diff --git a/arch/arm/mach-msm/include/mach/qdsp6v2/audio_dev_ctl.h 
b/arch/arm/mach-msm/include/mach/qdsp6v2/audio_dev_ctl.h
index 39039a1..4ef22d6 100644
--- a/arch/arm/mach-msm/include/mach/qdsp6v2/audio_dev_ctl.h
+++ b/arch/arm/mach-msm/include/mach/qdsp6v2/audio_dev_ctl.h
@@ -179,6 +179,8 @@ struct message_header {
 #define AUDDEV_EVT_VOICE_STATE_CHG 0x200 /* Change in voice state */
 
 #define AUDDEV_CLNT_VOC 0x1 /*Vocoder clients*/
+#define AUDDEV_CLNT_VOC_S1 0x11 /* subtypes for msm_fill_evt_payload() */
+#define AUDDEV_CLNT_VOC_S2 0x12
 #define AUDDEV_CLNT_DEC 0x2 /*Decoder clients*/
 #define AUDDEV_CLNT_ENC 0x3 /* Encoder clients */
 #define AUDDEV_CLNT_AUDIOCAL 0x4 /* AudioCalibration client */
diff --git a/arch/arm/mach-msm/qdsp6v2/audio_dev_ctl.c 
b/arch/arm/mach-msm/qdsp6v2/audio_dev_ctl.c
index b414f3e..6b81197 100644
--- a/arch/arm/mach-msm/qdsp6v2/audio_dev_ctl.c
+++ b/arch/arm/mach-msm/qdsp6v2/audio_dev_ctl.c
@@ -995,6 +995,71 @@ struct miscdevice audio_dev_ctrl_misc = {
        .fops   = &audio_dev_ctrl_fops,
 };
 
+static void msm_fill_evt_payload(struct msm_snddev_info *dev_info,
+                               union auddev_evt_data *evt_payload,
+                               uint32_t clnt_type)
+{
+       int i;
+
+       switch (clnt_type) {
+       case AUDDEV_CLNT_VOC:
+               evt_payload->voc_vm_info.acdb_dev_id =
+                                       dev_info->acdb_id;
+               if (dev_info->capability & SNDDEV_CAP_TX) {
+                       evt_payload->voc_vm_info.dev_type = SNDDEV_CAP_TX;
+                       evt_payload->voc_vm_info.dev_vm_val.mute =
+                                       routing_info.tx_mute;
+               } else {
+                       evt_payload->voc_vm_info.dev_type = SNDDEV_CAP_RX;
+                       evt_payload->voc_vm_info.dev_vm_val.vol =
+                                       routing_info.voice_rx_vol;
+               }
+               break;
+
+       case AUDDEV_CLNT_VOC_S2:
+               evt_payload->voc_devinfo.dev_type = (dev_info->capability &
+                               SNDDEV_CAP_TX) ? SNDDEV_CAP_TX : SNDDEV_CAP_RX;
+               evt_payload->voc_devinfo.acdb_dev_id = dev_info->acdb_id;
+               evt_payload->voc_devinfo.dev_port_id = dev_info->copp_id;
+               evt_payload->voc_devinfo.dev_sample =
+                                       dev_info->set_sample_rate ?
+                                       dev_info->set_sample_rate :
+                                       dev_info->sample_rate;
+               if (dev_info->capability & SNDDEV_CAP_RX) {
+                       for (i = 0; i < VOC_RX_VOL_ARRAY_NUM; i++) {
+                               evt_payload->voc_devinfo.max_rx_vol[i] =
+                                               dev_info->max_voc_rx_vol[i];
+                               evt_payload->voc_devinfo.min_rx_vol[i] =
+                                               dev_info->min_voc_rx_vol[i];
+                       }
+               }
+               break;
+
+       case AUDDEV_CLNT_VOC_S1:
+       case AUDDEV_CLNT_DEC:
+       case AUDDEV_CLNT_ENC:
+               evt_payload->freq_info.sample_rate = dev_info->set_sample_rate;
+               evt_payload->freq_info.dev_type = dev_info->capability;
+               evt_payload->freq_info.acdb_dev_id = dev_info->acdb_id;
+               break;
+
+       case AUDDEV_CLNT_AUDIOCAL:
+               evt_payload->audcal_info.dev_id = dev_info->copp_id;
+               evt_payload->audcal_info.acdb_id = dev_info->acdb_id;
+               evt_payload->audcal_info.dev_type = (dev_info->capability &
+                               SNDDEV_CAP_TX) ? SNDDEV_CAP_TX : SNDDEV_CAP_RX;
+               evt_payload->audcal_info.sample_rate =
+                                       dev_info->set_sample_rate ?
+                                       dev_info->set_sample_rate :
+                                       dev_info->sample_rate;
+               break;
+
+       default:
+               pr_err("%s: Unknown case.\n", __func__);
+               break;
+       }
+}
+
 /* session id is 64 bit routing mask per device
  * 0-15 for voice clients
  * 16-31 for Decoder clients
@@ -1003,7 +1068,7 @@ struct miscdevice audio_dev_ctrl_misc = {
  */
 void broadcast_event(u32 evt_id, u32 dev_id, u64 session_id)
 {
-       int clnt_id = 0, i;
+       int clnt_id = 0;
        union auddev_evt_data *evt_payload;
        struct msm_snd_evt_listner *callback;
        struct msm_snddev_info *dev_info = NULL;
@@ -1088,12 +1153,8 @@ volume_strm:
                                        == dev_info->set_sample_rate)
                                        goto sent_dec;
                                else {
-                                       evt_payload->freq_info.sample_rate
-                                               = dev_info->set_sample_rate;
-                                       evt_payload->freq_info.dev_type
-                                               = dev_info->capability;
-                                       evt_payload->freq_info.acdb_dev_id
-                                               = dev_info->acdb_id;
+                                       msm_fill_evt_payload(dev_info,
+                                               evt_payload, AUDDEV_CLNT_DEC);
                                }
                        } else if (evt_id == AUDDEV_EVT_VOICE_STATE_CHG)
                                evt_payload->voice_state =
@@ -1119,12 +1180,8 @@ sent_dec:
                                                        = 0;
                                        goto sent_enc;
                                 } else {
-                                       evt_payload->freq_info.sample_rate
-                                               = dev_info->set_sample_rate;
-                                       evt_payload->freq_info.dev_type
-                                               = dev_info->capability;
-                                       evt_payload->freq_info.acdb_dev_id
-                                               = dev_info->acdb_id;
+                                       msm_fill_evt_payload(dev_info,
+                                               evt_payload, AUDDEV_CLNT_ENC);
                                }
                        } else if (evt_id == AUDDEV_EVT_VOICE_STATE_CHG)
                                evt_payload->voice_state =
@@ -1147,17 +1204,9 @@ aud_cal:
                        else if (!dev_info->sessions)
                                goto sent_aud_cal;
                        else {
-                               evt_payload->audcal_info.dev_id =
-                                               dev_info->copp_id;
-                               evt_payload->audcal_info.acdb_id =
-                                               dev_info->acdb_id;
-                               evt_payload->audcal_info.dev_type =
-                                       (dev_info->capability & SNDDEV_CAP_TX) ?
-                                       SNDDEV_CAP_TX : SNDDEV_CAP_RX;
-                               evt_payload->audcal_info.sample_rate =
-                                       dev_info->set_sample_rate ?
-                                       dev_info->set_sample_rate :
-                                       dev_info->sample_rate;
+                               msm_fill_evt_payload(dev_info,
+                                               evt_payload,
+                                               AUDDEV_CLNT_AUDIOCAL);
                        }
                        callback->auddev_evt_listener(
                                evt_id,
@@ -1181,23 +1230,8 @@ voc_events:
                                pending_sent = 1;
 
                        if (evt_id == AUDDEV_EVT_DEVICE_VOL_MUTE_CHG) {
-                               if (dev_info->capability & SNDDEV_CAP_TX) {
-                                       evt_payload->voc_vm_info.dev_type =
-                                               SNDDEV_CAP_TX;
-                                       evt_payload->voc_vm_info.acdb_dev_id =
-                                               dev_info->acdb_id;
-                                       evt_payload->
-                                       voc_vm_info.dev_vm_val.mute =
-                                               routing_info.tx_mute;
-                               } else {
-                                       evt_payload->voc_vm_info.dev_type =
-                                               SNDDEV_CAP_RX;
-                                       evt_payload->voc_vm_info.acdb_dev_id =
-                                               dev_info->acdb_id;
-                                       evt_payload->
-                                       voc_vm_info.dev_vm_val.vol =
-                                               routing_info.voice_rx_vol;
-                               }
+                                       msm_fill_evt_payload(dev_info,
+                                               evt_payload, AUDDEV_CLNT_VOC);
                        } else if ((evt_id == AUDDEV_EVT_START_VOICE)
                                        || (evt_id == AUDDEV_EVT_END_VOICE))
                                memset(evt_payload, 0,
@@ -1207,41 +1241,18 @@ voc_events:
                                                != dev_info->set_sample_rate) {
                                        routing_info.voice_tx_sample_rate
                                                = dev_info->set_sample_rate;
-                                       evt_payload->freq_info.sample_rate
-                                               = dev_info->set_sample_rate;
-                                       evt_payload->freq_info.dev_type
-                                               = dev_info->capability;
-                                       evt_payload->freq_info.acdb_dev_id
-                                               = dev_info->acdb_id;
+                                       msm_fill_evt_payload(dev_info,
+                                               evt_payload,
+                                               AUDDEV_CLNT_VOC_S1);
                                } else
                                        goto sent_voc;
                        } else if (evt_id == AUDDEV_EVT_VOICE_STATE_CHG)
                                evt_payload->voice_state =
                                                routing_info.voice_state;
                        else {
-                               evt_payload->voc_devinfo.dev_type =
-                                       (dev_info->capability & SNDDEV_CAP_TX) ?
-                                       SNDDEV_CAP_TX : SNDDEV_CAP_RX;
-                               evt_payload->voc_devinfo.acdb_dev_id =
-                                       dev_info->acdb_id;
-                               evt_payload->voc_devinfo.dev_port_id =
-                                       dev_info->copp_id;
-                               evt_payload->voc_devinfo.dev_sample =
-                                       dev_info->set_sample_rate ?
-                                       dev_info->set_sample_rate :
-                                       dev_info->sample_rate;
+                               msm_fill_evt_payload(dev_info, evt_payload,
+                                               AUDDEV_CLNT_VOC_S2);
                                evt_payload->voc_devinfo.dev_id = dev_id;
-                               if (dev_info->capability & SNDDEV_CAP_RX) {
-                                       for (i = 0; i < VOC_RX_VOL_ARRAY_NUM;
-                                               i++) {
-                                               evt_payload->
-                                               voc_devinfo.max_rx_vol[i] =
-                                               dev_info->max_voc_rx_vol[i];
-                                               evt_payload
-                                               ->voc_devinfo.min_rx_vol[i] =
-                                               dev_info->min_voc_rx_vol[i];
-                                       }
-                               }
                        }
                        callback->auddev_evt_listener(
                                evt_id,
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to