drm/amd/display: Add drm_audio_component support to amdgpu_dm
authorNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Thu, 11 Jul 2019 19:31:46 +0000 (14:31 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 11 Jul 2019 19:37:24 +0000 (14:37 -0500)
commit6ce8f316673f61416738e6df7329ca508a607762
treed1d51b4022a1494f22ca5362cdd868e94f1f84d0
parent5fdb7c4c7f2691efd760b0b0dc00da4a3699f1a6
drm/amd/display: Add drm_audio_component support to amdgpu_dm

[Why]
The drm_audio_component can be used to give pin ELD notifications
directly to the sound driver. This fixes audio endpoints disappearing
due to missing unsolicited notifications.

[How]
Send the notification via the audio component whenever we enable or
disable audio state on a stream. This matches what i915 does with
their drm_audio_component and what Takashi Iwai's proposed hack for
radeon/amdpgu did.

This is a bit delayed in when the notification actually occurs, however.
We wait until after all the programming is complete rather than sending
the notification mid sequence.

Particular care is needed for the get ELD callback since it can happen
outside the locking and fencing DRM does for atomic commits.

Cc: Leo Li <sunpeng.li@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/Kconfig
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h