1008-dmaengine-dw-axi-dmac-Add-StarFive-JH7100-support.patch 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. From c06352c09ce55999d41036e593293a3aaf0cf70c Mon Sep 17 00:00:00 2001
  2. From: Samin Guo <[email protected]>
  3. Date: Wed, 17 Nov 2021 14:50:45 +0800
  4. Subject: [PATCH 1008/1024] dmaengine: dw-axi-dmac: Add StarFive JH7100 support
  5. Signed-off-by: Samin Guo <[email protected]>
  6. Signed-off-by: Emil Renner Berthing <[email protected]>
  7. ---
  8. drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 12 ++++++++++++
  9. drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 4 ++++
  10. 2 files changed, 16 insertions(+)
  11. --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
  12. +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c
  13. @@ -677,8 +677,13 @@ static int dw_axi_dma_set_hw_desc(struct
  14. hw_desc->lli->block_ts_lo = cpu_to_le32(block_ts - 1);
  15. +#ifdef CONFIG_SOC_STARFIVE
  16. + ctllo |= DWAXIDMAC_BURST_TRANS_LEN_16 << CH_CTL_L_DST_MSIZE_POS |
  17. + DWAXIDMAC_BURST_TRANS_LEN_16 << CH_CTL_L_SRC_MSIZE_POS;
  18. +#else
  19. ctllo |= DWAXIDMAC_BURST_TRANS_LEN_4 << CH_CTL_L_DST_MSIZE_POS |
  20. DWAXIDMAC_BURST_TRANS_LEN_4 << CH_CTL_L_SRC_MSIZE_POS;
  21. +#endif
  22. hw_desc->lli->ctl_lo = cpu_to_le32(ctllo);
  23. set_desc_src_master(hw_desc);
  24. @@ -1508,7 +1513,11 @@ static int dw_probe(struct platform_devi
  25. * Therefore, set constraint to 1024 * 4.
  26. */
  27. dw->dma.dev->dma_parms = &dw->dma_parms;
  28. +#ifdef CONFIG_SOC_STARFIVE
  29. + dma_set_max_seg_size(&pdev->dev, DMAC_MAX_BLK_SIZE);
  30. +#else
  31. dma_set_max_seg_size(&pdev->dev, MAX_BLOCK_SIZE);
  32. +#endif
  33. platform_set_drvdata(pdev, chip);
  34. pm_runtime_enable(chip->dev);
  35. @@ -1593,6 +1602,9 @@ static const struct of_device_id dw_dma_
  36. .compatible = "intel,kmb-axi-dma",
  37. .data = (void *)AXI_DMA_FLAG_HAS_APB_REGS,
  38. }, {
  39. + .compatible = "starfive,jh7100-axi-dma",
  40. + .data = (void *)(AXI_DMA_FLAG_HAS_RESETS | AXI_DMA_FLAG_USE_CFG2),
  41. + }, {
  42. .compatible = "starfive,jh7110-axi-dma",
  43. .data = (void *)(AXI_DMA_FLAG_HAS_RESETS | AXI_DMA_FLAG_USE_CFG2),
  44. },
  45. --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h
  46. +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h
  47. @@ -283,7 +283,11 @@ enum {
  48. #define CH_CTL_L_SRC_MAST BIT(0)
  49. /* CH_CFG_H */
  50. +#ifdef CONFIG_SOC_STARFIVE
  51. +#define CH_CFG_H_PRIORITY_POS 15
  52. +#else
  53. #define CH_CFG_H_PRIORITY_POS 17
  54. +#endif
  55. #define CH_CFG_H_DST_PER_POS 12
  56. #define CH_CFG_H_SRC_PER_POS 7
  57. #define CH_CFG_H_HS_SEL_DST_POS 4