Commit e5587ea1 authored by Andrzej Pietrasiewicz's avatar Andrzej Pietrasiewicz Committed by Nicholas Bellinger

usb: gadget: f_tcm: remove compatibility layer

There are no old function interface users left.
Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Acked-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 00240714
......@@ -24,8 +24,6 @@
#include "tcm.h"
#include "u_tcm.h"
#ifndef USBF_TCM_INCLUDED
#define TPG_INSTANCES 1
struct tpg_instance {
......@@ -36,7 +34,6 @@ struct tpg_instance {
static struct tpg_instance tpg_instances[TPG_INSTANCES];
static DEFINE_MUTEX(tpg_instances_lock);
#endif
static inline struct f_uas *to_f_uas(struct usb_function *f)
{
......@@ -1386,10 +1383,8 @@ static struct se_portal_group *usbg_make_tpg(
struct usbg_tpg *tpg;
unsigned long tpgt;
int ret;
#ifndef USBF_TCM_INCLUDED
struct f_tcm_opts *opts;
unsigned i;
#endif
if (strstr(name, "tpgt_") != name)
return ERR_PTR(-EINVAL);
......@@ -1400,7 +1395,6 @@ static struct se_portal_group *usbg_make_tpg(
pr_err("gadgets, you can't do this here.\n");
return ERR_PTR(-EBUSY);
}
#ifndef USBF_TCM_INCLUDED
ret = -ENODEV;
mutex_lock(&tpg_instances_lock);
for (i = 0; i < TPG_INSTANCES; ++i)
......@@ -1417,26 +1411,16 @@ static struct se_portal_group *usbg_make_tpg(
if (opts->has_dep && !try_module_get(opts->dependent))
goto unlock_dep;
#endif
tpg = kzalloc(sizeof(struct usbg_tpg), GFP_KERNEL);
ret = -ENOMEM;
if (!tpg)
#ifdef USBF_TCM_INCLUDED
return ERR_PTR(-ENOMEM);
#else
goto unref_dep;
#endif
mutex_init(&tpg->tpg_mutex);
atomic_set(&tpg->tpg_port_count, 0);
tpg->workqueue = alloc_workqueue("tcm_usb_gadget", 0, 1);
if (!tpg->workqueue) {
#ifndef USBF_TCM_INCLUDED
if (!tpg->workqueue)
goto free_tpg;
#endif
kfree(tpg);
return NULL;
}
tpg->tport = tport;
tpg->tport_tpgt = tpgt;
......@@ -1446,23 +1430,16 @@ static struct se_portal_group *usbg_make_tpg(
* pretend to be SAS..
*/
ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_SAS);
if (ret < 0) {
#ifndef USBF_TCM_INCLUDED
if (ret < 0)
goto free_workqueue;
#endif
destroy_workqueue(tpg->workqueue);
kfree(tpg);
return NULL;
}
#ifndef USBF_TCM_INCLUDED
tpg_instances[i].tpg = tpg;
tpg->fi = tpg_instances[i].func_inst;
mutex_unlock(&opts->dep_lock);
mutex_unlock(&tpg_instances_lock);
#endif
the_only_tpg_I_currently_have = tpg;
return &tpg->se_tpg;
#ifndef USBF_TCM_INCLUDED
free_workqueue:
destroy_workqueue(tpg->workqueue);
free_tpg:
......@@ -1475,7 +1452,6 @@ static struct se_portal_group *usbg_make_tpg(
mutex_unlock(&tpg_instances_lock);
return ERR_PTR(ret);
#endif
}
static int tcm_usbg_drop_nexus(struct usbg_tpg *);
......@@ -1484,16 +1460,13 @@ static void usbg_drop_tpg(struct se_portal_group *se_tpg)
{
struct usbg_tpg *tpg = container_of(se_tpg,
struct usbg_tpg, se_tpg);
#ifndef USBF_TCM_INCLUDED
unsigned i;
struct f_tcm_opts *opts;
#endif
tcm_usbg_drop_nexus(tpg);
core_tpg_deregister(se_tpg);
destroy_workqueue(tpg->workqueue);
#ifndef USBF_TCM_INCLUDED
mutex_lock(&tpg_instances_lock);
for (i = 0; i < TPG_INSTANCES; ++i)
if (tpg_instances[i].tpg == tpg)
......@@ -1506,7 +1479,7 @@ static void usbg_drop_tpg(struct se_portal_group *se_tpg)
module_put(opts->dependent);
mutex_unlock(&opts->dep_lock);
mutex_unlock(&tpg_instances_lock);
#endif
kfree(tpg);
the_only_tpg_I_currently_have = NULL;
}
......@@ -2066,13 +2039,10 @@ static int tcm_bind(struct usb_configuration *c, struct usb_function *f)
struct f_uas *fu = to_f_uas(f);
struct usb_gadget *gadget = c->cdev->gadget;
struct usb_ep *ep;
#ifndef USBF_TCM_INCLUDED
struct f_tcm_opts *opts;
#endif
int iface;
int ret;
#ifndef USBF_TCM_INCLUDED
opts = container_of(f->fi, struct f_tcm_opts, func_inst);
mutex_lock(&opts->dep_lock);
......@@ -2081,7 +2051,7 @@ static int tcm_bind(struct usb_configuration *c, struct usb_function *f)
return -ENODEV;
}
mutex_unlock(&opts->dep_lock);
#endif
if (tcm_us_strings[0].id == 0) {
ret = usb_string_ids_tab(c->cdev, tcm_us_strings);
if (ret < 0)
......@@ -2149,18 +2119,6 @@ static int tcm_bind(struct usb_configuration *c, struct usb_function *f)
return -ENOTSUPP;
}
#ifdef USBF_TCM_INCLUDED
static void tcm_old_unbind(struct usb_configuration *c, struct usb_function *f)
{
struct f_uas *fu = to_f_uas(f);
usb_free_all_descriptors(f);
kfree(fu);
}
#endif
struct guas_setup_wq {
struct work_struct work;
struct f_uas *fu;
......@@ -2229,37 +2187,6 @@ static int tcm_setup(struct usb_function *f,
return usbg_bot_setup(f, ctrl);
}
#ifdef USBF_TCM_INCLUDED
static int tcm_bind_config(struct usb_configuration *c)
{
struct f_uas *fu;
int ret;
fu = kzalloc(sizeof(*fu), GFP_KERNEL);
if (!fu)
return -ENOMEM;
fu->function.name = "Target Function";
fu->function.bind = tcm_bind;
fu->function.unbind = tcm_old_unbind;
fu->function.set_alt = tcm_set_alt;
fu->function.setup = tcm_setup;
fu->function.disable = tcm_disable;
fu->function.strings = tcm_strings;
fu->tpg = the_only_tpg_I_currently_have;
ret = usb_add_function(c, &fu->function);
if (ret)
goto err;
return 0;
err:
kfree(fu);
return ret;
}
#else
static void tcm_free_inst(struct usb_function_instance *f)
{
struct f_tcm_opts *opts;
......@@ -2417,5 +2344,3 @@ module_exit(tcm_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Sebastian Andrzej Siewior");
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment