diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-09-05 13:45:24 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-09-05 13:45:23 -0700 |
| commit | e91bfdb17610ab3e8ae912a2844ba9e5be2afe87 (patch) | |
| tree | 80fe28579299744fc2528292e558e9cf37d10b54 /drivers/soc/qcom | |
| parent | a9457cb5d5a6a8b2a83f66feaca9bb9f7c21a33b (diff) | |
| parent | 4b6bee8a8a377c0dfed61a0e2345d3ed85307b02 (diff) | |
Merge "soc: qcom: ipc_router_glink_xprt: Add wakeup source in RX path"
Diffstat (limited to 'drivers/soc/qcom')
| -rw-r--r-- | drivers/soc/qcom/ipc_router_glink_xprt.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/soc/qcom/ipc_router_glink_xprt.c b/drivers/soc/qcom/ipc_router_glink_xprt.c index 7dd1683881fb..0c588c586306 100644 --- a/drivers/soc/qcom/ipc_router_glink_xprt.c +++ b/drivers/soc/qcom/ipc_router_glink_xprt.c @@ -82,6 +82,7 @@ struct ipc_router_glink_xprt { struct msm_ipc_router_xprt xprt; void *ch_hndl; struct workqueue_struct *xprt_wq; + struct wakeup_source notify_rxv_ws; struct rw_semaphore ss_reset_rwlock; int ss_reset; void *pil; @@ -377,6 +378,7 @@ out_read_data: glink_rx_done(glink_xprtp->ch_hndl, rx_work->iovec, reuse_intent); kfree(rx_work); up_read(&glink_xprtp->ss_reset_rwlock); + __pm_relax(&glink_xprtp->notify_rxv_ws); } static void glink_xprt_open_event(struct work_struct *work) @@ -491,6 +493,8 @@ static void glink_xprt_notify_rxv(void *handle, const void *priv, rx_work->iovec_size = size; rx_work->vbuf_provider = vbuf_provider; rx_work->pbuf_provider = pbuf_provider; + if (!glink_xprtp->dynamic_wakeup_source) + __pm_stay_awake(&glink_xprtp->notify_rxv_ws); INIT_WORK(&rx_work->work, glink_xprt_read_data); queue_work(glink_xprtp->xprt_wq, &rx_work->work); } @@ -760,6 +764,7 @@ static int ipc_router_glink_config_init( return -EFAULT; } + wakeup_source_init(&glink_xprtp->notify_rxv_ws, xprt_wq_name); mutex_lock(&glink_xprt_list_lock_lha1); list_add(&glink_xprtp->list, &glink_xprt_list); mutex_unlock(&glink_xprt_list_lock_lha1); |
