Hi, Angelo: On Mon, 2025-01-13 at 15:52 +0100, AngeloGioacchino Del Regno wrote: > External email : Please do not click links or open attachments until you have verified the sender or the content. > > > As a cleanup, and in preparation for splitting common bits of this > driver, disgregate the code in function mtk_hdmi_audio_set_param() > to the beginning and end of function mtk_hdmi_audio_hw_params(). > > In a later commit, the hw_params callback function will also be > disgregated so that the code will get two functions: one that > performs the generic hdmi_audio_param copy, and one that performs > IP specific setup, both of which will be called in the callback, > allowing all of the non IP version specific code to get moved in > a common file. Reviewed-by: CK Hu <ck.hu@xxxxxxxxxxxx> > > Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx> > --- > drivers/gpu/drm/mediatek/mtk_hdmi.c | 26 +++++++++++--------------- > 1 file changed, 11 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c > index e60d3cf7e83d..065750075d7c 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) > { > @@ -1487,6 +1473,11 @@ static int mtk_hdmi_audio_hw_params(struct device *dev, void *data, > struct hdmi_audio_param hdmi_params; > unsigned int chan = params->cea.channels; > > + if (!hdmi->audio_enable) { > + dev_err(hdmi->dev, "hdmi audio is in disable state!\n"); > + return -EINVAL; > + } > + > dev_dbg(hdmi->dev, "%s: %u Hz, %d bit, %d channels\n", __func__, > params->sample_rate, params->sample_width, chan); > > @@ -1547,8 +1538,13 @@ static int mtk_hdmi_audio_hw_params(struct device *dev, void *data, > > memcpy(&hdmi_params.codec_params, params, > sizeof(hdmi_params.codec_params)); > + memcpy(&hdmi->aud_param, &hdmi_params, sizeof(hdmi_params)); > + > + dev_dbg(hdmi->dev, "codec:%d, input:%d, channel:%d, fs:%d\n", > + hdmi_params.aud_codec, hdmi_params.aud_input_type, > + hdmi_params.aud_input_chan_type, hdmi_params.codec_params.sample_rate); > > - mtk_hdmi_audio_set_param(hdmi, &hdmi_params); > + mtk_hdmi_aud_output_config(hdmi, &hdmi->mode); > > return 0; > } > -- > 2.47.0 >