Merge "mhi: core: Use high priority workqueue for all MHI work"

This commit is contained in:
qctecmdr 2020-07-14 02:04:23 -07:00 • committed by Gerrit - the friendly Code Review server
commit 18f67937ca
4 changed files with 8 additions and 9 deletions

View file

@ -1579,9 +1579,9 @@ int of_register_mhi_controller(struct mhi_controller *mhi_cntrl)
INIT_WORK(&mhi_cntrl->st_worker, mhi_pm_st_worker);
init_waitqueue_head(&mhi_cntrl->state_event);
mhi_cntrl->special_wq = alloc_ordered_workqueue("mhi_special_w",
mhi_cntrl->wq = alloc_ordered_workqueue("mhi_w",
WQ_MEM_RECLAIM | WQ_HIGHPRI);
if (!mhi_cntrl->special_wq)
if (!mhi_cntrl->wq)
goto error_alloc_cmd;
INIT_WORK(&mhi_cntrl->special_work, mhi_special_purpose_work);
@ -1707,7 +1707,7 @@ error_add_dev:
error_alloc_dev:
kfree(mhi_cntrl->mhi_cmd);
destroy_workqueue(mhi_cntrl->special_wq);
destroy_workqueue(mhi_cntrl->wq);
error_alloc_cmd:
vfree(mhi_cntrl->mhi_chan);

View file

@ -1706,7 +1706,7 @@ irqreturn_t mhi_intvec_handlr(int irq_number, void *dev)
MHI_VERB("Exit\n");
if (MHI_IN_MISSION_MODE(mhi_cntrl->ee))
queue_work(mhi_cntrl->special_wq, &mhi_cntrl->special_work);
queue_work(mhi_cntrl->wq, &mhi_cntrl->special_work);
return IRQ_WAKE_THREAD;
}

View file

@ -788,7 +788,7 @@ static int mhi_queue_disable_transition(
list_add_tail(&item->node, &mhi_cntrl->transition_list);
spin_unlock_irqrestore(&mhi_cntrl->transition_lock, flags);
schedule_work(&mhi_cntrl->st_worker);
queue_work(mhi_cntrl->wq, &mhi_cntrl->st_worker);
return 0;
}
@ -808,7 +808,7 @@ int mhi_queue_state_transition(struct mhi_controller *mhi_cntrl,
list_add_tail(&item->node, &mhi_cntrl->transition_list);
spin_unlock_irqrestore(&mhi_cntrl->transition_lock, flags);
schedule_work(&mhi_cntrl->st_worker);
queue_work(mhi_cntrl->wq, &mhi_cntrl->st_worker);
return 0;
}
@ -824,8 +824,7 @@ static void mhi_special_events_pending(struct mhi_controller *mhi_cntrl)
spin_lock_bh(&mhi_event->lock);
if (ev_ring->rp != mhi_to_virtual(ev_ring, er_ctxt->rp)) {
queue_work(mhi_cntrl->special_wq,
&mhi_cntrl->special_work);
queue_work(mhi_cntrl->wq, &mhi_cntrl->special_work);
spin_unlock_bh(&mhi_event->lock);
break;
}

View file

@ -357,7 +357,7 @@ struct mhi_controller {
/* worker for different state transitions */
struct work_struct st_worker;
struct work_struct special_work;
struct workqueue_struct *special_wq;
struct workqueue_struct *wq;
wait_queue_head_t state_event;