Commit 3d8d72a4 authored by Andrzej Pietrasiewicz's avatar Andrzej Pietrasiewicz Committed by Felipe Balbi

usb: gadget: FunctionFS: Remove compatibility layer

There are no old function interface users left, so the old interface can
be removed.
Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Acked-by: default avatarMichal Nazarewicz <mina86@mina86.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 6f823cd5
...@@ -97,19 +97,12 @@ static struct ffs_function *ffs_func_from_usb(struct usb_function *f) ...@@ -97,19 +97,12 @@ static struct ffs_function *ffs_func_from_usb(struct usb_function *f)
return container_of(f, struct ffs_function, function); return container_of(f, struct ffs_function, function);
} }
#ifdef USB_FFS_INCLUDED
static void ffs_func_free(struct ffs_function *func);
#endif
static void ffs_func_eps_disable(struct ffs_function *func); static void ffs_func_eps_disable(struct ffs_function *func);
static int __must_check ffs_func_eps_enable(struct ffs_function *func); static int __must_check ffs_func_eps_enable(struct ffs_function *func);
static int ffs_func_bind(struct usb_configuration *, static int ffs_func_bind(struct usb_configuration *,
struct usb_function *); struct usb_function *);
#ifdef USB_FFS_INCLUDED
static void old_ffs_func_unbind(struct usb_configuration *,
struct usb_function *);
#endif
static int ffs_func_set_alt(struct usb_function *, unsigned, unsigned); static int ffs_func_set_alt(struct usb_function *, unsigned, unsigned);
static void ffs_func_disable(struct usb_function *); static void ffs_func_disable(struct usb_function *);
static int ffs_func_setup(struct usb_function *, static int ffs_func_setup(struct usb_function *,
...@@ -165,9 +158,7 @@ ffs_sb_create_file(struct super_block *sb, const char *name, void *data, ...@@ -165,9 +158,7 @@ ffs_sb_create_file(struct super_block *sb, const char *name, void *data,
/* Devices management *******************************************************/ /* Devices management *******************************************************/
DEFINE_MUTEX(ffs_lock); DEFINE_MUTEX(ffs_lock);
#ifndef USB_FFS_INCLUDED
EXPORT_SYMBOL(ffs_lock); EXPORT_SYMBOL(ffs_lock);
#endif
static struct ffs_dev *ffs_find_dev(const char *name); static struct ffs_dev *ffs_find_dev(const char *name);
static void *ffs_acquire_dev(const char *dev_name); static void *ffs_acquire_dev(const char *dev_name);
...@@ -1303,75 +1294,6 @@ static void ffs_epfiles_destroy(struct ffs_epfile *epfiles, unsigned count) ...@@ -1303,75 +1294,6 @@ static void ffs_epfiles_destroy(struct ffs_epfile *epfiles, unsigned count)
kfree(epfiles); kfree(epfiles);
} }
#ifdef USB_FFS_INCLUDED
static int functionfs_bind_config(struct usb_composite_dev *cdev,
struct usb_configuration *c,
struct ffs_data *ffs)
{
struct ffs_function *func;
int ret;
ENTER();
func = kzalloc(sizeof *func, GFP_KERNEL);
if (unlikely(!func))
return -ENOMEM;
func->function.name = "Function FS Gadget";
func->function.strings = ffs->stringtabs;
func->function.bind = ffs_func_bind;
func->function.unbind = old_ffs_func_unbind;
func->function.set_alt = ffs_func_set_alt;
func->function.disable = ffs_func_disable;
func->function.setup = ffs_func_setup;
func->function.suspend = ffs_func_suspend;
func->function.resume = ffs_func_resume;
func->conf = c;
func->gadget = cdev->gadget;
func->ffs = ffs;
ffs_data_get(ffs);
ret = usb_add_function(c, &func->function);
if (unlikely(ret))
ffs_func_free(func);
return ret;
}
static void ffs_func_free(struct ffs_function *func)
{
struct ffs_ep *ep = func->eps;
unsigned count = func->ffs->eps_count;
unsigned long flags;
ENTER();
/* cleanup after autoconfig */
spin_lock_irqsave(&func->ffs->eps_lock, flags);
do {
if (ep->ep && ep->req)
usb_ep_free_request(ep->ep, ep->req);
ep->req = NULL;
++ep;
} while (--count);
spin_unlock_irqrestore(&func->ffs->eps_lock, flags);
ffs_data_put(func->ffs);
kfree(func->eps);
/*
* eps and interfaces_nums are allocated in the same chunk so
* only one free is required. Descriptors are also allocated
* in the same chunk.
*/
kfree(func);
}
#endif
static void ffs_func_eps_disable(struct ffs_function *func) static void ffs_func_eps_disable(struct ffs_function *func)
{ {
...@@ -2035,7 +1957,6 @@ static int __ffs_func_bind_do_nums(enum ffs_entity_type type, u8 *valuep, ...@@ -2035,7 +1957,6 @@ static int __ffs_func_bind_do_nums(enum ffs_entity_type type, u8 *valuep,
return 0; return 0;
} }
#ifndef USB_FFS_INCLUDED
static inline struct f_fs_opts *ffs_do_functionfs_bind(struct usb_function *f, static inline struct f_fs_opts *ffs_do_functionfs_bind(struct usb_function *f,
struct usb_configuration *c) struct usb_configuration *c)
{ {
...@@ -2084,7 +2005,6 @@ static inline struct f_fs_opts *ffs_do_functionfs_bind(struct usb_function *f, ...@@ -2084,7 +2005,6 @@ static inline struct f_fs_opts *ffs_do_functionfs_bind(struct usb_function *f,
return ffs_opts; return ffs_opts;
} }
#endif
static int _ffs_func_bind(struct usb_configuration *c, static int _ffs_func_bind(struct usb_configuration *c,
struct usb_function *f) struct usb_function *f)
...@@ -2190,12 +2110,10 @@ static int _ffs_func_bind(struct usb_configuration *c, ...@@ -2190,12 +2110,10 @@ static int _ffs_func_bind(struct usb_configuration *c,
static int ffs_func_bind(struct usb_configuration *c, static int ffs_func_bind(struct usb_configuration *c,
struct usb_function *f) struct usb_function *f)
{ {
#ifndef USB_FFS_INCLUDED
struct f_fs_opts *ffs_opts = ffs_do_functionfs_bind(f, c); struct f_fs_opts *ffs_opts = ffs_do_functionfs_bind(f, c);
if (IS_ERR(ffs_opts)) if (IS_ERR(ffs_opts))
return PTR_ERR(ffs_opts); return PTR_ERR(ffs_opts);
#endif
return _ffs_func_bind(c, f); return _ffs_func_bind(c, f);
} }
...@@ -2203,28 +2121,6 @@ static int ffs_func_bind(struct usb_configuration *c, ...@@ -2203,28 +2121,6 @@ static int ffs_func_bind(struct usb_configuration *c,
/* Other USB function hooks *************************************************/ /* Other USB function hooks *************************************************/
#ifdef USB_FFS_INCLUDED
static void old_ffs_func_unbind(struct usb_configuration *c,
struct usb_function *f)
{
struct ffs_function *func = ffs_func_from_usb(f);
struct ffs_data *ffs = func->ffs;
ENTER();
if (ffs->func == func) {
ffs_func_eps_disable(func);
ffs->func = NULL;
}
ffs_event_add(ffs, FUNCTIONFS_UNBIND);
ffs_func_free(func);
}
#endif
static int ffs_func_set_alt(struct usb_function *f, static int ffs_func_set_alt(struct usb_function *f,
unsigned interface, unsigned alt) unsigned interface, unsigned alt)
{ {
...@@ -2401,8 +2297,6 @@ static struct ffs_dev *ffs_find_dev(const char *name) ...@@ -2401,8 +2297,6 @@ static struct ffs_dev *ffs_find_dev(const char *name)
/* Function registration interface ******************************************/ /* Function registration interface ******************************************/
#ifndef USB_FFS_INCLUDED
static void ffs_free_inst(struct usb_function_instance *f) static void ffs_free_inst(struct usb_function_instance *f)
{ {
struct f_fs_opts *opts; struct f_fs_opts *opts;
...@@ -2507,8 +2401,6 @@ static struct usb_function *ffs_alloc(struct usb_function_instance *fi) ...@@ -2507,8 +2401,6 @@ static struct usb_function *ffs_alloc(struct usb_function_instance *fi)
return &func->function; return &func->function;
} }
#endif
/* /*
* ffs_lock must be taken by the caller of this function * ffs_lock must be taken by the caller of this function
*/ */
...@@ -2567,9 +2459,7 @@ int ffs_name_dev(struct ffs_dev *dev, const char *name) ...@@ -2567,9 +2459,7 @@ int ffs_name_dev(struct ffs_dev *dev, const char *name)
return ret; return ret;
} }
#ifndef USB_FFS_INCLUDED
EXPORT_SYMBOL(ffs_name_dev); EXPORT_SYMBOL(ffs_name_dev);
#endif
int ffs_single_dev(struct ffs_dev *dev) int ffs_single_dev(struct ffs_dev *dev)
{ {
...@@ -2586,9 +2476,7 @@ int ffs_single_dev(struct ffs_dev *dev) ...@@ -2586,9 +2476,7 @@ int ffs_single_dev(struct ffs_dev *dev)
ffs_dev_unlock(); ffs_dev_unlock();
return ret; return ret;
} }
#ifndef USB_FFS_INCLUDED
EXPORT_SYMBOL(ffs_single_dev); EXPORT_SYMBOL(ffs_single_dev);
#endif
/* /*
* ffs_lock must be taken by the caller of this function * ffs_lock must be taken by the caller of this function
...@@ -2719,8 +2607,6 @@ static char *ffs_prepare_buffer(const char __user *buf, size_t len) ...@@ -2719,8 +2607,6 @@ static char *ffs_prepare_buffer(const char __user *buf, size_t len)
return data; return data;
} }
#ifndef USB_FFS_INCLUDED
DECLARE_USB_FUNCTION_INIT(ffs, ffs_alloc_inst, ffs_alloc); DECLARE_USB_FUNCTION_INIT(ffs, ffs_alloc_inst, ffs_alloc);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_AUTHOR("Michal Nazarewicz"); MODULE_AUTHOR("Michal Nazarewicz");
#endif
...@@ -249,7 +249,6 @@ struct ffs_data { ...@@ -249,7 +249,6 @@ struct ffs_data {
}; };
#ifndef USB_FFS_INCLUDED
struct f_fs_opts { struct f_fs_opts {
struct usb_function_instance func_inst; struct usb_function_instance func_inst;
struct ffs_dev *dev; struct ffs_dev *dev;
...@@ -261,6 +260,5 @@ static inline struct f_fs_opts *to_f_fs_opts(struct usb_function_instance *fi) ...@@ -261,6 +260,5 @@ static inline struct f_fs_opts *to_f_fs_opts(struct usb_function_instance *fi)
{ {
return container_of(fi, struct f_fs_opts, func_inst); return container_of(fi, struct f_fs_opts, func_inst);
} }
#endif
#endif /* U_FFS_H */ #endif /* U_FFS_H */
...@@ -3,22 +3,4 @@ ...@@ -3,22 +3,4 @@
#include <uapi/linux/usb/functionfs.h> #include <uapi/linux/usb/functionfs.h>
#ifdef USB_FFS_INCLUDED
struct ffs_data;
struct usb_composite_dev;
struct usb_configuration;
static int functionfs_bind(struct ffs_data *ffs, struct usb_composite_dev *cdev)
__attribute__((warn_unused_result, nonnull));
static void functionfs_unbind(struct ffs_data *ffs)
__attribute__((nonnull));
static int functionfs_bind_config(struct usb_composite_dev *cdev,
struct usb_configuration *c,
struct ffs_data *ffs)
__attribute__((warn_unused_result, nonnull));
#endif
#endif #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