Lines Matching refs:role
30 static int cdns3_role_start(struct cdns3 *cdns, enum usb_role role) in cdns3_role_start() argument
34 if (WARN_ON(role > USB_ROLE_DEVICE)) in cdns3_role_start()
38 cdns->role = role; in cdns3_role_start()
41 if (!cdns->roles[role]) in cdns3_role_start()
44 if (cdns->roles[role]->state == CDNS3_ROLE_STATE_ACTIVE) in cdns3_role_start()
48 ret = cdns->roles[role]->start(cdns); in cdns3_role_start()
50 cdns->roles[role]->state = CDNS3_ROLE_STATE_ACTIVE; in cdns3_role_start()
58 enum usb_role role = cdns->role; in cdns3_role_stop() local
60 if (WARN_ON(role > USB_ROLE_DEVICE)) in cdns3_role_stop()
63 if (cdns->roles[role]->state == CDNS3_ROLE_STATE_INACTIVE) in cdns3_role_stop()
67 cdns->roles[role]->stop(cdns); in cdns3_role_stop()
68 cdns->roles[role]->state = CDNS3_ROLE_STATE_INACTIVE; in cdns3_role_stop()
92 cdns->role = USB_ROLE_NONE; in cdns3_core_init_role()
194 enum usb_role role = USB_ROLE_NONE; in cdns3_hw_role_state_machine() local
199 role = USB_ROLE_HOST; in cdns3_hw_role_state_machine()
201 role = USB_ROLE_DEVICE; in cdns3_hw_role_state_machine()
203 return role; in cdns3_hw_role_state_machine()
215 role = cdns->role; in cdns3_hw_role_state_machine()
217 switch (role) { in cdns3_hw_role_state_machine()
224 role = USB_ROLE_HOST; in cdns3_hw_role_state_machine()
226 role = USB_ROLE_DEVICE; in cdns3_hw_role_state_machine()
230 role = USB_ROLE_NONE; in cdns3_hw_role_state_machine()
234 role = USB_ROLE_NONE; in cdns3_hw_role_state_machine()
238 dev_dbg(cdns->dev, "role %d -> %d\n", cdns->role, role); in cdns3_hw_role_state_machine()
240 return role; in cdns3_hw_role_state_machine()
289 current_role = cdns->role; in cdns3_hw_role_switch()
326 return cdns->role; in cdns3_role_get()
338 static int cdns3_role_set(struct usb_role_switch *sw, enum usb_role role) in cdns3_role_set() argument
345 if (cdns->role == role) in cdns3_role_set()
349 switch (role) { in cdns3_role_set()
359 switch (role) { in cdns3_role_set()
369 ret = cdns3_role_start(cdns, role); in cdns3_role_set()
371 dev_err(cdns->dev, "set role %d has failed\n", role); in cdns3_role_set()
413 if ((cdns->role == USB_ROLE_HOST) && cdns->host_dev) in cdns3_wakeup_irq()
674 if (cdns->roles[cdns->role]->resume && !PMSG_IS_AUTO(msg)) in cdns3_controller_resume()
675 cdns->roles[cdns->role]->resume(cdns, false); in cdns3_controller_resume()
707 if (cdns->roles[cdns->role]->suspend) { in cdns3_suspend()
709 cdns->roles[cdns->role]->suspend(cdns, false); in cdns3_suspend()