CI_ROLE_HOST
if (role == CI_ROLE_HOST)
if (ci->role == CI_ROLE_HOST)
return CI_ROLE_HOST;
return ci->is_otg && ci->roles[CI_ROLE_HOST] &&
if (!(ci->roles[CI_ROLE_HOST] && ci->roles[CI_ROLE_GADGET])) {
for (role = CI_ROLE_HOST; role < CI_ROLE_END; role++)
if (!ci->roles[CI_ROLE_HOST] && !ci->roles[CI_ROLE_GADGET]) {
if (ci->roles[CI_ROLE_HOST] && ci->roles[CI_ROLE_GADGET]) {
role = ci->roles[CI_ROLE_HOST] ? CI_ROLE_HOST
if (ci->roles[CI_ROLE_HOST] && ci->roles[CI_ROLE_GADGET])
else if (ci->roles[CI_ROLE_HOST])
if (ci->role == CI_ROLE_HOST && ci->hcd)
ci->roles[CI_ROLE_HOST] = rdrv;
: CI_ROLE_HOST;
ci_role_start(ci, CI_ROLE_HOST);
if (ci_otg_is_fsm_mode(ci) || ci->role == CI_ROLE_HOST)