All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Heiko Stuebner <heiko@sntech.de>
Cc: mark.rutland@arm.com, Jose.Abreu@synopsys.com,
	algea.cao@rock-chips.com, devicetree@vger.kernel.org,
	airlied@linux.ie, dri-devel@lists.freedesktop.org, kishon@ti.com,
	robh+dt@kernel.org, linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, zhengyang@rock-chips.com
Subject: Re: [PATCH v2 3/8] drm/bridge: dw-hdmi: allow overriding of phy-type reading
Date: Mon, 19 Feb 2018 18:59:02 +0200	[thread overview]
Message-ID: <3905607.btOD7ERYi5@avalon> (raw)
In-Reply-To: <20180216204158.29839-4-heiko@sntech.de>

Hi Heiko,

Thank you for the patch.

On Friday, 16 February 2018 22:41:53 EET Heiko Stuebner wrote:
> In some IP implementations the reading of the phy-type may be broken.
> One example are the Rockchip rk3228 and rk3328 socs that use a separate
> phy from Innosilicon but still report the HDMI20_TX type.
> 
> So allow the glue driver to force a specific type, like the vendor-phy
> for these cases.
> 
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 +++-
>  include/drm/bridge/dw_hdmi.h              | 1 +
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index
> f9802399cc0d..50d231626c4d 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -2218,7 +2218,9 @@ static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi)
>  	unsigned int i;
>  	u8 phy_type;
> 
> -	phy_type = hdmi_readb(hdmi, HDMI_CONFIG2_ID);
> +	phy_type = (hdmi->plat_data->phy_force_type) ?
> +				hdmi->plat_data->phy_force_type :
> +				hdmi_readb(hdmi, HDMI_CONFIG2_ID);

No need for parentheses. You could even write this

        phy_type = hdmi->plat_data->phy_force_type ? 
                 : hdmi_readb(hdmi, HDMI_CONFIG2_ID);

but that's up to you.

What if a driver wants to force the PHY type to DW_HDMI_PHY_DWC_HDMI_TX_PHY ? 
Or do you expect only the DW_HDMI_PHY_VENDOR_PHY type to be forced ? If so, we 
could also use a force_vendor_phy boolean field instead of phy_force_type.

>  	if (phy_type == DW_HDMI_PHY_VENDOR_PHY) {
>  		/* Vendor PHYs require support from the glue layer. */
> diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
> index dd2a8cf7d20b..3c1dddb09b95 100644
> --- a/include/drm/bridge/dw_hdmi.h
> +++ b/include/drm/bridge/dw_hdmi.h
> @@ -133,6 +133,7 @@ struct dw_hdmi_plat_data {
>  	const struct dw_hdmi_phy_ops *phy_ops;
>  	const char *phy_name;
>  	void *phy_data;
> +	u8 phy_force_type;
> 
>  	/* Synopsys PHY support */
>  	const struct dw_hdmi_mpll_config *mpll_cfg;

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 3/8] drm/bridge: dw-hdmi: allow overriding of phy-type reading
Date: Mon, 19 Feb 2018 18:59:02 +0200	[thread overview]
Message-ID: <3905607.btOD7ERYi5@avalon> (raw)
In-Reply-To: <20180216204158.29839-4-heiko@sntech.de>

Hi Heiko,

Thank you for the patch.

On Friday, 16 February 2018 22:41:53 EET Heiko Stuebner wrote:
> In some IP implementations the reading of the phy-type may be broken.
> One example are the Rockchip rk3228 and rk3328 socs that use a separate
> phy from Innosilicon but still report the HDMI20_TX type.
> 
> So allow the glue driver to force a specific type, like the vendor-phy
> for these cases.
> 
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

Tested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 4 +++-
>  include/drm/bridge/dw_hdmi.h              | 1 +
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index
> f9802399cc0d..50d231626c4d 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -2218,7 +2218,9 @@ static int dw_hdmi_detect_phy(struct dw_hdmi *hdmi)
>  	unsigned int i;
>  	u8 phy_type;
> 
> -	phy_type = hdmi_readb(hdmi, HDMI_CONFIG2_ID);
> +	phy_type = (hdmi->plat_data->phy_force_type) ?
> +				hdmi->plat_data->phy_force_type :
> +				hdmi_readb(hdmi, HDMI_CONFIG2_ID);

No need for parentheses. You could even write this

        phy_type = hdmi->plat_data->phy_force_type ? 
                 : hdmi_readb(hdmi, HDMI_CONFIG2_ID);

but that's up to you.

What if a driver wants to force the PHY type to DW_HDMI_PHY_DWC_HDMI_TX_PHY ? 
Or do you expect only the DW_HDMI_PHY_VENDOR_PHY type to be forced ? If so, we 
could also use a force_vendor_phy boolean field instead of phy_force_type.

>  	if (phy_type == DW_HDMI_PHY_VENDOR_PHY) {
>  		/* Vendor PHYs require support from the glue layer. */
> diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h
> index dd2a8cf7d20b..3c1dddb09b95 100644
> --- a/include/drm/bridge/dw_hdmi.h
> +++ b/include/drm/bridge/dw_hdmi.h
> @@ -133,6 +133,7 @@ struct dw_hdmi_plat_data {
>  	const struct dw_hdmi_phy_ops *phy_ops;
>  	const char *phy_name;
>  	void *phy_data;
> +	u8 phy_force_type;
> 
>  	/* Synopsys PHY support */
>  	const struct dw_hdmi_mpll_config *mpll_cfg;

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2018-02-19 16:59 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-16 20:41 [PATCH v2 0/8] drm/rockchip: hdmi support for rk3328 Heiko Stuebner
2018-02-16 20:41 ` Heiko Stuebner
2018-02-16 20:41 ` [PATCH v2 1/8] dt-bindings: add binding for Rockchip hdmi phy using an Innosilicon IP Heiko Stuebner
2018-02-16 20:41   ` Heiko Stuebner
2018-02-16 20:43   ` Heiko Stuebner
2018-02-16 20:43     ` Heiko Stuebner
     [not found] ` <20180216204158.29839-1-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org>
2018-02-16 20:41   ` [PATCH v2 2/8] phy: add Rockchip Innosilicon hdmi phy Heiko Stuebner
2018-02-16 20:41     ` Heiko Stuebner
2018-02-16 20:41   ` [PATCH v2 3/8] drm/bridge: dw-hdmi: allow overriding of phy-type reading Heiko Stuebner
2018-02-16 20:41     ` Heiko Stuebner
2018-02-19 16:59     ` Laurent Pinchart [this message]
2018-02-19 16:59       ` Laurent Pinchart
2018-02-19 18:46       ` Heiko Stuebner
2018-02-19 18:46         ` Heiko Stuebner
2018-02-19 19:06         ` Laurent Pinchart
2018-02-19 19:06           ` Laurent Pinchart
2018-02-21 18:55           ` Heiko Stuebner
2018-02-21 18:55             ` Heiko Stuebner
2018-02-21 19:15             ` Laurent Pinchart
2018-02-21 19:15               ` Laurent Pinchart
2018-02-16 20:41   ` [PATCH v2 4/8] drm/rockchip: dw_hdmi: Allow outputs that don't need output switching Heiko Stuebner
2018-02-16 20:41     ` Heiko Stuebner
2018-02-19 11:43     ` Robin Murphy
2018-02-19 11:43       ` Robin Murphy
2018-02-19 11:49       ` Heiko Stuebner
2018-02-19 11:49         ` Heiko Stuebner
2018-02-16 20:41   ` [PATCH v2 5/8] dt-bindings: allow optional phys in Rockchip dw_hdmi binding Heiko Stuebner
2018-02-16 20:41     ` Heiko Stuebner
2018-02-19 20:26     ` Rob Herring
2018-02-19 20:26       ` Rob Herring
2018-02-16 20:41   ` [PATCH v2 6/8] drm/rockchip: dw_hdmi: allow including external phys Heiko Stuebner
2018-02-16 20:41     ` Heiko Stuebner
2018-02-16 20:41   ` [PATCH v2 7/8] drm/rockchip: dw_hdmi: store rockchip_hdmi reference in phy_data object Heiko Stuebner
2018-02-16 20:41     ` Heiko Stuebner
2018-02-19 11:46     ` Robin Murphy
2018-02-19 11:46       ` Robin Murphy
2018-02-16 20:41   ` [PATCH v2 8/8] drm/rockchip: dw_hdmi: add dw-hdmi support for the rk3328 Heiko Stuebner
2018-02-16 20:41     ` Heiko Stuebner
2018-02-19 20:28     ` Rob Herring
2018-02-19 20:28       ` Rob Herring
2018-02-19 20:46       ` Heiko Stuebner
2018-02-19 20:46         ` Heiko Stuebner
2018-02-20 14:32         ` Rob Herring
2018-02-20 14:32           ` Rob Herring
2018-02-21 12:07 ` [PATCH v2 0/8] drm/rockchip: hdmi support for rk3328 Robin Murphy
2018-02-21 12:07   ` Robin Murphy

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=3905607.btOD7ERYi5@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=Jose.Abreu@synopsys.com \
    --cc=airlied@linux.ie \
    --cc=algea.cao@rock-chips.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=heiko@sntech.de \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=zhengyang@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.