proc: mandate ->proc_lseek in "struct proc_ops"
[linux-2.6-microblaze.git] / drivers / dma / iop-adma.c
index 3350bff..310b899 100644 (file)
@@ -238,9 +238,10 @@ iop_adma_slot_cleanup(struct iop_adma_chan *iop_chan)
        spin_unlock_bh(&iop_chan->lock);
 }
 
-static void iop_adma_tasklet(unsigned long data)
+static void iop_adma_tasklet(struct tasklet_struct *t)
 {
-       struct iop_adma_chan *iop_chan = (struct iop_adma_chan *) data;
+       struct iop_adma_chan *iop_chan = from_tasklet(iop_chan, t,
+                                                     irq_tasklet);
 
        /* lockdep will flag depedency submissions as potentially
         * recursive locking, this is not the case as a dependency
@@ -416,6 +417,7 @@ static void iop_chan_start_null_xor(struct iop_adma_chan *iop_chan);
 static int iop_adma_alloc_chan_resources(struct dma_chan *chan)
 {
        char *hw_desc;
+       dma_addr_t dma_desc;
        int idx;
        struct iop_adma_chan *iop_chan = to_iop_adma_chan(chan);
        struct iop_adma_desc_slot *slot = NULL;
@@ -444,9 +446,8 @@ static int iop_adma_alloc_chan_resources(struct dma_chan *chan)
                INIT_LIST_HEAD(&slot->tx_list);
                INIT_LIST_HEAD(&slot->chain_node);
                INIT_LIST_HEAD(&slot->slot_node);
-               hw_desc = (char *) iop_chan->device->dma_desc_pool;
-               slot->async_tx.phys =
-                       (dma_addr_t) &hw_desc[idx * IOP_ADMA_SLOT_SIZE];
+               dma_desc = iop_chan->device->dma_desc_pool;
+               slot->async_tx.phys = dma_desc + idx * IOP_ADMA_SLOT_SIZE;
                slot->idx = idx;
 
                spin_lock_bh(&iop_chan->lock);
@@ -1296,9 +1297,8 @@ static int iop_adma_probe(struct platform_device *pdev)
                goto err_free_adev;
        }
 
-       dev_dbg(&pdev->dev, "%s: allocated descriptor pool virt %p phys %p\n",
-               __func__, adev->dma_desc_pool_virt,
-               (void *) adev->dma_desc_pool);
+       dev_dbg(&pdev->dev, "%s: allocated descriptor pool virt %p phys %pad\n",
+               __func__, adev->dma_desc_pool_virt, &adev->dma_desc_pool);
 
        adev->id = plat_data->hw_id;
 
@@ -1351,8 +1351,7 @@ static int iop_adma_probe(struct platform_device *pdev)
                ret = -ENOMEM;
                goto err_free_iop_chan;
        }
-       tasklet_init(&iop_chan->irq_tasklet, iop_adma_tasklet, (unsigned long)
-               iop_chan);
+       tasklet_setup(&iop_chan->irq_tasklet, iop_adma_tasklet);
 
        /* clear errors before enabling interrupts */
        iop_adma_device_clear_err_status(iop_chan);