All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: devicetree@vger.kernel.org,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	kernel@pengutronix.de, "elaine.zhang" <zhangqing@rock-chips.com>,
	Sandy Huang <hjc@rock-chips.com>,
	dri-devel@lists.freedesktop.org,
	linux-rockchip@lists.infradead.org,
	Michael Riesch <michael.riesch@wolfvision.net>,
	Peter Geis <pgwipeout@gmail.com>,
	Andy Yan <andy.yan@rock-chips.com>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v8 09/24] drm/rockchip: dw_hdmi: Add support for niu clk
Date: Wed, 16 Mar 2022 15:31:05 +0100	[thread overview]
Message-ID: <20220316143105.GS405@pengutronix.de> (raw)
In-Reply-To: <4c04da9c-f9c9-7375-df1a-4661807549dd@collabora.com>

On Wed, Mar 16, 2022 at 04:01:49PM +0300, Dmitry Osipenko wrote:
> On 3/16/22 12:12, Sascha Hauer wrote:
> > On Mon, Mar 14, 2022 at 08:54:27PM +0300, Dmitry Osipenko wrote:
> >> On 3/14/22 11:18, Sascha Hauer wrote:
> >>> On Sun, Mar 13, 2022 at 12:07:56AM +0300, Dmitry Osipenko wrote:
> >>>> On 3/11/22 11:33, Sascha Hauer wrote:
> >>>>> The rk3568 HDMI has an additional clock that needs to be enabled for the
> >>>>> HDMI controller to work. This clock is not needed for the HDMI
> >>>>> controller itself, but to make the SoC internal bus logic work. From the
> >>>>> reference manual:
> >>>>>
> >>>>>> 2.8.6 NIU Clock gating reliance
> >>>>>>
> >>>>>> A part of niu clocks have a dependence on another niu clock in order to
> >>>>>> sharing the internal bus. When these clocks are in use, another niu
> >>>>>> clock must be opened, and cannot be gated.  These clocks and the special
> >>>>>> clock on which they are relied are as following:
> >>>>>>
> >>>>>> Clocks which have dependency     The clock which can not be gated
> >>>>>> -----------------------------------------------------------------
> >>>>>> ...
> >>>>>> pclk_vo_niu, hclk_vo_s_niu       hclk_vo_niu
> >>>>>> ...
> >>>>> The clock framework does not support turning on a clock whenever another
> >>>>> clock is turned on, so this patch adds support for the dependent clock
> >>>>> to the HDMI driver. We call it "NIU", which is for "Native Interface
> >>>>> Unit"
> >>>>
> >>>> This still doesn't make sense to me. You're saying that "pclk_vo_niu,
> >>>> hclk_vo_s_niu" depend on "hclk_vo_niu", but HDMI doesn't use pclk_vo, it
> >>>> uses pclk_hdmi.
> >>>
> >>> pclk_hdmi_host is a child clock of pclk_vo:
> >>>
> >>>      aclk_vo                  2        2        0   300000000          0     0  50000         Y
> >>>         aclk_hdcp             0        0        0   300000000          0     0  50000         N
> >>>         pclk_vo               2        3        0    75000000          0     0  50000         Y
> >>>            pclk_edp_ctrl      0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_1       0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_0       1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdmi_host     1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdcp          0        0        0    75000000          0     0  50000         N
> >>>         hclk_vo               2        5        0   150000000          0     0  50000         Y
> >>>            hclk_hdcp          0        0        0   150000000          0     0  50000         N
> >>>            hclk_vop           0        2        0   150000000          0     0  50000         N
> >>
> >> It was unclear that the pclk_hdmi is the child of pclk_vo by looking at
> >> the clk driver's code, thank you!
> >>
> >> Won't be better if the implicit clk dependency would be handled
> >> internally by the RK clk driver?
> > 
> > I have considered handling something like coupled clocks in the clock
> > framework, but I have not yet considered handling this internally in the
> > Rockchip clock driver.
> > 
> > I just had a quick look at the driver. While it sounds like an easy task
> > to enable gate A whenever gate B is enabled I haven't found a good way to
> > integrate that into the clk driver. It seems to me that it's not easier
> > to implement in the clk driver than it is to implement it in the clk
> > framework where it could be used by others as well.
> > 
> >> For example, by making the common gate
> >> shared/refcounted. Have you considered this variant? Then we won't need
> >> to change the DT bindings.
> > 
> > For the DT bindings it is just an additional clock. Should we have a
> > better way to handle that case in the future we could simply ignore the
> > additional clock. I wouldn't bother too much about this.
> 
> To me that NIU quirk should be internal to the clk h/w module, so it
> doesn't feel nice to mix the clk h/w description with the HDMI h/w
> description.
> 
> On the other hand, making clk driver to handle this case indeed will
> take some effort as I see now. For example, clk driver of NVIDIA Tegra
> has concept of shared gates, but bringing it to the RK clk driver will
> be quite messy.
> 
> Alright, let's work around the clk limitation like you're suggesting. I
> agree that it shouldn't really be a problem to deprecate the extra clock
> later on.
> 
> I have last questions..
> 
> 1. Previously you said that the PD driver takes care of enabling all the
> clocks it can find in the device by itself on RPM-resume, then why HDMI
> driver needs to enable the clock explicitly?

