From cdc9324b1e85e2a98d54a9693f27dd8046049e97 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Thu, 17 Aug 2017 13:04:41 -0700 Subject: [PATCH] hifi-dsp: Remove wakelock.h dependencies Change-Id: I4ac7b97903546316b9fc3d1b336c9828285ea9db Signed-off-by: Dmitry Shmidt --- drivers/hisi/hifi_dsp/hifi_lpp.c | 24 ++++++++----------- .../mailbox/drv_mailbox_port_linux.c | 11 ++++----- .../hisi/mailbox/hisi_mailbox/hisi_mailbox.c | 1 - 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/drivers/hisi/hifi_dsp/hifi_lpp.c b/drivers/hisi/hifi_dsp/hifi_lpp.c index c9d89649f608..7ca25a876964 100644 --- a/drivers/hisi/hifi_dsp/hifi_lpp.c +++ b/drivers/hisi/hifi_dsp/hifi_lpp.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -91,8 +90,8 @@ struct hifi_misc_priv { int pcm_read_wait_flag; unsigned int sn; - struct wake_lock hifi_misc_wakelock; - struct wake_lock update_buff_wakelock; + struct wakeup_source hifi_misc_wakesrc; + struct wakeup_source update_buff_wakesrc; unsigned char *hifi_priv_base_virt; unsigned char *hifi_priv_base_phy; @@ -350,7 +349,7 @@ static void hifi_misc_mesg_process(void *cmd) list_add_tail(&dp_clk_cmd->dp_clk_node, &(s_misc_data.multi_mic_ctrl.cmd_queue)); spin_unlock_bh(&(s_misc_data.multi_mic_ctrl.cmd_lock)); - wake_lock_timeout(&s_misc_data.hifi_misc_wakelock, HZ / 2); + __pm_wakeup_event(&s_misc_data.hifi_misc_wakesrc, 500); if (queue_work(s_misc_data.multi_mic_ctrl.reset_audio_dp_clk_wq, &s_misc_data.multi_mic_ctrl. reset_audio_dp_clk_work)) @@ -438,8 +437,7 @@ static void hifi_misc_handle_mail(void *usr_para, void *mail_handle, && (ACPU_TO_HIFI_ASYNC_CMD == cmd_para->sn)) { if (ID_AUDIO_AP_PLAY_DONE_IND == *((unsigned short *)recmsg)) { /* only mesg ID_AUDIO_AP_PLAY_DONE_IND lock 5s */ - wake_lock_timeout(&s_misc_data.update_buff_wakelock, - 5 * HZ); + __pm_wakeup_event(&s_misc_data.update_buff_wakesrc, 5000); spin_lock_bh(&s_misc_data.recv_proc_lock); list_add_tail(&recv->recv_node, @@ -641,7 +639,7 @@ static int hifi_dsp_async_cmd(unsigned long arg) } if (ID_AP_AUDIO_PLAY_UPDATE_BUF_CMD == *(unsigned short *)para_krn_in) { - wake_unlock(&s_misc_data.update_buff_wakelock); + __pm_relax(&s_misc_data.update_buff_wakesrc); } END: @@ -804,7 +802,7 @@ static int hifi_dsp_wakeup_read_thread(unsigned long arg) } memset(recv, 0, sizeof(struct recv_request)); - wake_lock_timeout(&s_misc_data.hifi_misc_wakelock, HZ); + __pm_wakeup_event(&s_misc_data.hifi_misc_wakesrc, 1000); recv->rev_msg.mail_buff_len = sizeof(struct misc_recmsg_param) + SIZE_CMD_ID; @@ -1580,10 +1578,8 @@ static int hifi_misc_probe(struct platform_device *pdev) s_misc_data.sn = 0; - wake_lock_init(&s_misc_data.hifi_misc_wakelock, WAKE_LOCK_SUSPEND, - "hifi_wakelock"); - wake_lock_init(&s_misc_data.update_buff_wakelock, WAKE_LOCK_SUSPEND, - "update_buff_wakelock"); + wakeup_source_init(&s_misc_data.hifi_misc_wakesrc, "hifi_wakelock"); + wakeup_source_init(&s_misc_data.update_buff_wakesrc, "update_buff_wakelock"); ret = DRV_IPCIntInit(); if (OK != ret) { @@ -1670,8 +1666,8 @@ static int hifi_misc_remove(struct platform_device *pdev) (void)misc_deregister(&hifi_misc_device); /* wake lock destroy */ - wake_lock_destroy(&s_misc_data.hifi_misc_wakelock); - wake_lock_destroy(&s_misc_data.update_buff_wakelock); + wakeup_source_trash(&s_misc_data.hifi_misc_wakesrc); + wakeup_source_trash(&s_misc_data.update_buff_wakesrc); OUT_FUNCTION; return OK; diff --git a/drivers/hisi/hifi_mailbox/mailbox/drv_mailbox_port_linux.c b/drivers/hisi/hifi_mailbox/mailbox/drv_mailbox_port_linux.c index bc76da7d1a4f..3f92b337ef33 100644 --- a/drivers/hisi/hifi_mailbox/mailbox/drv_mailbox_port_linux.c +++ b/drivers/hisi/hifi_mailbox/mailbox/drv_mailbox_port_linux.c @@ -11,9 +11,9 @@ #include #include #include -#include #include #include +#include #include "drv_mailbox_cfg.h" #include "drv_mailbox_debug.h" @@ -80,7 +80,7 @@ struct mb_mutex { unsigned int type; }; -static struct wake_lock mb_lpwr_lock; +static struct wakeup_source mb_lpwr_lock; MAILBOX_LOCAL struct mb_local_proc g_mailbox_local_proc_tbl[] = { {"mailboxNormal", MAILBOX_RECV_TASK_NORMAL, 86, 0,}, @@ -145,7 +145,7 @@ MAILBOX_LOCAL void mailbox_receive_process(unsigned long data) } work = work->next; } - wake_unlock(&mb_lpwr_lock); + __pm_relax(&mb_lpwr_lock); } MAILBOX_LOCAL int mailbox_receive_task(void *data) @@ -177,8 +177,7 @@ MAILBOX_EXTERN int mailbox_init_platform(void) unsigned int proc_id; struct task_struct *task = MAILBOX_NULL; - wake_lock_init(&mb_lpwr_lock, WAKE_LOCK_SUSPEND, - "mailbox_low_power_wake_lock"); + wakeup_source_init(&mb_lpwr_lock, "mailbox_low_power_wake_lock"); while (count) { proc_id = local_proc->proc_id; @@ -224,7 +223,7 @@ MAILBOX_LOCAL int mailbox_ipc_process(struct mb_local_work *local_work, local_work->data_flag = MAILBOX_TRUE; mailbox_record_sche_send(local_work->mb_priv); - wake_lock(&mb_lpwr_lock); + __pm_stay_awake(&mb_lpwr_lock); if ((proc_id > MAILBOX_RECV_TASK_START) && (proc_id < MAILBOX_RECV_TASK_END)) { diff --git a/drivers/hisi/mailbox/hisi_mailbox/hisi_mailbox.c b/drivers/hisi/mailbox/hisi_mailbox/hisi_mailbox.c index 42e49903dda2..dfac019d8bc2 100644 --- a/drivers/hisi/mailbox/hisi_mailbox/hisi_mailbox.c +++ b/drivers/hisi/mailbox/hisi_mailbox/hisi_mailbox.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include