mbox series

[v9,0/2] Add support for Loongson1 APB DMA

Message ID 20240613-loongson1-dma-v9-0-6181f2c7dece@gmail.com (mailing list archive)
Headers show
Series Add support for Loongson1 APB DMA | expand

Message

Keguang Zhang via B4 Relay June 13, 2024, 11:48 a.m. UTC
Add the driver and dt-binding document for Loongson1 APB DMA.

---
Changes in v9:
- Fix all the errors and warnings when building with W=1 and C=1
- Link to v8: https://lore.kernel.org/r/20240607-loongson1-dma-v8-0-f9992d257250@gmail.com

Changes in v8:
- Change 'interrupts' property to an items list
- Link to v7: https://lore.kernel.org/r/20240329-loongson1-dma-v7-0-37db58608de5@gmail.com

Changes in v7:
- Change the comptible to 'loongson,ls1*-apbdma' (suggested by Huacai Chen)
- Update the title and description part accordingly
- Rename the file to loongson,ls1b-apbdma.yaml
- Add a compatible string for LS1A
- Delete minItems of 'interrupts'
- Change patterns of 'interrupt-names' to const
- Rename the file to loongson1-apb-dma.c to keep the consistency
- Update Kconfig and Makefile accordingly
- Link to v6: https://lore.kernel.org/r/20240316-loongson1-dma-v6-0-90de2c3cc928@gmail.com

Changes in v6:
- Change the compatible to the fallback
- Implement .device_prep_dma_cyclic for Loongson1 sound driver,
- as well as .device_pause and .device_resume.
- Set the limitation LS1X_DMA_MAX_DESC and put all descriptors
- into one page to save memory
- Move dma_pool_zalloc() into ls1x_dma_alloc_desc()
- Drop dma_slave_config structure
- Use .remove_new instead of .remove
- Use KBUILD_MODNAME for the driver name
- Improve the debug information
- Some minor fixes

Changes in v5:
- Add the dt-binding document
- Add DT support
- Use DT information instead of platform data
- Use chan_id of struct dma_chan instead of own id
- Use of_dma_xlate_by_chan_id() instead of ls1x_dma_filter()
- Update the author information to my official name

Changes in v4:
- Use dma_slave_map to find the proper channel.
- Explicitly call devm_request_irq() and tasklet_kill().
- Fix namespace issue.
- Some minor fixes and cleanups.

Changes in v3:
- Rename ls1x_dma_filter_fn to ls1x_dma_filter.

Changes in v2:
- Change the config from 'DMA_LOONGSON1' to 'LOONGSON1_DMA',
- and rearrange it in alphabetical order in Kconfig and Makefile.
- Fix comment style.

---
Keguang Zhang (2):
      dt-bindings: dma: Add Loongson-1 APB DMA
      dmaengine: Loongson1: Add Loongson-1 APB DMA driver

 .../bindings/dma/loongson,ls1b-apbdma.yaml         |  67 +++
 drivers/dma/Kconfig                                |   9 +
 drivers/dma/Makefile                               |   1 +
 drivers/dma/loongson1-apb-dma.c                    | 665 +++++++++++++++++++++
 4 files changed, 742 insertions(+)
---
base-commit: d35b2284e966c0bef3e2182a5c5ea02177dd32e4
change-id: 20231120-loongson1-dma-163afe5708b9

Best regards,

Comments

Huacai Chen June 13, 2024, 3:10 p.m. UTC | #1
Hi, Keguang,

On Thu, Jun 13, 2024 at 8:03 PM Keguang Zhang via B4 Relay
<devnull+keguang.zhang.gmail.com@kernel.org> wrote:
>
> Add the driver and dt-binding document for Loongson1 APB DMA.
I still suggest using ls1x-apb-dma.c as the file name, for consistency
in the same subsystem. But as I said before, I will also accept some
of your suggestions, so I use loongson3_cpufreq.c here.

https://lore.kernel.org/loongarch/20240612064205.2041548-1-chenhuacai@loongson.cn/T/#t