The PD driver only does so when the device has pm_runtime enabled.
Currently that's not the case for the hdmi driver. That could be changed
of course, but I am not convinced that it's a good idea that the PD
driver messes with the consumers clocks. It would also make the PD
driver mandatory which it currently not is.

> 
> 2. You added clk_prepare_enable(), but there is no corresponding
> clk_disable_unprepare(), AFAICS. Why?

Because I missed it ;)

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

WARNING: multiple messages have this Message-ID (diff)
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: devicetree@vger.kernel.org,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	kernel@pengutronix.de, "elaine.zhang" <zhangqing@rock-chips.com>,
	Sandy Huang <hjc@rock-chips.com>,
	dri-devel@lists.freedesktop.org,
	linux-rockchip@lists.infradead.org,
	Michael Riesch <michael.riesch@wolfvision.net>,
	Peter Geis <pgwipeout@gmail.com>,
	Andy Yan <andy.yan@rock-chips.com>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v8 09/24] drm/rockchip: dw_hdmi: Add support for niu clk
Date: Wed, 16 Mar 2022 15:31:05 +0100	[thread overview]
Message-ID: <20220316143105.GS405@pengutronix.de> (raw)
In-Reply-To: <4c04da9c-f9c9-7375-df1a-4661807549dd@collabora.com>

