drm/tegra: sor: Introduce audio enable/disable callbacks
authorThierry Reding <treding@nvidia.com>
Mon, 24 Jun 2019 13:15:39 +0000 (15:15 +0200)
committerThierry Reding <treding@nvidia.com>
Mon, 28 Oct 2019 10:18:57 +0000 (11:18 +0100)
In order to support different modes (DP in addition to HDMI), split out
the audio setup/teardown into callbacks.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/sor.c

index 478c001f445389bd15aad146d414649f2db4e904..615cb319fa8b05e73b40c2881cbb1486dbb5e8b6 100644 (file)
@@ -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);
                }
        }