summaryrefslogtreecommitdiff
path: root/patches.tizen/1106-Revert-usb-gadget-f_mass_storage-factor-out-a-header.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches.tizen/1106-Revert-usb-gadget-f_mass_storage-factor-out-a-header.patch')
-rw-r--r--patches.tizen/1106-Revert-usb-gadget-f_mass_storage-factor-out-a-header.patch322
1 files changed, 322 insertions, 0 deletions
diff --git a/patches.tizen/1106-Revert-usb-gadget-f_mass_storage-factor-out-a-header.patch b/patches.tizen/1106-Revert-usb-gadget-f_mass_storage-factor-out-a-header.patch
new file mode 100644
index 00000000000..a582e46766e
--- /dev/null
+++ b/patches.tizen/1106-Revert-usb-gadget-f_mass_storage-factor-out-a-header.patch
@@ -0,0 +1,322 @@
+From 38facb63e8cf67b585c52ad0c65ad978619cd4b4 Mon Sep 17 00:00:00 2001
+From: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
+Date: Tue, 14 Jan 2014 14:27:56 +0100
+Subject: [PATCH 1106/1302] Revert "usb/gadget: f_mass_storage: factor out a
+ header file"
+
+This reverts commit aa42314c87dd9ba2b17aa1cb49d76d95d988dffe.
+
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/gadget/f_mass_storage.c | 117 +++++++++++++++++++++++++++++++--
+ drivers/usb/gadget/f_mass_storage.h | 126 ------------------------------------
+ 2 files changed, 110 insertions(+), 133 deletions(-)
+ delete mode 100644 drivers/usb/gadget/f_mass_storage.h
+
+diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c
+index c36e208..163d911 100644
+--- a/drivers/usb/gadget/f_mass_storage.c
++++ b/drivers/usb/gadget/f_mass_storage.c
+@@ -229,7 +229,6 @@
+ static const char fsg_string_interface[] = "Mass Storage";
+
+ #include "storage_common.h"
+-#include "f_mass_storage.h"
+
+ /* Static strings, in UTF-8 (for simplicity we use only ASCII characters) */
+ static struct usb_string fsg_strings[] = {
+@@ -247,6 +246,18 @@ static struct usb_gadget_strings fsg_stringtab = {
+ struct fsg_dev;
+ struct fsg_common;
+
++/* FSF callback functions */
++struct fsg_operations {
++ /*
++ * Callback function to call when thread exits. If no
++ * callback is set or it returns value lower then zero MSF
++ * will force eject all LUNs it operates on (including those
++ * marked as non-removable or with prevent_medium_removal flag
++ * set).
++ */
++ int (*thread_exits)(struct fsg_common *common);
++};
++
+ /* Data shared by all the FSG instances. */
+ struct fsg_common {
+ struct usb_gadget *gadget;
+@@ -313,6 +324,28 @@ struct fsg_common {
+ struct kref ref;
+ };
+
++struct fsg_config {
++ unsigned nluns;
++ struct fsg_lun_config {
++ const char *filename;
++ char ro;
++ char removable;
++ char cdrom;
++ char nofua;
++ } luns[FSG_MAX_LUNS];
++
++ /* Callback functions. */
++ const struct fsg_operations *ops;
++ /* Gadget's private data. */
++ void *private_data;
++
++ const char *vendor_name; /* 8 characters or less */
++ const char *product_name; /* 16 characters or less */
++
++ char can_stall;
++ unsigned int fsg_num_buffers;
++};
++
+ struct fsg_dev {
+ struct usb_function function;
+ struct usb_gadget *gadget; /* Copy of cdev->gadget */
+@@ -2576,12 +2609,12 @@ static void fsg_lun_release(struct device *dev)
+ /* Nothing needs to be done */
+ }
+
+-void fsg_common_get(struct fsg_common *common)
++static inline void fsg_common_get(struct fsg_common *common)
+ {
+ kref_get(&common->ref);
+ }
+
+-void fsg_common_put(struct fsg_common *common)
++static inline void fsg_common_put(struct fsg_common *common)
+ {
+ kref_put(&common->ref, fsg_common_release);
+ }
+@@ -2596,9 +2629,9 @@ static inline int fsg_num_buffers_validate(unsigned int fsg_num_buffers)
+ return -EINVAL;
+ }
+
+-struct fsg_common *fsg_common_init(struct fsg_common *common,
+- struct usb_composite_dev *cdev,
+- struct fsg_config *cfg)
++static struct fsg_common *fsg_common_init(struct fsg_common *common,
++ struct usb_composite_dev *cdev,
++ struct fsg_config *cfg)
+ {
+ struct usb_gadget *gadget = cdev->gadget;
+ struct fsg_buffhd *bh;
+@@ -2975,8 +3008,62 @@ static int fsg_bind_config(struct usb_composite_dev *cdev,
+
+ /************************* Module parameters *************************/
+
++struct fsg_module_parameters {
++ char *file[FSG_MAX_LUNS];
++ bool ro[FSG_MAX_LUNS];
++ bool removable[FSG_MAX_LUNS];
++ bool cdrom[FSG_MAX_LUNS];
++ bool nofua[FSG_MAX_LUNS];
++
++ unsigned int file_count, ro_count, removable_count, cdrom_count;
++ unsigned int nofua_count;
++ unsigned int luns; /* nluns */
++ bool stall; /* can_stall */
++};
++
++#define _FSG_MODULE_PARAM_ARRAY(prefix, params, name, type, desc) \
++ module_param_array_named(prefix ## name, params.name, type, \
++ &prefix ## params.name ## _count, \
++ S_IRUGO); \
++ MODULE_PARM_DESC(prefix ## name, desc)
++
++#define _FSG_MODULE_PARAM(prefix, params, name, type, desc) \
++ module_param_named(prefix ## name, params.name, type, \
++ S_IRUGO); \
++ MODULE_PARM_DESC(prefix ## name, desc)
++
++#define __FSG_MODULE_PARAMETERS(prefix, params) \
++ _FSG_MODULE_PARAM_ARRAY(prefix, params, file, charp, \
++ "names of backing files or devices"); \
++ _FSG_MODULE_PARAM_ARRAY(prefix, params, ro, bool, \
++ "true to force read-only"); \
++ _FSG_MODULE_PARAM_ARRAY(prefix, params, removable, bool, \
++ "true to simulate removable media"); \
++ _FSG_MODULE_PARAM_ARRAY(prefix, params, cdrom, bool, \
++ "true to simulate CD-ROM instead of disk"); \
++ _FSG_MODULE_PARAM_ARRAY(prefix, params, nofua, bool, \
++ "true to ignore SCSI WRITE(10,12) FUA bit"); \
++ _FSG_MODULE_PARAM(prefix, params, luns, uint, \
++ "number of LUNs"); \
++ _FSG_MODULE_PARAM(prefix, params, stall, bool, \
++ "false to prevent bulk stalls")
++
++#ifdef CONFIG_USB_GADGET_DEBUG_FILES
++
++#define FSG_MODULE_PARAMETERS(prefix, params) \
++ __FSG_MODULE_PARAMETERS(prefix, params); \
++ module_param_named(num_buffers, fsg_num_buffers, uint, S_IRUGO);\
++ MODULE_PARM_DESC(num_buffers, "Number of pipeline buffers")
++#else
++
++#define FSG_MODULE_PARAMETERS(prefix, params) \
++ __FSG_MODULE_PARAMETERS(prefix, params)
++
++#endif
++
+
+-void fsg_config_from_params(struct fsg_config *cfg,
++static void
++fsg_config_from_params(struct fsg_config *cfg,
+ const struct fsg_module_parameters *params,
+ unsigned int fsg_num_buffers)
+ {
+@@ -3009,3 +3096,19 @@ void fsg_config_from_params(struct fsg_config *cfg,
+ cfg->fsg_num_buffers = fsg_num_buffers;
+ }
+
++static inline struct fsg_common *
++fsg_common_from_params(struct fsg_common *common,
++ struct usb_composite_dev *cdev,
++ const struct fsg_module_parameters *params,
++ unsigned int fsg_num_buffers)
++ __attribute__((unused));
++static inline struct fsg_common *
++fsg_common_from_params(struct fsg_common *common,
++ struct usb_composite_dev *cdev,
++ const struct fsg_module_parameters *params,
++ unsigned int fsg_num_buffers)
++{
++ struct fsg_config cfg;
++ fsg_config_from_params(&cfg, params, fsg_num_buffers);
++ return fsg_common_init(common, cdev, &cfg);
++}
+diff --git a/drivers/usb/gadget/f_mass_storage.h b/drivers/usb/gadget/f_mass_storage.h
+deleted file mode 100644
+index b64761d..0000000
+--- a/drivers/usb/gadget/f_mass_storage.h
++++ /dev/null
+@@ -1,126 +0,0 @@
+-#ifndef USB_F_MASS_STORAGE_H
+-#define USB_F_MASS_STORAGE_H
+-
+-#include "storage_common.h"
+-
+-struct fsg_module_parameters {
+- char *file[FSG_MAX_LUNS];
+- bool ro[FSG_MAX_LUNS];
+- bool removable[FSG_MAX_LUNS];
+- bool cdrom[FSG_MAX_LUNS];
+- bool nofua[FSG_MAX_LUNS];
+-
+- unsigned int file_count, ro_count, removable_count, cdrom_count;
+- unsigned int nofua_count;
+- unsigned int luns; /* nluns */
+- bool stall; /* can_stall */
+-};
+-
+-#define _FSG_MODULE_PARAM_ARRAY(prefix, params, name, type, desc) \
+- module_param_array_named(prefix ## name, params.name, type, \
+- &prefix ## params.name ## _count, \
+- S_IRUGO); \
+- MODULE_PARM_DESC(prefix ## name, desc)
+-
+-#define _FSG_MODULE_PARAM(prefix, params, name, type, desc) \
+- module_param_named(prefix ## name, params.name, type, \
+- S_IRUGO); \
+- MODULE_PARM_DESC(prefix ## name, desc)
+-
+-#define __FSG_MODULE_PARAMETERS(prefix, params) \
+- _FSG_MODULE_PARAM_ARRAY(prefix, params, file, charp, \
+- "names of backing files or devices"); \
+- _FSG_MODULE_PARAM_ARRAY(prefix, params, ro, bool, \
+- "true to force read-only"); \
+- _FSG_MODULE_PARAM_ARRAY(prefix, params, removable, bool, \
+- "true to simulate removable media"); \
+- _FSG_MODULE_PARAM_ARRAY(prefix, params, cdrom, bool, \
+- "true to simulate CD-ROM instead of disk"); \
+- _FSG_MODULE_PARAM_ARRAY(prefix, params, nofua, bool, \
+- "true to ignore SCSI WRITE(10,12) FUA bit"); \
+- _FSG_MODULE_PARAM(prefix, params, luns, uint, \
+- "number of LUNs"); \
+- _FSG_MODULE_PARAM(prefix, params, stall, bool, \
+- "false to prevent bulk stalls")
+-
+-#ifdef CONFIG_USB_GADGET_DEBUG_FILES
+-
+-#define FSG_MODULE_PARAMETERS(prefix, params) \
+- __FSG_MODULE_PARAMETERS(prefix, params); \
+- module_param_named(num_buffers, fsg_num_buffers, uint, S_IRUGO);\
+- MODULE_PARM_DESC(num_buffers, "Number of pipeline buffers")
+-#else
+-
+-#define FSG_MODULE_PARAMETERS(prefix, params) \
+- __FSG_MODULE_PARAMETERS(prefix, params)
+-
+-#endif
+-
+-struct fsg_common;
+-
+-/* FSF callback functions */
+-struct fsg_operations {
+- /*
+- * Callback function to call when thread exits. If no
+- * callback is set or it returns value lower then zero MSF
+- * will force eject all LUNs it operates on (including those
+- * marked as non-removable or with prevent_medium_removal flag
+- * set).
+- */
+- int (*thread_exits)(struct fsg_common *common);
+-};
+-
+-struct fsg_lun_config {
+- const char *filename;
+- char ro;
+- char removable;
+- char cdrom;
+- char nofua;
+-};
+-
+-struct fsg_config {
+- unsigned nluns;
+- struct fsg_lun_config luns[FSG_MAX_LUNS];
+-
+- /* Callback functions. */
+- const struct fsg_operations *ops;
+- /* Gadget's private data. */
+- void *private_data;
+-
+- const char *vendor_name; /* 8 characters or less */
+- const char *product_name; /* 16 characters or less */
+-
+- char can_stall;
+- unsigned int fsg_num_buffers;
+-};
+-
+-void fsg_common_get(struct fsg_common *common);
+-
+-void fsg_common_put(struct fsg_common *common);
+-
+-struct fsg_common *fsg_common_init(struct fsg_common *common,
+- struct usb_composite_dev *cdev,
+- struct fsg_config *cfg);
+-
+-void fsg_config_from_params(struct fsg_config *cfg,
+- const struct fsg_module_parameters *params,
+- unsigned int fsg_num_buffers);
+-
+-static inline struct fsg_common *
+-fsg_common_from_params(struct fsg_common *common,
+- struct usb_composite_dev *cdev,
+- const struct fsg_module_parameters *params,
+- unsigned int fsg_num_buffers)
+- __attribute__((unused));
+-static inline struct fsg_common *
+-fsg_common_from_params(struct fsg_common *common,
+- struct usb_composite_dev *cdev,
+- const struct fsg_module_parameters *params,
+- unsigned int fsg_num_buffers)
+-{
+- struct fsg_config cfg;
+- fsg_config_from_params(&cfg, params, fsg_num_buffers);
+- return fsg_common_init(common, cdev, &cfg);
+-}
+-
+-#endif /* USB_F_MASS_STORAGE_H */
+--
+1.8.3.2
+