On Wed, Mar 16, 2022 at 04:01:49PM +0300, Dmitry Osipenko wrote:
> On 3/16/22 12:12, Sascha Hauer wrote:
> > On Mon, Mar 14, 2022 at 08:54:27PM +0300, Dmitry Osipenko wrote:
> >> On 3/14/22 11:18, Sascha Hauer wrote:
> >>> On Sun, Mar 13, 2022 at 12:07:56AM +0300, Dmitry Osipenko wrote:
> >>>> On 3/11/22 11:33, Sascha Hauer wrote:
> >>>>> The rk3568 HDMI has an additional clock that needs to be enabled for the
> >>>>> HDMI controller to work. This clock is not needed for the HDMI
> >>>>> controller itself, but to make the SoC internal bus logic work. From the
> >>>>> reference manual:
> >>>>>
> >>>>>> 2.8.6 NIU Clock gating reliance
> >>>>>>
> >>>>>> A part of niu clocks have a dependence on another niu clock in order to
> >>>>>> sharing the internal bus. When these clocks are in use, another niu
> >>>>>> clock must be opened, and cannot be gated.  These clocks and the special
> >>>>>> clock on which they are relied are as following:
> >>>>>>
> >>>>>> Clocks which have dependency     The clock which can not be gated
> >>>>>> -----------------------------------------------------------------
> >>>>>> ...
> >>>>>> pclk_vo_niu, hclk_vo_s_niu       hclk_vo_niu
> >>>>>> ...
> >>>>> The clock framework does not support turning on a clock whenever another
> >>>>> clock is turned on, so this patch adds support for the dependent clock
> >>>>> to the HDMI driver. We call it "NIU", which is for "Native Interface
> >>>>> Unit"
> >>>>
> >>>> This still doesn't make sense to me. You're saying that "pclk_vo_niu,
> >>>> hclk_vo_s_niu" depend on "hclk_vo_niu", but HDMI doesn't use pclk_vo, it
> >>>> uses pclk_hdmi.
> >>>
> >>> pclk_hdmi_host is a child clock of pclk_vo:
> >>>
> >>>      aclk_vo                  2        2        0   300000000          0     0  50000         Y
> >>>         aclk_hdcp             0        0        0   300000000          0     0  50000         N
> >>>         pclk_vo               2        3        0    75000000          0     0  50000         Y
> >>>            pclk_edp_ctrl      0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_1       0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_0       1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdmi_host     1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdcp          0        0        0    75000000          0     0  50000         N
> >>>         hclk_vo               2        5        0   150000000          0     0  50000         Y
> >>>            hclk_hdcp          0        0        0   150000000          0     0  50000         N
> >>>            hclk_vop           0        2        0   150000000          0     0  50000         N
> >>
> >> It was unclear that the pclk_hdmi is the child of pclk_vo by looking at
> >> the clk driver's code, thank you!
> >>
> >> Won't be better if the implicit clk dependency would be handled
> >> internally by the RK clk driver?
> > 
> > I have considered handling something like coupled clocks in the clock
> > framework, but I have not yet considered handling this internally in the
> > Rockchip clock driver.
> > 
> > I just had a quick look at the driver. While it sounds like an easy task
> > to enable gate A whenever gate B is enabled I haven't found a good way to
> > integrate that into the clk driver. It seems to me that it's not easier
> > to implement in the clk driver than it is to implement it in the clk
> > framework where it could be used by others as well.
> > 
> >> For example, by making the common gate
> >> shared/refcounted. Have you considered this variant? Then we won't need
> >> to change the DT bindings.
> > 
> > For the DT bindings it is just an additional clock. Should we have a
> > better way to handle that case in the future we could simply ignore the
> > additional clock. I wouldn't bother too much about this.
> 
> To me that NIU quirk should be internal to the clk h/w module, so it
> doesn't feel nice to mix the clk h/w description with the HDMI h/w
> description.
> 
> On the other hand, making clk driver to handle this case indeed will
> take some effort as I see now. For example, clk driver of NVIDIA Tegra
> has concept of shared gates, but bringing it to the RK clk driver will
> be quite messy.
> 
> Alright, let's work around the clk limitation like you're suggesting. I
> agree that it shouldn't really be a problem to deprecate the extra clock
> later on.
> 
> I have last questions..
> 
> 1. Previously you said that the PD driver takes care of enabling all the
> clocks it can find in the device by itself on RPM-resume, then why HDMI
> driver needs to enable the clock explicitly?

The PD driver only does so when the device has pm_runtime enabled.
Currently that's not the case for the hdmi driver. That could be changed
of course, but I am not convinced that it's a good idea that the PD
driver messes with the consumers clocks. It would also make the PD
driver mandatory which it currently not is.

> 
> 2. You added clk_prepare_enable(), but there is no corresponding
> clk_disable_unprepare(), AFAICS. Why?

Because I missed it ;)

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID (diff)
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: devicetree@vger.kernel.org,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	Peter Geis <pgwipeout@gmail.com>,
	"elaine.zhang" <zhangqing@rock-chips.com>,
	Sandy Huang <hjc@rock-chips.com>,
	dri-devel@lists.freedesktop.org,
	linux-rockchip@lists.infradead.org,
	Michael Riesch <michael.riesch@wolfvision.net>,
	kernel@pengutronix.de, Andy Yan <andy.yan@rock-chips.com>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v8 09/24] drm/rockchip: dw_hdmi: Add support for niu clk
Date: Wed, 16 Mar 2022 15:31:05 +0100	[thread overview]
Message-ID: <20220316143105.GS405@pengutronix.de> (raw)
In-Reply-To: <4c04da9c-f9c9-7375-df1a-4661807549dd@collabora.com>

