Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753530AbdFMOLq (ORCPT ); Tue, 13 Jun 2017 10:11:46 -0400 Received: from smtprelay2.synopsys.com ([198.182.60.111]:39296 "EHLO smtprelay.synopsys.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753095AbdFMOLo (ORCPT ); Tue, 13 Jun 2017 10:11:44 -0400 Subject: Re: [PATCH] drm: bridge: synopsys/dw-hdmi: Provide default configuration function for HDMI 2.0 PHY To: Laurent Pinchart , Jose Abreu References: <6071fd12-2cda-cd1f-2607-9a498f588040@synopsys.com> <3690108.zYIGBGnVBz@avalon> CC: Mark Yao , , , Kieran Bingham , Laurent Pinchart , Archit Taneja , Andrzej Hajda , "Carlos Palminha" From: Jose Abreu Message-ID: <1941ce39-1a8e-5e16-bdc2-71d988ee00d6@synopsys.com> Date: Tue, 13 Jun 2017 15:11:27 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <3690108.zYIGBGnVBz@avalon> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.107.19.81] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3197 Lines: 79 Hi Laurent, Sorry for the late reply! On 10-06-2017 09:50, Laurent Pinchart wrote: > Hi Jose, > > On Friday 09 Jun 2017 13:53:12 Jose Abreu wrote: >> On 09-06-2017 12:04, Jose Abreu wrote: >>> Currently HDMI 2.0 PHYs do not have a default configuration function. >>> >>> As these PHYs have the same register layout as the 3D PHYs we can >>> safely use the default configuration function. >> I may have been a little to fast arriving at this conclusion. I >> mean most of the registers match but in the configuration >> function there are registers that do not match. Did you actually >> test this configuration function with an HDMI 2.0 phy? And did >> you test with different video modes? From my experience the phy >> may be wrongly configured and sometimes work anyway. >> >> Do please retest with as many video modes as you can and give me >> your phy ID (read from controller config reg HDMI_CONFIG2_ID). > The Renesas R-Car Gen3 HDMI PHY reports an DWC HDMI 2.0 TX PHY ID, but has a > configuration function (rcar_hdmi_phy_configure() in drivers/gpu/drm/rcar- > du/rcar_dw_hdmi.c) that doesn't match hdmi_phy_configure_dwc_hdmi_3d_tx(). > From the information I have been given the layout of the configuration > registers haven't been changed by Renesas. I know we've briefly discussed this > in the past, but I'd appreciate if you could have a second look and tell me > what you think. Yup, yours seems correct. Though at the time you submitted I found it odd that only 3 registers needed to be written whilst for HDMI 2.0 phys I have here 6 registers, but you said it is working so I though your phy was different ... Even so, one thing I would like to know is what was the max resolution you tested? I see you have clock values up to 297MHz, so 4k@30Hz? If I send a patch with a general config function for HDMI 2.0 phys can you test it on your platform? Best regards, Jose Miguel Abreu > >>> If, for some reason, >>> >>> the PHY is custom this change will not make any impact because >>> in configuration function we prefer the pdata provided configuration >>> function over the internal one. >>> >>> This patch is based on today's drm-misc-next branch. >>> >>> Signed-off-by: Jose Abreu >>> Cc: Kieran Bingham >>> Cc: Laurent Pinchart >>> Cc: Archit Taneja >>> Cc: Andrzej Hajda >>> Cc: Mark Yao >>> Cc: Carlos Palminha >>> --- >>> >>> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >>> b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index ead1124..10c8d8c 100644 >>> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >>> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c >>> @@ -2170,6 +2170,7 @@ static irqreturn_t dw_hdmi_irq(int irq, void >>> *dev_id) >>> .name = "DWC HDMI 2.0 TX PHY", >>> .gen = 2, >>> .has_svsret = true, >>> + .configure = hdmi_phy_configure_dwc_hdmi_3d_tx, >>> }, { >>> .type = DW_HDMI_PHY_VENDOR_PHY, >>> .name = "Vendor PHY",