Skip to content

Commit

Permalink
dmaengine: lgm: Move DT parsing after initialization
Browse files Browse the repository at this point in the history
ldma_cfg_init() will parse DT to retrieve certain configs.
However, that is called before ldma_dma_init_vXX(), which
will make some initialization to channel configs. It will
thus incorrectly overwrite certain configs that are declared
in DT.

To fix that, we move DT parsing after initialization.
Function name is renamed to better represent what it does.

Fixes: 32d31c7 ("dmaengine: Add Intel LGM SoC DMA support.")
Signed-off-by: Peter Harliman Liem <pliem@maxlinear.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/afef6fc1ed20098b684e0d53737d69faf63c125f.1672887183.git.pliem@maxlinear.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
  • Loading branch information
pliem-mxl authored and vinodkoul committed Jan 18, 2023
1 parent f96a483 commit 96b3bb1
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions drivers/dma/lgm/lgm-dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -914,7 +914,7 @@ static void ldma_dev_init(struct ldma_dev *d)
}
}

static int ldma_cfg_init(struct ldma_dev *d)
static int ldma_parse_dt(struct ldma_dev *d)
{
struct fwnode_handle *fwnode = dev_fwnode(d->dev);
struct ldma_port *p;
Expand Down Expand Up @@ -1661,10 +1661,6 @@ static int intel_ldma_probe(struct platform_device *pdev)
p->ldev = d;
}

ret = ldma_cfg_init(d);
if (ret)
return ret;

dma_dev->dev = &pdev->dev;

ch_mask = (unsigned long)d->channels_mask;
Expand All @@ -1675,6 +1671,10 @@ static int intel_ldma_probe(struct platform_device *pdev)
ldma_dma_init_v3X(j, d);
}

ret = ldma_parse_dt(d);
if (ret)
return ret;

dma_dev->device_alloc_chan_resources = ldma_alloc_chan_resources;
dma_dev->device_free_chan_resources = ldma_free_chan_resources;
dma_dev->device_terminate_all = ldma_terminate_all;
Expand Down

0 comments on commit 96b3bb1

Please sign in to comment.