All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: "Jernej Škrabec" <jernej.skrabec@siol.net>
Cc: Archit Taneja <architt@codeaurora.org>,
	maxime.ripard@free-electrons.com, airlied@linux.ie,
	robh+dt@kernel.org, mark.rutland@arm.com, wens@csie.org,
	a.hajda@samsung.com, mturquette@baylibre.com,
	sboyd@codeaurora.org, Jose.Abreu@synopsys.com,
	narmstrong@baylibre.com, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-sunxi@googlegroups.com
Subject: Re: [PATCH 04/11] drm/bridge/synopsys: dw-hdmi: Export some PHY related functions
Date: Tue, 09 Jan 2018 18:08:55 +0200	[thread overview]
Message-ID: <1586880.7NXXgpct7p@avalon> (raw)
In-Reply-To: <10903755.CJpSM8RM5e@jernej-laptop>

Hello,

On Tuesday, 9 January 2018 17:58:46 EET Jernej =C5=A0krabec wrote:
> Dne torek, 09. januar 2018 ob 11:43:08 CET je Archit Taneja napisal(a):
> > On 12/31/2017 02:31 AM, Jernej Skrabec wrote:
> >> Parts of PHY code could be useful also for custom PHYs. For example,
> >> Allwinner A83T has custom PHY which is probably Synopsys gen2 PHY
> >> with few additional memory mapped registers, so most of the Synopsys P=
HY
> >> related code could be reused.
> >>=20
> >> It turns out that even completely custom HDMI PHYs, such as the one
> >> found in Allwinner H3, can reuse some of those functions. This would
> >> suggest that (some?) functions exported in this commit are actually pa=
rt
> >> of generic PHY interface and not really specific to Synopsys PHYs.
> >>=20
> >> Export useful PHY functions.
> >>=20
> >> Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
> >> ---
> >>=20
> >> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 45 +++++++++++++++++-------
> >> drivers/gpu/drm/bridge/synopsys/dw-hdmi.h |  2 ++
> >> include/drm/bridge/dw_hdmi.h              | 10 +++++++
> >> 3 files changed, 44 insertions(+), 13 deletions(-)
> >>=20
> >> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index
> >> 7ca14d7325b5..67467d0b683a 100644
> >> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c

[snip]

> >> @@ -1065,6 +1067,23 @@ static void
> >> dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable)
> >>   			 HDMI_PHY_CONF0_SELDIPIF_MASK);
> >>   }
> >>=20
> >> +void dw_hdmi_phy_gen2_reset(struct dw_hdmi *hdmi, u8 enable)
> >> +{
> >> +	hdmi_mask_writeb(hdmi, enable, HDMI_MC_PHYRSTZ,
> >> +			 HDMI_MC_PHYRSTZ_PHYRSTZ_OFFSET,
> >> +			 HDMI_MC_PHYRSTZ_PHYRSTZ_MASK);
> >> +}
> >> +EXPORT_SYMBOL_GPL(dw_hdmi_phy_gen2_reset);

I don't remember the details, is the reset signal Gen2-specific ?

How about asserting and deasserting the reset signal in the same call inste=
ad=20
of having to call this function twice ?

> >> +void dw_hdmi_phy_set_slave_addr(struct dw_hdmi *hdmi)
> >> +{
> >> +	hdmi_phy_test_clear(hdmi, 1);
> >> +	hdmi_writeb(hdmi, HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2,
> >> +		    HDMI_PHY_I2CM_SLAVE_ADDR);
> >> +	hdmi_phy_test_clear(hdmi, 0);
> >> +}
> >> +EXPORT_SYMBOL_GPL(dw_hdmi_phy_set_slave_addr);
> >=20
> > Should this be called dw_hdmi_phy_gen2_set_slave_addr?
>=20
> Probably. I will rename it in v2 to be consistent with other phy function=
s.

