dsp: update EC reference port only if channels are configured

ADM open is failed due to payload size not getting updated
with ec reference size. Update EC reference port only if
EC reference channels are configured.

Change-Id: Ic2dd6a3cf805c1ea40d71d0b62b6e867167d169e
Signed-off-by: Surendar Karka <skarka@codeaurora.org>
diff --git a/dsp/q6adm.c b/dsp/q6adm.c
index d0b9417..a01429b 100644
--- a/dsp/q6adm.c
+++ b/dsp/q6adm.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
  */
 #include <linux/module.h>
 #include <linux/slab.h>
@@ -2943,9 +2943,18 @@
 			open_v8.endpoint_id_2 = 0xFFFF;
 			open_v8.endpoint_id_3 = 0xFFFF;
 
-			if (this_adm.ec_ref_rx && (path != ADM_PATH_PLAYBACK)) {
-				open_v8.endpoint_id_2 = this_adm.ec_ref_rx;
-				this_adm.ec_ref_rx = -1;
+			if ((this_adm.ec_ref_rx != -1) &&
+			    (path != ADM_PATH_PLAYBACK)) {
+				if (this_adm.num_ec_ref_rx_chans != 0) {
+					open_v8.endpoint_id_2 =
+						this_adm.ec_ref_rx;
+					this_adm.ec_ref_rx = -1;
+				} else {
+					pr_err("%s: EC channels not set %d\n",
+						__func__,
+						this_adm.num_ec_ref_rx_chans);
+					return -EINVAL;
+				}
 			}
 
 			open_v8.topology_id = topology;