switch_value = es_d300_switch[id].value;
cmd = es_d300_switch[id].value_cmd[switch_value];
+ cmd = cmd | (1 << ES_SC_BIT);
/*
* The delay is required to make sure the route is active.
!escore->dhwpt_mode &&
escore->dhwpt_cmd) {
+ usleep_range(2000, 2005);
u32 cmd = escore->dhwpt_cmd & 0xFFFF0000;
ret = escore_cmd(escore, cmd, &resp);
if (ret) {
/* Require 1ms delay between stop route
and DHWPT to avoid noise */
- usleep_range(5000, 5005);
+ usleep_range(2000, 2005);
}
return ret;
}
+ usleep_range(2000, 2005);
ret = escore_cmd(escore, cmd, &resp);
if (ret) {
pr_err("%s: Disabling DHWPT failed = %d\n",
__func__, ret);
return ret;
}
+ usleep_range(2000, 2005);
+
} else {
pr_debug("%s(): %s\n",
"DHWPT capture is on.Skip disabling DHWPT",
/* For BAS-3205, in case of PT_VP route and PCM0 port and 16bits,
* set channel number to 0 for PassIN1 and 2 for PassIN2 */
if (PCM0 == port && PASSTHRU_VP == algo_type &&
- (SNDRV_PCM_FORMAT_S32_LE == escore->pcm_format ||
- SNDRV_PCM_FORMAT_S32_BE == escore->pcm_format)) {
+ (SNDRV_PCM_FORMAT_S16_LE == escore->pcm_format ||
+ SNDRV_PCM_FORMAT_S16_BE == escore->pcm_format)) {
if (ES_PASSIN1_MUX == reg)
channel_ids[algo_type][port].rx_chan_id = 0;
escore->pcm_format = params_format(params);
/* ######## HACK : Set PCM format as 32bit ####### */
- escore->pcm_format = SNDRV_PCM_FORMAT_S32_LE;
+ if (escore->algo_type == DHWPT || escore->dhwpt_enabled)
+ escore->pcm_format = SNDRV_PCM_FORMAT_S32_LE;
switch (escore->pcm_format) {
case SNDRV_PCM_FORMAT_A_LAW:
/* BAS-3205, if frame size is 64 bits and word length is 16 bits, set
* TDM Timeslots Per Frame of PortA to 3 */
if (escore->algo_type != DHWPT && !escore->dhwpt_enabled) {
- if (64 == (bps + 1)*channels && 0x1F == bps) {
+ if (32 == (bps + 1)*channels && 0xF == bps) {
api_access =
&escore->api_access[ES_PORT_TDM_SLOTS_PER_FRAME];
api_access->write_msg[0] |=