/**
  * 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
  * 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 *,
 
                                pImplChannel->Channel.status =
                                        MUSB_DMA_STATUS_BUS_ABORT;
                        else {
+                               u8 devctl;
+
                                dwAddress = musb_readl(mbase,
                                                MUSB_HSDMA_CHANNEL_OFFSET(
                                                        bChannel,
                                                < pImplChannel->len) ?
                                        "=> reconfig 0": "=> complete");
 
-                               u8 devctl = musb_readb(mbase,
-                                               MUSB_DEVCTL);
+                               devctl = musb_readb(mbase, MUSB_DEVCTL);
 
                                pChannel->status = MUSB_DMA_STATUS_FREE;
 
 
 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;
 
                free_irq(controller->irq, c);
 
        kfree(controller);
-       c->private_data = NULL;
 }
 
 struct dma_controller *__init
        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;
 
        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;