.. | .. |
---|
154 | 154 | fsl_re_issue_pending(&re_chan->chan); |
---|
155 | 155 | } |
---|
156 | 156 | |
---|
157 | | -static void fsl_re_dequeue(unsigned long data) |
---|
| 157 | +static void fsl_re_dequeue(struct tasklet_struct *t) |
---|
158 | 158 | { |
---|
159 | | - struct fsl_re_chan *re_chan; |
---|
| 159 | + struct fsl_re_chan *re_chan = from_tasklet(re_chan, t, irqtask); |
---|
160 | 160 | struct fsl_re_desc *desc, *_desc; |
---|
161 | 161 | struct fsl_re_hw_desc *hwdesc; |
---|
162 | 162 | unsigned long flags; |
---|
163 | 163 | unsigned int count, oub_count; |
---|
164 | 164 | int found; |
---|
165 | | - |
---|
166 | | - re_chan = dev_get_drvdata((struct device *)data); |
---|
167 | 165 | |
---|
168 | 166 | fsl_re_cleanup_descs(re_chan); |
---|
169 | 167 | |
---|
.. | .. |
---|
671 | 669 | snprintf(chan->name, sizeof(chan->name), "re_jr%02d", q); |
---|
672 | 670 | |
---|
673 | 671 | chandev = &chan_ofdev->dev; |
---|
674 | | - tasklet_init(&chan->irqtask, fsl_re_dequeue, (unsigned long)chandev); |
---|
| 672 | + tasklet_setup(&chan->irqtask, fsl_re_dequeue); |
---|
675 | 673 | |
---|
676 | 674 | ret = request_irq(chan->irq, fsl_re_isr, 0, chan->name, chandev); |
---|
677 | 675 | if (ret) { |
---|