Use optional reset support to avoid having to add a new entry to dw_dma_of_id_table for each target requiring reset support Signed-off-by: Philippe Lecointre <philippe.lecointre@xxxxxxxxxxxxxxx> Acked-by: Simon Lenain <simon.lenain@xxxxxxxxxxxxxxx> --- .../dma/dw-axi-dmac/dw-axi-dmac-platform.c | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index b23536645ff7..186bfb35b9eb 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -48,8 +48,7 @@ DMA_SLAVE_BUSWIDTH_64_BYTES) #define AXI_DMA_FLAG_HAS_APB_REGS BIT(0) -#define AXI_DMA_FLAG_HAS_RESETS BIT(1) -#define AXI_DMA_FLAG_USE_CFG2 BIT(2) +#define AXI_DMA_FLAG_USE_CFG2 BIT(1) static inline void axi_dma_iowrite32(struct axi_dma_chip *chip, u32 reg, u32 val) @@ -1498,15 +1497,13 @@ static int dw_probe(struct platform_device *pdev) return PTR_ERR(chip->apb_regs); } - if (flags & AXI_DMA_FLAG_HAS_RESETS) { - resets = devm_reset_control_array_get_exclusive(&pdev->dev); - if (IS_ERR(resets)) - return PTR_ERR(resets); + resets = devm_reset_control_array_get_optional_exclusive(&pdev->dev); + if (IS_ERR(resets)) + return PTR_ERR(resets); - ret = reset_control_deassert(resets); - if (ret) - return ret; - } + ret = reset_control_deassert(resets); + if (ret) + return ret; chip->dw->hdata->use_cfg2 = !!(flags & AXI_DMA_FLAG_USE_CFG2); @@ -1665,10 +1662,9 @@ static const struct of_device_id dw_dma_of_id_table[] = { .data = (void *)AXI_DMA_FLAG_HAS_APB_REGS, }, { .compatible = "starfive,jh7110-axi-dma", - .data = (void *)(AXI_DMA_FLAG_HAS_RESETS | AXI_DMA_FLAG_USE_CFG2), + .data = (void *)AXI_DMA_FLAG_USE_CFG2, }, { .compatible = "starfive,jh8100-axi-dma", - .data = (void *)AXI_DMA_FLAG_HAS_RESETS, }, {} }; -- 2.44.1