Re: [PATCH] dmaengine: at_hdmac: ioremap and get irq early

Rosen Penev <[email protected]>
Newsgroups org.kernel.vger.dmaengine,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel
Message-ID <CAKxU2N8SvNqQB6g-esc-+KpO0sNKHAB7EiE9FWbg7Dv41=5MGQ@mail.gmail.com>
On Wed, Aug 19, 2026 at 12:50 PM Frank Li <[email protected]> wrote:
>
> On Wed, Jul 22, 2026 at 10:06:06PM -0700, Rosen Penev wrote:
> > The functions can return -EPROBE_DEFER. Call them before anything else
> > to avoid doing extra work.
>
> just move before one devm_kalloc(), I have not seen much beanfit for it.
Not sure I follow. devm_platform_ioremap_resource() and
platform_get_irq() just need a platform_device pointer.
>
> Frank
>
> >
> > Signed-off-by: Rosen Penev <[email protected]>
> > ---
> >  drivers/dma/at_hdmac.c | 17 ++++++++++-------
> >  1 file changed, 10 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
> > index e5b30a57c477..2f6f5877fc3c 100644
> > --- a/drivers/dma/at_hdmac.c
> > +++ b/drivers/dma/at_hdmac.c
> > @@ -1943,11 +1943,20 @@ static void at_dma_off(struct at_dma *atdma)
> >  static int __init at_dma_probe(struct platform_device *pdev)
> >  {
> >       struct at_dma           *atdma;
> > +     void __iomem            *regs;
> >       int                     irq;
> >       int                     err;
> >       int                     i;
> >       const struct at_dma_platform_data *plat_dat;
> >
> > +     regs = devm_platform_ioremap_resource(pdev, 0);
> > +     if (IS_ERR(regs))
> > +             return PTR_ERR(regs);
> > +
> > +     irq = platform_get_irq(pdev, 0);
> > +     if (irq < 0)
> > +             return irq;
> > +
> >       /* setup platform data for each SoC */
> >       dma_cap_set(DMA_MEMCPY, at91sam9rl_config.cap_mask);
> >       dma_cap_set(DMA_INTERLEAVE, at91sam9g45_config.cap_mask);
> > @@ -1968,13 +1977,7 @@ static int __init at_dma_probe(struct platform_device *pdev)
> >       if (!atdma)
> >               return -ENOMEM;
> >
> > -     atdma->regs = devm_platform_ioremap_resource(pdev, 0);
> > -     if (IS_ERR(atdma->regs))
> > -             return PTR_ERR(atdma->regs);
> > -
> > -     irq = platform_get_irq(pdev, 0);
> > -     if (irq < 0)
> > -             return irq;
> > +     atdma->regs = regs;
> >
> >       /* discover transaction capabilities */
> >       atdma->dma_device.cap_mask = plat_dat->cap_mask;
> > --
> > 2.55.0
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.