The I2C write function is called dw_hdmi_phy_i2c_write(). If we want to be=
=20
conosistent we should either rename this one to dw_hdmi_phy_i2c_set_addr() =
or=20
rename them both to dw_hdmi_phy_gen2_i2c_write() and=20
dw_hdmi_phy_gen2_i2c_set_addr(). I think I'd prefer the former, and we coul=
d=20
even drop gen2 from dw_hdmi_phy_gen2_pddq() and dw_hdmi_phy_gen2_txpwron() =
if=20
desired.

> > Looks good otherwise. Same for patches 3 and 4 in this series.
> >=20
> >> +
> >>   static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi)
> >>   {
> >>   	const struct dw_hdmi_phy_data *phy =3D hdmi->phy.data;

[snip]

=2D-=20
Regards,

Laurent Pinchart

WARNING: multiple messages have this Message-ID (diff)
From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/11] drm/bridge/synopsys: dw-hdmi: Export some PHY related functions
Date: Tue, 09 Jan 2018 18:08:55 +0200	[thread overview]
Message-ID: <1586880.7NXXgpct7p@avalon> (raw)
In-Reply-To: <10903755.CJpSM8RM5e@jernej-laptop>

Hello,

On Tuesday, 9 January 2018 17:58:46 EET Jernej ?krabec wrote:
> Dne torek, 09. januar 2018 ob 11:43:08 CET je Archit Taneja napisal(a):
> > On 12/31/2017 02:31 AM, Jernej Skrabec wrote:
> >> Parts of PHY code could be useful also for custom PHYs. For example,
> >> Allwinner A83T has custom PHY which is probably Synopsys gen2 PHY
> >> with few additional memory mapped registers, so most of the Synopsys PHY
> >> related code could be reused.
> >> 
> >> It turns out that even completely custom HDMI PHYs, such as the one
> >> found in Allwinner H3, can reuse some of those functions. This would
> >> suggest that (some?) functions exported in this commit are actually part
> >> of generic PHY interface and not really specific to Synopsys PHYs.
> >> 
> >> Export useful PHY functions.
> >> 
> >> Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
> >> ---
> >> 
> >> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 45 +++++++++++++++++-------
> >> drivers/gpu/drm/bridge/synopsys/dw-hdmi.h |  2 ++
> >> include/drm/bridge/dw_hdmi.h              | 10 +++++++
> >> 3 files changed, 44 insertions(+), 13 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index
> >> 7ca14d7325b5..67467d0b683a 100644
> >> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c

[snip]

> >> @@ -1065,6 +1067,23 @@ static void
> >> dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable)
> >>   			 HDMI_PHY_CONF0_SELDIPIF_MASK);
> >>   }
> >> 
> >> +void dw_hdmi_phy_gen2_reset(struct dw_hdmi *hdmi, u8 enable)
> >> +{
> >> +	hdmi_mask_writeb(hdmi, enable, HDMI_MC_PHYRSTZ,
> >> +			 HDMI_MC_PHYRSTZ_PHYRSTZ_OFFSET,
> >> +			 HDMI_MC_PHYRSTZ_PHYRSTZ_MASK);
> >> +}
> >> +EXPORT_SYMBOL_GPL(dw_hdmi_phy_gen2_reset);

I don't remember the details, is the reset signal Gen2-specific ?

How about asserting and deasserting the reset signal in the same call instead 
of having to call this function twice ?

> >> +void dw_hdmi_phy_set_slave_addr(struct dw_hdmi *hdmi)
> >> +{
> >> +	hdmi_phy_test_clear(hdmi, 1);
> >> +	hdmi_writeb(hdmi, HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2,
> >> +		    HDMI_PHY_I2CM_SLAVE_ADDR);
> >> +	hdmi_phy_test_clear(hdmi, 0);
> >> +}
> >> +EXPORT_SYMBOL_GPL(dw_hdmi_phy_set_slave_addr);
> > 
> > Should this be called dw_hdmi_phy_gen2_set_slave_addr?
> 
> Probably. I will rename it in v2 to be consistent with other phy functions.

The I2C write function is called dw_hdmi_phy_i2c_write(). If we want to be 
conosistent we should either rename this one to dw_hdmi_phy_i2c_set_addr() or 
rename them both to dw_hdmi_phy_gen2_i2c_write() and 
dw_hdmi_phy_gen2_i2c_set_addr(). I think I'd prefer the former, and we could 
even drop gen2 from dw_hdmi_phy_gen2_pddq() and dw_hdmi_phy_gen2_txpwron() if 
desired.

> > Looks good otherwise. Same for patches 3 and 4 in this series.
> > 
> >> +
> >>   static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi)
> >>   {
> >>   	const struct dw_hdmi_phy_data *phy = hdmi->phy.data;

[snip]

-- 
Regards,

Laurent Pinchart

WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: "Jernej Škrabec" <jernej.skrabec@siol.net>
Cc: Archit Taneja <architt@codeaurora.org>,
	maxime.ripard@free-electrons.com, airlied@linux.ie,
	robh+dt@kernel.org, mark.rutland@arm.com, wens@csie.org,
	a.hajda@samsung.com, mturquette@baylibre.com,
	sboyd@codeaurora.org, Jose.Abreu@synopsys.com,
	narmstrong@baylibre.com, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-sunxi@googlegroups.com
Subject: Re: [PATCH 04/11] drm/bridge/synopsys: dw-hdmi: Export some PHY related functions
Date: Tue, 09 Jan 2018 18:08:55 +0200	[thread overview]
Message-ID: <1586880.7NXXgpct7p@avalon> (raw)
In-Reply-To: <10903755.CJpSM8RM5e@jernej-laptop>

Hello,

On Tuesday, 9 January 2018 17:58:46 EET Jernej Škrabec wrote:
> Dne torek, 09. januar 2018 ob 11:43:08 CET je Archit Taneja napisal(a):
> > On 12/31/2017 02:31 AM, Jernej Skrabec wrote:
> >> Parts of PHY code could be useful also for custom PHYs. For example,
> >> Allwinner A83T has custom PHY which is probably Synopsys gen2 PHY
> >> with few additional memory mapped registers, so most of the Synopsys PHY
> >> related code could be reused.
> >> 
> >> It turns out that even completely custom HDMI PHYs, such as the one
> >> found in Allwinner H3, can reuse some of those functions. This would
> >> suggest that (some?) functions exported in this commit are actually part
> >> of generic PHY interface and not really specific to Synopsys PHYs.
> >> 
> >> Export useful PHY functions.
> >> 
> >> Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
> >> ---
> >> 
> >> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 45 +++++++++++++++++-------
> >> drivers/gpu/drm/bridge/synopsys/dw-hdmi.h |  2 ++
> >> include/drm/bridge/dw_hdmi.h              | 10 +++++++
> >> 3 files changed, 44 insertions(+), 13 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index
> >> 7ca14d7325b5..67467d0b683a 100644
> >> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> >> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c

[snip]

> >> @@ -1065,6 +1067,23 @@ static void
> >> dw_hdmi_phy_sel_interface_control(struct dw_hdmi *hdmi, u8 enable)
> >>   			 HDMI_PHY_CONF0_SELDIPIF_MASK);
> >>   }
> >> 
> >> +void dw_hdmi_phy_gen2_reset(struct dw_hdmi *hdmi, u8 enable)
> >> +{
> >> +	hdmi_mask_writeb(hdmi, enable, HDMI_MC_PHYRSTZ,
> >> +			 HDMI_MC_PHYRSTZ_PHYRSTZ_OFFSET,
> >> +			 HDMI_MC_PHYRSTZ_PHYRSTZ_MASK);
> >> +}
> >> +EXPORT_SYMBOL_GPL(dw_hdmi_phy_gen2_reset);

I don't remember the details, is the reset signal Gen2-specific ?

How about asserting and deasserting the reset signal in the same call instead 
of having to call this function twice ?

> >> +void dw_hdmi_phy_set_slave_addr(struct dw_hdmi *hdmi)
> >> +{
> >> +	hdmi_phy_test_clear(hdmi, 1);
> >> +	hdmi_writeb(hdmi, HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2,
> >> +		    HDMI_PHY_I2CM_SLAVE_ADDR);
> >> +	hdmi_phy_test_clear(hdmi, 0);
> >> +}
> >> +EXPORT_SYMBOL_GPL(dw_hdmi_phy_set_slave_addr);
> > 
> > Should this be called dw_hdmi_phy_gen2_set_slave_addr?
> 
> Probably. I will rename it in v2 to be consistent with other phy functions.

The I2C write function is called dw_hdmi_phy_i2c_write(). If we want to be 
conosistent we should either rename this one to dw_hdmi_phy_i2c_set_addr() or 
rename them both to dw_hdmi_phy_gen2_i2c_write() and 
dw_hdmi_phy_gen2_i2c_set_addr(). I think I'd prefer the former, and we could 
even drop gen2 from dw_hdmi_phy_gen2_pddq() and dw_hdmi_phy_gen2_txpwron() if 
desired.

> > Looks good otherwise. Same for patches 3 and 4 in this series.
> > 
> >> +
> >>   static void dw_hdmi_phy_power_off(struct dw_hdmi *hdmi)
> >>   {
> >>   	const struct dw_hdmi_phy_data *phy = hdmi->phy.data;

[snip]

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2018-01-09 16:08 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-30 21:01 [PATCH 00/11] drm/sun4i: Add A83T HDMI support Jernej Skrabec
2017-12-30 21:01 ` Jernej Skrabec
2017-12-30 21:01 ` Jernej Skrabec
2017-12-30 21:01 ` [PATCH 01/11] clk: sunxi-ng: Don't set k if width is 0 for nkmp plls Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2018-01-04 14:25   ` maxime.ripard
2018-01-04 14:25     ` maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8
2018-01-04 14:25     ` maxime.ripard at free-electrons.com
2018-01-04 14:45   ` Chen-Yu Tsai
2018-01-04 14:45     ` Chen-Yu Tsai
2018-01-04 14:45     ` Chen-Yu Tsai
2018-01-04 19:28     ` Jernej Škrabec
2018-01-04 19:28       ` Jernej Škrabec
2018-01-04 19:28       ` Jernej Škrabec
2018-01-08  9:19       ` [linux-sunxi] " Chen-Yu Tsai
2018-01-08  9:19         ` Chen-Yu Tsai
2018-01-08  9:19         ` Chen-Yu Tsai
2018-01-08  9:19         ` [linux-sunxi] " Chen-Yu Tsai
2018-01-09 15:54         ` Jernej Škrabec
2018-01-09 15:54           ` Jernej Škrabec
2018-01-09 15:54           ` Jernej Škrabec
2017-12-30 21:01 ` [PATCH 02/11] clk: sunxi-ng: a83t: Add M divider to TCON1 clock Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2018-01-03  5:46   ` Chen-Yu Tsai
2018-01-03  5:46     ` Chen-Yu Tsai
2017-12-30 21:01 ` [PATCH 03/11] drm/bridge/synopsys: dw-hdmi: Enable workaround for v1.32a Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2018-01-09 12:56   ` Laurent Pinchart
2018-01-09 12:56     ` Laurent Pinchart
2018-01-09 15:29     ` Neil Armstrong
2018-01-09 15:29       ` Neil Armstrong
2018-01-09 15:29       ` Neil Armstrong
2017-12-30 21:01 ` [PATCH 04/11] drm/bridge/synopsys: dw-hdmi: Export some PHY related functions Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2018-01-09 10:43   ` Archit Taneja
2018-01-09 10:43     ` Archit Taneja
2018-01-09 10:43     ` Archit Taneja
2018-01-09 15:58     ` Jernej Škrabec
2018-01-09 15:58       ` Jernej Škrabec
2018-01-09 15:58       ` Jernej Škrabec
2018-01-09 16:08       ` Laurent Pinchart [this message]
2018-01-09 16:08         ` Laurent Pinchart
2018-01-09 16:08         ` Laurent Pinchart
2018-01-09 16:33         ` Jernej Škrabec
2018-01-09 16:33           ` Jernej Škrabec
2018-01-09 16:33           ` Jernej Škrabec
2018-01-09 18:42         ` Jernej Škrabec
2018-01-09 18:42           ` Jernej Škrabec
2018-01-09 18:42           ` Jernej Škrabec
2018-01-09 18:42           ` Jernej Škrabec
2018-01-09 13:30   ` Laurent Pinchart
2018-01-09 13:30     ` Laurent Pinchart
2018-01-09 16:02     ` Jernej Škrabec
2018-01-09 16:02       ` Jernej Škrabec
2018-01-09 16:02       ` Jernej Škrabec
2017-12-30 21:01 ` [PATCH 05/11] drm/bridge/synopsys: dw-hdmi: Add deinit callback Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01 ` [PATCH 06/11] dt-bindings: display: sun4i-drm: Add A83T HDMI pipeline Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2018-01-03 20:21   ` Rob Herring
2018-01-03 20:21     ` Rob Herring
2018-01-03 20:21     ` Rob Herring
2018-01-03 21:32     ` Jernej Škrabec
2018-01-03 21:32       ` Jernej Škrabec
2018-01-03 21:32       ` Jernej Škrabec
2018-01-04 18:52       ` Maxime Ripard
2018-01-04 18:52         ` Maxime Ripard
2018-01-04 18:52         ` Maxime Ripard
2018-01-05  2:49         ` Icenowy Zheng
2018-01-05  2:49           ` Icenowy Zheng
2018-01-05  6:20           ` [linux-sunxi] " Jernej Škrabec
2018-01-05  6:20             ` Jernej Škrabec
2018-01-05  6:20             ` Jernej Škrabec
2018-01-05  6:20             ` [linux-sunxi] " Jernej Škrabec
2018-01-05  2:50       ` Icenowy Zheng
2018-01-05  2:50         ` Icenowy Zheng
2018-01-05  2:50         ` Icenowy Zheng
2017-12-30 21:01 ` [PATCH 07/11] drm/sun4i: Add support for A83T second TCON Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2017-12-30 21:01   ` Jernej Skrabec
2018-01-04 15:50   ` Maxime Ripard
2018-01-04 15:50     ` Maxime Ripard
2018-01-04 15:50     ` Maxime Ripard
2017-12-30 21:02 ` [PATCH 08/11] drm/sun4i: Add support for A83T second DE2 mixer Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec
2018-01-04 15:50   ` Maxime Ripard
2018-01-04 15:50     ` Maxime Ripard
2018-01-04 15:50     ` Maxime Ripard
2017-12-30 21:02 ` [PATCH 09/11] drm/sun4i: Implement A83T HDMI driver Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec
2017-12-30 21:02 ` [PATCH 10/11] ARM: dts: sun8i: a83t: Add HDMI display pipeline Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec
2017-12-30 21:02 ` [PATCH 11/11] ARM: dts: sun8i: a83t: Enable HDMI on BananaPi M3 Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec
2017-12-30 21:02   ` Jernej Skrabec

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=1586880.7NXXgpct7p@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=Jose.Abreu@synopsys.com \
    --cc=a.hajda@samsung.com \
    --cc=airlied@linux.ie \
    --cc=architt@codeaurora.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jernej.skrabec@siol.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=mark.rutland@arm.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=mturquette@baylibre.com \
    --cc=narmstrong@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@codeaurora.org \
    --cc=wens@csie.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.