From: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
To: "CK Hu (胡俊光)" <ck.hu@mediatek.com>,
"chunkuang.hu@kernel.org" <chunkuang.hu@kernel.org>
Cc: "linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"tzimmermann@suse.de" <tzimmermann@suse.de>,
"simona@ffwll.ch" <simona@ffwll.ch>,
"mripard@kernel.org" <mripard@kernel.org>,
"kernel@collabora.com" <kernel@collabora.com>,
"p.zabel@pengutronix.de" <p.zabel@pengutronix.de>,
"maarten.lankhorst@linux.intel.com"
<maarten.lankhorst@linux.intel.com>,
"conor+dt@kernel.org" <conor+dt@kernel.org>,
"robh@kernel.org" <robh@kernel.org>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"airlied@gmail.com" <airlied@gmail.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"matthias.bgg@gmail.com" <matthias.bgg@gmail.com>,
"krzk+dt@kernel.org" <krzk+dt@kernel.org>
Subject: Re: [PATCH v1 7/7] drm/mediatek: Introduce HDMI/DDC v2 for MT8195/MT8188
Date: Wed, 4 Dec 2024 15:44:48 +0100 [thread overview]
Message-ID: <716b8630-66ef-4497-8cba-d5d20da2382a@collabora.com> (raw)
In-Reply-To: <559ac08df6614e47c3e8d9d8160b35c9e683c503.camel@mediatek.com>
Il 02/12/24 08:27, CK Hu (胡俊光) ha scritto:
> Hi, Angelo:
>
> On Wed, 2024-11-20 at 13:45 +0100, AngeloGioacchino Del Regno wrote:
>> External email : Please do not click links or open attachments until you have verified the sender or the content.
>>
>>
>> Add support for the newer HDMI-TX (Encoder) v2 and DDC v2 IPs
>> found in MediaTek's MT8195, MT8188 SoC and their variants, and
>> including support for display modes up to 4k60 and for HDMI
>> Audio, as per the HDMI 2.0 spec.
>>
>> HDCP and CEC functionalities are also supported by this hardware,
>> but are not included in this commit.
>>
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>> ---
>
> [snip]
>
>> +static int mtk_hdmi_v2_enable(struct mtk_hdmi *hdmi)
>> +{
>> + int ret;
>> +
>> + ret = pm_runtime_resume_and_get(hdmi->dev);
>
> Why turn on power when attach?
> Should hot-plug detection be always on so power on when attach?
> If so, maybe we need to use CEC to detect hot-plug because CEC has lower power and HDMI power would not be always on.
> As you describe previously, CEC just need some hack to support both HDMI Tx and HDMI Rx.
> So there is a software solution to use CEC to detect hot-plug in a lower power mode.
> And v1 use CEC to detect hot-plug, so it's worth to make v1 and v2 has the same behavior.
>
As I said, we can't use CEC to detect hotplug, because the same CEC controller
can be used for both HDMI TX and RX at the same time.
If you use CEC to detect cable attach and you have both HDMI RX and HDMI TX drivers
probed and ready, if you attach the cable to HDMI RX port, HDMI TX will try to get
enabled and will error out.
Same happens if you attach a cable to HDMI TX: HDMI RX will try to get enabled and
will error out.
The only way to use CEC for hotplug detection is to detect twice: CEC for HDMI
TX/RX controllers wakeup, then reset both, wait for autodetect in both controllers,
suppress errors, and start signal transmit or receive.
While it is technically possible to do so, it's very complicated and hacky.
Please keep in mind that on the new SoCs (8188/8195) the CEC block is different
from the one in the old SoCs (6795, 8173, etc) and requires an entirely new driver
to get it working.
Using CEC for hotplug detection would mean that we need 3 full drivers:
1. HDMI TX
2. HDMI RX
3. CEC
This is because the CEC is shared, so we need to have all three to properly test
the functionality - and this is not possible to do all at once.
To save some power (not much, though!), we can eventually go for your proposed
CEC detection *in the future*, but really not right now - and we can do that only
after upstreaming both HDMI TX and HDMI RX drivers.
The plan (time/effort pemitting!) would look like this:
Series 1 - Upstream HDMIv2 TX (HPD through HDMIv2 TX controller) - drivers/gpu/drm
Series 2 - Upstream HDMIv2 RX (HPD through HDMIv2 RX controller) - drivers/media
Series 3 - Upstream CEC driver (No HPD in CEC) - drivers/media
Series 4 - Implement HPD in CEC and use it in HDMIv2 TX and HDMIv2 RX - media,drm
You can see how complicated this is - and I'm sure that you understand why that
cannot be done all at once.
Adding up some: the HDMI driver is used only on IoT boards for now, which typically
run off AC and not battery - so the (again) very little power consumption raise is
not critical for now.
Cheers,
Angelo
> Regards,
> CK
>
>
>> + if (ret) {
>> + dev_err(hdmi->dev, "Cannot resume HDMI\n");
>> + return ret;
>> + }
>> +
>> + mtk_hdmi_v2_clk_enable(hdmi);
>> + mtk_hdmi_hw_reset(hdmi);
>> + mtk_hdmi_set_sw_hpd(hdmi, true);
>> +
>> + return 0;
>> +}
>> +
>
next prev parent reply other threads:[~2024-12-04 14:47 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-20 12:45 [PATCH v1 0/7] drm/mediatek: Add support for HDMIv2 and DDCv2 IPs AngeloGioacchino Del Regno
2024-11-20 12:45 ` [PATCH v1 1/7] dt-bindings: display: mediatek: Add binding for HDMIv2 DDC AngeloGioacchino Del Regno
2024-11-21 21:02 ` Rob Herring
2024-11-25 14:30 ` AngeloGioacchino Del Regno
2024-12-03 16:50 ` Rob Herring (Arm)
2024-11-20 12:45 ` [PATCH v1 2/7] dt-bindings: display: mediatek: Add binding for MT8195 HDMI-TX v2 AngeloGioacchino Del Regno
2024-11-20 14:29 ` Rob Herring (Arm)
2024-11-28 6:02 ` CK Hu (胡俊光)
2024-11-28 10:32 ` AngeloGioacchino Del Regno
2024-11-29 2:51 ` CK Hu (胡俊光)
2024-12-04 15:01 ` AngeloGioacchino Del Regno
2024-11-20 12:45 ` [PATCH v1 3/7] drm/mediatek: mtk_cec: Switch to register as module_platform_driver AngeloGioacchino Del Regno
2024-11-22 14:59 ` kernel test robot
2024-11-20 12:45 ` [PATCH v1 4/7] drm/mediatek: mtk_hdmi_ddc: " AngeloGioacchino Del Regno
2024-11-20 12:45 ` [PATCH v1 5/7] drm/mediatek: hdmi: Use regmap instead of iomem for main registers AngeloGioacchino Del Regno
2024-11-20 12:45 ` [PATCH v1 6/7] drm/mediatek: mtk_hdmi: Split driver and add common probe function AngeloGioacchino Del Regno
2024-11-29 4:02 ` CK Hu (胡俊光)
2024-11-29 7:28 ` CK Hu (胡俊光)
2024-12-02 2:52 ` CK Hu (胡俊光)
2024-12-05 3:16 ` CK Hu (胡俊光)
2024-11-20 12:45 ` [PATCH v1 7/7] drm/mediatek: Introduce HDMI/DDC v2 for MT8195/MT8188 AngeloGioacchino Del Regno
2024-11-22 9:20 ` Maxime Ripard
2024-11-25 9:40 ` AngeloGioacchino Del Regno
2024-11-25 10:13 ` Maxime Ripard
2024-11-26 7:42 ` CK Hu (胡俊光)
2024-11-26 8:57 ` AngeloGioacchino Del Regno
2024-11-27 3:08 ` CK Hu (胡俊光)
2024-11-27 8:42 ` AngeloGioacchino Del Regno
2024-11-29 5:53 ` CK Hu (胡俊光)
2024-12-02 5:18 ` CK Hu (胡俊光)
2024-12-02 7:27 ` CK Hu (胡俊光)
2024-12-04 14:44 ` AngeloGioacchino Del Regno [this message]
2024-12-05 2:42 ` CK Hu (胡俊光)
2024-12-05 2:48 ` CK Hu (胡俊光)
2024-12-05 9:28 ` AngeloGioacchino Del Regno
2024-12-03 7:44 ` CK Hu (胡俊光)
2024-12-04 7:08 ` CK Hu (胡俊光)
2024-12-04 9:41 ` CK Hu (胡俊光)
2024-12-04 9:46 ` CK Hu (胡俊光)
2024-12-05 3:40 ` CK Hu (胡俊光)
2024-12-05 8:35 ` CK Hu (胡俊光)
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=716b8630-66ef-4497-8cba-d5d20da2382a@collabora.com \
--to=angelogioacchino.delregno@collabora.com \
--cc=airlied@gmail.com \
--cc=chunkuang.hu@kernel.org \
--cc=ck.hu@mediatek.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=kernel@collabora.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matthias.bgg@gmail.com \
--cc=mripard@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox