This patch set implements support for i2s audio and new AMD GPUs. The i2s codec is fed by a DMA engine on the GPU. To handle this we create an mfd cell which we can hang the i2s codec on. Because of this, this patch set covers two subsystems: drm and alsa. The drm patches add support for the ACP hw block which provides the DMA engine for the i2s codec. The alsa patches add the ASoC driver for the i2s codec. Since the alsa changes depend on the drm changes in this patch set as well as some other drm changes queued for 4.3, I'd like to take the alsa patches in via the drm tree.
V2 changes: - Use the MFD subsystem rather than adding our own bus - Squash all sub-feature patches together - fix comments mentioned in previous review
There was a question about the code and the module licensing. IANAL, but this follows the same pattern that most if not all drm drivers use.
There was also a comment about the patch changelog. I think this is more of a subsystem preference kind of thing. Generally in the drm we include the patch changelog and versions in the commit messages so we have a history of the patch if we need to reference it in the future. If you have a strong preference for the audio patch, we can drop that.
Patch 1 adds the register headers for the ACP block which is a pretty big patch so I've excluded it from email. The entire patch set can be viewed here: http://cgit.freedesktop.org/~agd5f/linux/log/?h=acp-upstream2
Thanks,
Alex
Chunming Zhou (1): drm/amd: add ACP 2.x register headers
Maruthi Bayyavarapu (1): drm/amd: add ACP driver support [v6]
Maruthi Srinivas Bayyavarapu (1): ASoC: AMD: add AMD ASoC ACP-I2S driver [v4]
drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/amd/acp/Kconfig | 10 + drivers/gpu/drm/amd/acp/Makefile | 9 + drivers/gpu/drm/amd/acp/acp_hw.c | 1133 ++++++++++ drivers/gpu/drm/amd/acp/acp_hw.h | 91 + drivers/gpu/drm/amd/acp/include/acp_gfx_if.h | 49 + drivers/gpu/drm/amd/amdgpu/Makefile | 13 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 + drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 208 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_acp.h | 40 + drivers/gpu/drm/amd/amdgpu/vi.c | 12 + drivers/gpu/drm/amd/include/amd_shared.h | 1 + .../gpu/drm/amd/include/asic_reg/acp/acp_2_1_d.h | 437 ++++ .../drm/amd/include/asic_reg/acp/acp_2_1_enum.h | 1198 ++++++++++ .../drm/amd/include/asic_reg/acp/acp_2_1_sh_mask.h | 1568 +++++++++++++ .../gpu/drm/amd/include/asic_reg/acp/acp_2_2_d.h | 609 ++++++ .../drm/amd/include/asic_reg/acp/acp_2_2_enum.h | 1068 +++++++++ .../drm/amd/include/asic_reg/acp/acp_2_2_sh_mask.h | 2292 ++++++++++++++++++++ .../gpu/drm/amd/include/asic_reg/acp/acp_2_3_d.h | 582 +++++ .../drm/amd/include/asic_reg/acp/acp_2_3_enum.h | 1079 +++++++++ .../drm/amd/include/asic_reg/acp/acp_2_3_sh_mask.h | 2192 +++++++++++++++++++ include/linux/mfd/amd_acp.h | 211 ++ sound/soc/Kconfig | 1 + sound/soc/Makefile | 1 + sound/soc/amd/Kconfig | 5 + sound/soc/amd/Makefile | 3 + sound/soc/amd/acp-pcm-dma.c | 676 ++++++ 27 files changed, 13494 insertions(+), 1 deletion(-) create mode 100644 drivers/gpu/drm/amd/acp/Kconfig create mode 100644 drivers/gpu/drm/amd/acp/Makefile create mode 100644 drivers/gpu/drm/amd/acp/acp_hw.c create mode 100644 drivers/gpu/drm/amd/acp/acp_hw.h create mode 100644 drivers/gpu/drm/amd/acp/include/acp_gfx_if.h create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_1_d.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_1_enum.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_1_sh_mask.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_2_d.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_2_enum.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_2_sh_mask.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_3_d.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_3_enum.h create mode 100644 drivers/gpu/drm/amd/include/asic_reg/acp/acp_2_3_sh_mask.h create mode 100644 include/linux/mfd/amd_acp.h create mode 100644 sound/soc/amd/Kconfig create mode 100644 sound/soc/amd/Makefile create mode 100644 sound/soc/amd/acp-pcm-dma.c