Lines Matching refs:tpg
450 luns = atomic_read(&fu->tpg->tpg_port_count); in usbg_bot_setup()
1053 struct usbg_tpg *tpg; in usbg_cmd_work() local
1057 tpg = cmd->fu->tpg; in usbg_cmd_work()
1058 tv_nexus = tpg->tpg_nexus; in usbg_cmd_work()
1086 struct usbg_tpg *tpg; in usbg_submit_command() local
1107 tpg = fu->tpg; in usbg_submit_command()
1126 tv_nexus = tpg->tpg_nexus; in usbg_submit_command()
1154 ret = queue_work(tpg->workqueue, &cmd->work); in usbg_submit_command()
1169 struct usbg_tpg *tpg; in bot_cmd_work() local
1173 tpg = cmd->fu->tpg; in bot_cmd_work()
1174 tv_nexus = tpg->tpg_nexus; in bot_cmd_work()
1202 struct usbg_tpg *tpg; in bot_submit_command() local
1231 tpg = fu->tpg; in bot_submit_command()
1237 tv_nexus = tpg->tpg_nexus; in bot_submit_command()
1250 ret = queue_work(tpg->workqueue, &cmd->work); in bot_submit_command()
1279 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_get_fabric_proto_ident() local
1281 struct usbg_tport *tport = tpg->tport; in usbg_get_fabric_proto_ident()
1296 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_get_fabric_wwn() local
1298 struct usbg_tport *tport = tpg->tport; in usbg_get_fabric_wwn()
1305 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_get_tag() local
1307 return tpg->tport_tpgt; in usbg_get_tag()
1322 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_get_pr_transport_id() local
1324 struct usbg_tport *tport = tpg->tport; in usbg_get_pr_transport_id()
1344 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_get_pr_transport_id_len() local
1346 struct usbg_tport *tport = tpg->tport; in usbg_get_pr_transport_id_len()
1366 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_parse_pr_out_transport_id() local
1368 struct usbg_tport *tport = tpg->tport; in usbg_parse_pr_out_transport_id()
1547 struct usbg_tpg *tpg; in usbg_make_tpg() local
1561 tpg = kzalloc(sizeof(struct usbg_tpg), GFP_KERNEL); in usbg_make_tpg()
1562 if (!tpg) in usbg_make_tpg()
1564 mutex_init(&tpg->tpg_mutex); in usbg_make_tpg()
1565 atomic_set(&tpg->tpg_port_count, 0); in usbg_make_tpg()
1566 tpg->workqueue = alloc_workqueue("tcm_usb_gadget", 0, 1); in usbg_make_tpg()
1567 if (!tpg->workqueue) { in usbg_make_tpg()
1568 kfree(tpg); in usbg_make_tpg()
1572 tpg->tport = tport; in usbg_make_tpg()
1573 tpg->tport_tpgt = tpgt; in usbg_make_tpg()
1575 ret = core_tpg_register(&usbg_ops, wwn, &tpg->se_tpg, tpg, in usbg_make_tpg()
1578 destroy_workqueue(tpg->workqueue); in usbg_make_tpg()
1579 kfree(tpg); in usbg_make_tpg()
1582 the_only_tpg_I_currently_have = tpg; in usbg_make_tpg()
1583 return &tpg->se_tpg; in usbg_make_tpg()
1588 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_drop_tpg() local
1592 destroy_workqueue(tpg->workqueue); in usbg_drop_tpg()
1593 kfree(tpg); in usbg_drop_tpg()
1645 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_show_enable() local
1647 return snprintf(page, PAGE_SIZE, "%u\n", tpg->gadget_connect); in tcm_usbg_tpg_show_enable()
1658 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_store_enable() local
1668 if (op && tpg->gadget_connect) in tcm_usbg_tpg_store_enable()
1670 if (!op && !tpg->gadget_connect) in tcm_usbg_tpg_store_enable()
1674 ret = usbg_attach(tpg); in tcm_usbg_tpg_store_enable()
1678 usbg_detach(tpg); in tcm_usbg_tpg_store_enable()
1680 tpg->gadget_connect = op; in tcm_usbg_tpg_store_enable()
1690 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_show_nexus() local
1694 mutex_lock(&tpg->tpg_mutex); in tcm_usbg_tpg_show_nexus()
1695 tv_nexus = tpg->tpg_nexus; in tcm_usbg_tpg_show_nexus()
1703 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_tpg_show_nexus()
1707 static int tcm_usbg_make_nexus(struct usbg_tpg *tpg, char *name) in tcm_usbg_make_nexus() argument
1713 mutex_lock(&tpg->tpg_mutex); in tcm_usbg_make_nexus()
1714 if (tpg->tpg_nexus) { in tcm_usbg_make_nexus()
1719 se_tpg = &tpg->se_tpg; in tcm_usbg_make_nexus()
1746 tpg->tpg_nexus = tv_nexus; in tcm_usbg_make_nexus()
1747 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_make_nexus()
1755 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_make_nexus()
1759 static int tcm_usbg_drop_nexus(struct usbg_tpg *tpg) in tcm_usbg_drop_nexus() argument
1765 mutex_lock(&tpg->tpg_mutex); in tcm_usbg_drop_nexus()
1766 tv_nexus = tpg->tpg_nexus; in tcm_usbg_drop_nexus()
1774 if (atomic_read(&tpg->tpg_port_count)) { in tcm_usbg_drop_nexus()
1778 atomic_read(&tpg->tpg_port_count)); in tcm_usbg_drop_nexus()
1788 tpg->tpg_nexus = NULL; in tcm_usbg_drop_nexus()
1793 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_drop_nexus()
1802 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_store_nexus() local
1807 ret = tcm_usbg_drop_nexus(tpg); in tcm_usbg_tpg_store_nexus()
1826 ret = tcm_usbg_make_nexus(tpg, &i_port[4]); in tcm_usbg_tpg_store_nexus()
1841 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in usbg_port_link() local
1843 atomic_inc(&tpg->tpg_port_count); in usbg_port_link()
1851 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in usbg_port_unlink() local
1853 atomic_dec(&tpg->tpg_port_count); in usbg_port_unlink()
2361 fu->tpg = the_only_tpg_I_currently_have; in usbg_cfg_bind()
2409 static int usbg_attach(struct usbg_tpg *tpg) in usbg_attach() argument
2414 static void usbg_detach(struct usbg_tpg *tpg) in usbg_detach() argument