.agg_time_limit = BT_AGG_THRESHOLD_DEF,
        .bt_init_traffic_load = IWL_BT_COEX_TRAFFIC_LOAD_NONE,
        .bt_prio_boost = IWLAGN_BT_PRIO_BOOST_DEFAULT,
+       .bt_sco_disable = true,
 };
 
 struct iwl_cfg iwl6000g2a_2agn_cfg = {
 
        } else {
                bt_cmd.flags = IWLAGN_BT_FLAG_COEX_MODE_3W <<
                                        IWLAGN_BT_FLAG_COEX_MODE_SHIFT;
+               if (priv->cfg->bt_params &&
+                   priv->cfg->bt_params->bt_sco_disable)
+                       bt_cmd.flags |= IWLAGN_BT_FLAG_SYNC_2_BT_DISABLE;
+
                if (priv->bt_ch_announce)
                        bt_cmd.flags |= IWLAGN_BT_FLAG_CHANNEL_INHIBITION;
                IWL_DEBUG_INFO(priv, "BT coex flag: 0X%x\n", bt_cmd.flags);
 
  * @agg_time_limit: maximum number of uSec in aggregation
  * @ampdu_factor: Maximum A-MPDU length factor
  * @ampdu_density: Minimum A-MPDU spacing
+ * @bt_sco_disable: uCode should not response to BT in SCO/ESCO mode
 */
 struct iwl_bt_params {
        bool advanced_bt_coexist;
        u16 agg_time_limit;
        u8 ampdu_factor;
        u8 ampdu_density;
+       bool bt_sco_disable;
 };
 /*
  * @use_rts_for_aggregation: use rts/cts protection for HT traffic
 
        else
                cmd->flags &= ~IWL_POWER_SLEEP_OVER_DTIM_MSK;
 
+       if (priv->cfg->bt_params &&
+           priv->cfg->bt_params->advanced_bt_coexist) {
+               if (!priv->cfg->bt_params->bt_sco_disable)
+                       cmd->flags |= IWL_POWER_BT_SCO_ENA;
+               else
+                       cmd->flags &= ~IWL_POWER_BT_SCO_ENA;
+       }
+
+
        slp_itrvl = le32_to_cpu(cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1]);
        if (slp_itrvl > IWL_CONN_MAX_LISTEN_INTERVAL)
                cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1] =
        if (priv->power_data.pci_pm)
                cmd->flags |= IWL_POWER_PCI_PM_MSK;
 
+       if (priv->cfg->bt_params &&
+           priv->cfg->bt_params->advanced_bt_coexist) {
+               if (!priv->cfg->bt_params->bt_sco_disable)
+                       cmd->flags |= IWL_POWER_BT_SCO_ENA;
+               else
+                       cmd->flags &= ~IWL_POWER_BT_SCO_ENA;
+       }
+
        cmd->rx_data_timeout = cpu_to_le32(1000 * dynps_ms);
        cmd->tx_data_timeout = cpu_to_le32(1000 * dynps_ms);