From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Guillaume Ranquet <granquet@baylibre.com>,
Rob Herring <robh+dt@kernel.org>,
Chun-Kuang Hu <chunkuang.hu@kernel.org>,
Chunfeng Yun <chunfeng.yun@mediatek.com>,
Jitao shi <jitao.shi@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Vinod Koul <vkoul@kernel.org>, CK Hu <ck.hu@mediatek.com>,
Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@gmail.com>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Kishon Vijay Abraham I <kishon@ti.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
linux-arm-kernel@lists.infradead.org, stuart.lee@mediatek.com,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org,
mac.shen@mediatek.com, linux-phy@lists.infradead.org
Subject: Re: [PATCH v3 08/12] drm/mediatek: hdmi: v2: add audio support
Date: Mon, 7 Nov 2022 12:09:33 +0100 [thread overview]
Message-ID: <5895f15f-44ae-6164-77dd-c9bae5436a47@collabora.com> (raw)
In-Reply-To: <20220919-v3-8-a803f2660127@baylibre.com>
Il 04/11/22 15:09, Guillaume Ranquet ha scritto:
> Add HDMI audio support for v2
>
> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
> ---
> drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 1 +
> drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.c | 213 +++++++++++++++++++++++++++++
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.h | 2 +
> 4 files changed, 217 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> index e43c938a9aa5..1ea91f8bb6c7 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> @@ -386,6 +386,7 @@ static const struct mtk_hdmi_conf mtk_hdmi_conf_v2 = {
> .mtk_hdmi_output_init = mtk_hdmi_output_init_v2,
> .mtk_hdmi_clk_disable = mtk_hdmi_clk_disable_v2,
> .mtk_hdmi_clk_enable = mtk_hdmi_clk_enable_v2,
> + .set_hdmi_codec_pdata = set_hdmi_codec_pdata_v2,
Keep naming consistent please:
.mtk_hdmi_set_codec_pdata = mtk_hdmi_set_codec_pdata_v2,
> .mtk_hdmi_clock_names = mtk_hdmi_clk_names_v2,
> .num_clocks = MTK_HDMIV2_CLK_COUNT,
> };
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> index 61696d255e51..26456802a5c4 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> @@ -309,7 +309,7 @@ static int mtk_hdmi_ddc_probe(struct platform_device *pdev)
> ddc->regs = device_node_to_regmap(hdmi);
> of_node_put(hdmi);
> if (IS_ERR(ddc->regs))
> - return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get mt8195-hdmi syscon");
> + return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get hdmi syscon");
You might as well do the rename in the commit that actually introduces this file,
since you're doing that in the same series.
Please do so.
>
> ddc->clk = devm_clk_get_enabled(dev, "ddc");
> if (IS_ERR(ddc->clk))
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> index e8457429964d..b391b22fa9f5 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> @@ -211,6 +211,26 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
> mtk_hdmi_mask(hdmi, TOP_VMUTE_CFG1, 0, REG_VMUTE_EN);
> }
>
> +static void mtk_hdmi_hw_aud_mute(struct mtk_hdmi *hdmi)
> +{
> + u32 val;
> +
> + val = mtk_hdmi_read(hdmi, AIP_CTRL, &val);
> +
> + if (val & DSD_EN)
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL,
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN,
I think I already gave you some advice to shorten this in an earlier
series version.
Besides, you can also use the FIELD_PREP() macro here, and please use it.
P.S.:
val = FIELD_PREP(... something AUD_MUTE_FIFO_EN);
if (val & DSD_EN)
val |= FIELD_PREP( ... something DSD_MUTE_DATA)
mtk_hdmi_mask(hdmi, AIP_TXCTRL, val, val);
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN);
> + else
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_FIFO_EN,
> + AUD_MUTE_FIFO_EN);
> +}
> +
> +static void mtk_hdmi_hw_aud_unmute(struct mtk_hdmi *hdmi)
> +{
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_DIS, AUD_MUTE_FIFO_EN);
> +}
> +
> static void mtk_hdmi_hw_reset(struct mtk_hdmi *hdmi)
> {
> mtk_hdmi_mask(hdmi, HDMITX_CONFIG, 0x0, HDMITX_SW_RSTB);
> @@ -889,6 +909,7 @@ static void mtk_hdmi_audio_reset(struct mtk_hdmi *hdmi, bool rst)
..snip..
> @@ -935,6 +957,28 @@ static void mtk_hdmi_reset_colorspace_setting(struct mtk_hdmi *hdmi)
> hdmi->ycc_quantization_range = HDMI_YCC_QUANTIZATION_RANGE_LIMITED;
> }
>
> +static void mtk_hdmi_audio_enable(struct mtk_hdmi *hdmi)
These two functions are used only in one function (each)... so you don't
need them. Just move the two lines in mtk_hdmi_audio_startup() ...
> +{
> + mtk_hdmi_aud_enable_packet(hdmi, true);
> + hdmi->audio_enable = true;
> +}
> +
> +static void mtk_hdmi_audio_disable(struct mtk_hdmi *hdmi)
> +{
... and in mtk_hdmi_audio_shutdown().
> + mtk_hdmi_aud_enable_packet(hdmi, false);
> + hdmi->audio_enable = false;
> +}
> +
> +static void mtk_hdmi_audio_set_param(struct mtk_hdmi *hdmi,
> + struct hdmi_audio_param *param)
> +{
> + if (!hdmi->audio_enable)
> + return;
> +
> + memcpy(&hdmi->aud_param, param, sizeof(*param));
> + mtk_hdmi_aud_output_config(hdmi, &hdmi->mode);
> +}
> +
> static void mtk_hdmi_change_video_resolution(struct mtk_hdmi *hdmi)
> {
> bool is_over_340M = false;
..snip..
> +
> +static int mtk_hdmi_audio_mute(struct device *dev, void *data, bool enable,
> + int direction)
> +{
> + struct mtk_hdmi *hdmi = dev_get_drvdata(dev);
> +
> + if (direction != SNDRV_PCM_STREAM_PLAYBACK)
Why aren't you returning an error here?
If this is really supposed to be like that, please add a comment in the code
explaining the reason, so that the next person reading this won't mistakenly
change that.
> + return 0;
> +
> + if (enable)
> + mtk_hdmi_hw_aud_mute(hdmi);
> + else
> + mtk_hdmi_hw_aud_unmute(hdmi);
> +
> + return 0;
> +}
> +
Regards,
Angelo
WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Guillaume Ranquet <granquet@baylibre.com>,
Rob Herring <robh+dt@kernel.org>,
Chun-Kuang Hu <chunkuang.hu@kernel.org>,
Chunfeng Yun <chunfeng.yun@mediatek.com>,
Jitao shi <jitao.shi@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Vinod Koul <vkoul@kernel.org>, CK Hu <ck.hu@mediatek.com>,
Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@gmail.com>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Kishon Vijay Abraham I <kishon@ti.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
linux-arm-kernel@lists.infradead.org, stuart.lee@mediatek.com,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org,
mac.shen@mediatek.com, linux-phy@lists.infradead.org
Subject: Re: [PATCH v3 08/12] drm/mediatek: hdmi: v2: add audio support
Date: Mon, 7 Nov 2022 12:09:33 +0100 [thread overview]
Message-ID: <5895f15f-44ae-6164-77dd-c9bae5436a47@collabora.com> (raw)
In-Reply-To: <20220919-v3-8-a803f2660127@baylibre.com>
Il 04/11/22 15:09, Guillaume Ranquet ha scritto:
> Add HDMI audio support for v2
>
> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
> ---
> drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 1 +
> drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.c | 213 +++++++++++++++++++++++++++++
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.h | 2 +
> 4 files changed, 217 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> index e43c938a9aa5..1ea91f8bb6c7 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> @@ -386,6 +386,7 @@ static const struct mtk_hdmi_conf mtk_hdmi_conf_v2 = {
> .mtk_hdmi_output_init = mtk_hdmi_output_init_v2,
> .mtk_hdmi_clk_disable = mtk_hdmi_clk_disable_v2,
> .mtk_hdmi_clk_enable = mtk_hdmi_clk_enable_v2,
> + .set_hdmi_codec_pdata = set_hdmi_codec_pdata_v2,
Keep naming consistent please:
.mtk_hdmi_set_codec_pdata = mtk_hdmi_set_codec_pdata_v2,
> .mtk_hdmi_clock_names = mtk_hdmi_clk_names_v2,
> .num_clocks = MTK_HDMIV2_CLK_COUNT,
> };
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> index 61696d255e51..26456802a5c4 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> @@ -309,7 +309,7 @@ static int mtk_hdmi_ddc_probe(struct platform_device *pdev)
> ddc->regs = device_node_to_regmap(hdmi);
> of_node_put(hdmi);
> if (IS_ERR(ddc->regs))
> - return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get mt8195-hdmi syscon");
> + return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get hdmi syscon");
You might as well do the rename in the commit that actually introduces this file,
since you're doing that in the same series.
Please do so.
>
> ddc->clk = devm_clk_get_enabled(dev, "ddc");
> if (IS_ERR(ddc->clk))
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> index e8457429964d..b391b22fa9f5 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> @@ -211,6 +211,26 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
> mtk_hdmi_mask(hdmi, TOP_VMUTE_CFG1, 0, REG_VMUTE_EN);
> }
>
> +static void mtk_hdmi_hw_aud_mute(struct mtk_hdmi *hdmi)
> +{
> + u32 val;
> +
> + val = mtk_hdmi_read(hdmi, AIP_CTRL, &val);
> +
> + if (val & DSD_EN)
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL,
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN,
I think I already gave you some advice to shorten this in an earlier
series version.
Besides, you can also use the FIELD_PREP() macro here, and please use it.
P.S.:
val = FIELD_PREP(... something AUD_MUTE_FIFO_EN);
if (val & DSD_EN)
val |= FIELD_PREP( ... something DSD_MUTE_DATA)
mtk_hdmi_mask(hdmi, AIP_TXCTRL, val, val);
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN);
> + else
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_FIFO_EN,
> + AUD_MUTE_FIFO_EN);
> +}
> +
> +static void mtk_hdmi_hw_aud_unmute(struct mtk_hdmi *hdmi)
> +{
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_DIS, AUD_MUTE_FIFO_EN);
> +}
> +
> static void mtk_hdmi_hw_reset(struct mtk_hdmi *hdmi)
> {
> mtk_hdmi_mask(hdmi, HDMITX_CONFIG, 0x0, HDMITX_SW_RSTB);
> @@ -889,6 +909,7 @@ static void mtk_hdmi_audio_reset(struct mtk_hdmi *hdmi, bool rst)
..snip..
> @@ -935,6 +957,28 @@ static void mtk_hdmi_reset_colorspace_setting(struct mtk_hdmi *hdmi)
> hdmi->ycc_quantization_range = HDMI_YCC_QUANTIZATION_RANGE_LIMITED;
> }
>
> +static void mtk_hdmi_audio_enable(struct mtk_hdmi *hdmi)
These two functions are used only in one function (each)... so you don't
need them. Just move the two lines in mtk_hdmi_audio_startup() ...
> +{
> + mtk_hdmi_aud_enable_packet(hdmi, true);
> + hdmi->audio_enable = true;
> +}
> +
> +static void mtk_hdmi_audio_disable(struct mtk_hdmi *hdmi)
> +{
... and in mtk_hdmi_audio_shutdown().
> + mtk_hdmi_aud_enable_packet(hdmi, false);
> + hdmi->audio_enable = false;
> +}
> +
> +static void mtk_hdmi_audio_set_param(struct mtk_hdmi *hdmi,
> + struct hdmi_audio_param *param)
> +{
> + if (!hdmi->audio_enable)
> + return;
> +
> + memcpy(&hdmi->aud_param, param, sizeof(*param));
> + mtk_hdmi_aud_output_config(hdmi, &hdmi->mode);
> +}
> +
> static void mtk_hdmi_change_video_resolution(struct mtk_hdmi *hdmi)
> {
> bool is_over_340M = false;
..snip..
> +
> +static int mtk_hdmi_audio_mute(struct device *dev, void *data, bool enable,
> + int direction)
> +{
> + struct mtk_hdmi *hdmi = dev_get_drvdata(dev);
> +
> + if (direction != SNDRV_PCM_STREAM_PLAYBACK)
Why aren't you returning an error here?
If this is really supposed to be like that, please add a comment in the code
explaining the reason, so that the next person reading this won't mistakenly
change that.
> + return 0;
> +
> + if (enable)
> + mtk_hdmi_hw_aud_mute(hdmi);
> + else
> + mtk_hdmi_hw_aud_unmute(hdmi);
> +
> + return 0;
> +}
> +
Regards,
Angelo
--
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy
WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Guillaume Ranquet <granquet@baylibre.com>,
Rob Herring <robh+dt@kernel.org>,
Chun-Kuang Hu <chunkuang.hu@kernel.org>,
Chunfeng Yun <chunfeng.yun@mediatek.com>,
Jitao shi <jitao.shi@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Vinod Koul <vkoul@kernel.org>, CK Hu <ck.hu@mediatek.com>,
Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@gmail.com>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Kishon Vijay Abraham I <kishon@ti.com>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
linux-arm-kernel@lists.infradead.org, stuart.lee@mediatek.com,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org,
mac.shen@mediatek.com, linux-phy@lists.infradead.org
Subject: Re: [PATCH v3 08/12] drm/mediatek: hdmi: v2: add audio support
Date: Mon, 7 Nov 2022 12:09:33 +0100 [thread overview]
Message-ID: <5895f15f-44ae-6164-77dd-c9bae5436a47@collabora.com> (raw)
In-Reply-To: <20220919-v3-8-a803f2660127@baylibre.com>
Il 04/11/22 15:09, Guillaume Ranquet ha scritto:
> Add HDMI audio support for v2
>
> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
> ---
> drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 1 +
> drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.c | 213 +++++++++++++++++++++++++++++
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.h | 2 +
> 4 files changed, 217 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> index e43c938a9aa5..1ea91f8bb6c7 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> @@ -386,6 +386,7 @@ static const struct mtk_hdmi_conf mtk_hdmi_conf_v2 = {
> .mtk_hdmi_output_init = mtk_hdmi_output_init_v2,
> .mtk_hdmi_clk_disable = mtk_hdmi_clk_disable_v2,
> .mtk_hdmi_clk_enable = mtk_hdmi_clk_enable_v2,
> + .set_hdmi_codec_pdata = set_hdmi_codec_pdata_v2,
Keep naming consistent please:
.mtk_hdmi_set_codec_pdata = mtk_hdmi_set_codec_pdata_v2,
> .mtk_hdmi_clock_names = mtk_hdmi_clk_names_v2,
> .num_clocks = MTK_HDMIV2_CLK_COUNT,
> };
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> index 61696d255e51..26456802a5c4 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> @@ -309,7 +309,7 @@ static int mtk_hdmi_ddc_probe(struct platform_device *pdev)
> ddc->regs = device_node_to_regmap(hdmi);
> of_node_put(hdmi);
> if (IS_ERR(ddc->regs))
> - return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get mt8195-hdmi syscon");
> + return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get hdmi syscon");
You might as well do the rename in the commit that actually introduces this file,
since you're doing that in the same series.
Please do so.
>
> ddc->clk = devm_clk_get_enabled(dev, "ddc");
> if (IS_ERR(ddc->clk))
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> index e8457429964d..b391b22fa9f5 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> @@ -211,6 +211,26 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
> mtk_hdmi_mask(hdmi, TOP_VMUTE_CFG1, 0, REG_VMUTE_EN);
> }
>
> +static void mtk_hdmi_hw_aud_mute(struct mtk_hdmi *hdmi)
> +{
> + u32 val;
> +
> + val = mtk_hdmi_read(hdmi, AIP_CTRL, &val);
> +
> + if (val & DSD_EN)
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL,
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN,
I think I already gave you some advice to shorten this in an earlier
series version.
Besides, you can also use the FIELD_PREP() macro here, and please use it.
P.S.:
val = FIELD_PREP(... something AUD_MUTE_FIFO_EN);
if (val & DSD_EN)
val |= FIELD_PREP( ... something DSD_MUTE_DATA)
mtk_hdmi_mask(hdmi, AIP_TXCTRL, val, val);
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN);
> + else
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_FIFO_EN,
> + AUD_MUTE_FIFO_EN);
> +}
> +
> +static void mtk_hdmi_hw_aud_unmute(struct mtk_hdmi *hdmi)
> +{
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_DIS, AUD_MUTE_FIFO_EN);
> +}
> +
> static void mtk_hdmi_hw_reset(struct mtk_hdmi *hdmi)
> {
> mtk_hdmi_mask(hdmi, HDMITX_CONFIG, 0x0, HDMITX_SW_RSTB);
> @@ -889,6 +909,7 @@ static void mtk_hdmi_audio_reset(struct mtk_hdmi *hdmi, bool rst)
..snip..
> @@ -935,6 +957,28 @@ static void mtk_hdmi_reset_colorspace_setting(struct mtk_hdmi *hdmi)
> hdmi->ycc_quantization_range = HDMI_YCC_QUANTIZATION_RANGE_LIMITED;
> }
>
> +static void mtk_hdmi_audio_enable(struct mtk_hdmi *hdmi)
These two functions are used only in one function (each)... so you don't
need them. Just move the two lines in mtk_hdmi_audio_startup() ...
> +{
> + mtk_hdmi_aud_enable_packet(hdmi, true);
> + hdmi->audio_enable = true;
> +}
> +
> +static void mtk_hdmi_audio_disable(struct mtk_hdmi *hdmi)
> +{
... and in mtk_hdmi_audio_shutdown().
> + mtk_hdmi_aud_enable_packet(hdmi, false);
> + hdmi->audio_enable = false;
> +}
> +
> +static void mtk_hdmi_audio_set_param(struct mtk_hdmi *hdmi,
> + struct hdmi_audio_param *param)
> +{
> + if (!hdmi->audio_enable)
> + return;
> +
> + memcpy(&hdmi->aud_param, param, sizeof(*param));
> + mtk_hdmi_aud_output_config(hdmi, &hdmi->mode);
> +}
> +
> static void mtk_hdmi_change_video_resolution(struct mtk_hdmi *hdmi)
> {
> bool is_over_340M = false;
..snip..
> +
> +static int mtk_hdmi_audio_mute(struct device *dev, void *data, bool enable,
> + int direction)
> +{
> + struct mtk_hdmi *hdmi = dev_get_drvdata(dev);
> +
> + if (direction != SNDRV_PCM_STREAM_PLAYBACK)
Why aren't you returning an error here?
If this is really supposed to be like that, please add a comment in the code
explaining the reason, so that the next person reading this won't mistakenly
change that.
> + return 0;
> +
> + if (enable)
> + mtk_hdmi_hw_aud_mute(hdmi);
> + else
> + mtk_hdmi_hw_aud_unmute(hdmi);
> +
> + return 0;
> +}
> +
Regards,
Angelo
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: Guillaume Ranquet <granquet@baylibre.com>,
Rob Herring <robh+dt@kernel.org>,
Chun-Kuang Hu <chunkuang.hu@kernel.org>,
Chunfeng Yun <chunfeng.yun@mediatek.com>,
Jitao shi <jitao.shi@mediatek.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
Vinod Koul <vkoul@kernel.org>, CK Hu <ck.hu@mediatek.com>,
Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@gmail.com>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Kishon Vijay Abraham I <kishon@ti.com>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org, mac.shen@mediatek.com,
stuart.lee@mediatek.com,
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
linux-mediatek@lists.infradead.org,
linux-phy@lists.infradead.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 08/12] drm/mediatek: hdmi: v2: add audio support
Date: Mon, 7 Nov 2022 12:09:33 +0100 [thread overview]
Message-ID: <5895f15f-44ae-6164-77dd-c9bae5436a47@collabora.com> (raw)
In-Reply-To: <20220919-v3-8-a803f2660127@baylibre.com>
Il 04/11/22 15:09, Guillaume Ranquet ha scritto:
> Add HDMI audio support for v2
>
> Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
> ---
> drivers/gpu/drm/mediatek/mtk_hdmi_common.c | 1 +
> drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c | 2 +-
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.c | 213 +++++++++++++++++++++++++++++
> drivers/gpu/drm/mediatek/mtk_hdmi_v2.h | 2 +
> 4 files changed, 217 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> index e43c938a9aa5..1ea91f8bb6c7 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_common.c
> @@ -386,6 +386,7 @@ static const struct mtk_hdmi_conf mtk_hdmi_conf_v2 = {
> .mtk_hdmi_output_init = mtk_hdmi_output_init_v2,
> .mtk_hdmi_clk_disable = mtk_hdmi_clk_disable_v2,
> .mtk_hdmi_clk_enable = mtk_hdmi_clk_enable_v2,
> + .set_hdmi_codec_pdata = set_hdmi_codec_pdata_v2,
Keep naming consistent please:
.mtk_hdmi_set_codec_pdata = mtk_hdmi_set_codec_pdata_v2,
> .mtk_hdmi_clock_names = mtk_hdmi_clk_names_v2,
> .num_clocks = MTK_HDMIV2_CLK_COUNT,
> };
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> index 61696d255e51..26456802a5c4 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_ddc_v2.c
> @@ -309,7 +309,7 @@ static int mtk_hdmi_ddc_probe(struct platform_device *pdev)
> ddc->regs = device_node_to_regmap(hdmi);
> of_node_put(hdmi);
> if (IS_ERR(ddc->regs))
> - return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get mt8195-hdmi syscon");
> + return dev_err_probe(dev, PTR_ERR(ddc->regs), "Unable to get hdmi syscon");
You might as well do the rename in the commit that actually introduces this file,
since you're doing that in the same series.
Please do so.
>
> ddc->clk = devm_clk_get_enabled(dev, "ddc");
> if (IS_ERR(ddc->clk))
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> index e8457429964d..b391b22fa9f5 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
> @@ -211,6 +211,26 @@ static void mtk_hdmi_hw_vid_black(struct mtk_hdmi *hdmi, bool black)
> mtk_hdmi_mask(hdmi, TOP_VMUTE_CFG1, 0, REG_VMUTE_EN);
> }
>
> +static void mtk_hdmi_hw_aud_mute(struct mtk_hdmi *hdmi)
> +{
> + u32 val;
> +
> + val = mtk_hdmi_read(hdmi, AIP_CTRL, &val);
> +
> + if (val & DSD_EN)
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL,
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN,
I think I already gave you some advice to shorten this in an earlier
series version.
Besides, you can also use the FIELD_PREP() macro here, and please use it.
P.S.:
val = FIELD_PREP(... something AUD_MUTE_FIFO_EN);
if (val & DSD_EN)
val |= FIELD_PREP( ... something DSD_MUTE_DATA)
mtk_hdmi_mask(hdmi, AIP_TXCTRL, val, val);
> + DSD_MUTE_DATA | AUD_MUTE_FIFO_EN);
> + else
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_FIFO_EN,
> + AUD_MUTE_FIFO_EN);
> +}
> +
> +static void mtk_hdmi_hw_aud_unmute(struct mtk_hdmi *hdmi)
> +{
> + mtk_hdmi_mask(hdmi, AIP_TXCTRL, AUD_MUTE_DIS, AUD_MUTE_FIFO_EN);
> +}
> +
> static void mtk_hdmi_hw_reset(struct mtk_hdmi *hdmi)
> {
> mtk_hdmi_mask(hdmi, HDMITX_CONFIG, 0x0, HDMITX_SW_RSTB);
> @@ -889,6 +909,7 @@ static void mtk_hdmi_audio_reset(struct mtk_hdmi *hdmi, bool rst)
..snip..
> @@ -935,6 +957,28 @@ static void mtk_hdmi_reset_colorspace_setting(struct mtk_hdmi *hdmi)
> hdmi->ycc_quantization_range = HDMI_YCC_QUANTIZATION_RANGE_LIMITED;
> }
>
> +static void mtk_hdmi_audio_enable(struct mtk_hdmi *hdmi)
These two functions are used only in one function (each)... so you don't
need them. Just move the two lines in mtk_hdmi_audio_startup() ...
> +{
> + mtk_hdmi_aud_enable_packet(hdmi, true);
> + hdmi->audio_enable = true;
> +}
> +
> +static void mtk_hdmi_audio_disable(struct mtk_hdmi *hdmi)
> +{
... and in mtk_hdmi_audio_shutdown().
> + mtk_hdmi_aud_enable_packet(hdmi, false);
> + hdmi->audio_enable = false;
> +}
> +
> +static void mtk_hdmi_audio_set_param(struct mtk_hdmi *hdmi,
> + struct hdmi_audio_param *param)
> +{
> + if (!hdmi->audio_enable)
> + return;
> +
> + memcpy(&hdmi->aud_param, param, sizeof(*param));
> + mtk_hdmi_aud_output_config(hdmi, &hdmi->mode);
> +}
> +
> static void mtk_hdmi_change_video_resolution(struct mtk_hdmi *hdmi)
> {
> bool is_over_340M = false;
..snip..
> +
> +static int mtk_hdmi_audio_mute(struct device *dev, void *data, bool enable,
> + int direction)
> +{
> + struct mtk_hdmi *hdmi = dev_get_drvdata(dev);
> +
> + if (direction != SNDRV_PCM_STREAM_PLAYBACK)
Why aren't you returning an error here?
If this is really supposed to be like that, please add a comment in the code
explaining the reason, so that the next person reading this won't mistakenly
change that.
> + return 0;
> +
> + if (enable)
> + mtk_hdmi_hw_aud_mute(hdmi);
> + else
> + mtk_hdmi_hw_aud_unmute(hdmi);
> +
> + return 0;
> +}
> +
Regards,
Angelo
next prev parent reply other threads:[~2022-11-07 11:10 UTC|newest]
Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-04 14:09 [PATCH v3 00/12] Add MT8195 HDMI support Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` [PATCH v3 01/12] dt-bindings: phy: mediatek: hdmi-phy: Add mt8195 compatible Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 14:41 ` Guillaume Ranquet
2022-11-07 14:41 ` Guillaume Ranquet
2022-11-07 14:41 ` Guillaume Ranquet
2022-11-07 14:41 ` Guillaume Ranquet
2022-11-04 14:09 ` [PATCH v3 02/12] dt-bindings: display: mediatek: add MT8195 hdmi bindings Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-07 10:02 ` Krzysztof Kozlowski
2022-11-07 10:02 ` Krzysztof Kozlowski
2022-11-07 10:02 ` Krzysztof Kozlowski
2022-11-07 10:02 ` Krzysztof Kozlowski
2022-11-07 14:42 ` Guillaume Ranquet
2022-11-07 14:42 ` Guillaume Ranquet
2022-11-07 14:42 ` Guillaume Ranquet
2022-11-07 14:42 ` Guillaume Ranquet
2022-12-26 5:18 ` CK Hu (胡俊光)
2022-12-26 5:18 ` CK Hu (胡俊光)
2022-12-26 5:18 ` CK Hu (胡俊光)
2022-12-26 5:18 ` CK Hu (胡俊光)
2023-01-02 13:38 ` Guillaume Ranquet
2023-01-02 13:38 ` Guillaume Ranquet
2023-01-02 13:38 ` Guillaume Ranquet
2023-01-02 13:38 ` Guillaume Ranquet
2023-01-02 14:14 ` AngeloGioacchino Del Regno
2023-01-02 14:14 ` AngeloGioacchino Del Regno
2023-01-02 14:14 ` AngeloGioacchino Del Regno
2023-01-02 14:14 ` AngeloGioacchino Del Regno
2023-01-02 15:19 ` Guillaume Ranquet
2023-01-02 15:19 ` Guillaume Ranquet
2023-01-02 15:19 ` Guillaume Ranquet
2023-01-02 15:19 ` Guillaume Ranquet
2023-01-03 10:11 ` AngeloGioacchino Del Regno
2023-01-03 10:11 ` AngeloGioacchino Del Regno
2023-01-03 10:11 ` AngeloGioacchino Del Regno
2023-01-03 10:11 ` AngeloGioacchino Del Regno
2022-11-04 14:09 ` [PATCH v3 03/12] drm/mediatek: hdmi: use a regmap instead of iomem Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 14:43 ` Guillaume Ranquet
2022-11-07 14:43 ` Guillaume Ranquet
2022-11-07 14:43 ` Guillaume Ranquet
2022-11-07 14:43 ` Guillaume Ranquet
2022-11-04 14:09 ` [PATCH v3 04/12] drm/mediatek: extract common functions from the mtk hdmi driver Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-04 14:09 ` [PATCH v3 05/12] drm/mediatek: hdmi: make the cec dev optional Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` [PATCH v3 06/12] drm/mediatek: hdmi: add frame_colorimetry flag Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 14:57 ` Guillaume Ranquet
2022-11-07 14:57 ` Guillaume Ranquet
2022-11-07 14:57 ` Guillaume Ranquet
2022-11-07 14:57 ` Guillaume Ranquet
2022-11-04 14:09 ` [PATCH v3 07/12] drm/mediatek: hdmi: add v2 support Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-12-26 3:12 ` CK Hu (胡俊光)
2022-12-26 3:12 ` CK Hu (胡俊光)
2022-12-26 3:12 ` CK Hu (胡俊光)
2022-12-26 3:12 ` CK Hu (胡俊光)
2022-11-04 14:09 ` [PATCH v3 08/12] drm/mediatek: hdmi: v2: add audio support Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-07 11:09 ` AngeloGioacchino Del Regno [this message]
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-07 11:09 ` AngeloGioacchino Del Regno
2022-11-04 14:09 ` [PATCH v3 09/12] phy: phy-mtk-hdmi: Add generic phy configure callback Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` [PATCH v3 10/12] phy: mediatek: add support for phy-mtk-hdmi-mt8195 Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-10 7:22 ` Vinod Koul
2022-11-10 7:22 ` Vinod Koul
2022-11-10 7:22 ` Vinod Koul
2022-11-10 7:22 ` Vinod Koul
2022-11-04 14:09 ` [PATCH v3 11/12] dt-bindings: display: mediatek: dpi: Add compatible for MediaTek MT8195 Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` [PATCH v3 12/12] drm/mediatek: dpi: Add mt8195 hdmi to DPI driver Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-04 14:09 ` Guillaume Ranquet
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 11:20 ` AngeloGioacchino Del Regno
2022-11-07 15:06 ` Guillaume Ranquet
2022-11-07 15:06 ` Guillaume Ranquet
2022-11-07 15:06 ` Guillaume Ranquet
2022-11-07 15:06 ` Guillaume Ranquet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5895f15f-44ae-6164-77dd-c9bae5436a47@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=airlied@gmail.com \
--cc=chunfeng.yun@mediatek.com \
--cc=chunkuang.hu@kernel.org \
--cc=ck.hu@mediatek.com \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=granquet@baylibre.com \
--cc=jitao.shi@mediatek.com \
--cc=kishon@ti.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-phy@lists.infradead.org \
--cc=mac.shen@mediatek.com \
--cc=matthias.bgg@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=stuart.lee@mediatek.com \
--cc=vkoul@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.