From: Sean Paul <sean@poorly.run> To: Douglas Anderson <dianders@chromium.org> Cc: Sean Paul <seanpaul@chromium.org>, Thierry Reding <thierry.reding@gmail.com>, Sandeep Panda <spanda@codeaurora.org>, linux-arm-msm@vger.kernel.org, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, jsanka@codeaurora.org, ryandcase@chromium.org, David Airlie <airlied@linux.ie>, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 2/6] drm/panel: simple: Support panels with HPD where HPD isn't connected Date: Fri, 26 Oct 2018 10:41:11 -0400 [thread overview] Message-ID: <20181026144111.GQ154160@art_vandelay> (raw) In-Reply-To: <20181025222134.174583-2-dianders@chromium.org> On Thu, Oct 25, 2018 at 03:21:30PM -0700, Douglas Anderson wrote: > Some eDP panels that are designed to be always connected to a board > use their HPD signal to signal that they've finished powering on and > they're ready to be talked to. > > However, for various reasons it's possible that the HPD signal from > the panel isn't actually hooked up. In the case where the HPD isn't > hooked up you can look at the timing diagram on the panel datasheet > and insert a delay for the maximum amount of time that the HPD might > take to come up. > > Let's add support in simple-panel for this concept. > > At the moment we will co-opt the existing "prepare" delay to keep > track of the delay and we'll use a boolean to specify that a given > panel should only apply the delay if the "no-hpd" property was > specified. > > Signed-off-by: Douglas Anderson <dianders@chromium.org> Reviewed-by: Sean Paul <sean@poorly.run> > --- > > Changes in v2: > - Use "hpd_absent_delay" property instead of a bool + prepare delay > > drivers/gpu/drm/panel/panel-simple.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c > index 97964f7f2ace..687fd087b9fc 100644 > --- a/drivers/gpu/drm/panel/panel-simple.c > +++ b/drivers/gpu/drm/panel/panel-simple.c > @@ -56,6 +56,8 @@ struct panel_desc { > /** > * @prepare: the time (in milliseconds) that it takes for the panel to > * become ready and start receiving video data > + * @hpd_absent_delay: Add this to the prepare delay if we know Hot > + * Plug Detect isn't used. > * @enable: the time (in milliseconds) that it takes for the panel to > * display the first valid frame after starting to receive > * video data > @@ -66,6 +68,7 @@ struct panel_desc { > */ > struct { > unsigned int prepare; > + unsigned int hpd_absent_delay; > unsigned int enable; > unsigned int disable; > unsigned int unprepare; > @@ -79,6 +82,7 @@ struct panel_simple { > struct drm_panel base; > bool prepared; > bool enabled; > + bool no_hpd; > > const struct panel_desc *desc; > > @@ -202,6 +206,7 @@ static int panel_simple_unprepare(struct drm_panel *panel) > static int panel_simple_prepare(struct drm_panel *panel) > { > struct panel_simple *p = to_panel_simple(panel); > + unsigned int delay; > int err; > > if (p->prepared) > @@ -215,8 +220,11 @@ static int panel_simple_prepare(struct drm_panel *panel) > > gpiod_set_value_cansleep(p->enable_gpio, 1); > > - if (p->desc->delay.prepare) > - msleep(p->desc->delay.prepare); > + delay = p->desc->delay.prepare; > + if (p->no_hpd) > + delay += p->desc->delay.hpd_absent_delay; > + if (delay) > + msleep(delay); > > p->prepared = true; > > @@ -305,6 +313,8 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) > panel->prepared = false; > panel->desc = desc; > > + panel->no_hpd = of_property_read_bool(dev->of_node, "no-hpd"); > + > panel->supply = devm_regulator_get(dev, "power"); > if (IS_ERR(panel->supply)) > return PTR_ERR(panel->supply); > -- > 2.19.1.568.g152ad8e336-goog > -- Sean Paul, Software Engineer, Google / Chromium OS
next prev parent reply other threads:[~2018-10-26 14:41 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-10-25 22:21 [PATCH v2 1/6] dt-bindings: drm/panel: simple: Add no-hpd property Douglas Anderson 2018-10-25 22:21 ` [PATCH v2 2/6] drm/panel: simple: Support panels with HPD where HPD isn't connected Douglas Anderson 2018-10-26 14:41 ` Sean Paul [this message] 2018-10-25 22:21 ` [PATCH v2 3/6] drm/panel: simple: Add "no-hpd" delay for Innolux TV123WAM Douglas Anderson 2018-10-26 14:41 ` Sean Paul 2018-10-25 22:21 ` [PATCH v2 4/6] drm/bridge: ti-sn65dsi86: Remove the mystery delay Douglas Anderson 2018-10-29 9:03 ` Andrzej Hajda 2018-10-25 22:21 ` [PATCH v2 5/6] dt-bindings: drm/panel: simple: Innolux TV123WAM is actually P120ZDG-BF1 Douglas Anderson 2018-10-26 14:43 ` Sean Paul 2018-10-26 14:46 ` Sean Paul 2018-10-26 15:01 ` Doug Anderson 2018-10-29 9:10 ` Andrzej Hajda 2018-10-25 22:21 ` [PATCH v2 6/6] " Douglas Anderson 2018-10-26 14:44 ` Sean Paul 2018-10-29 16:16 ` [PATCH v2 1/6] dt-bindings: drm/panel: simple: Add no-hpd property Sean Paul
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=20181026144111.GQ154160@art_vandelay \ --to=sean@poorly.run \ --cc=airlied@linux.ie \ --cc=dianders@chromium.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=jsanka@codeaurora.org \ --cc=laurent.pinchart@ideasonboard.com \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=ryandcase@chromium.org \ --cc=seanpaul@chromium.org \ --cc=spanda@codeaurora.org \ --cc=thierry.reding@gmail.com \ --subject='Re: [PATCH v2 2/6] drm/panel: simple: Support panels with HPD where HPD isn'\''t connected' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).