On Wed, Mar 16, 2022 at 04:01:49PM +0300, Dmitry Osipenko wrote:
> On 3/16/22 12:12, Sascha Hauer wrote:
> > On Mon, Mar 14, 2022 at 08:54:27PM +0300, Dmitry Osipenko wrote:
> >> On 3/14/22 11:18, Sascha Hauer wrote:
> >>> On Sun, Mar 13, 2022 at 12:07:56AM +0300, Dmitry Osipenko wrote:
> >>>> On 3/11/22 11:33, Sascha Hauer wrote:
> >>>>> The rk3568 HDMI has an additional clock that needs to be enabled for the
> >>>>> HDMI controller to work. This clock is not needed for the HDMI
> >>>>> controller itself, but to make the SoC internal bus logic work. From the
> >>>>> reference manual:
> >>>>>
> >>>>>> 2.8.6 NIU Clock gating reliance
> >>>>>>
> >>>>>> A part of niu clocks have a dependence on another niu clock in order to
> >>>>>> sharing the internal bus. When these clocks are in use, another niu
> >>>>>> clock must be opened, and cannot be gated.  These clocks and the special
> >>>>>> clock on which they are relied are as following:
> >>>>>>
> >>>>>> Clocks which have dependency     The clock which can not be gated
> >>>>>> -----------------------------------------------------------------
> >>>>>> ...
> >>>>>> pclk_vo_niu, hclk_vo_s_niu       hclk_vo_niu
> >>>>>> ...
> >>>>> The clock framework does not support turning on a clock whenever another
> >>>>> clock is turned on, so this patch adds support for the dependent clock
> >>>>> to the HDMI driver. We call it "NIU", which is for "Native Interface
> >>>>> Unit"
> >>>>
> >>>> This still doesn't make sense to me. You're saying that "pclk_vo_niu,
> >>>> hclk_vo_s_niu" depend on "hclk_vo_niu", but HDMI doesn't use pclk_vo, it
> >>>> uses pclk_hdmi.
> >>>
> >>> pclk_hdmi_host is a child clock of pclk_vo:
> >>>
> >>>      aclk_vo                  2        2        0   300000000          0     0  50000         Y
> >>>         aclk_hdcp             0        0        0   300000000          0     0  50000         N
> >>>         pclk_vo               2        3        0    75000000          0     0  50000         Y
> >>>            pclk_edp_ctrl      0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_1       0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_0       1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdmi_host     1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdcp          0        0        0    75000000          0     0  50000         N
> >>>         hclk_vo               2        5        0   150000000          0     0  50000         Y
> >>>            hclk_hdcp          0        0        0   150000000          0     0  50000         N
> >>>            hclk_vop           0        2        0   150000000          0     0  50000         N
> >>
> >> It was unclear that the pclk_hdmi is the child of pclk_vo by looking at
> >> the clk driver's code, thank you!
> >>
> >> Won't be better if the implicit clk dependency would be handled
> >> internally by the RK clk driver?
> > 
> > I have considered handling something like coupled clocks in the clock
> > framework, but I have not yet considered handling this internally in the
> > Rockchip clock driver.
> > 
> > I just had a quick look at the driver. While it sounds like an easy task
> > to enable gate A whenever gate B is enabled I haven't found a good way to
> > integrate that into the clk driver. It seems to me that it's not easier
> > to implement in the clk driver than it is to implement it in the clk
> > framework where it could be used by others as well.
> > 
> >> For example, by making the common gate
> >> shared/refcounted. Have you considered this variant? Then we won't need
> >> to change the DT bindings.
> > 
> > For the DT bindings it is just an additional clock. Should we have a
> > better way to handle that case in the future we could simply ignore the
> > additional clock. I wouldn't bother too much about this.
> 
> To me that NIU quirk should be internal to the clk h/w module, so it
> doesn't feel nice to mix the clk h/w description with the HDMI h/w
> description.
> 
> On the other hand, making clk driver to handle this case indeed will
> take some effort as I see now. For example, clk driver of NVIDIA Tegra
> has concept of shared gates, but bringing it to the RK clk driver will
> be quite messy.
> 
> Alright, let's work around the clk limitation like you're suggesting. I
> agree that it shouldn't really be a problem to deprecate the extra clock
> later on.
> 
> I have last questions..
> 
> 1. Previously you said that the PD driver takes care of enabling all the
> clocks it can find in the device by itself on RPM-resume, then why HDMI
> driver needs to enable the clock explicitly?

