devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	linux-samsung-soc@vger.kernel.org, pawel.moll@arm.com,
	ijc+devicetree@hellion.org.uk, sachin.kamat@linaro.org,
	sw0312.kim@samsung.com, a.hajda@samsung.com,
	kyungmin.park@samsung.com, robh+dt@kernel.org,
	dri-devel@lists.freedesktop.org, galak@codeaurora.org,
	kgene.kim@samsung.com
Subject: Re: [RFC v2 PATCH v3 10/14] drm/panel: add S6E3FA0 driver
Date: Wed, 30 Apr 2014 20:20:44 +0200	[thread overview]
Message-ID: <1586154.6P7a6bVWs2@avalon> (raw)
In-Reply-To: <20140428212547.GA13897@mithrandir>


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

Hi Thierry,

On Monday 28 April 2014 23:25:50 Thierry Reding wrote:
> On Mon, Apr 28, 2014 at 05:05:24PM +0200, Laurent Pinchart wrote:
> > On Tuesday 22 April 2014 10:24:39 YoungJun Cho wrote:
> > > On 04/22/2014 08:00 AM, Laurent Pinchart wrote:
> > > > Hi YoungJun,
> > > > 
> > > > Thank you for the patch.
> > > > 
> > > > On Monday 21 April 2014 21:28:37 YoungJun Cho wrote:
> > > >> This patch adds MIPI-DSI command mode based S6E3FA0 AMOLED LCD Panel
> > > >> driver.
> > > >> 
> > > >> Changelog v2:
> > > >> - Declares delay, size properties in probe routine instead of DT
> > > >> Changelog v3:
> > > >> - Moves CPU timings relevant properties from FIMD DT
> > > >> 
> > > >>    (commented by Laurent Pinchart, Andrzej Hajda)
> > > >> 
> > > >> Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
> > > >> Acked-by: Inki Dae <inki.dae@samsung.com>
> > > >> Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
> > > >> ---
> > > >> 
> > > >>   drivers/gpu/drm/panel/Kconfig         |    7 +
> > > >>   drivers/gpu/drm/panel/Makefile        |    1 +
> > > >>   drivers/gpu/drm/panel/panel-s6e3fa0.c |  569 ++++++++++++++++++++++
> > > >>   3 files changed, 577 insertions(+)
> > > >>   create mode 100644 drivers/gpu/drm/panel/panel-s6e3fa0.c
> > > > 
> > > > [snip]
> > > > 
> > > >> diff --git a/drivers/gpu/drm/panel/panel-s6e3fa0.c
> > > >> b/drivers/gpu/drm/panel/panel-s6e3fa0.c new file mode 100644
> > > >> index 0000000..1282678
> > > >> --- /dev/null
> > > >> +++ b/drivers/gpu/drm/panel/panel-s6e3fa0.c
> > > >> @@ -0,0 +1,569 @@
> > > > 
> > > > [snip]
> > > > 
> > > >> +static int s6e3fa0_get_modes(struct drm_panel *panel)
> > > >> +{
> > > >> +	struct drm_connector *connector = panel->connector;
> > > >> +	struct s6e3fa0 *ctx = panel_to_s6e3fa0(panel);
> > > >> +	struct drm_display_mode *mode;
> > > >> +
> > > >> +	mode = drm_mode_create(connector->dev);
> > > >> +	if (!mode) {
> > > >> +		DRM_ERROR("failed to create a new display mode\n");
> > > >> +		return 0;
> > > >> +	}
> > > >> +
> > > >> +	drm_display_mode_from_videomode(&ctx->vm, mode);
> > > >> +	mode->width_mm = ctx->width_mm;
> > > >> +	mode->height_mm = ctx->height_mm;
> > > >> +	connector->display_info.width_mm = mode->width_mm;
> > > >> +	connector->display_info.height_mm = mode->height_mm;
> > > >> +
> > > >> +	mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
> > > >> +	mode->private = (void *)&ctx->cpu_timings;
> > > > 
> > > > Wouldn't it make sense to create a new get_interface_params (or
> > > > similar)
> > > > operation for drm_panel to query interface configuration parameters
> > > > instead of shoving it in the mode private field ?
> > > 
> > > You mean "new get_interface_params operation" is different from
> > > get_modes() ?
> > > 
> > > Till now, struct drm_display_mode and most of mode relevant APIs are
> > > only for video interface.
> > > And CPU interface also needs video mode configurations.
> > > 
> > > I have a plan to implement the CPU interface relevant APIs like video
> > > mode ones, but I think they should be used under current DRM mode APIs
> > > like fill_modes, get_modes and so on.
> > > So after that implementation, this private field will be replaced by
> > > new ones.
> > > 
> > > Could you explain it in more detail?
> > 
> > The idea is that the interface parameters (RD/WR signals timings in this
> > case, but this could also include MIPI DSI lane configuration or any
> > other kind of physical interface parameters) are distinct from the video
> > modes.
> 
> We already have the lanes field in struct mipi_dsi_device.

