drm/nouveau: Add HD-audio component notifier support
authorTakashi Iwai <tiwai@suse.de>
Mon, 13 Jan 2020 14:17:21 +0000 (15:17 +0100)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 29 Jan 2020 05:49:46 +0000 (15:49 +1000)
commit742db30c4ee6cd28142e83e154b5271f95a2c67a
treef0d6474ac46ba5b5ef5259d0e4abb21f4221cb68
parentee8642162a9edd40daafd3fb894e3fd3f909e361
drm/nouveau: Add HD-audio component notifier support

This patch adds the support for the notification of HD-audio hotplug
via the already existing drm_audio_component framework.  This allows
us more reliable hotplug notification and ELD transfer without
accessing HD-audio bus; it's more efficient, and more importantly, it
works without waking up the runtime PM.

The implementation is rather simplistic: nouveau driver provides the
get_eld ops for HD-audio, and it notifies the audio hotplug via
pin_eld_notify callback upon each nv50_audio_enable() and _disable()
call.  As the HD-audio pin assignment seems corresponding to the CRTC,
the crtc->index number is passed directly as the zero-based port
number.

The bind and unbind callbacks handle the device-link so that it
assures the PM call order.

Link: https://lore.kernel.org/r/20190722143815.7339-3-tiwai@suse.de
Reviewed-by: Lyude Paul <lyude@redhat.com>
Cc: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/Kconfig
drivers/gpu/drm/nouveau/dispnv50/disp.c
drivers/gpu/drm/nouveau/nouveau_drv.h