Huacai
>
> ---
> Changes in v9:
> - Fix all the errors and warnings when building with W=1 and C=1
> - Link to v8: https://lore.kernel.org/r/20240607-loongson1-dma-v8-0-f9992d257250@gmail.com
>
> Changes in v8:
> - Change 'interrupts' property to an items list
> - Link to v7: https://lore.kernel.org/r/20240329-loongson1-dma-v7-0-37db58608de5@gmail.com
>
> Changes in v7:
> - Change the comptible to 'loongson,ls1*-apbdma' (suggested by Huacai Chen)
> - Update the title and description part accordingly
> - Rename the file to loongson,ls1b-apbdma.yaml
> - Add a compatible string for LS1A
> - Delete minItems of 'interrupts'
> - Change patterns of 'interrupt-names' to const
> - Rename the file to loongson1-apb-dma.c to keep the consistency
> - Update Kconfig and Makefile accordingly
> - Link to v6: https://lore.kernel.org/r/20240316-loongson1-dma-v6-0-90de2c3cc928@gmail.com
>
> Changes in v6:
> - Change the compatible to the fallback
> - Implement .device_prep_dma_cyclic for Loongson1 sound driver,
> - as well as .device_pause and .device_resume.
> - Set the limitation LS1X_DMA_MAX_DESC and put all descriptors
> - into one page to save memory
> - Move dma_pool_zalloc() into ls1x_dma_alloc_desc()
> - Drop dma_slave_config structure
> - Use .remove_new instead of .remove
> - Use KBUILD_MODNAME for the driver name
> - Improve the debug information
> - Some minor fixes
>
> Changes in v5:
> - Add the dt-binding document
> - Add DT support
> - Use DT information instead of platform data
> - Use chan_id of struct dma_chan instead of own id
> - Use of_dma_xlate_by_chan_id() instead of ls1x_dma_filter()
> - Update the author information to my official name
>
> Changes in v4:
> - Use dma_slave_map to find the proper channel.
> - Explicitly call devm_request_irq() and tasklet_kill().
> - Fix namespace issue.
> - Some minor fixes and cleanups.
>
> Changes in v3:
> - Rename ls1x_dma_filter_fn to ls1x_dma_filter.
>
> Changes in v2:
> - Change the config from 'DMA_LOONGSON1' to 'LOONGSON1_DMA',
> - and rearrange it in alphabetical order in Kconfig and Makefile.
> - Fix comment style.
>
> ---
> Keguang Zhang (2):
>       dt-bindings: dma: Add Loongson-1 APB DMA
>       dmaengine: Loongson1: Add Loongson-1 APB DMA driver
>
>  .../bindings/dma/loongson,ls1b-apbdma.yaml         |  67 +++
>  drivers/dma/Kconfig                                |   9 +
>  drivers/dma/Makefile                               |   1 +
>  drivers/dma/loongson1-apb-dma.c                    | 665 +++++++++++++++++++++
>  4 files changed, 742 insertions(+)
> ---
> base-commit: d35b2284e966c0bef3e2182a5c5ea02177dd32e4
> change-id: 20231120-loongson1-dma-163afe5708b9
>
> Best regards,
> --
> Keguang Zhang <keguang.zhang@gmail.com>
>
>
>
Keguang Zhang June 14, 2024, 2:12 a.m. UTC | #2
Hi Huacai,

