Fix btwrite timer timeout for Angler (1/2)

1. For vnd_angler.txt:
Set PROC_BTWRITE_TIMER_TIMEOUT_MS to 0
to avoid upio start and stop timer when LMP
is enabled and BT_WAKE is asserted and
de-asserted. This time is useless and would
set btwrite to 0 by mistake even when host
is sending data to UART, and this would
de-assert BT_WAKE by mistake.

2. For hardware.c:
For chipset 4358 we need to set LPM_HC_IDLE_THRESHOLD
to 24, so we need to reduce the multiplier
to make timeout_ms a reasonable value. Without
modification, the timeout_ms would be 36000ms
which is too large.

3. For upio.c:
Need to set lmp_proc_cb.btwrite_active even though
PROC_BTWRITE_TIMER_TIMEOUT_MS is set to 0.
Otherwise, btwrite would be written very frequently.

Bug: 23248798
Change-Id: Ie55c346785679e51a771d5e46270c0858e6082ee
diff --git a/include/vnd_angler.txt b/include/vnd_angler.txt
index 103b656..8d7b271 100755
--- a/include/vnd_angler.txt
+++ b/include/vnd_angler.txt
@@ -2,7 +2,7 @@
 FW_PATCHFILE_LOCATION = "/vendor/firmware/"
 BT_WAKE_VIA_PROC = TRUE
 BT_WAKE_VIA_PROC_NOTIFY_DEASSERT=TRUE
-PROC_BTWRITE_TIMER_TIMEOUT_MS = 4000
+PROC_BTWRITE_TIMER_TIMEOUT_MS = 0
 UART_TARGET_BAUD_RATE = 3000000
 LPM_IDLE_TIMEOUT_MULTIPLE = 5
 LPM_HC_IDLE_THRESHOLD = 24
diff --git a/src/hardware.c b/src/hardware.c
index 02103ca..10bf22b 100755
--- a/src/hardware.c
+++ b/src/hardware.c
@@ -1211,9 +1211,10 @@
      */
     timeout_ms = (uint32_t)lpm_param.host_stack_idle_threshold \
                             * LPM_IDLE_TIMEOUT_MULTIPLE;
-
     if (strstr(hw_cfg_cb.local_chip_name, "BCM4325") != NULL)
         timeout_ms *= 25; // 12.5 or 25 ?
+    else if (strstr(hw_cfg_cb.local_chip_name, "BCM4358") != NULL)
+        timeout_ms *= 50;
     else
         timeout_ms *= 300;
 
diff --git a/src/upio.c b/src/upio.c
index 3f73482..43dc5b5 100644
--- a/src/upio.c
+++ b/src/upio.c
@@ -499,13 +499,16 @@
                 ALOGE("upio_set : write(%s) failed: %s (%d)",
                         VENDOR_BTWRITE_PROC_NODE, strerror(errno),errno);
             }
-#if (PROC_BTWRITE_TIMER_TIMEOUT_MS != 0)
             else
             {
+#if (BT_WAKE_VIA_PROC == TRUE)
+                lpm_proc_cb.btwrite_active = TRUE;
+#endif
+#if (PROC_BTWRITE_TIMER_TIMEOUT_MS != 0)
                 /* arm user space timer based on action */
                 upio_start_stop_timer(action);
-            }
 #endif
+            }
 
             UPIODBG("%s: proc btwrite assertion, buffer: %c, timer_armed %d %d",
                     __FUNCTION__, buffer, lpm_proc_cb.btwrite_active, lpm_proc_cb.timer_created);