From: Thierry Reding <tred...@nvidia.com>

In order to support different modes (DP in addition to HDMI), split out
the audio setup/teardown into callbacks.

Signed-off-by: Thierry Reding <tred...@nvidia.com>
---
 drivers/gpu/drm/tegra/sor.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 478c001f4453..615cb319fa8b 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -398,6 +398,8 @@ struct tegra_sor_ops {
        const char *name;
        int (*probe)(struct tegra_sor *sor);
        int (*remove)(struct tegra_sor *sor);
+       void (*audio_enable)(struct tegra_sor *sor);
+       void (*audio_disable)(struct tegra_sor *sor);
 };
 
 struct tegra_sor {
@@ -3008,6 +3010,8 @@ static const struct tegra_sor_ops tegra_sor_hdmi_ops = {
        .name = "HDMI",
        .probe = tegra_sor_hdmi_probe,
        .remove = tegra_sor_hdmi_remove,
+       .audio_enable = tegra_sor_hdmi_audio_enable,
+       .audio_disable = tegra_sor_hdmi_audio_disable,
 };
 
 static int tegra_sor_dp_probe(struct tegra_sor *sor)
@@ -3616,9 +3620,11 @@ static irqreturn_t tegra_sor_irq(int irq, void *data)
 
                        tegra_hda_parse_format(format, &sor->format);
 
-                       tegra_sor_hdmi_audio_enable(sor);
+                       if (sor->ops->audio_enable)
+                               sor->ops->audio_enable(sor);
                } else {
-                       tegra_sor_hdmi_audio_disable(sor);
+                       if (sor->ops->audio_disable)
+                               sor->ops->audio_disable(sor);
                }
        }
 
-- 
2.23.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to