Seems I've missed the addition of mipi_dsi_device to DRM.

> I think in general I'd prefer to not spread these parameters around too
> wildly. If this is a general requirement for DBI devices, perhaps what we
> need is struct mipi_dbi_device?

That could be done, but I'm not sure we should expose the nature of the panel 
device (i.e. "I'm a mipi_dsi_device") to the display controller. I would be 
worried about using container_of() on panel->dev to get a mipi_dsi_device 
pointer, as we would then need a strict guarantee that the panel->dev pointer 
is embedded directly in a mipi_dsi_device. This might be doable for DSI, but 
other kind of panels might be connected to different control busses (I'm 
thinking about I2C and SPI in particular) and still need to expose video 
interface parameters to the display controller driver.

-- 
Regards,

Laurent Pinchart

[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

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

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

  parent reply	other threads:[~2014-04-30 18:20 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-21 12:28 [RFC v2 PATCH 00/14] drm/exynos: support MIPI DSI command mode display YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH 01/14] drm/exynos: dsi: move the Eot packets configuration point YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH 02/14] drm/exynos: dsi: delay setting clocks after reset YoungJun Cho
2014-04-22 12:15   ` Andrzej Hajda
2014-04-23  1:01     ` YoungJun Cho
2014-04-23  3:45       ` YoungJun Cho
2014-04-23  7:37         ` Andrzej Hajda
2014-04-24  0:54           ` YoungJun Cho
     [not found] ` <1398083321-8668-1-git-send-email-yj44.cho-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2014-04-21 12:28   ` [RFC v2 PATCH 03/14] drm/exynos: use wait_event_timeout() for safety usage YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH v2 04/14] ARM: dts: sysreg: add exynos5 compatible to DT bindings YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH v3 05/14] ARM: dts: samsung-fimd: add I80 specific properties YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH v2 06/14] drm/exynos: support MIPI DSI command mode YoungJun Cho
2014-04-21 22:52   ` Laurent Pinchart
2014-04-22  1:06     ` YoungJun Cho
2014-04-22  7:34   ` Thierry Reding
2014-04-23  1:18     ` YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH v2 07/14] ARM: dts: exynos_dsim: add exynos5420 compatible to DT bindings YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH 08/14] drm/exynos: dsi: add driver data to support Exynos5420 YoungJun Cho
2014-04-23  8:29   ` Andrzej Hajda
2014-04-24  1:23     ` YoungJun Cho
2014-04-27  1:53       ` YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH v4 09/14] ARM: dts: s6e3fa0: add DT bindings YoungJun Cho
2014-04-22 14:02   ` Andrzej Hajda
2014-04-23  1:26     ` YoungJun Cho
2014-04-23  7:33       ` Thierry Reding
2014-04-23  9:02   ` Andrzej Hajda
2014-04-23 11:34     ` Laurent Pinchart
2014-04-23 12:48       ` Andrzej Hajda
2014-04-23 12:55         ` Laurent Pinchart
2014-04-23 13:33           ` Andrzej Hajda
2014-04-24  3:34             ` YoungJun Cho
2014-04-24  3:15       ` YoungJun Cho
2014-04-24  1:31     ` YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH v3 10/14] drm/panel: add S6E3FA0 driver YoungJun Cho
2014-04-21 23:00   ` Laurent Pinchart
2014-04-22  1:24     ` YoungJun Cho
2014-04-28 15:05       ` Laurent Pinchart
2014-04-28 21:25         ` Thierry Reding
2014-04-29  6:11           ` YoungJun Cho
2014-04-30 18:20           ` Laurent Pinchart [this message]
2014-04-29  6:02         ` YoungJun Cho
2014-04-29  8:35           ` YoungJun Cho
2014-04-29 12:45             ` YoungJun Cho
2014-04-23 10:16   ` Andrzej Hajda
2014-04-24  4:04     ` YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH 11/14] ARM: dts: exynos4: add system register node YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH 12/14] ARM: dts: exynos5: add system register support YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH 13/14] ARM: dts: exynos5420: add mipi-phy node YoungJun Cho
2014-04-21 12:28 ` [RFC v2 PATCH 14/14] ARM: dts: exynos5420: add dsi node YoungJun Cho

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=1586154.6P7a6bVWs2@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=kgene.kim@samsung.com \
    --cc=kyungmin.park@samsung.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=sachin.kamat@linaro.org \
    --cc=sw0312.kim@samsung.com \
    --cc=thierry.reding@gmail.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).