As a cleanup, and in preparation for splitting common bits of this
driver, disgregate the code in function mtk_hdmi_audio_set_param()
between mtk_hdmi_audio_params() and mtk_hdmi_audio_hw_params().

The generic hdmi_audio_param copy now gets performed in the former,
and the IP specific mtk_hdmi_aud_output_config() gets called in the
latter, allowing all of the non IP version specific code to get
moved in a common file later.

Signed-off-by: AngeloGioacchino Del Regno 
<angelogioacchino.delre...@collabora.com>
---
 drivers/gpu/drm/mediatek/mtk_hdmi.c | 27 +++++++++++----------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c 
b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index 8f5ab97a0261..a927d9889818 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1054,20 +1054,6 @@ static void mtk_hdmi_audio_disable(struct mtk_hdmi *hdmi)
        hdmi->audio_enable = false;
 }
 
-static int mtk_hdmi_audio_set_param(struct mtk_hdmi *hdmi,
-                                   struct hdmi_audio_param *param)
-{
-       if (!hdmi->audio_enable) {
-               dev_err(hdmi->dev, "hdmi audio is in disable state!\n");
-               return -EINVAL;
-       }
-       dev_dbg(hdmi->dev, "codec:%d, input:%d, channel:%d, fs:%d\n",
-               param->aud_codec, param->aud_input_type,
-               param->aud_input_chan_type, param->codec_params.sample_rate);
-       memcpy(&hdmi->aud_param, param, sizeof(*param));
-       return mtk_hdmi_aud_output_config(hdmi, &hdmi->mode);
-}
-
 static int mtk_hdmi_output_set_display_mode(struct mtk_hdmi *hdmi,
                                            struct drm_display_mode *mode)
 {
@@ -1544,6 +1530,11 @@ static int mtk_hdmi_audio_params(struct mtk_hdmi *hdmi,
                return -EINVAL;
        }
        memcpy(&aud_params.codec_params, params, 
sizeof(aud_params.codec_params));
+       memcpy(&hdmi->aud_param, &aud_params, sizeof(aud_params));
+
+       dev_dbg(hdmi->dev, "codec:%d, input:%d, channel:%d, fs:%d\n",
+               aud_params.aud_codec, aud_params.aud_input_type,
+               aud_params.aud_input_chan_type, 
aud_params.codec_params.sample_rate);
 
        return 0;
 }
@@ -1553,10 +1544,14 @@ static int mtk_hdmi_audio_hw_params(struct device *dev, 
void *data,
                                    struct hdmi_codec_params *params)
 {
        struct mtk_hdmi *hdmi = dev_get_drvdata(dev);
-       struct hdmi_audio_param hdmi_params;
+
+       if (!hdmi->audio_enable) {
+               dev_err(hdmi->dev, "hdmi audio is in disable state!\n");
+               return -EINVAL;
+       }
 
        mtk_hdmi_audio_params(hdmi, daifmt, params);
-       mtk_hdmi_audio_set_param(hdmi, &hdmi_params);
+       mtk_hdmi_aud_output_config(hdmi, &hdmi->mode);
 
        return 0;
 }
-- 
2.47.0

Reply via email to