On Mon, Nov 12, 2012 at 4:53 PM, Andy Shevchenko
<[email protected]> wrote:
> diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c

>  static int __devinit dw_probe(struct platform_device *pdev)
>  {
>         struct dw_dma_platform_data *pdata;
> @@ -1604,9 +1610,6 @@ static int __devinit dw_probe(struct platform_device 
> *pdev)
>         if (!pdata)
>                 pdata = dw_dma_parse_dt(pdev);
>
> -       if (!pdata || pdata->nr_channels > DW_DMA_MAX_NR_CHANNELS)
> -               return -EINVAL;
> -
>         io = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>         if (!io)
>                 return -EINVAL;
> @@ -1622,6 +1625,12 @@ static int __devinit dw_probe(struct platform_device 
> *pdev)
>         dw_params = dma_read_byaddr(regs, DW_PARAMS);
>         autocfg = dw_params >> DW_PARAMS_EN & 0x1;
>
> +       if (!pdata && autocfg)
> +               pdata = &dw_dma_pdata;

Allocate it dynamically to support multiple controllers with different
configuration
in a SoC.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to