Lines Matching refs:tpg

444 		luns = atomic_read(&fu->tpg->tpg_port_count);  in usbg_bot_setup()
1047 struct usbg_tpg *tpg; in usbg_cmd_work() local
1051 tpg = cmd->fu->tpg; in usbg_cmd_work()
1052 tv_nexus = tpg->tpg_nexus; in usbg_cmd_work()
1080 struct usbg_tpg *tpg; in usbg_submit_command() local
1101 tpg = fu->tpg; in usbg_submit_command()
1121 tv_nexus = tpg->tpg_nexus; in usbg_submit_command()
1149 ret = queue_work(tpg->workqueue, &cmd->work); in usbg_submit_command()
1164 struct usbg_tpg *tpg; in bot_cmd_work() local
1168 tpg = cmd->fu->tpg; in bot_cmd_work()
1169 tv_nexus = tpg->tpg_nexus; in bot_cmd_work()
1197 struct usbg_tpg *tpg; in bot_submit_command() local
1226 tpg = fu->tpg; in bot_submit_command()
1232 tv_nexus = tpg->tpg_nexus; in bot_submit_command()
1246 ret = queue_work(tpg->workqueue, &cmd->work); in bot_submit_command()
1275 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_get_fabric_wwn() local
1277 struct usbg_tport *tport = tpg->tport; in usbg_get_fabric_wwn()
1284 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_get_tag() local
1286 return tpg->tport_tpgt; in usbg_get_tag()
1384 struct usbg_tpg *tpg; in usbg_make_tpg() local
1398 tpg = kzalloc(sizeof(struct usbg_tpg), GFP_KERNEL); in usbg_make_tpg()
1399 if (!tpg) in usbg_make_tpg()
1401 mutex_init(&tpg->tpg_mutex); in usbg_make_tpg()
1402 atomic_set(&tpg->tpg_port_count, 0); in usbg_make_tpg()
1403 tpg->workqueue = alloc_workqueue("tcm_usb_gadget", 0, 1); in usbg_make_tpg()
1404 if (!tpg->workqueue) { in usbg_make_tpg()
1405 kfree(tpg); in usbg_make_tpg()
1409 tpg->tport = tport; in usbg_make_tpg()
1410 tpg->tport_tpgt = tpgt; in usbg_make_tpg()
1416 ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_SAS); in usbg_make_tpg()
1418 destroy_workqueue(tpg->workqueue); in usbg_make_tpg()
1419 kfree(tpg); in usbg_make_tpg()
1422 the_only_tpg_I_currently_have = tpg; in usbg_make_tpg()
1423 return &tpg->se_tpg; in usbg_make_tpg()
1428 struct usbg_tpg *tpg = container_of(se_tpg, in usbg_drop_tpg() local
1432 destroy_workqueue(tpg->workqueue); in usbg_drop_tpg()
1433 kfree(tpg); in usbg_drop_tpg()
1483 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_enable_show() local
1485 return snprintf(page, PAGE_SIZE, "%u\n", tpg->gadget_connect); in tcm_usbg_tpg_enable_show()
1495 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_enable_store() local
1505 if (op && tpg->gadget_connect) in tcm_usbg_tpg_enable_store()
1507 if (!op && !tpg->gadget_connect) in tcm_usbg_tpg_enable_store()
1511 ret = usbg_attach(tpg); in tcm_usbg_tpg_enable_store()
1515 usbg_detach(tpg); in tcm_usbg_tpg_enable_store()
1517 tpg->gadget_connect = op; in tcm_usbg_tpg_enable_store()
1525 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_nexus_show() local
1529 mutex_lock(&tpg->tpg_mutex); in tcm_usbg_tpg_nexus_show()
1530 tv_nexus = tpg->tpg_nexus; in tcm_usbg_tpg_nexus_show()
1538 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_tpg_nexus_show()
1542 static int tcm_usbg_make_nexus(struct usbg_tpg *tpg, char *name) in tcm_usbg_make_nexus() argument
1548 mutex_lock(&tpg->tpg_mutex); in tcm_usbg_make_nexus()
1549 if (tpg->tpg_nexus) { in tcm_usbg_make_nexus()
1554 se_tpg = &tpg->se_tpg; in tcm_usbg_make_nexus()
1581 tpg->tpg_nexus = tv_nexus; in tcm_usbg_make_nexus()
1582 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_make_nexus()
1590 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_make_nexus()
1594 static int tcm_usbg_drop_nexus(struct usbg_tpg *tpg) in tcm_usbg_drop_nexus() argument
1600 mutex_lock(&tpg->tpg_mutex); in tcm_usbg_drop_nexus()
1601 tv_nexus = tpg->tpg_nexus; in tcm_usbg_drop_nexus()
1609 if (atomic_read(&tpg->tpg_port_count)) { in tcm_usbg_drop_nexus()
1613 atomic_read(&tpg->tpg_port_count)); in tcm_usbg_drop_nexus()
1623 tpg->tpg_nexus = NULL; in tcm_usbg_drop_nexus()
1628 mutex_unlock(&tpg->tpg_mutex); in tcm_usbg_drop_nexus()
1636 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in tcm_usbg_tpg_nexus_store() local
1641 ret = tcm_usbg_drop_nexus(tpg); in tcm_usbg_tpg_nexus_store()
1660 ret = tcm_usbg_make_nexus(tpg, &i_port[4]); in tcm_usbg_tpg_nexus_store()
1677 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in usbg_port_link() local
1679 atomic_inc(&tpg->tpg_port_count); in usbg_port_link()
1687 struct usbg_tpg *tpg = container_of(se_tpg, struct usbg_tpg, se_tpg); in usbg_port_unlink() local
1689 atomic_dec(&tpg->tpg_port_count); in usbg_port_unlink()
2168 fu->tpg = the_only_tpg_I_currently_have; in usbg_cfg_bind()
2216 static int usbg_attach(struct usbg_tpg *tpg) in usbg_attach() argument
2221 static void usbg_detach(struct usbg_tpg *tpg) in usbg_detach() argument