linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <mripard@kernel.org>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Neil Armstrong <narmstrong@baylibre.com>,
	David Airlie <airlied@linux.ie>,
	"open list:DRM PANEL DRIVERS" <dri-devel@lists.freedesktop.org>,
	Andrzej Hajda <a.hajda@samsung.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Benjamin Gaignard <benjamin.gaignard@linaro.org>,
	Sam Ravnborg <sam@ravnborg.org>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	"open list:ARM/Rockchip SoC..."
	<linux-rockchip@lists.infradead.org>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	NXP Linux Team <linux-imx@nxp.com>,
	Jagan Teki <jagan@amarulasolutions.com>,
	Jitao Shi <jitao.shi@mediatek.com>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Abhinav Kumar <abhinavk@codeaurora.org>,
	"moderated list:ARM/Mediatek SoC support"
	<linux-mediatek@lists.infradead.org>,
	Stefan Agner <stefan@agner.ch>,
	linux-tegra@vger.kernel.org, Sean Paul <sean@poorly.run>,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	Purism Kernel Team <kernel@puri.sm>,
	Linux-Renesas <linux-renesas-soc@vger.kernel.org>,
	Boris Brezillon <boris.brezillon@collabora.com>,
	Daniel Vetter <daniel@ffwll.ch>
Subject: Re: [PATCH v1 07/26] drm/panel: remove get_timings
Date: Wed, 4 Dec 2019 09:16:50 +0100	[thread overview]
Message-ID: <20191204081650.4n4ehbub4n7pxdom@gilmour.lan> (raw)
In-Reply-To: <CACRpkdZrReQs08+bXS7s7eJ-K76nMGvRgQ-L-1-baunEtiF40g@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 3017 bytes --]

Hi Linus,

On Tue, Dec 03, 2019 at 04:20:24PM +0100, Linus Walleij wrote:
> On Tue, Dec 3, 2019 at 8:47 AM Maxime Ripard <mripard@kernel.org> wrote:
>
> > Using only the mode as we do currently has a bunch of shortcomings as
> > almost no encoder will be able to provide the typical pixel clock, and
> > that situation leads to multiple things:
> >
> >   - If someone working on one encoder wants to upstream a panel they
> >     have tested, chances are this will not be the typical pixel clock
> >     / timings being used but rather the one that will match what that
> >     SoC is capable of. Trouble comes when a second user comes in with
> >     a different encoder and different capabilities, and then we have a
> >     maintainance fight over which timing is the true timing (with a
> >     significant chance that none of them are).
> >
> >   - If we can't match the pixel clock, we currently have no easy way
> >     to make the usual measures of reducing / growing the porches and
> >     blankings areas to match the pixel clock we can provide, since we
> >     don't have an easy way to get the tolerance on those timings for a
> >     given panel. There's some ad hoc solutions on some drivers (I
> >     think vc4 has that?) to ignore the panel and just play around with
> >     the timings, but I think this should be generalised.
>
> I've been confused with these things as they look today and it seems
> the whole struct drm_display_mode could need some improvement?
>
> If .clock is supposed to be htotal * vtotal * vrefresh, what is the
> .clock doing there anyway.

It's one thing I wonder as well. I guess it's just more convenient for
everyone, since it's exposed by the VESA modes (iirc) and a lot of
drivers really care about the clock.

> Sadly I am too inexperienced to realize where the tolerances should
> be stated, but I guess just stating that hsync_start etc are typical,
> then specify some tolerance for each would help a bit?

The timings structure discussed in the patch that started this
discussion is actually doing this nicely, you have for each timing the
minimum, typical and maximum value. The current issue with it though
is that it's pretty difficult to use it, since it's not really tied to
any of the panel code (or DRM helpers). The only driver that was
supporting it was omapdrm and it was removed recently.

If we really wanted to support it, one path forward I can see would be
to make the timings structure the primary one, and only use
drm_display_mode for userspace facing code, and generate it from the
timings. This would be a pretty invasive change though...

> On the DSI displays in video mode there is also this EOL area
> which seems to be where the logic is normally just idling for a
> while, that can be adjusted on some hardware as well, but
> I don't quite understand it admittedly. Sometimes I wonder if
> anyone really understands DSI... :/

I'm not aware of any EOL area in MIPI-DSI that would make the hardware
idle, don't you mean LP-11?

Maxime

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2019-12-04  8:17 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-02 19:32 [PATCH v1 0/26] drm/panel infrastructure + backlight update Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 01/26] drm/drm_panel: no error when no callback Sam Ravnborg
2019-12-03  6:24   ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 02/26] drm/panel: add backlight support Sam Ravnborg
2019-12-03  6:32   ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 03/26] drm/panel: simple: use drm_panel " Sam Ravnborg
2019-12-03  6:39   ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 04/26] drm: get drm_bridge_panel connector via helper Sam Ravnborg
2019-12-03  6:44   ` Laurent Pinchart
2019-12-03 13:22   ` Linus Walleij
2019-12-02 19:32 ` [PATCH v1 05/26] drm/panel: add drm_connector argument to get_modes() Sam Ravnborg
2019-12-03  6:50   ` Laurent Pinchart
2019-12-03 13:25   ` Linus Walleij
2019-12-04 12:08   ` Guido Günther
2019-12-04 13:11     ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 07/26] drm/panel: remove get_timings Sam Ravnborg
2019-12-03  7:02   ` Laurent Pinchart
2019-12-03  7:46   ` Maxime Ripard
2019-12-03  8:18     ` Laurent Pinchart
2019-12-03  8:39     ` Sam Ravnborg
2019-12-04  8:05       ` Maxime Ripard
2019-12-03 15:20     ` Linus Walleij
2019-12-04  8:16       ` Maxime Ripard [this message]
2019-12-04  8:23         ` Laurent Pinchart
2019-12-10 21:33         ` Linus Walleij
2019-12-02 19:32 ` [PATCH v1 08/26] drm/panel: drop drm_device from drm_panel Sam Ravnborg
2019-12-03  7:15   ` Laurent Pinchart
2019-12-03 13:27   ` Linus Walleij
2019-12-02 19:32 ` [PATCH v1 09/26] drm/panel: feiyang-fy07024di26a30d: use drm_panel backlight support Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 10/26] drm/panel: ilitek-ili9881c: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 11/26] drm/panel: innolux-p079zca: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 12/26] drm/panel: kingdisplay-kd097d04: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 13/26] drm/panel: lvds: " Sam Ravnborg
2019-12-03  7:16   ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 14/26] drm/panel: olimex-lcd-olinuxino: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 15/26] drm/panel: osd-osd101t2587-53ts: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 16/26] drm/panel: panasonic-vvx10f034n00: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 17/26] drm/panel: raydium-rm68200: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 18/26] drm/panel: rocktech-jh057n00900: " Sam Ravnborg
2019-12-04 12:04   ` Guido Günther
2019-12-02 19:32 ` [PATCH v1 19/26] drm/panel: ronbo-rb070d30: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 20/26] drm/panel: seiko-43wvf1g: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 21/26] drm/panel: sharp-lq101r1sx01: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 22/26] drm/panel: sharp-ls043t1le01: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 23/26] drm/panel: sitronix-st7701: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 24/26] drm/panel: sitronix-st7789v: " Sam Ravnborg
2019-12-02 19:32 ` [PATCH v1 25/26] drm/panel: tpo-td028ttec1: " Sam Ravnborg
2019-12-03  7:16   ` Laurent Pinchart
2019-12-02 19:32 ` [PATCH v1 26/26] drm/panel: tpo-tpg110: " Sam Ravnborg
2019-12-03 13:20   ` Linus Walleij
2019-12-02 19:59 ` [PATCH v1 0/26] drm/panel infrastructure + backlight update Jeffrey Hugo
2019-12-02 20:48   ` Sam Ravnborg
2019-12-02 20:51     ` Jeffrey Hugo
2019-12-03  7:24 ` Laurent Pinchart
2019-12-03  8:33   ` Sam Ravnborg

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=20191204081650.4n4ehbub4n7pxdom@gilmour.lan \
    --to=mripard@kernel.org \
    --cc=a.hajda@samsung.com \
    --cc=abhinavk@codeaurora.org \
    --cc=airlied@linux.ie \
    --cc=benjamin.gaignard@linaro.org \
    --cc=boris.brezillon@collabora.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jagan@amarulasolutions.com \
    --cc=jitao.shi@mediatek.com \
    --cc=kernel@pengutronix.de \
    --cc=kernel@puri.sm \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=narmstrong@baylibre.com \
    --cc=sam@ravnborg.org \
    --cc=sean@poorly.run \
    --cc=stefan@agner.ch \
    --cc=thierry.reding@gmail.com \
    --cc=tomi.valkeinen@ti.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 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).