qcacmn: Fail PM suspend if target has sent initial wake up

Host is not handling target initial wake up properly which is
leading to resume failure. Fail PM suspend request if target
has sent initial wake up message.

Change-Id: I3797f1afa99ed9412b7ded3e1ea85c344bd0f435
CRs-Fixed: 1059543
这个提交包含在:
Rajeev Kumar
2016-08-25 14:55:14 -07:00
提交者 qcabuildsw
父节点 712e243e91
当前提交 f5e306f785
修改 2 个文件,包含 8 行新增2 行删除

查看文件

@@ -57,6 +57,7 @@ typedef struct _HTC_INIT_INFO {
void *pContext; /* context for target notifications */
void (*TargetFailure)(void *Instance, QDF_STATUS Status);
void (*TargetSendSuspendComplete)(void *ctx, bool is_nack);
void (*target_initial_wakeup_cb)(void);
} HTC_INIT_INFO;
/* Struct for HTC layer packet stats*/

查看文件

@@ -440,16 +440,21 @@ QDF_STATUS htc_rx_completion_handler(void *Context, qdf_nbuf_t netbuf,
qdf_event_set(&target->ctrl_response_valid);
break;
#ifdef CONFIG_MCL
#ifdef HTC_MSG_WAKEUP_FROM_SUSPEND_ID
case HTC_MSG_WAKEUP_FROM_SUSPEND_ID:
AR_DEBUG_PRINTF(ATH_DEBUG_ANY,
("Received initial wake up\n"));
("Received initial wake up"));
LOCK_HTC_CREDIT(target);
htc_credit_record(HTC_INITIAL_WAKE_UP,
pEndpoint->TxCredits,
HTC_PACKET_QUEUE_DEPTH(
&pEndpoint->TxQueue));
UNLOCK_HTC_CREDIT(target);
if (target->HTCInitInfo.target_initial_wakeup_cb)
target->HTCInitInfo.target_initial_wakeup_cb();
else
AR_DEBUG_PRINTF(ATH_DEBUG_ANY,
("No initial wake up cb"));
break;
#endif
case HTC_MSG_SEND_SUSPEND_COMPLETE: