From: Yakir Yang <ykk@rock-chips.com>
To: Russell King <rmk+kernel@arm.linux.org.uk>,
linux-rockchip@lists.infradead.org,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Cc: Philipp Zabel <p.zabel@pengutronix.de>,
Andy Yan <andy.yan@rock-chips.com>,
Fabio Estevam <fabio.estevam@freescale.com>,
Sascha Hauer <s.hauer@pengutronix.de>,
Jon Nettleton <jon.nettleton@gmail.com>,
David Airlie <airlied@linux.ie>
Subject: Re: [PATCH 08/12] drm: bridge/dw_hdmi: avoid enabling interface in mode_set
Date: Wed, 07 Oct 2015 11:50:53 +0800 [thread overview]
Message-ID: <5614969D.7030201@rock-chips.com> (raw)
In-Reply-To: <E1ZO6bI-0002rG-PI@rmk-PC.arm.linux.org.uk>
On 08/09/2015 12:04 AM, Russell King wrote:
> On a mode set, DRM makes the following sequence of calls:
> * for_each_encoder
> * bridge mode_fixup
> * encoder mode_fixup
> * crtc mode_fixup
> * for_each_encoder
> * bridge disable
> * encoder prepare
> * bridge post_disable
> * disable unused encoders
> * crtc prepare
> * crtc mode_set
> * for_each_encoder
> * encoder mode_set
> * bridge mode_set
> * crtc commit
> * for_each_encoder
> * bridge pre_enable
> * encoder commit
> * bridge enable
>
> dw_hdmi enables the HDMI output in both the bridge mode_set() and also
> the bridge enable() step. This is duplicated work - we can avoid the
> setup in mode_set() and just do it in the enable() stage. This
> simplifies the code a little.
>
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
I have noticed that dw_hdmi driver have poweron/poweroff when
driver detect HPD event in irq thread, that's also duplicated works,
would you like to collect that changes into this one:
static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
{
......
if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
if (phy_int_pol & HDMI_PHY_HPD) {
dev_dbg(hdmi->dev, "EVENT=plugin\n");
hdmi_modb(hdmi, 0, HDMI_PHY_HPD, HDMI_PHY_POL0);
dw_hdmi_poweron(hdmi); // no need here
} else {
dev_dbg(hdmi->dev, "EVENT=plugout\n");
hdmi_modb(hdmi, HDMI_PHY_HPD, HDMI_PHY_HPD,
HDMI_PHY_POL0);
dw_hdmi_poweroff(hdmi); // no need here
}
drm_helper_hpd_irq_event(hdmi->connector.dev);
}
......
}
Thanks,
- Yakir
> ---
> drivers/gpu/drm/bridge/dw_hdmi.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c
> index 578d7362cd65..fbac8386552b 100644
> --- a/drivers/gpu/drm/bridge/dw_hdmi.c
> +++ b/drivers/gpu/drm/bridge/dw_hdmi.c
> @@ -1389,8 +1389,6 @@ static void dw_hdmi_bridge_mode_set(struct drm_bridge *bridge,
> {
> struct dw_hdmi *hdmi = bridge->driver_private;
>
> - dw_hdmi_setup(hdmi, mode);
> -
> /* Store the display mode for plugin/DKMS poweron events */
> memcpy(&hdmi->previous_mode, mode, sizeof(hdmi->previous_mode));
> }
WARNING: multiple messages have this Message-ID (diff)
From: ykk@rock-chips.com (Yakir Yang)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 08/12] drm: bridge/dw_hdmi: avoid enabling interface in mode_set
Date: Wed, 07 Oct 2015 11:50:53 +0800 [thread overview]
Message-ID: <5614969D.7030201@rock-chips.com> (raw)
In-Reply-To: <E1ZO6bI-0002rG-PI@rmk-PC.arm.linux.org.uk>
On 08/09/2015 12:04 AM, Russell King wrote:
> On a mode set, DRM makes the following sequence of calls:
> * for_each_encoder
> * bridge mode_fixup
> * encoder mode_fixup
> * crtc mode_fixup
> * for_each_encoder
> * bridge disable
> * encoder prepare
> * bridge post_disable
> * disable unused encoders
> * crtc prepare
> * crtc mode_set
> * for_each_encoder
> * encoder mode_set
> * bridge mode_set
> * crtc commit
> * for_each_encoder
> * bridge pre_enable
> * encoder commit
> * bridge enable
>
> dw_hdmi enables the HDMI output in both the bridge mode_set() and also
> the bridge enable() step. This is duplicated work - we can avoid the
> setup in mode_set() and just do it in the enable() stage. This
> simplifies the code a little.
>
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
I have noticed that dw_hdmi driver have poweron/poweroff when
driver detect HPD event in irq thread, that's also duplicated works,
would you like to collect that changes into this one:
static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
{
......
if (intr_stat & HDMI_IH_PHY_STAT0_HPD) {
if (phy_int_pol & HDMI_PHY_HPD) {
dev_dbg(hdmi->dev, "EVENT=plugin\n");
hdmi_modb(hdmi, 0, HDMI_PHY_HPD, HDMI_PHY_POL0);
dw_hdmi_poweron(hdmi); // no need here
} else {
dev_dbg(hdmi->dev, "EVENT=plugout\n");
hdmi_modb(hdmi, HDMI_PHY_HPD, HDMI_PHY_HPD,
HDMI_PHY_POL0);
dw_hdmi_poweroff(hdmi); // no need here
}
drm_helper_hpd_irq_event(hdmi->connector.dev);
}
......
}
Thanks,
- Yakir
> ---
> drivers/gpu/drm/bridge/dw_hdmi.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/dw_hdmi.c b/drivers/gpu/drm/bridge/dw_hdmi.c
> index 578d7362cd65..fbac8386552b 100644
> --- a/drivers/gpu/drm/bridge/dw_hdmi.c
> +++ b/drivers/gpu/drm/bridge/dw_hdmi.c
> @@ -1389,8 +1389,6 @@ static void dw_hdmi_bridge_mode_set(struct drm_bridge *bridge,
> {
> struct dw_hdmi *hdmi = bridge->driver_private;
>
> - dw_hdmi_setup(hdmi, mode);
> -
> /* Store the display mode for plugin/DKMS poweron events */
> memcpy(&hdmi->previous_mode, mode, sizeof(hdmi->previous_mode));
> }
next prev parent reply other threads:[~2015-10-07 3:50 UTC|newest]
Thread overview: 221+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-08 16:02 [PATCH 00/12] dw-hdmi development Russell King - ARM Linux
2015-08-08 16:02 ` Russell King - ARM Linux
2015-08-08 16:02 ` Russell King - ARM Linux
2015-08-08 16:03 ` [PATCH 01/12] drm: bridge/dw_hdmi: remove pixel repetition setting for all VICs Russell King
2015-08-08 16:03 ` Russell King
2015-08-08 16:03 ` [PATCH 02/12] drm: bridge/dw_hdmi: don't support any pixel doubled modes Russell King
2015-08-08 16:03 ` Russell King
2015-08-08 16:03 ` [PATCH 03/12] gpu: imx: simplify sync polarity setting Russell King
2015-08-08 16:03 ` Russell King
2015-10-06 17:57 ` Fabio Estevam
2015-10-06 17:57 ` Fabio Estevam
2015-10-06 17:57 ` Fabio Estevam
2015-08-08 16:03 ` [PATCH 04/12] gpu: imx: fix support for interlaced modes Russell King
2015-08-08 16:03 ` Russell King
[not found] ` <E1ZO6ay-0002qh-6E-eh5Bv4kxaXIANfyc6IWni62ZND6+EDdj@public.gmane.org>
2015-08-27 8:39 ` Philipp Zabel
2015-08-27 8:39 ` Philipp Zabel
2015-08-27 8:39 ` Philipp Zabel
2015-08-27 8:54 ` Russell King - ARM Linux
2015-08-27 8:54 ` Russell King - ARM Linux
2015-08-27 8:54 ` Russell King - ARM Linux
2015-08-27 9:40 ` Philipp Zabel
2015-08-27 9:40 ` Philipp Zabel
2015-08-27 9:40 ` Philipp Zabel
2015-10-06 17:59 ` Fabio Estevam
2015-10-06 17:59 ` Fabio Estevam
2015-08-08 16:03 ` [PATCH 05/12] drm: bridge/dw_hdmi: add support for interlaced video modes Russell King
2015-08-08 16:03 ` Russell King
2015-08-08 16:03 ` Russell King
2015-10-06 18:00 ` Fabio Estevam
2015-10-06 18:00 ` Fabio Estevam
2015-10-06 18:00 ` Fabio Estevam
2015-08-08 16:03 ` [PATCH 06/12] drm: bridge/dw_hdmi: clean up HDMI vs DVI mode handling Russell King
2015-08-08 16:03 ` Russell King
2015-10-07 3:40 ` Yakir Yang
2015-10-07 3:40 ` Yakir Yang
2015-10-07 3:40 ` Yakir Yang
2015-08-08 16:03 ` [PATCH 07/12] drm: bridge/dw_hdmi: enable audio only if sink supports audio Russell King
2015-08-08 16:03 ` Russell King
2015-10-07 3:42 ` Yakir Yang
2015-10-07 3:42 ` Yakir Yang
2015-10-07 3:42 ` Yakir Yang
2015-08-08 16:04 ` [PATCH 08/12] drm: bridge/dw_hdmi: avoid enabling interface in mode_set Russell King
2015-08-08 16:04 ` Russell King
2015-10-07 3:50 ` Yakir Yang [this message]
2015-10-07 3:50 ` Yakir Yang
2015-10-07 9:18 ` Russell King - ARM Linux
2015-10-07 9:18 ` Russell King - ARM Linux
2015-10-07 9:18 ` Russell King - ARM Linux
2015-10-07 9:35 ` Yakir Yang
2015-10-07 9:35 ` Yakir Yang
2015-10-07 9:35 ` Yakir Yang
2015-08-08 16:04 ` [PATCH 09/12] drm: bridge/dw_hdmi: rename dw_hdmi_phy_enable_power() Russell King
2015-08-08 16:04 ` Russell King
2015-08-08 16:04 ` Russell King
2015-10-07 4:00 ` Yakir Yang
[not found] ` <20150808160251.GM7557-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-08-08 16:04 ` [PATCH 10/12] drm: bridge/dw_hdmi: fix phy enable/disable handling Russell King
2015-08-08 16:04 ` Russell King
2015-08-08 16:04 ` Russell King
2015-10-07 4:05 ` Yakir Yang
2015-10-07 9:48 ` Russell King - ARM Linux
2015-10-07 9:48 ` Russell King - ARM Linux
2015-10-07 9:48 ` Russell King - ARM Linux
2015-10-07 10:40 ` Yakir Yang
2015-10-07 19:17 ` Russell King - ARM Linux
2015-10-07 19:17 ` Russell King - ARM Linux
2015-10-07 19:17 ` Russell King - ARM Linux
2015-10-08 8:35 ` Yakir Yang
2015-10-08 8:35 ` Yakir Yang
2015-10-08 8:35 ` Yakir Yang
2015-08-08 16:04 ` [PATCH 11/12] drm: bridge/dw_hdmi: add connector mode forcing Russell King
2015-08-08 16:04 ` Russell King
2015-08-08 16:04 ` Russell King
2015-10-06 18:01 ` Fabio Estevam
2015-10-06 18:01 ` Fabio Estevam
2015-08-08 16:04 ` [PATCH 12/12] drm: bridge/dw_hdmi: improve HDMI enable/disable handling Russell King
2015-08-08 16:04 ` Russell King
2015-10-06 18:03 ` Fabio Estevam
2015-10-06 18:03 ` Fabio Estevam
2015-10-06 18:03 ` Fabio Estevam
2015-08-08 16:09 ` [PATCH 0/9] dw-hdmi audio support Russell King - ARM Linux
2015-08-08 16:09 ` Russell King - ARM Linux
2015-08-08 16:09 ` Russell King - ARM Linux
2015-08-08 16:10 ` [PATCH 1/9] drm: bridge/dw_hdmi-ahb-audio: add audio driver Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` Russell King
2015-08-10 10:05 ` Takashi Iwai
2015-08-10 10:05 ` Takashi Iwai
2015-08-10 10:05 ` Takashi Iwai
2015-08-10 10:39 ` Russell King - ARM Linux
2015-08-10 10:39 ` Russell King - ARM Linux
2015-08-10 10:39 ` Russell King - ARM Linux
2015-08-10 12:23 ` Takashi Iwai
2015-08-10 12:23 ` Takashi Iwai
2015-08-10 12:23 ` Takashi Iwai
2015-08-10 16:49 ` Russell King - ARM Linux
2015-08-10 16:49 ` Russell King - ARM Linux
2015-08-10 16:49 ` Russell King - ARM Linux
2015-08-10 18:16 ` Mark Brown
2015-08-10 18:16 ` Mark Brown
2015-08-14 13:54 ` [PATCH v2 1/9] drm: bridge/dw_hdmi-ahb-audio: add audio driver David Airlie <airlied@linux.ie>, Sascha Hauer <s.hauer@pengutronix.de>, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Jaroslav Kysela <perex@perex.cz>, linux-rockchip@lists.infradead.org, Mark Brown <broonie@kernel.org>, Philipp Zabel <p.zabel@pengutronix.de>, Yakir Yang <ykk@rock-chips.com>, Andy Yan <andy.yan@rock-chips.com>, Jon Nettleton <jon.nettleton@gmail.com>, linux-arm-kernel@lists.infradead.org Russell King
2015-08-14 13:54 ` Russell King
2015-08-14 13:54 ` Russell King
2015-08-14 14:04 ` [PATCH v2 1/9] drm: bridge/dw_hdmi-ahb-audio: add audio driver Russell King
2015-08-14 14:04 ` Russell King
2015-08-14 14:04 ` Russell King
2015-08-14 14:34 ` [alsa-devel] " Takashi Iwai
2015-08-14 14:34 ` Takashi Iwai
2015-08-14 14:34 ` Takashi Iwai
2015-10-06 18:07 ` [PATCH " Fabio Estevam
2015-10-06 18:07 ` Fabio Estevam
2015-10-06 18:18 ` Russell King - ARM Linux
2015-10-06 18:18 ` Russell King - ARM Linux
2015-10-06 18:18 ` Russell King - ARM Linux
2015-10-06 18:45 ` Fabio Estevam
2015-10-06 18:45 ` Fabio Estevam
2015-10-06 18:54 ` Russell King - ARM Linux
2015-10-06 18:54 ` Russell King - ARM Linux
2015-10-06 18:54 ` Russell King - ARM Linux
2015-10-06 20:25 ` Fabio Estevam
2015-10-06 20:25 ` Fabio Estevam
2015-10-06 20:25 ` Fabio Estevam
2015-10-09 16:00 ` Russell King - ARM Linux
2015-10-09 16:00 ` Russell King - ARM Linux
2015-10-09 16:00 ` Russell King - ARM Linux
2015-10-09 16:02 ` Fabio Estevam
2015-10-09 16:02 ` Fabio Estevam
2015-10-09 16:02 ` Fabio Estevam
2015-10-09 16:11 ` Russell King - ARM Linux
2015-10-09 16:11 ` Russell King - ARM Linux
2015-10-09 16:11 ` Russell King - ARM Linux
2015-08-08 16:10 ` [PATCH 2/9] drm: bridge/dw_hdmi-ahb-audio: parse ELD from HDMI driver Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` [PATCH 3/9] drm: bridge/dw_hdmi-ahb-audio: basic support for multi-channel PCM audio Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` [PATCH 4/9] drm: bridge/dw_hdmi-ahb-audio: allow larger buffer sizes Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` [PATCH 5/9] drm: bridge/dw_hdmi: avoid being recursive in N calculation Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` Russell King
2015-09-04 17:50 ` Doug Anderson
2015-09-04 17:50 ` Doug Anderson
2015-08-08 16:10 ` [PATCH 6/9] drm: bridge/dw_hdmi: adjust pixel clock values " Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` Russell King
2015-09-04 18:21 ` Doug Anderson
2015-09-04 18:21 ` Doug Anderson
2015-09-04 18:21 ` Doug Anderson
2015-09-04 19:48 ` Doug Anderson
2015-09-04 19:48 ` Doug Anderson
2015-09-04 19:48 ` Doug Anderson
2015-09-04 21:24 ` Russell King - ARM Linux
2015-09-04 21:24 ` Russell King - ARM Linux
2015-09-04 21:24 ` Russell King - ARM Linux
2015-09-04 23:50 ` Doug Anderson
2015-09-04 23:50 ` Doug Anderson
2015-09-04 23:50 ` Doug Anderson
2015-09-05 0:27 ` Russell King - ARM Linux
2015-09-05 0:27 ` Russell King - ARM Linux
2015-09-05 0:27 ` Russell King - ARM Linux
2015-09-05 2:03 ` Doug Anderson
2015-09-05 2:03 ` Doug Anderson
2015-09-05 2:03 ` Doug Anderson
2015-09-05 8:31 ` Russell King - ARM Linux
2015-09-05 8:31 ` Russell King - ARM Linux
2015-09-05 8:31 ` Russell King - ARM Linux
2015-09-05 13:46 ` Doug Anderson
2015-09-05 13:46 ` Doug Anderson
2015-09-05 13:46 ` Doug Anderson
2015-09-05 14:01 ` Russell King - ARM Linux
2015-09-05 14:01 ` Russell King - ARM Linux
2015-09-05 14:01 ` Russell King - ARM Linux
2015-09-05 19:44 ` Doug Anderson
2015-09-05 19:44 ` Doug Anderson
2015-09-05 19:44 ` Doug Anderson
2015-09-05 8:34 ` Russell King - ARM Linux
2015-09-05 8:34 ` Russell King - ARM Linux
2015-09-05 8:34 ` Russell King - ARM Linux
2015-09-05 13:50 ` Doug Anderson
2015-09-05 13:50 ` Doug Anderson
2015-09-05 13:50 ` Doug Anderson
2015-08-08 16:10 ` [PATCH 7/9] drm: bridge/dw_hdmi: remove ratio support from ACR code Russell King
2015-08-08 16:10 ` Russell King
2015-08-08 16:10 ` Russell King
2015-09-04 18:24 ` Doug Anderson
2015-09-04 18:24 ` Doug Anderson
2015-09-04 18:24 ` Doug Anderson
2015-08-08 16:10 ` [PATCH 8/9] drm: bridge/dw_hdmi: replace CTS calculation for the ACR Russell King
2015-08-08 16:10 ` Russell King
2015-09-04 20:00 ` Doug Anderson
2015-09-04 20:00 ` Doug Anderson
2015-09-04 20:00 ` Doug Anderson
2015-08-08 16:10 ` [PATCH 9/9] drm: bridge/dw_hdmi-i2s-audio: add audio driver Russell King
2015-08-08 16:10 ` Russell King
2015-08-10 15:48 ` Russell King - ARM Linux
2015-08-10 15:48 ` Russell King - ARM Linux
2015-08-10 15:48 ` Russell King - ARM Linux
2015-08-10 16:26 ` Yakir Yang
2015-08-10 16:26 ` Yakir Yang
2015-08-10 16:26 ` Yakir Yang
2015-08-27 8:42 ` [PATCH 0/9] dw-hdmi audio support Philipp Zabel
2015-08-27 8:42 ` Philipp Zabel
2015-08-27 8:42 ` Philipp Zabel
2016-01-05 15:40 ` [alsa-devel] " Jean-Michel Hautbois
2016-01-05 15:40 ` Jean-Michel Hautbois
2016-01-05 15:54 ` Fabio Estevam
2016-01-05 15:54 ` Fabio Estevam
2016-01-05 15:54 ` Fabio Estevam
2016-01-05 16:04 ` Russell King - ARM Linux
2016-01-05 16:04 ` Russell King - ARM Linux
2016-01-05 16:04 ` Russell King - ARM Linux
2016-01-07 8:21 ` Jean-Michel Hautbois
2016-01-07 8:21 ` Jean-Michel Hautbois
2016-01-07 8:21 ` Jean-Michel Hautbois
2015-08-10 12:21 ` [PATCH 00/12] dw-hdmi development Thierry Reding
2015-08-10 12:21 ` Thierry Reding
2015-08-10 12:21 ` Thierry Reding
2015-08-18 10:37 ` Russell King - ARM Linux
2015-08-18 10:37 ` Russell King - ARM Linux
2015-08-18 10:37 ` Russell King - ARM Linux
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=5614969D.7030201@rock-chips.com \
--to=ykk@rock-chips.com \
--cc=airlied@linux.ie \
--cc=andy.yan@rock-chips.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=fabio.estevam@freescale.com \
--cc=jon.nettleton@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=p.zabel@pengutronix.de \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=s.hauer@pengutronix.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 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.