[PATCH v6 00/10] Add device tree support for PL330 dma controller driver

Kukjin Kim kgene.kim at samsung.com
Tue Oct 11 08:06:50 EDT 2011


Thomas Abraham wrote:
> 
> Changes since v5:
> - Added alias clocks for pdma clocks on Exynos4.
> - Modified platform data for s5p64x0, s5pc100 and s5pv210.
> - Rebased on the tip of for-next branch of linux-samsung kernel and
tested.
> 
> Changes since v4:
> - Rebased with Samsung maintainer's for-next branch which is at
linux-3.1-rc7
>   - Modified Patch 6/6 to apply cleanly.
> 
> Changes since v3:
> - In Patch 4/6, a recommendation is added in the pl330 binding
documentation
>   for the name of the property which specifies the dma channel in the
client
>   device node.
> - In Patch 6/6, dropped #ifdef around of_have_populated_dt.
> 
> Changes since v2:
> - Only the sixth patch is changed, to make dma platform data conditionally
>   selectable.
> - Tested with v8 version of pl330 dma driver update patches from Boojin
Kim.
> 
> Changes since v1:
> - Removed "arm,pl330-pdma" and "arm,pl330-mdma" compatible values.
> - Removed "arm,primecell-periphid" and "arm,pl330-peri-reqs"
>   property requirements.
> 
> This patchset adds device tree support for PL330 driver and uses it to add
> device tree support for Samsung platforms, specifically Exynos4.
> 
> Patch 1 moves the pl330_filter function from Samsung specific wrappers to
pl330
> dma driver and also adds a check to ensure that the filter function
proceeds
> only if it the dma channel being investigated belongs to pl330 dma
controller
> instance.
> 
> Patch 2 adds support to infer the direction of the dma transfer using the
> direction specified with the transfer request instead of including this
> information in the platform data. This simlifies the addition of device
tree
> support. Patch 3 simplifies the platform data for Exynos4 pl330 dma
controllers.
> 
> Patch 4 adds device tree support for pl330 dma controller driver. A dma
channel
> is represented using a phandle of the dma controller node and the channel
id
> within that controller. Client driver request a dma channel using the
phandle
> and channel id pair. Correspondingly, the pl330 filter function has been
> modified to lookup a channel based on this value.
> 
> Patch 5 adds device tree support for Samsung's DMA engine wrappers. Client
> drivers retrive the channel property from their device node and pass it to
the
> wrappers. The wrapper functions use the property value as the filter
function
> parameter. Patch 6 restricts the usage of pl330 device and platform data
> instances to non-dt platforms.
> 
> Patch 7 adds clock alias for both the pdma clocks. When pdma controllers
are
> instantiated from device tree, the amba device registration process
enables
> clock to the controllers to read the peripheral id of the PDMA amba
device. In
> case of Exynos4, the clocks to the PDMA controllers are named as 'dma' but
> amba_device_register() looks up the clock using the name 'apb_pclk'.
Hence,
> alias clocks with name 'apb_pclk' clock are created for clocks with name
'dma'.
> 
> Patch 8 to 10 simplifies the pdma platform data for s5p64x0, s5pc100 and
> s5pv210.
> 
> This patchset is based on the following tree:
> https://github.com/kgene/linux-samsung.git   branch: for-next
> 
> and tested tested for both device-tree and non-device-tree kernel on
smdkv310.
> 
> This patchset has dependency on the following patchset.
> [PATCH V2 0/2] Add a common macro for creating struct clk_lookup entries.
> 
> 
> Thomas Abraham (10):
>   DMA: PL330: move filter function into driver
>   DMA: PL330: Infer transfer direction from transfer request instead of
platform
> data
>   ARM: EXYNOS4: Modify platform data for pl330 driver
>   DMA: PL330: Add device tree support
>   ARM: SAMSUNG: Add device tree support for pl330 dma engine wrappers
>   ARM: EXYNOS4: Limit usage of pl330 device instance to non-dt build
>   ARM: Exynos4: Add a alias for pdma clocks
>   ARM: S5P64x0: Modify platform data for pl330 driver
>   ARM: S5PC100: Modify platform data for pl330 driver
>   ARM: S5PV210: Modify platform data for pl330 driver
> 
>  .../devicetree/bindings/dma/arm-pl330.txt          |   30 +++
>  arch/arm/mach-exynos4/Kconfig                      |   10 +
>  arch/arm/mach-exynos4/Makefile                     |    3 +-
>  arch/arm/mach-exynos4/clock.c                      |   35 ++-
>  arch/arm/mach-exynos4/dma.c                        |  227
++++++-----------
> --
>  arch/arm/mach-s5p64x0/dma.c                        |  227
+++++-------------
>  arch/arm/mach-s5pc100/dma.c                        |  247
++++++-----------
> ---
>  arch/arm/mach-s5pv210/dma.c                        |  241
++++++-----------
> ---
>  arch/arm/plat-samsung/dma-ops.c                    |   15 +-
>  arch/arm/plat-samsung/include/plat/dma-ops.h       |    1 +
>  arch/arm/plat-samsung/include/plat/dma-pl330.h     |    3 +-
>  drivers/dma/pl330.c                                |   99 +++++----
>  include/linux/amba/pl330.h                         |   15 +-
>  13 files changed, 405 insertions(+), 748 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/dma/arm-pl330.txt

Hi,

Looks ok to me and if required,
Acked-by: Kukjin Kim <kgene.kim at samsung.com>

And I hope since this includes many changes of arch/arm/Samsung stuff, this
would be sent to upstream via Samsung tree after ack from Vinod for dma
stuff.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.




More information about the linux-arm-kernel mailing list