mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-03-09 15:40:20 +00:00
63 lines
2.1 KiB
Diff
63 lines
2.1 KiB
Diff
From 59dca213da407638874caf97b0e9c15f886df890 Mon Sep 17 00:00:00 2001
|
|
From: Maxime Ripard <maxime@cerno.tech>
|
|
Date: Fri, 23 Jul 2021 15:45:54 +0200
|
|
Subject: [PATCH 484/634] drm/vc4: hdmi: Unregister codec device on unbind
|
|
|
|
On bind we will register the HDMI codec device but we don't unregister
|
|
it on unbind, leading to a device leakage. Unregister our device at
|
|
unbind.
|
|
|
|
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
|
---
|
|
drivers/gpu/drm/vc4/vc4_hdmi.c | 8 ++++++++
|
|
drivers/gpu/drm/vc4/vc4_hdmi.h | 1 +
|
|
2 files changed, 9 insertions(+)
|
|
|
|
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
index 502d5bea5f61..395a9e9c1e5a 100644
|
|
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
|
|
@@ -1746,6 +1746,7 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi)
|
|
dev_err(dev, "Couldn't register the HDMI codec: %ld\n", PTR_ERR(codec_pdev));
|
|
return PTR_ERR(codec_pdev);
|
|
}
|
|
+ vc4_hdmi->audio.codec_pdev = codec_pdev;
|
|
|
|
dai_link->cpus = &vc4_hdmi->audio.cpu;
|
|
dai_link->codecs = &vc4_hdmi->audio.codec;
|
|
@@ -1785,6 +1786,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi)
|
|
|
|
}
|
|
|
|
+static void vc4_hdmi_audio_exit(struct vc4_hdmi *vc4_hdmi)
|
|
+{
|
|
+ platform_device_unregister(vc4_hdmi->audio.codec_pdev);
|
|
+ vc4_hdmi->audio.codec_pdev = NULL;
|
|
+}
|
|
+
|
|
static irqreturn_t vc4_hdmi_hpd_irq_thread(int irq, void *priv)
|
|
{
|
|
struct vc4_hdmi *vc4_hdmi = priv;
|
|
@@ -2689,6 +2696,7 @@ static void vc4_hdmi_unbind(struct device *dev, struct device *master,
|
|
kfree(vc4_hdmi->hdmi_regset.regs);
|
|
kfree(vc4_hdmi->hd_regset.regs);
|
|
|
|
+ vc4_hdmi_audio_exit(vc4_hdmi);
|
|
vc4_hdmi_cec_exit(vc4_hdmi);
|
|
vc4_hdmi_hotplug_exit(vc4_hdmi);
|
|
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
|
|
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.h b/drivers/gpu/drm/vc4/vc4_hdmi.h
|
|
index db53500a8435..275c4674d50f 100644
|
|
--- a/drivers/gpu/drm/vc4/vc4_hdmi.h
|
|
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.h
|
|
@@ -113,6 +113,7 @@ struct vc4_hdmi_audio {
|
|
struct snd_soc_dai_link_component platform;
|
|
struct snd_dmaengine_dai_dma_data dma_data;
|
|
struct hdmi_audio_infoframe infoframe;
|
|
+ struct platform_device *codec_pdev;
|
|
bool streaming;
|
|
};
|
|
|
|
--
|
|
2.33.1
|
|
|