On Thu, Jun 13, 2024 at 11:11 PM Huacai Chen <chenhuacai@kernel.org> wrote:
>
> Hi, Keguang,
>
> On Thu, Jun 13, 2024 at 8:03 PM Keguang Zhang via B4 Relay
> <devnull+keguang.zhang.gmail.com@kernel.org> wrote:
> >
> > Add the driver and dt-binding document for Loongson1 APB DMA.
> I still suggest using ls1x-apb-dma.c as the file name, for consistency
> in the same subsystem. But as I said before, I will also accept some
> of your suggestions, so I use loongson3_cpufreq.c here.
>
> https://lore.kernel.org/loongarch/20240612064205.2041548-1-chenhuacai@loongson.cn/T/#t
>
As we discussed in the previous email, ‘ls1x’ is not a good naming
because it is too short and may be confused with other SoCs.
https://lore.kernel.org/all/CAJhJPsULnEfTMFK5HS5TQZ_0XSs77Tw58Yfvw67BtTTHvjSLLw@mail.gmail.com/
I insist on ‘loongson1’ due to the following reasons:
1. The meaning of ‘Loongson1’ is clear to everyone.
2. Most of the Loongson drivers use the naming 'loongson'.
3. Most of the Loongson1 drivers use the naming 'loongson1'.

My suggestion is to rename 'ls2x-apb-dma.c' to 'loongson2-apb-dma.c'.

Hi Vinod,
What's your opinion about the naming?
Thanks!

> Huacai
> >
> > ---
> > Changes in v9:
> > - Fix all the errors and warnings when building with W=1 and C=1
> > - Link to v8: https://lore.kernel.org/r/20240607-loongson1-dma-v8-0-f9992d257250@gmail.com
> >
> > Changes in v8:
> > - Change 'interrupts' property to an items list
> > - Link to v7: https://lore.kernel.org/r/20240329-loongson1-dma-v7-0-37db58608de5@gmail.com
> >
> > Changes in v7:
> > - Change the comptible to 'loongson,ls1*-apbdma' (suggested by Huacai Chen)
> > - Update the title and description part accordingly
> > - Rename the file to loongson,ls1b-apbdma.yaml
> > - Add a compatible string for LS1A
> > - Delete minItems of 'interrupts'
> > - Change patterns of 'interrupt-names' to const
> > - Rename the file to loongson1-apb-dma.c to keep the consistency
> > - Update Kconfig and Makefile accordingly
> > - Link to v6: https://lore.kernel.org/r/20240316-loongson1-dma-v6-0-90de2c3cc928@gmail.com
> >
> > Changes in v6:
> > - Change the compatible to the fallback
> > - Implement .device_prep_dma_cyclic for Loongson1 sound driver,
> > - as well as .device_pause and .device_resume.
> > - Set the limitation LS1X_DMA_MAX_DESC and put all descriptors
> > - into one page to save memory
> > - Move dma_pool_zalloc() into ls1x_dma_alloc_desc()
> > - Drop dma_slave_config structure
> > - Use .remove_new instead of .remove
> > - Use KBUILD_MODNAME for the driver name
> > - Improve the debug information
> > - Some minor fixes
> >
> > Changes in v5:
> > - Add the dt-binding document
> > - Add DT support
> > - Use DT information instead of platform data
> > - Use chan_id of struct dma_chan instead of own id
> > - Use of_dma_xlate_by_chan_id() instead of ls1x_dma_filter()
> > - Update the author information to my official name
> >
> > Changes in v4:
> > - Use dma_slave_map to find the proper channel.
> > - Explicitly call devm_request_irq() and tasklet_kill().
> > - Fix namespace issue.
> > - Some minor fixes and cleanups.
> >
> > Changes in v3:
> > - Rename ls1x_dma_filter_fn to ls1x_dma_filter.
> >
> > Changes in v2:
> > - Change the config from 'DMA_LOONGSON1' to 'LOONGSON1_DMA',
> > - and rearrange it in alphabetical order in Kconfig and Makefile.
> > - Fix comment style.
> >
> > ---
> > Keguang Zhang (2):
> >       dt-bindings: dma: Add Loongson-1 APB DMA
> >       dmaengine: Loongson1: Add Loongson-1 APB DMA driver
> >
> >  .../bindings/dma/loongson,ls1b-apbdma.yaml         |  67 +++
> >  drivers/dma/Kconfig                                |   9 +
> >  drivers/dma/Makefile                               |   1 +
> >  drivers/dma/loongson1-apb-dma.c                    | 665 +++++++++++++++++++++
> >  4 files changed, 742 insertions(+)
> > ---
> > base-commit: d35b2284e966c0bef3e2182a5c5ea02177dd32e4
> > change-id: 20231120-loongson1-dma-163afe5708b9
> >
> > Best regards,
> > --
> > Keguang Zhang <keguang.zhang@gmail.com>
> >
> >
> >
Keguang Zhang June 28, 2024, 12:07 p.m. UTC | #3
Hi Vinod,
Sorry to bother you.
For this patchset, is there anything that needs improvement?
Thank very much!


