[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <olxtqto5mbgofxg4iqjvsmpxxzz6zoj7pbwmoeklhfjiavqfvv@dyveek7hgtki>
Date: Thu, 5 Dec 2024 14:29:03 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
Cc: chunkuang.hu@...nel.org, p.zabel@...gutronix.de, airlied@...il.com,
simona@...ll.ch, maarten.lankhorst@...ux.intel.com, mripard@...nel.org,
tzimmermann@...e.de, robh@...nel.org, krzk+dt@...nel.org, conor+dt@...nel.org,
matthias.bgg@...il.com, ck.hu@...iatek.com, jitao.shi@...iatek.com, jie.qiu@...iatek.com,
junzhi.zhao@...iatek.com, dri-devel@...ts.freedesktop.org,
linux-mediatek@...ts.infradead.org, devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, kernel@...labora.com
Subject: Re: [PATCH v2 12/15] drm/mediatek: mtk_hdmi: Split driver and add
common probe function
On Thu, Dec 05, 2024 at 12:45:14PM +0100, AngeloGioacchino Del Regno wrote:
> In preparation for adding a new driver for the HDMI TX v2 IP,
> split out the functions that will be common between the already
> present mtk_hdmi (v1) driver and the new one.
>
> Since the probe flow for both drivers is 90% similar, add a common
> probe function that will be called from each driver's .probe()
> callback, avoiding lots of code duplication.
>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>
> ---
> drivers/gpu/drm/mediatek/Kconfig | 11 +-
> drivers/gpu/drm/mediatek/Makefile | 1 +
> drivers/gpu/drm/mediatek/mtk_hdmi.c | 724 +++------------------
> drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 425 ++++++++++++
> drivers/gpu/drm/mediatek/mtk_hdmi_common.h | 203 ++++++
> 5 files changed, 729 insertions(+), 635 deletions(-)
> create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> create mode 100644 drivers/gpu/drm/mediatek/mtk_hdmi_common.h
>
> @@ -1026,19 +812,12 @@ static int mtk_hdmi_setup_vendor_specific_infoframe(struct mtk_hdmi *hdmi,
> return 0;
> }
>
> -static int mtk_hdmi_output_init(struct mtk_hdmi *hdmi)
> +static void mtk_hdmi_send_infoframe(struct mtk_hdmi *hdmi, u8 *buffer_spd, size_t bufsz_spd,
> + u8 *buffer_avi, size_t bufsz_avi,
> + struct drm_display_mode *mode)
> {
> - struct hdmi_audio_param *aud_param = &hdmi->aud_param;
> -
> - hdmi->csp = HDMI_COLORSPACE_RGB;
> - aud_param->aud_codec = HDMI_AUDIO_CODING_TYPE_PCM;
> - aud_param->aud_sample_size = HDMI_AUDIO_SAMPLE_SIZE_16;
> - aud_param->aud_input_type = HDMI_AUD_INPUT_I2S;
> - aud_param->aud_i2s_fmt = HDMI_I2S_MODE_I2S_24BIT;
> - aud_param->aud_mclk = HDMI_AUD_MCLK_128FS;
> - aud_param->aud_input_chan_type = HDMI_AUD_CHAN_TYPE_2_0;
> -
> - return 0;
> + mtk_hdmi_setup_avi_infoframe(hdmi, buffer_avi, bufsz_avi, mode);
> + mtk_hdmi_setup_spd_infoframe(hdmi, buffer_spd, bufsz_spd, "mediatek", "On-chip HDMI");
Please use the HDMI Connector framework instead of handling everything
on your own.
> }
>
> static void mtk_hdmi_audio_enable(struct mtk_hdmi *hdmi)
--
With best wishes
Dmitry
Powered by blists - more mailing lists