]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
rest of dma_controller.private_data updates
authorDavid Brownell <david-b@pacbell.net>
Fri, 12 Oct 2007 21:24:51 +0000 (14:24 -0700)
committerTony Lindgren <tony@atomide.com>
Sat, 13 Oct 2007 02:46:31 +0000 (19:46 -0700)
Finish getting rid of dma_controller.private data, fixing a bug
related to the previous DaVinci private_data fix.  Also get rid
of a compiler warning in the 2430 dma code.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
drivers/usb/musb/musb_core.c
drivers/usb/musb/musb_dma.h
drivers/usb/musb/musbhsdma.c
drivers/usb/musb/tusb6010_omap.c

index dc934dcea8c1bcaa37fbf0d6d15e51674722082a..ac9ce46097ebf79b2e6e2d8c9b491d0d4068d1d2 100644 (file)
@@ -1849,7 +1849,7 @@ static void musb_free(struct musb *musb)
        if (is_dma_capable() && musb->dma_controller) {
                struct dma_controller   *c = musb->dma_controller;
 
-               (void) c->stop(c->private_data);
+               (void) c->stop(c);
                dma_controller_destroy(c);
        }
 
index 7a9fc89973fb266cc07fd13e1d95a690d29debf6..0a2c4e3602c1bce77ab28cec193e5ea51d1bfda6 100644 (file)
@@ -136,7 +136,6 @@ dma_channel_status(struct dma_channel *c)
 
 /**
  * struct dma_controller - A DMA Controller.
- * @private_data: controller-private data;
  * @start: call this to start a DMA controller;
  *     return 0 on success, else negative errno
  * @stop: call this to stop a DMA controller
@@ -149,7 +148,6 @@ dma_channel_status(struct dma_channel *c)
  * Controllers manage dma channels.
  */
 struct dma_controller {
-       void                    *private_data;
        int                     (*start)(struct dma_controller *);
        int                     (*stop)(struct dma_controller *);
        struct dma_channel      *(*channel_alloc)(struct dma_controller *,
index 589ca80a64e50ef943ef65854b47345f51577131..97fd14659d8b07ccf6ff43458eee6eb7e506e14c 100644 (file)
@@ -326,6 +326,8 @@ static irqreturn_t dma_controller_irq(int irq, void *private_data)
                                pImplChannel->Channel.status =
                                        MUSB_DMA_STATUS_BUS_ABORT;
                        else {
+                               u8 devctl;
+
                                dwAddress = musb_readl(mbase,
                                                MUSB_HSDMA_CHANNEL_OFFSET(
                                                        bChannel,
@@ -341,8 +343,7 @@ static irqreturn_t dma_controller_irq(int irq, void *private_data)
                                                < pImplChannel->len) ?
                                        "=> reconfig 0": "=> complete");
 
-                               u8 devctl = musb_readb(mbase,
-                                               MUSB_DEVCTL);
+                               devctl = musb_readb(mbase, MUSB_DEVCTL);
 
                                pChannel->status = MUSB_DMA_STATUS_FREE;
 
@@ -376,9 +377,9 @@ done:
 
 void dma_controller_destroy(struct dma_controller *c)
 {
-       struct musb_dma_controller *controller =
-               (struct musb_dma_controller *) c->private_data;
+       struct musb_dma_controller *controller;
 
+       controller = container_of(c, struct musb_dma_controller, Controller);
        if (!controller)
                return;
 
@@ -386,7 +387,6 @@ void dma_controller_destroy(struct dma_controller *c)
                free_irq(controller->irq, c);
 
        kfree(controller);
-       c->private_data = NULL;
 }
 
 struct dma_controller *__init
@@ -410,7 +410,6 @@ dma_controller_create(struct musb *musb, void __iomem *pCoreBase)
        controller->pDmaPrivate = musb;
        controller->pCoreBase = pCoreBase;
 
-       controller->Controller.private_data = controller;
        controller->Controller.start = dma_controller_start;
        controller->Controller.stop = dma_controller_stop;
        controller->Controller.channel_alloc = dma_channel_allocate;
index 09a6a3cc8e1511149ab5f01dc6b8c99a607623fd..0c951fe6ce5fee58572b22a12d8b140117aa871a 100644 (file)
@@ -689,7 +689,6 @@ dma_controller_create(struct musb *musb, void __iomem *base)
        tusb_dma->controller.channel_release = tusb_omap_dma_release;
        tusb_dma->controller.channel_program = tusb_omap_dma_program;
        tusb_dma->controller.channel_abort = tusb_omap_dma_abort;
-       tusb_dma->controller.private_data = tusb_dma;
 
        if (tusb_get_revision(musb) >= TUSB_REV_30)
                tusb_dma->multichannel = 1;