The PD driver only does so when the device has pm_runtime enabled.
Currently that's not the case for the hdmi driver. That could be changed
of course, but I am not convinced that it's a good idea that the PD
driver messes with the consumers clocks. It would also make the PD
driver mandatory which it currently not is.

> 
> 2. You added clk_prepare_enable(), but there is no corresponding
> clk_disable_unprepare(), AFAICS. Why?

Because I missed it ;)

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

WARNING: multiple messages have this Message-ID (diff)
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Cc: devicetree@vger.kernel.org,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	kernel@pengutronix.de, "elaine.zhang" <zhangqing@rock-chips.com>,
	Sandy Huang <hjc@rock-chips.com>,
	dri-devel@lists.freedesktop.org,
	linux-rockchip@lists.infradead.org,
	Michael Riesch <michael.riesch@wolfvision.net>,
	Peter Geis <pgwipeout@gmail.com>,
	Andy Yan <andy.yan@rock-chips.com>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v8 09/24] drm/rockchip: dw_hdmi: Add support for niu clk
Date: Wed, 16 Mar 2022 15:31:05 +0100	[thread overview]
Message-ID: <20220316143105.GS405@pengutronix.de> (raw)
In-Reply-To: <4c04da9c-f9c9-7375-df1a-4661807549dd@collabora.com>

On Wed, Mar 16, 2022 at 04:01:49PM +0300, Dmitry Osipenko wrote:
> On 3/16/22 12:12, Sascha Hauer wrote:
> > On Mon, Mar 14, 2022 at 08:54:27PM +0300, Dmitry Osipenko wrote:
> >> On 3/14/22 11:18, Sascha Hauer wrote:
> >>> On Sun, Mar 13, 2022 at 12:07:56AM +0300, Dmitry Osipenko wrote:
> >>>> On 3/11/22 11:33, Sascha Hauer wrote:
> >>>>> The rk3568 HDMI has an additional clock that needs to be enabled for the
> >>>>> HDMI controller to work. This clock is not needed for the HDMI
> >>>>> controller itself, but to make the SoC internal bus logic work. From the
> >>>>> reference manual:
> >>>>>
> >>>>>> 2.8.6 NIU Clock gating reliance
> >>>>>>
> >>>>>> A part of niu clocks have a dependence on another niu clock in order to
> >>>>>> sharing the internal bus. When these clocks are in use, another niu
> >>>>>> clock must be opened, and cannot be gated.  These clocks and the special
> >>>>>> clock on which they are relied are as following:
> >>>>>>
> >>>>>> Clocks which have dependency     The clock which can not be gated
> >>>>>> -----------------------------------------------------------------
> >>>>>> ...
> >>>>>> pclk_vo_niu, hclk_vo_s_niu       hclk_vo_niu
> >>>>>> ...
> >>>>> The clock framework does not support turning on a clock whenever another
> >>>>> clock is turned on, so this patch adds support for the dependent clock
> >>>>> to the HDMI driver. We call it "NIU", which is for "Native Interface
> >>>>> Unit"
> >>>>
> >>>> This still doesn't make sense to me. You're saying that "pclk_vo_niu,
> >>>> hclk_vo_s_niu" depend on "hclk_vo_niu", but HDMI doesn't use pclk_vo, it
> >>>> uses pclk_hdmi.
> >>>
> >>> pclk_hdmi_host is a child clock of pclk_vo:
> >>>
> >>>      aclk_vo                  2        2        0   300000000          0     0  50000         Y
> >>>         aclk_hdcp             0        0        0   300000000          0     0  50000         N
> >>>         pclk_vo               2        3        0    75000000          0     0  50000         Y
> >>>            pclk_edp_ctrl      0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_1       0        0        0    75000000          0     0  50000         N
> >>>            pclk_dsitx_0       1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdmi_host     1        2        0    75000000          0     0  50000         Y
> >>>            pclk_hdcp          0        0        0    75000000          0     0  50000         N
> >>>         hclk_vo               2        5        0   150000000          0     0  50000         Y
> >>>            hclk_hdcp          0        0        0   150000000          0     0  50000         N
> >>>            hclk_vop           0        2        0   150000000          0     0  50000         N
> >>
> >> It was unclear that the pclk_hdmi is the child of pclk_vo by looking at
> >> the clk driver's code, thank you!
> >>
> >> Won't be better if the implicit clk dependency would be handled
> >> internally by the RK clk driver?
> > 
> > I have considered handling something like coupled clocks in the clock
> > framework, but I have not yet considered handling this internally in the
> > Rockchip clock driver.
> > 
> > I just had a quick look at the driver. While it sounds like an easy task
> > to enable gate A whenever gate B is enabled I haven't found a good way to
> > integrate that into the clk driver. It seems to me that it's not easier
> > to implement in the clk driver than it is to implement it in the clk
> > framework where it could be used by others as well.
> > 
> >> For example, by making the common gate
> >> shared/refcounted. Have you considered this variant? Then we won't need
> >> to change the DT bindings.
> > 
> > For the DT bindings it is just an additional clock. Should we have a
> > better way to handle that case in the future we could simply ignore the
> > additional clock. I wouldn't bother too much about this.
> 
> To me that NIU quirk should be internal to the clk h/w module, so it
> doesn't feel nice to mix the clk h/w description with the HDMI h/w
> description.
> 
> On the other hand, making clk driver to handle this case indeed will
> take some effort as I see now. For example, clk driver of NVIDIA Tegra
> has concept of shared gates, but bringing it to the RK clk driver will
> be quite messy.
> 
> Alright, let's work around the clk limitation like you're suggesting. I
> agree that it shouldn't really be a problem to deprecate the extra clock
> later on.
> 
> I have last questions..
> 
> 1. Previously you said that the PD driver takes care of enabling all the
> clocks it can find in the device by itself on RPM-resume, then why HDMI
> driver needs to enable the clock explicitly?

