mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
phy: sun4i-usb: replace use of system_wq with system_percpu_wq
Currently if a user enqueues a work item using schedule_delayed_work() the used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to schedule_work() that is using system_wq and queue_work(), that makes use again of WORK_CPU_UNBOUND. This lack of consistency cannot be addressed without refactoring the API. This patch continues the effort to refactor worqueue APIs, which has begun with the change introducing new workqueues and a new alloc_workqueue flag: commit128ea9f6cc("workqueue: Add system_percpu_wq and system_dfl_wq") commit930c2ea566("workqueue: Add new WQ_PERCPU flag") Replace system_wq with system_percpu_wq, keeping the same behavior. The old wq (system_wq) will be kept for a few release cycles. Suggested-by: Tejun Heo <tj@kernel.org> Signed-off-by: Marco Crivellari <marco.crivellari@suse.com> Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com> Link: https://patch.msgid.link/20251105152023.259813-1-marco.crivellari@suse.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
add66a6673
commit
877686f9f4
1 changed files with 7 additions and 7 deletions
|
|
@ -359,7 +359,7 @@ static int sun4i_usb_phy_init(struct phy *_phy)
|
|||
/* Force ISCR and cable state updates */
|
||||
data->id_det = -1;
|
||||
data->vbus_det = -1;
|
||||
queue_delayed_work(system_wq, &data->detect, 0);
|
||||
queue_delayed_work(system_percpu_wq, &data->detect, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
@ -482,7 +482,7 @@ static int sun4i_usb_phy_power_on(struct phy *_phy)
|
|||
|
||||
/* We must report Vbus high within OTG_TIME_A_WAIT_VRISE msec. */
|
||||
if (phy->index == 0 && sun4i_usb_phy0_poll(data))
|
||||
mod_delayed_work(system_wq, &data->detect, DEBOUNCE_TIME);
|
||||
mod_delayed_work(system_percpu_wq, &data->detect, DEBOUNCE_TIME);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -503,7 +503,7 @@ static int sun4i_usb_phy_power_off(struct phy *_phy)
|
|||
* Vbus gpio to not trigger an edge irq on Vbus off, so force a rescan.
|
||||
*/
|
||||
if (phy->index == 0 && !sun4i_usb_phy0_poll(data))
|
||||
mod_delayed_work(system_wq, &data->detect, POLL_TIME);
|
||||
mod_delayed_work(system_percpu_wq, &data->detect, POLL_TIME);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -542,7 +542,7 @@ static int sun4i_usb_phy_set_mode(struct phy *_phy,
|
|||
|
||||
data->id_det = -1; /* Force reprocessing of id */
|
||||
data->force_session_end = true;
|
||||
queue_delayed_work(system_wq, &data->detect, 0);
|
||||
queue_delayed_work(system_percpu_wq, &data->detect, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -654,7 +654,7 @@ static void sun4i_usb_phy0_id_vbus_det_scan(struct work_struct *work)
|
|||
extcon_set_state_sync(data->extcon, EXTCON_USB, vbus_det);
|
||||
|
||||
if (sun4i_usb_phy0_poll(data))
|
||||
queue_delayed_work(system_wq, &data->detect, POLL_TIME);
|
||||
queue_delayed_work(system_percpu_wq, &data->detect, POLL_TIME);
|
||||
}
|
||||
|
||||
static irqreturn_t sun4i_usb_phy0_id_vbus_det_irq(int irq, void *dev_id)
|
||||
|
|
@ -662,7 +662,7 @@ static irqreturn_t sun4i_usb_phy0_id_vbus_det_irq(int irq, void *dev_id)
|
|||
struct sun4i_usb_phy_data *data = dev_id;
|
||||
|
||||
/* vbus or id changed, let the pins settle and then scan them */
|
||||
mod_delayed_work(system_wq, &data->detect, DEBOUNCE_TIME);
|
||||
mod_delayed_work(system_percpu_wq, &data->detect, DEBOUNCE_TIME);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
|
@ -676,7 +676,7 @@ static int sun4i_usb_phy0_vbus_notify(struct notifier_block *nb,
|
|||
|
||||
/* Properties on the vbus_power_supply changed, scan vbus_det */
|
||||
if (val == PSY_EVENT_PROP_CHANGED && psy == data->vbus_power_supply)
|
||||
mod_delayed_work(system_wq, &data->detect, DEBOUNCE_TIME);
|
||||
mod_delayed_work(system_percpu_wq, &data->detect, DEBOUNCE_TIME);
|
||||
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue