linux/drivers/gpu/drm/xlnx/zynqmp_dp.h
Tomi Valkeinen 3ec5c15793 drm: xlnx: zynqmp_dpsub: Add DP audio support
Add basic DisplayPort audio support.

Support non-live audio playback from two PCMs (DMA channels), and the
volume control in the audio mixer.

As older dtb files may not have the audio DMA channels defined, the
driver will just mark the audio support as disabled if the audio DMA is
missing, and will continue with only display support.

Note: Reset doesn't seem to work (ZYNQMP_DISP_AUD_SOFT_RESET). If we do
a reset, audio playback won't start again even if, afaics, we do set up
all the necessary registers. So, at the moment, resetting the audio
block in dp_dai_hw_free() is commented out.

Tested-by: Anatoliy Klymenko <anatoliy.klymenko@amd.com>
Reviewed-by: Vishal Sagar <vishal.sagar@amd.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20241023-xilinx-dp-audio-v4-3-5128881457be@ideasonboard.com
2024-12-19 08:54:00 +02:00

32 lines
828 B
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* ZynqMP DisplayPort Driver
*
* Copyright (C) 2017 - 2020 Xilinx, Inc.
*
* Authors:
* - Hyun Woo Kwon <hyun.kwon@xilinx.com>
* - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
*/
#ifndef _ZYNQMP_DP_H_
#define _ZYNQMP_DP_H_
struct platform_device;
struct zynqmp_dp;
struct zynqmp_dpsub;
void zynqmp_dp_enable_vblank(struct zynqmp_dp *dp);
void zynqmp_dp_disable_vblank(struct zynqmp_dp *dp);
int zynqmp_dp_probe(struct zynqmp_dpsub *dpsub);
void zynqmp_dp_remove(struct zynqmp_dpsub *dpsub);
void zynqmp_dp_audio_set_channels(struct zynqmp_dp *dp,
unsigned int num_channels);
void zynqmp_dp_audio_enable(struct zynqmp_dp *dp);
void zynqmp_dp_audio_disable(struct zynqmp_dp *dp);
void zynqmp_dp_audio_write_n_m(struct zynqmp_dp *dp);
#endif /* _ZYNQMP_DP_H_ */