- Sort includes
- Forward declare controller structures

Signed-off-by: Zixun LI <z...@ogga.fr>
---
 drivers/usb/gadget/atmel_usba_udc.c | 59 +++++++++++++++--------------
 1 file changed, 30 insertions(+), 29 deletions(-)

diff --git a/drivers/usb/gadget/atmel_usba_udc.c 
b/drivers/usb/gadget/atmel_usba_udc.c
index f99553df8d..476e7ed619 100644
--- a/drivers/usb/gadget/atmel_usba_udc.c
+++ b/drivers/usb/gadget/atmel_usba_udc.c
@@ -7,19 +7,22 @@
  *                        Bo Shen <voice.s...@atmel.com>
  */
 
-#include <linux/bitops.h>
-#include <linux/errno.h>
+#include <clk.h>
+#include <log.h>
+#include <malloc.h>
 #include <asm/gpio.h>
 #include <asm/hardware.h>
+#include <linux/bitops.h>
+#include <linux/errno.h>
 #include <linux/list.h>
-#include <linux/printk.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/atmel_usba_udc.h>
-#include <malloc.h>
 
 #include "atmel_usba_udc.h"
 
+static struct usba_udc *controller;
+
 static int vbus_is_present(struct usba_udc *udc)
 {
        /* No Vbus detection: Assume always present */
@@ -506,12 +509,6 @@ usba_udc_set_selfpowered(struct usb_gadget *gadget, int 
is_selfpowered)
        return 0;
 }
 
-static const struct usb_gadget_ops usba_udc_ops = {
-       .get_frame              = usba_udc_get_frame,
-       .wakeup                 = usba_udc_wakeup,
-       .set_selfpowered        = usba_udc_set_selfpowered,
-};
-
 static struct usb_endpoint_descriptor usba_ep0_desc = {
        .bLength = USB_DT_ENDPOINT_SIZE,
        .bDescriptorType = USB_DT_ENDPOINT,
@@ -1179,28 +1176,16 @@ static int atmel_usba_stop(struct usba_udc *udc)
        return 0;
 }
 
-static struct usba_udc controller = {
-       .regs = (unsigned *)ATMEL_BASE_UDPHS,
-       .fifo = (unsigned *)ATMEL_BASE_UDPHS_FIFO,
-       .gadget = {
-               .ops            = &usba_udc_ops,
-               .ep_list        = LIST_HEAD_INIT(controller.gadget.ep_list),
-               .speed          = USB_SPEED_HIGH,
-               .is_dualspeed   = 1,
-               .name           = "atmel_usba_udc",
-       },
-};
-
 int dm_usb_gadget_handle_interrupts(struct udevice *dev)
 {
-       struct usba_udc *udc = &controller;
+       struct usba_udc *udc = controller;
 
        return usba_udc_irq(udc);
 }
 
 int usb_gadget_register_driver(struct usb_gadget_driver *driver)
 {
-       struct usba_udc *udc = &controller;
+       struct usba_udc *udc = controller;
        int ret;
 
        if (!driver || !driver->bind || !driver->setup) {
@@ -1228,7 +1213,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver 
*driver)
 
 int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
 {
-       struct usba_udc *udc = &controller;
+       struct usba_udc *udc = controller;
 
        if (!driver || !driver->unbind || !driver->disconnect) {
                pr_err("bad paramter\n");
@@ -1244,6 +1229,24 @@ int usb_gadget_unregister_driver(struct 
usb_gadget_driver *driver)
        return 0;
 }
 
+static const struct usb_gadget_ops usba_udc_ops = {
+       .get_frame              = usba_udc_get_frame,
+       .wakeup                 = usba_udc_wakeup,
+       .set_selfpowered        = usba_udc_set_selfpowered,
+};
+
+static struct usba_udc udc_controller = {
+       .regs = (unsigned int *)ATMEL_BASE_UDPHS,
+       .fifo = (unsigned int *)ATMEL_BASE_UDPHS_FIFO,
+       .gadget = {
+               .ops            = &usba_udc_ops,
+               .ep_list        = LIST_HEAD_INIT(udc_controller.gadget.ep_list),
+               .speed          = USB_SPEED_HIGH,
+               .is_dualspeed   = 1,
+               .name           = "atmel_usba_udc",
+       },
+};
+
 static struct usba_ep *usba_udc_pdata(struct usba_platform_data *pdata,
                                      struct usba_udc *udc)
 {
@@ -1286,11 +1289,9 @@ static struct usba_ep *usba_udc_pdata(struct 
usba_platform_data *pdata,
 
 int usba_udc_probe(struct usba_platform_data *pdata)
 {
-       struct usba_udc *udc;
-
-       udc = &controller;
+       controller = &udc_controller;
 
-       udc->usba_ep = usba_udc_pdata(pdata, udc);
+       controller->usba_ep = usba_udc_pdata(pdata, controller);
 
        return 0;
 }
-- 
2.45.2

Reply via email to