fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / drivers / usb / gadget / goku_udc.c
index 61ce5b2..d0ef1d6 100644 (file)
@@ -24,7 +24,6 @@
 // #define     VERBOSE         /* extra debug messages (success too) */
 // #define     USB_TRACE       /* packet-level success messages */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/pci.h>
@@ -70,7 +69,7 @@ MODULE_LICENSE("GPL");
  * seem to behave quite as expected.  Used by default.
  *
  * OUT dma documents design problems handling the common "short packet"
- * transfer termination policy; it couldn't enabled by default, even
+ * transfer termination policy; it couldn't be enabled by default, even
  * if the OUT-dma abort problems had a resolution.
  */
 static unsigned use_dma = 1;
@@ -90,7 +89,7 @@ module_param(use_dma, uint, S_IRUGO);
 static void nuke(struct goku_ep *, int status);
 
 static inline void
-command(struct goku_udc_regs *regs, int command, unsigned epnum)
+command(struct goku_udc_regs __iomem *regs, int command, unsigned epnum)
 {
        writel(COMMAND_EP(epnum) | command, &regs->Command);
        udelay(300);
@@ -161,8 +160,8 @@ goku_ep_enable(struct usb_ep *_ep, const struct usb_endpoint_descriptor *desc)
 
        /* ep1 and ep2 can do double buffering and/or dma */
        if (ep->num < 3) {
-               struct goku_udc_regs    *regs = ep->dev->regs;
-               u32                     tmp;
+               struct goku_udc_regs __iomem    *regs = ep->dev->regs;
+               u32                             tmp;
 
                /* double buffer except (for now) with pio in */
                tmp = ((ep->dma || !ep->is_in)
@@ -191,7 +190,7 @@ goku_ep_enable(struct usb_ep *_ep, const struct usb_endpoint_descriptor *desc)
        return 0;
 }
 
-static void ep_reset(struct goku_udc_regs *regs, struct goku_ep *ep)
+static void ep_reset(struct goku_udc_regs __iomem *regs, struct goku_ep *ep)
 {
        struct goku_udc         *dev = ep->dev;
 
@@ -209,16 +208,16 @@ static void ep_reset(struct goku_udc_regs *regs, struct goku_ep *ep)
                writel(dev->int_enable, &regs->int_enable);
                readl(&regs->int_enable);
                if (ep->num < 3) {
-                       struct goku_udc_regs    *regs = ep->dev->regs;
-                       u32                     tmp;
+                       struct goku_udc_regs __iomem    *r = ep->dev->regs;
+                       u32                             tmp;
 
-                       tmp = readl(&regs->EPxSingle);
+                       tmp = readl(&r->EPxSingle);
                        tmp &= ~(0x11 << ep->num);
-                       writel(tmp, &regs->EPxSingle);
+                       writel(tmp, &r->EPxSingle);
 
-                       tmp = readl(&regs->EPxBCS);
+                       tmp = readl(&r->EPxBCS);
                        tmp &= ~(0x11 << ep->num);
-                       writel(tmp, &regs->EPxBCS);
+                       writel(tmp, &r->EPxBCS);
                }
                /* reset dma in case we're still using it */
                if (ep->dma) {
@@ -237,7 +236,7 @@ static void ep_reset(struct goku_udc_regs *regs, struct goku_ep *ep)
        }
 
        ep->ep.maxpacket = MAX_FIFO_SIZE;
-       ep->desc = 0;
+       ep->desc = NULL;
        ep->stopped = 1;
        ep->irqs = 0;
        ep->dma = 0;
@@ -269,17 +268,16 @@ static int goku_ep_disable(struct usb_ep *_ep)
 /*-------------------------------------------------------------------------*/
 
 static struct usb_request *
-goku_alloc_request(struct usb_ep *_ep, int gfp_flags)
+goku_alloc_request(struct usb_ep *_ep, gfp_t gfp_flags)
 {
        struct goku_request     *req;
 
        if (!_ep)
-               return 0;
-       req = kmalloc(sizeof *req, gfp_flags);
+               return NULL;
+       req = kzalloc(sizeof *req, gfp_flags);
        if (!req)
-               return 0;
+               return NULL;
 
-       memset(req, 0, sizeof *req);
        req->req.dma = DMA_ADDR_INVALID;
        INIT_LIST_HEAD(&req->queue);
        return &req->req;
@@ -313,7 +311,7 @@ goku_free_request(struct usb_ep *_ep, struct usb_request *_req)
 #if    defined(CONFIG_X86)
 #define USE_KMALLOC
 
-#elif  defined(CONFIG_MIPS) && !defined(CONFIG_NONCOHERENT_IO)
+#elif  defined(CONFIG_MIPS) && !defined(CONFIG_DMA_NONCOHERENT)
 #define USE_KMALLOC
 
 #elif  defined(CONFIG_PPC) && !defined(CONFIG_NOT_COHERENT_CACHE)
@@ -327,14 +325,14 @@ goku_free_request(struct usb_ep *_ep, struct usb_request *_req)
  */
 static void *
 goku_alloc_buffer(struct usb_ep *_ep, unsigned bytes,
-                       dma_addr_t *dma, int  gfp_flags)
+                       dma_addr_t *dma, gfp_t gfp_flags)
 {
        void            *retval;
        struct goku_ep  *ep;
 
        ep = container_of(_ep, struct goku_ep, ep);
        if (!_ep)
-               return 0;
+               return NULL;
        *dma = DMA_ADDR_INVALID;
 
 #if    defined(USE_KMALLOC)
@@ -413,7 +411,7 @@ done(struct goku_ep *ep, struct goku_request *req, int status)
 /*-------------------------------------------------------------------------*/
 
 static inline int
-write_packet(u32 *fifo, u8 *buf, struct goku_request *req, unsigned max)
+write_packet(u32 __iomem *fifo, u8 *buf, struct goku_request *req, unsigned max)
 {
        unsigned        length, count;
 
@@ -488,10 +486,10 @@ static int write_fifo(struct goku_ep *ep, struct goku_request *req)
 
 static int read_fifo(struct goku_ep *ep, struct goku_request *req)
 {
-       struct goku_udc_regs    *regs;
-       u32                     size, set;
-       u8                      *buf;
-       unsigned                bufferspace, is_short, dbuff;
+       struct goku_udc_regs __iomem    *regs;
+       u32                             size, set;
+       u8                              *buf;
+       unsigned                        bufferspace, is_short, dbuff;
 
        regs = ep->dev->regs;
 top:
@@ -581,7 +579,8 @@ top:
 }
 
 static inline void
-pio_irq_enable(struct goku_udc *dev, struct goku_udc_regs *regs, int epnum)
+pio_irq_enable(struct goku_udc *dev,
+               struct goku_udc_regs __iomem *regs, int epnum)
 {
        dev->int_enable |= INT_EPxDATASET (epnum);
        writel(dev->int_enable, &regs->int_enable);
@@ -589,7 +588,8 @@ pio_irq_enable(struct goku_udc *dev, struct goku_udc_regs *regs, int epnum)
 }
 
 static inline void
-pio_irq_disable(struct goku_udc *dev, struct goku_udc_regs *regs, int epnum)
+pio_irq_disable(struct goku_udc *dev,
+               struct goku_udc_regs __iomem *regs, int epnum)
 {
        dev->int_enable &= ~INT_EPxDATASET (epnum);
        writel(dev->int_enable, &regs->int_enable);
@@ -613,10 +613,10 @@ pio_advance(struct goku_ep *ep)
 // return:  0 = q running, 1 = q stopped, negative = errno
 static int start_dma(struct goku_ep *ep, struct goku_request *req)
 {
-       struct goku_udc_regs    *regs = ep->dev->regs;
-       u32                     master;
-       u32                     start = req->req.dma;
-       u32                     end = start + req->req.length - 1;
+       struct goku_udc_regs __iomem    *regs = ep->dev->regs;
+       u32                             master;
+       u32                             start = req->req.dma;
+       u32                             end = start + req->req.length - 1;
 
        master = readl(&regs->dma_master) & MST_RW_BITS;
 
@@ -668,9 +668,9 @@ static int start_dma(struct goku_ep *ep, struct goku_request *req)
 
 static void dma_advance(struct goku_udc *dev, struct goku_ep *ep)
 {
-       struct goku_request     *req;
-       struct goku_udc_regs    *regs = ep->dev->regs;
-       u32                     master;
+       struct goku_request             *req;
+       struct goku_udc_regs __iomem    *regs = ep->dev->regs;
+       u32                             master;
 
        master = readl(&regs->dma_master);
 
@@ -716,9 +716,9 @@ stop:
 
 static void abort_dma(struct goku_ep *ep, int status)
 {
-       struct goku_udc_regs    *regs = ep->dev->regs;
-       struct goku_request     *req;
-       u32                     curr, master;
+       struct goku_udc_regs __iomem    *regs = ep->dev->regs;
+       struct goku_request             *req;
+       u32                             curr, master;
 
        /* NAK future host requests, hoping the implicit delay lets the
         * dma engine finish reading (or writing) its latest packet and
@@ -787,7 +787,7 @@ finished:
 /*-------------------------------------------------------------------------*/
 
 static int
-goku_queue(struct usb_ep *_ep, struct usb_request *_req, int gfp_flags)
+goku_queue(struct usb_ep *_ep, struct usb_request *_req, gfp_t gfp_flags)
 {
        struct goku_request     *req;
        struct goku_ep          *ep;
@@ -848,7 +848,7 @@ goku_queue(struct usb_ep *_ep, struct usb_request *_req, int gfp_flags)
                if (unlikely(status != 0)) {
                        if (status > 0)
                                status = 0;
-                       req = 0;
+                       req = NULL;
                }
 
        } /* else pio or dma irq handler advances the queue. */
@@ -927,7 +927,7 @@ static int goku_dequeue(struct usb_ep *_ep, struct usb_request *_req)
        } else if (!list_empty(&req->queue))
                done(ep, req, -ECONNRESET);
        else
-               req = 0;
+               req = NULL;
        spin_unlock_irqrestore(&dev->lock, flags);
 
        return req ? 0 : -EOPNOTSUPP;
@@ -984,7 +984,8 @@ static int goku_set_halt(struct usb_ep *_ep, int value)
                retval = -EAGAIN;
        else if (ep->is_in && value
                        /* data in (either) packet buffer? */
-                       && (ep->dev->regs->DataSet & DATASET_AB(ep->num)))
+                       && (readl(&ep->dev->regs->DataSet)
+                                       & DATASET_AB(ep->num)))
                retval = -EAGAIN;
        else if (!value)
                goku_clear_halt(ep);
@@ -1000,9 +1001,9 @@ static int goku_set_halt(struct usb_ep *_ep, int value)
 
 static int goku_fifo_status(struct usb_ep *_ep)
 {
-       struct goku_ep          *ep;
-       struct goku_udc_regs    *regs;
-       u32                     size;
+       struct goku_ep                  *ep;
+       struct goku_udc_regs __iomem    *regs;
+       u32                             size;
 
        if (!_ep)
                return -ENODEV;
@@ -1022,9 +1023,9 @@ static int goku_fifo_status(struct usb_ep *_ep)
 
 static void goku_fifo_flush(struct usb_ep *_ep)
 {
-       struct goku_ep          *ep;
-       struct goku_udc_regs    *regs;
-       u32                     size;
+       struct goku_ep                  *ep;
+       struct goku_udc_regs __iomem    *regs;
+       u32                             size;
 
        if (!_ep)
                return;
@@ -1092,13 +1093,7 @@ static inline char *dmastr(void)
                return "(dma IN)";
 }
 
-/* if we're trying to save space, don't bother with this proc file */
-
-#if defined(CONFIG_PROC_FS) && !defined(CONFIG_EMBEDDED)
-#  define      UDC_PROC_FILE
-#endif
-
-#ifdef UDC_PROC_FILE
+#ifdef CONFIG_USB_GADGET_DEBUG_FILES
 
 static const char proc_node_name [] = "driver/udc";
 
@@ -1147,14 +1142,14 @@ static int
 udc_proc_read(char *buffer, char **start, off_t off, int count,
                int *eof, void *_dev)
 {
-       char                    *buf = buffer;
-       struct goku_udc         *dev = _dev;
-       struct goku_udc_regs    *regs = dev->regs;
-       char                    *next = buf;
-       unsigned                size = count;
-       unsigned long           flags;
-       int                     i, t, is_usb_connected;
-       u32                     tmp;
+       char                            *buf = buffer;
+       struct goku_udc                 *dev = _dev;
+       struct goku_udc_regs __iomem    *regs = dev->regs;
+       char                            *next = buf;
+       unsigned                        size = count;
+       unsigned long                   flags;
+       int                             i, t, is_usb_connected;
+       u32                             tmp;
 
        if (off != 0)
                return 0;
@@ -1312,7 +1307,7 @@ done:
        return count - size;
 }
 
-#endif /* UDC_PROC_FILE */
+#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
 
 /*-------------------------------------------------------------------------*/
 
@@ -1342,17 +1337,17 @@ static void udc_reinit (struct goku_udc *dev)
                ep->dev = dev;
                INIT_LIST_HEAD (&ep->queue);
 
-               ep_reset(0, ep);
+               ep_reset(NULL, ep);
        }
 
-       dev->ep[0].reg_mode = 0;
+       dev->ep[0].reg_mode = NULL;
        dev->ep[0].ep.maxpacket = MAX_EP0_SIZE;
        list_del_init (&dev->ep[0].ep.ep_list);
 }
 
 static void udc_reset(struct goku_udc *dev)
 {
-       struct goku_udc_regs    *regs = dev->regs;
+       struct goku_udc_regs __iomem    *regs = dev->regs;
 
        writel(0, &regs->power_detect);
        writel(0, &regs->int_enable);
@@ -1369,8 +1364,8 @@ static void udc_reset(struct goku_udc *dev)
 
 static void ep0_start(struct goku_udc *dev)
 {
-       struct goku_udc_regs    *regs = dev->regs;
-       unsigned                i;
+       struct goku_udc_regs __iomem    *regs = dev->regs;
+       unsigned                        i;
 
        VDBG(dev, "%s\n", __FUNCTION__);
 
@@ -1437,7 +1432,6 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
        if (!driver
                        || driver->speed != USB_SPEED_FULL
                        || !driver->bind
-                       || !driver->unbind
                        || !driver->disconnect
                        || !driver->setup)
                return -EINVAL;
@@ -1447,15 +1441,15 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
                return -EBUSY;
 
        /* hook up the driver */
-       driver->driver.bus = 0;
+       driver->driver.bus = NULL;
        dev->driver = driver;
        dev->gadget.dev.driver = &driver->driver;
        retval = driver->bind(&dev->gadget);
        if (retval) {
                DBG(dev, "bind to driver %s --> error %d\n",
                                driver->driver.name, retval);
-               dev->driver = 0;
-               dev->gadget.dev.driver = 0;
+               dev->driver = NULL;
+               dev->gadget.dev.driver = NULL;
                return retval;
        }
 
@@ -1477,7 +1471,7 @@ stop_activity(struct goku_udc *dev, struct usb_gadget_driver *driver)
        DBG (dev, "%s\n", __FUNCTION__);
 
        if (dev->gadget.speed == USB_SPEED_UNKNOWN)
-               driver = 0;
+               driver = NULL;
 
        /* disconnect gadget driver after quiesceing hw and the driver */
        udc_reset (dev);
@@ -1500,11 +1494,11 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver)
 
        if (!dev)
                return -ENODEV;
-       if (!driver || driver != dev->driver)
+       if (!driver || driver != dev->driver || !driver->unbind)
                return -EINVAL;
 
        spin_lock_irqsave(&dev->lock, flags);
-       dev->driver = 0;
+       dev->driver = NULL;
        stop_activity(dev, driver);
        spin_unlock_irqrestore(&dev->lock, flags);
 
@@ -1520,16 +1514,19 @@ EXPORT_SYMBOL(usb_gadget_unregister_driver);
 
 static void ep0_setup(struct goku_udc *dev)
 {
-       struct goku_udc_regs    *regs = dev->regs;
-       struct usb_ctrlrequest  ctrl;
-       int                     tmp;
+       struct goku_udc_regs __iomem    *regs = dev->regs;
+       struct usb_ctrlrequest          ctrl;
+       int                             tmp;
 
        /* read SETUP packet and enter DATA stage */
        ctrl.bRequestType = readl(&regs->bRequestType);
        ctrl.bRequest = readl(&regs->bRequest);
-       ctrl.wValue  = (readl(&regs->wValueH)  << 8) | readl(&regs->wValueL);
-       ctrl.wIndex  = (readl(&regs->wIndexH)  << 8) | readl(&regs->wIndexL);
-       ctrl.wLength = (readl(&regs->wLengthH) << 8) | readl(&regs->wLengthL);
+       ctrl.wValue  = cpu_to_le16((readl(&regs->wValueH)  << 8)
+                                       | readl(&regs->wValueL));
+       ctrl.wIndex  = cpu_to_le16((readl(&regs->wIndexH)  << 8)
+                                       | readl(&regs->wIndexL));
+       ctrl.wLength = cpu_to_le16((readl(&regs->wLengthH) << 8)
+                                       | readl(&regs->wLengthL));
        writel(0, &regs->SetupRecv);
 
        nuke(&dev->ep[0], 0);
@@ -1551,18 +1548,20 @@ static void ep0_setup(struct goku_udc *dev)
                case USB_REQ_CLEAR_FEATURE:
                        switch (ctrl.bRequestType) {
                        case USB_RECIP_ENDPOINT:
-                               tmp = ctrl.wIndex & 0x0f;
+                               tmp = le16_to_cpu(ctrl.wIndex) & 0x0f;
                                /* active endpoint */
                                if (tmp > 3 || (!dev->ep[tmp].desc && tmp != 0))
                                        goto stall;
-                               if (ctrl.wIndex & USB_DIR_IN) {
+                               if (ctrl.wIndex & __constant_cpu_to_le16(
+                                               USB_DIR_IN)) {
                                        if (!dev->ep[tmp].is_in)
                                                goto stall;
                                } else {
                                        if (dev->ep[tmp].is_in)
                                                goto stall;
                                }
-                               if (ctrl.wValue != USB_ENDPOINT_HALT)
+                               if (ctrl.wValue != __constant_cpu_to_le16(
+                                               USB_ENDPOINT_HALT))
                                        goto stall;
                                if (tmp)
                                        goku_clear_halt(&dev->ep[tmp]);
@@ -1574,7 +1573,7 @@ succeed:
                                return;
                        case USB_RECIP_DEVICE:
                                /* device remote wakeup: always clear */
-                               if (ctrl.wValue != 1)
+                               if (ctrl.wValue != __constant_cpu_to_le16(1))
                                        goto stall;
                                VDBG(dev, "clear dev remote wakeup\n");
                                goto succeed;
@@ -1592,14 +1591,15 @@ succeed:
 #ifdef USB_TRACE
        VDBG(dev, "SETUP %02x.%02x v%04x i%04x l%04x\n",
                ctrl.bRequestType, ctrl.bRequest,
-               ctrl.wValue, ctrl.wIndex, ctrl.wLength);
+               le16_to_cpu(ctrl.wValue), le16_to_cpu(ctrl.wIndex),
+               le16_to_cpu(ctrl.wLength));
 #endif
 
        /* hw wants to know when we're configured (or not) */
        dev->req_config = (ctrl.bRequest == USB_REQ_SET_CONFIGURATION
                                && ctrl.bRequestType == USB_RECIP_DEVICE);
        if (unlikely(dev->req_config))
-               dev->configured = (ctrl.wValue != 0);
+               dev->configured = (ctrl.wValue != __constant_cpu_to_le16(0));
 
        /* delegate everything to the gadget driver.
         * it may respond after this irq handler returns.
@@ -1627,13 +1627,13 @@ stall:
                handled = 1; \
                }
 
-static irqreturn_t goku_irq(int irq, void *_dev, struct pt_regs *r)
+static irqreturn_t goku_irq(int irq, void *_dev)
 {
-       struct goku_udc         *dev = _dev;
-       struct goku_udc_regs    *regs = dev->regs;
-       struct goku_ep          *ep;
-       u32                     stat, handled = 0;
-       unsigned                i, rescans = 5;
+       struct goku_udc                 *dev = _dev;
+       struct goku_udc_regs __iomem    *regs = dev->regs;
+       struct goku_ep                  *ep;
+       u32                             stat, handled = 0;
+       unsigned                        i, rescans = 5;
 
        spin_lock(&dev->lock);
 
@@ -1651,7 +1651,7 @@ rescan:
                        stat = 0;
                        handled = 1;
                        // FIXME have a neater way to prevent re-enumeration
-                       dev->driver = 0;
+                       dev->driver = NULL;
                        goto done;
                }
                if (stat & INT_PWRDETECT) {
@@ -1807,15 +1807,10 @@ static void goku_remove(struct pci_dev *pdev)
        struct goku_udc         *dev = pci_get_drvdata(pdev);
 
        DBG(dev, "%s\n", __FUNCTION__);
-       /* start with the driver above us */
-       if (dev->driver) {
-               /* should have been done already by driver model core */
-               WARN(dev, "pci remove, driver '%s' is still registered\n",
-                               dev->driver->driver.name);
-               usb_gadget_unregister_driver(dev->driver);
-       }
 
-#ifdef UDC_PROC_FILE
+       BUG_ON(dev->driver);
+
+#ifdef CONFIG_USB_GADGET_DEBUG_FILES
        remove_proc_entry(proc_node_name, NULL);
 #endif
        if (dev->regs)
@@ -1831,9 +1826,9 @@ static void goku_remove(struct pci_dev *pdev)
                pci_disable_device(pdev);
        device_unregister(&dev->gadget.dev);
 
-       pci_set_drvdata(pdev, 0);
-       dev->regs = 0;
-       the_controller = 0;
+       pci_set_drvdata(pdev, NULL);
+       dev->regs = NULL;
+       the_controller = NULL;
 
        INFO(dev, "unbind\n");
 }
@@ -1844,11 +1839,10 @@ static void goku_remove(struct pci_dev *pdev)
 
 static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 {
-       struct goku_udc         *dev = 0;
+       struct goku_udc         *dev = NULL;
        unsigned long           resource, len;
-       void                    *base = 0;
+       void __iomem            *base = NULL;
        int                     retval;
-       char                    buf [8], *bufp;
 
        /* if you want to support more than one controller in a system,
         * usb_gadget_driver_{register,unregister}() must change.
@@ -1864,7 +1858,7 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        }
 
        /* alloc, and start init */
-       dev = kmalloc (sizeof *dev, SLAB_KERNEL);
+       dev = kmalloc (sizeof *dev, GFP_KERNEL);
        if (dev == NULL){
                pr_debug("enomem %s\n", pci_name(pdev));
                retval = -ENOMEM;
@@ -1906,25 +1900,19 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                retval = -EFAULT;
                goto done;
        }
-       dev->regs = (struct goku_udc_regs *) base;
+       dev->regs = (struct goku_udc_regs __iomem *) base;
 
        pci_set_drvdata(pdev, dev);
        INFO(dev, "%s\n", driver_desc);
        INFO(dev, "version: " DRIVER_VERSION " %s\n", dmastr());
-#ifndef __sparc__
-       scnprintf(buf, sizeof buf, "%d", pdev->irq);
-       bufp = buf;
-#else
-       bufp = __irq_itoa(pdev->irq);
-#endif
-       INFO(dev, "irq %s, pci mem %p\n", bufp, base);
+       INFO(dev, "irq %d, pci mem %p\n", pdev->irq, base);
 
        /* init to known state, then setup irqs */
        udc_reset(dev);
        udc_reinit (dev);
-       if (request_irq(pdev->irq, goku_irq, SA_SHIRQ/*|SA_SAMPLE_RANDOM*/,
+       if (request_irq(pdev->irq, goku_irq, IRQF_SHARED/*|IRQF_SAMPLE_RANDOM*/,
                        driver_name, dev) != 0) {
-               DBG(dev, "request interrupt %s failed\n", bufp);
+               DBG(dev, "request interrupt %d failed\n", pdev->irq);
                retval = -EBUSY;
                goto done;
        }
@@ -1933,7 +1921,7 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                pci_set_master(pdev);
 
 
-#ifdef UDC_PROC_FILE
+#ifdef CONFIG_USB_GADGET_DEBUG_FILES
        create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev);
 #endif
 
@@ -1976,7 +1964,7 @@ static struct pci_driver goku_pci_driver = {
 
 static int __init init (void)
 {
-       return pci_module_init (&goku_pci_driver);
+       return pci_register_driver (&goku_pci_driver);
 }
 module_init (init);