The PD driver only does so when the device has pm_runtime enabled.
Currently that's not the case for the hdmi driver. That could be changed
of course, but I am not convinced that it's a good idea that the PD
driver messes with the consumers clocks. It would also make the PD
driver mandatory which it currently not is.

> 
> 2. You added clk_prepare_enable(), but there is no corresponding
> clk_disable_unprepare(), AFAICS. Why?

Because I missed it ;)

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-03-16 14:31 UTC|newest]

Thread overview: 159+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-11  8:32 [PATCH v8 00/24] drm/rockchip: RK356x VOP2 support Sascha Hauer
2022-03-11  8:32 ` Sascha Hauer
2022-03-11  8:32 ` Sascha Hauer
2022-03-11  8:32 ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 01/24] drm/rockchip: Embed drm_encoder into rockchip_decoder Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 02/24] drm/rockchip: Add crtc_endpoint_id to rockchip_encoder Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 03/24] drm/rockchip: dw_hdmi: rename vpll clock to reference clock Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 04/24] dt-bindings: display: rockchip: dw-hdmi: use "ref" as clock name Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 05/24] arm64: dts: rockchip: rk3399: rename HDMI ref clock to 'ref' Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 06/24] drm/rockchip: dw_hdmi: add rk3568 support Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 07/24] dt-bindings: display: rockchip: dw-hdmi: Add compatible for rk3568 HDMI Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 08/24] drm/rockchip: dw_hdmi: add regulator support Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 09/24] drm/rockchip: dw_hdmi: Add support for niu clk Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-12 21:07   ` Dmitry Osipenko
2022-03-12 21:07     ` Dmitry Osipenko
2022-03-12 21:07     ` Dmitry Osipenko
2022-03-12 21:07     ` Dmitry Osipenko
2022-03-14  8:18     ` Sascha Hauer
2022-03-14  8:18       ` Sascha Hauer
2022-03-14  8:18       ` Sascha Hauer
2022-03-14  8:18       ` Sascha Hauer
2022-03-14 17:54       ` Dmitry Osipenko
2022-03-14 17:54         ` Dmitry Osipenko
2022-03-14 17:54         ` Dmitry Osipenko
2022-03-14 17:54         ` Dmitry Osipenko
2022-03-16  9:12         ` Sascha Hauer
2022-03-16  9:12           ` Sascha Hauer
2022-03-16  9:12           ` Sascha Hauer
2022-03-16  9:12           ` Sascha Hauer
2022-03-16 13:01           ` Dmitry Osipenko
2022-03-16 13:01             ` Dmitry Osipenko
2022-03-16 13:01             ` Dmitry Osipenko
2022-03-16 13:01             ` Dmitry Osipenko
2022-03-16 13:55             ` Robin Murphy
2022-03-16 13:55               ` Robin Murphy
2022-03-16 13:55               ` Robin Murphy
2022-03-16 13:55               ` Robin Murphy
2022-03-16 14:01               ` Dmitry Osipenko
2022-03-16 14:01                 ` Dmitry Osipenko
2022-03-16 14:01                 ` Dmitry Osipenko
2022-03-16 14:01                 ` Dmitry Osipenko
2022-03-16 14:31             ` Sascha Hauer [this message]
2022-03-16 14:31               ` Sascha Hauer
2022-03-16 14:31               ` Sascha Hauer
2022-03-16 14:31               ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 10/24] dt-bindings: display: rockchip: dw-hdmi: Add additional clock Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11 14:55   ` Rob Herring
2022-03-11 14:55     ` Rob Herring
2022-03-11 14:55     ` Rob Herring
2022-03-11 14:55     ` Rob Herring
2022-03-11  8:33 ` [PATCH v8 11/24] dt-bindings: display: rockchip: dw-hdmi: Add regulator support Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 12/24] drm/rockchip: dw_hdmi: Use auto-generated tables Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 13/24] drm/rockchip: dw_hdmi: drop mode_valid hook Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 14/24] drm/rockchip: dw_hdmi: Set cur_ctr to 0 always Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 15/24] drm/rockchip: dw_hdmi: add default 594Mhz clk for 4K@60hz Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 16/24] dt-bindings: display: rockchip: dw-hdmi: Make unwedge pinctrl optional Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 17/24] arm64: dts: rockchip: rk356x: Add VOP2 nodes Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 18/24] arm64: dts: rockchip: rk356x: Add HDMI nodes Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 19/24] arm64: dts: rockchip: rk3568-evb: Enable VOP2 and hdmi Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 20/24] arm64: dts: rockchip: enable vop2 and hdmi tx on quartz64a Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 21/24] drm/rockchip: Make VOP driver optional Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 22/24] drm: rockchip: Add VOP2 driver Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-14 12:27   ` 黄家钗
2022-03-14 13:07   ` [PATCH " Huang Jiachai
2022-03-15  6:46   ` Andy Yan
2022-03-15  6:46     ` Andy Yan
2022-03-15  6:46     ` Andy Yan
2022-03-15  6:46     ` Andy Yan
2022-03-15 12:43     ` Daniel Stone
2022-03-15 12:43       ` Daniel Stone
2022-03-15 12:43       ` Daniel Stone
2022-03-15 12:43       ` Daniel Stone
2022-03-16  1:14       ` Andy Yan
2022-03-16  1:14         ` Andy Yan
2022-03-16  1:14         ` Andy Yan
2022-03-16  1:14         ` Andy Yan
2022-03-16  7:40     ` Sascha Hauer
2022-03-16  7:40       ` Sascha Hauer
2022-03-16  7:40       ` Sascha Hauer
2022-03-16  7:40       ` Sascha Hauer
2022-03-16 12:22       ` Andy Yan
2022-03-17  7:23         ` Andy Yan
2022-03-18  8:52           ` Sascha Hauer
2022-03-18  8:52             ` Sascha Hauer
2022-03-18  8:52             ` Sascha Hauer
2022-03-18  8:52             ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 23/24] dt-bindings: display: rockchip: Add binding for VOP2 Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33 ` [PATCH v8 24/24] dt-bindings: display: rockchip: dw-hdmi: fix ports description Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer
2022-03-11  8:33   ` Sascha Hauer

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=20220316143105.GS405@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=andy.yan@rock-chips.com \
    --cc=benjamin.gaignard@collabora.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.osipenko@collabora.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hjc@rock-chips.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=michael.riesch@wolfvision.net \
    --cc=pgwipeout@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=zhangqing@rock-chips.com \
    /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.