usb, g_dnl: generalize DFU detach functions
authorRob Herring <robh@kernel.org>
Wed, 10 Dec 2014 20:43:03 +0000 (14:43 -0600)
committerLukasz Majewski <l.majewski@samsung.com>
Thu, 18 Dec 2014 11:26:05 +0000 (12:26 +0100)
In order to add detach functions for fastboot, make the DFU detach related
functions common so they can be shared.

Signed-off-by: Rob Herring <robh@kernel.org>
Tested-by: Lukasz Majewski <l.majewski@samsung.com>
[TestHW: Exynos4412-Trats2]

common/cmd_dfu.c
drivers/dfu/dfu.c
drivers/usb/gadget/f_dfu.c
drivers/usb/gadget/g_dnl.c
include/dfu.h
include/g_dnl.h

index 9e020b40be8a853e5e9bfd6a1dfbcd36100ae5b0..e975abebc9a5fbd832a38980999e3d21d3bf44f5 100644 (file)
@@ -38,10 +38,10 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 
        int controller_index = simple_strtoul(usb_controller, NULL, 0);
        board_usb_init(controller_index, USB_INIT_DEVICE);
-       dfu_clear_detach();
+       g_dnl_clear_detach();
        g_dnl_register("usb_dnl_dfu");
        while (1) {
-               if (dfu_detach()) {
+               if (g_dnl_detach()) {
                        /*
                         * Check if USB bus reset is performed after detach,
                         * which indicates that -R switch has been passed to
@@ -74,7 +74,7 @@ done:
        if (dfu_reset)
                run_command("reset", 0);
 
-       dfu_clear_detach();
+       g_dnl_clear_detach();
 
        return ret;
 }
index 14cb366b014cb3e7fb9de8f9e316783c1be05f19..648f26105da975e549e89b12917529691dab1877 100644 (file)
@@ -17,7 +17,6 @@
 #include <linux/list.h>
 #include <linux/compiler.h>
 
-static bool dfu_detach_request;
 static LIST_HEAD(dfu_list);
 static int dfu_alt_num;
 static int alt_num_cnt;
@@ -39,21 +38,6 @@ __weak bool dfu_usb_get_reset(void)
        return true;
 }
 
-bool dfu_detach(void)
-{
-       return dfu_detach_request;
-}
-
-void dfu_trigger_detach(void)
-{
-       dfu_detach_request = true;
-}
-
-void dfu_clear_detach(void)
-{
-       dfu_detach_request = false;
-}
-
 static int dfu_find_alt_num(const char *s)
 {
        int i = 0;
index 16fc9ddf82bd766bacb9d441428fb794c1c6d612..ead71eba6b136db95c9cd4b017ef2da6827872a4 100644 (file)
@@ -366,7 +366,7 @@ static int state_dfu_idle(struct f_dfu *f_dfu,
                to_runtime_mode(f_dfu);
                f_dfu->dfu_state = DFU_STATE_appIDLE;
 
-               dfu_trigger_detach();
+               g_dnl_trigger_detach();
                break;
        default:
                f_dfu->dfu_state = DFU_STATE_dfuERROR;
index 25611acd607f21a39010a3c207ba70f39463c0c2..ee52a294679ad5b98de1e81f01b790306ae00f99 100644 (file)
@@ -163,6 +163,23 @@ __weak int g_dnl_board_usb_cable_connected(void)
        return -EOPNOTSUPP;
 }
 
+static bool g_dnl_detach_request;
+
+bool g_dnl_detach(void)
+{
+       return g_dnl_detach_request;
+}
+
+void g_dnl_trigger_detach(void)
+{
+       g_dnl_detach_request = true;
+}
+
+void g_dnl_clear_detach(void)
+{
+       g_dnl_detach_request = false;
+}
+
 static int g_dnl_get_bcd_device_number(struct usb_composite_dev *cdev)
 {
        struct usb_gadget *gadget = cdev->gadget;
index f1a71c790230e62f2614bc3de43614b5d9ba7243..c27856cb729a3bb4832831b477a03d61c0875bcf 100644 (file)
@@ -150,9 +150,6 @@ struct dfu_entity *dfu_get_entity(int alt);
 char *dfu_extract_token(char** e, int *n);
 void dfu_trigger_reset(void);
 int dfu_get_alt(char *name);
-bool dfu_detach(void);
-void dfu_trigger_detach(void);
-void dfu_clear_detach(void);
 int dfu_init_env_entities(char *interface, char *devstr);
 unsigned char *dfu_get_buf(struct dfu_entity *dfu);
 unsigned char *dfu_free_buf(void);
index 1b1b35e0e1c5e0813994fa84a77a0462a6b8c053..4eeb5e40702fe97a60a32ee8f227b0097a7a5f6f 100644 (file)
@@ -39,4 +39,8 @@ int g_dnl_register(const char *s);
 void g_dnl_unregister(void);
 void g_dnl_set_serialnumber(char *);
 
+bool g_dnl_detach(void);
+void g_dnl_trigger_detach(void);
+void g_dnl_clear_detach(void);
+
 #endif /* __G_DOWNLOAD_H_ */