On Thu, Jun 13, 2024 at 7:50 PM Keguang Zhang via B4 Relay
<devnull+keguang.zhang.gmail.com@kernel.org> wrote:
>
> Add the driver and dt-binding document for Loongson1 APB DMA.
>
> ---
> Changes in v9:
> - Fix all the errors and warnings when building with W=1 and C=1
> - Link to v8: https://lore.kernel.org/r/20240607-loongson1-dma-v8-0-f9992d257250@gmail.com
>
> Changes in v8:
> - Change 'interrupts' property to an items list
> - Link to v7: https://lore.kernel.org/r/20240329-loongson1-dma-v7-0-37db58608de5@gmail.com
>
> Changes in v7:
> - Change the comptible to 'loongson,ls1*-apbdma' (suggested by Huacai Chen)
> - Update the title and description part accordingly
> - Rename the file to loongson,ls1b-apbdma.yaml
> - Add a compatible string for LS1A
> - Delete minItems of 'interrupts'
> - Change patterns of 'interrupt-names' to const
> - Rename the file to loongson1-apb-dma.c to keep the consistency
> - Update Kconfig and Makefile accordingly
> - Link to v6: https://lore.kernel.org/r/20240316-loongson1-dma-v6-0-90de2c3cc928@gmail.com
>
> Changes in v6:
> - Change the compatible to the fallback
> - Implement .device_prep_dma_cyclic for Loongson1 sound driver,
> - as well as .device_pause and .device_resume.
> - Set the limitation LS1X_DMA_MAX_DESC and put all descriptors
> - into one page to save memory
> - Move dma_pool_zalloc() into ls1x_dma_alloc_desc()
> - Drop dma_slave_config structure
> - Use .remove_new instead of .remove
> - Use KBUILD_MODNAME for the driver name
> - Improve the debug information
> - Some minor fixes
>
> Changes in v5:
> - Add the dt-binding document
> - Add DT support
> - Use DT information instead of platform data
> - Use chan_id of struct dma_chan instead of own id
> - Use of_dma_xlate_by_chan_id() instead of ls1x_dma_filter()
> - Update the author information to my official name
>
> Changes in v4:
> - Use dma_slave_map to find the proper channel.
> - Explicitly call devm_request_irq() and tasklet_kill().
> - Fix namespace issue.
> - Some minor fixes and cleanups.
>
> Changes in v3:
> - Rename ls1x_dma_filter_fn to ls1x_dma_filter.
>
> Changes in v2:
> - Change the config from 'DMA_LOONGSON1' to 'LOONGSON1_DMA',
> - and rearrange it in alphabetical order in Kconfig and Makefile.
> - Fix comment style.
>
> ---
> Keguang Zhang (2):
>       dt-bindings: dma: Add Loongson-1 APB DMA
>       dmaengine: Loongson1: Add Loongson-1 APB DMA driver
>
>  .../bindings/dma/loongson,ls1b-apbdma.yaml         |  67 +++
>  drivers/dma/Kconfig                                |   9 +
>  drivers/dma/Makefile                               |   1 +
>  drivers/dma/loongson1-apb-dma.c                    | 665 +++++++++++++++++++++
>  4 files changed, 742 insertions(+)
> ---
> base-commit: d35b2284e966c0bef3e2182a5c5ea02177dd32e4
> change-id: 20231120-loongson1-dma-163afe5708b9
>
> Best regards,
> --
> Keguang Zhang <keguang.zhang@gmail.com>
>
>


--
Best regards,

Keguang Zhang