All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Cc: devicetree-discuss@lists.ozlabs.org,
	Rob Herring <robherring2@gmail.com>,
	linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Thierry Reding <thierry.reding@avionic-design.de>,
	Guennady Liakhovetski <g.liakhovetski@gmx.de>,
	linux-media@vger.kernel.org,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	kernel@pengutronix.de
Subject: Re: [PATCH v7 1/8] video: add display_timing struct and helpers
Date: Wed, 31 Oct 2012 17:09:30 +0000	[thread overview]
Message-ID: <1783334.5mdSA56Pjh@avalon> (raw)
In-Reply-To: <1351675689-26814-2-git-send-email-s.trumtrar@pengutronix.de>

Hi Steffen,

One more comment.

On Wednesday 31 October 2012 10:28:01 Steffen Trumtrar wrote:
> Add display_timing structure and the according helper functions. This allows
> the description of a display via its supported timing parameters.
> 
> Every timing parameter can be specified as a single value or a range
> <min typ max>.
> 
> Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
> ---
>  drivers/video/Kconfig          |    5 +++
>  drivers/video/Makefile         |    1 +
>  drivers/video/display_timing.c |   24 ++++++++++++++
>  include/linux/display_timing.h |   69 +++++++++++++++++++++++++++++++++++++
>  4 files changed, 99 insertions(+)
>  create mode 100644 drivers/video/display_timing.c
>  create mode 100644 include/linux/display_timing.h
> 
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index d08d799..1421fc8 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -33,6 +33,11 @@ config VIDEO_OUTPUT_CONTROL
>  	  This framework adds support for low-level control of the video
>  	  output switch.
> 
> +config DISPLAY_TIMING
> +       bool "Enable display timings helpers"
> +       help
> +         Say Y here, to use the display timing helpers.
> +
>  menuconfig FB
>  	tristate "Support for frame buffer devices"
>  	---help---
> diff --git a/drivers/video/Makefile b/drivers/video/Makefile
> index 23e948e..552c045 100644
> --- a/drivers/video/Makefile
> +++ b/drivers/video/Makefile
> @@ -167,3 +167,4 @@ obj-$(CONFIG_FB_VIRTUAL)          += vfb.o
> 
>  #video output switch sysfs driver
>  obj-$(CONFIG_VIDEO_OUTPUT_CONTROL) += output.o
> +obj-$(CONFIG_DISPLAY_TIMING) += display_timing.o
> diff --git a/drivers/video/display_timing.c b/drivers/video/display_timing.c
> new file mode 100644
> index 0000000..9ccfdb3
> --- /dev/null
> +++ b/drivers/video/display_timing.c
> @@ -0,0 +1,24 @@
> +/*
> + * generic display timing functions
> + *
> + * Copyright (c) 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>,
> Pengutronix + *
> + * This file is released under the GPLv2
> + */
> +
> +#include <linux/slab.h>
> +#include <linux/display_timing.h>
> +
> +void timings_release(struct display_timings *disp)
> +{
> +	int i;
> +
> +	for (i = 0; i < disp->num_timings; i++)
> +		kfree(disp->timings[i]);
> +}

This function doesn't seem to be called externally, you can make it static.

> +void display_timings_release(struct display_timings *disp)
> +{
> +	timings_release(disp);
> +	kfree(disp->timings);
> +}
> diff --git a/include/linux/display_timing.h b/include/linux/display_timing.h
> new file mode 100644
> index 0000000..aa02a12
> --- /dev/null
> +++ b/include/linux/display_timing.h
> @@ -0,0 +1,69 @@
> +/*
> + * Copyright 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>
> + *
> + * description of display timings
> + *
> + * This file is released under the GPLv2
> + */
> +
> +#ifndef __LINUX_DISPLAY_TIMINGS_H
> +#define __LINUX_DISPLAY_TIMINGS_H
> +
> +#include <linux/types.h>
> +
> +struct timing_entry {
> +	u32 min;
> +	u32 typ;
> +	u32 max;
> +};
> +
> +struct display_timing {
> +	struct timing_entry pixelclock;
> +
> +	struct timing_entry hactive;
> +	struct timing_entry hfront_porch;
> +	struct timing_entry hback_porch;
> +	struct timing_entry hsync_len;
> +
> +	struct timing_entry vactive;
> +	struct timing_entry vfront_porch;
> +	struct timing_entry vback_porch;
> +	struct timing_entry vsync_len;
> +
> +	unsigned int vsync_pol_active;
> +	unsigned int hsync_pol_active;
> +	unsigned int de_pol_active;
> +	unsigned int pixelclk_pol;
> +	bool interlaced;
> +	bool doublescan;
> +};
> +
> +struct display_timings {
> +	unsigned int num_timings;
> +	unsigned int native_mode;
> +
> +	struct display_timing **timings;
> +};
> +
> +/* placeholder function until ranges are really needed */
> +static inline u32 display_timing_get_value(struct timing_entry *te, int
> index) +{
> +	return te->typ;
> +}
> +
> +static inline struct display_timing *display_timings_get(struct
> display_timings *disp, +							 int index)
> +{
> +	struct display_timing *dt;
> +
> +	if (disp->num_timings > index) {
> +		dt = disp->timings[index];
> +		return dt;
> +	} else
> +		return NULL;
> +}
> +void timings_release(struct display_timings *disp);
> +void display_timings_release(struct display_timings *disp);
> +
> +#endif

-- 
Regards,

Laurent Pinchart


WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Cc: devicetree-discuss@lists.ozlabs.org,
	Rob Herring <robherring2@gmail.com>,
	linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Thierry Reding <thierry.reding@avionic-design.de>,
	Guennady Liakhovetski <g.liakhovetski@gmx.de>,
	linux-media@vger.kernel.org,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	kernel@pengutronix.de
Subject: Re: [PATCH v7 1/8] video: add display_timing struct and helpers
Date: Wed, 31 Oct 2012 18:09:30 +0100	[thread overview]
Message-ID: <1783334.5mdSA56Pjh@avalon> (raw)
In-Reply-To: <1351675689-26814-2-git-send-email-s.trumtrar@pengutronix.de>

Hi Steffen,

One more comment.

On Wednesday 31 October 2012 10:28:01 Steffen Trumtrar wrote:
> Add display_timing structure and the according helper functions. This allows
> the description of a display via its supported timing parameters.
> 
> Every timing parameter can be specified as a single value or a range
> <min typ max>.
> 
> Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
> ---
>  drivers/video/Kconfig          |    5 +++
>  drivers/video/Makefile         |    1 +
>  drivers/video/display_timing.c |   24 ++++++++++++++
>  include/linux/display_timing.h |   69 +++++++++++++++++++++++++++++++++++++
>  4 files changed, 99 insertions(+)
>  create mode 100644 drivers/video/display_timing.c
>  create mode 100644 include/linux/display_timing.h
> 
> diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
> index d08d799..1421fc8 100644
> --- a/drivers/video/Kconfig
> +++ b/drivers/video/Kconfig
> @@ -33,6 +33,11 @@ config VIDEO_OUTPUT_CONTROL
>  	  This framework adds support for low-level control of the video
>  	  output switch.
> 
> +config DISPLAY_TIMING
> +       bool "Enable display timings helpers"
> +       help
> +         Say Y here, to use the display timing helpers.
> +
>  menuconfig FB
>  	tristate "Support for frame buffer devices"
>  	---help---
> diff --git a/drivers/video/Makefile b/drivers/video/Makefile
> index 23e948e..552c045 100644
> --- a/drivers/video/Makefile
> +++ b/drivers/video/Makefile
> @@ -167,3 +167,4 @@ obj-$(CONFIG_FB_VIRTUAL)          += vfb.o
> 
>  #video output switch sysfs driver
>  obj-$(CONFIG_VIDEO_OUTPUT_CONTROL) += output.o
> +obj-$(CONFIG_DISPLAY_TIMING) += display_timing.o
> diff --git a/drivers/video/display_timing.c b/drivers/video/display_timing.c
> new file mode 100644
> index 0000000..9ccfdb3
> --- /dev/null
> +++ b/drivers/video/display_timing.c
> @@ -0,0 +1,24 @@
> +/*
> + * generic display timing functions
> + *
> + * Copyright (c) 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>,
> Pengutronix + *
> + * This file is released under the GPLv2
> + */
> +
> +#include <linux/slab.h>
> +#include <linux/display_timing.h>
> +
> +void timings_release(struct display_timings *disp)
> +{
> +	int i;
> +
> +	for (i = 0; i < disp->num_timings; i++)
> +		kfree(disp->timings[i]);
> +}

This function doesn't seem to be called externally, you can make it static.

> +void display_timings_release(struct display_timings *disp)
> +{
> +	timings_release(disp);
> +	kfree(disp->timings);
> +}
> diff --git a/include/linux/display_timing.h b/include/linux/display_timing.h
> new file mode 100644
> index 0000000..aa02a12
> --- /dev/null
> +++ b/include/linux/display_timing.h
> @@ -0,0 +1,69 @@
> +/*
> + * Copyright 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>
> + *
> + * description of display timings
> + *
> + * This file is released under the GPLv2
> + */
> +
> +#ifndef __LINUX_DISPLAY_TIMINGS_H
> +#define __LINUX_DISPLAY_TIMINGS_H
> +
> +#include <linux/types.h>
> +
> +struct timing_entry {
> +	u32 min;
> +	u32 typ;
> +	u32 max;
> +};
> +
> +struct display_timing {
> +	struct timing_entry pixelclock;
> +
> +	struct timing_entry hactive;
> +	struct timing_entry hfront_porch;
> +	struct timing_entry hback_porch;
> +	struct timing_entry hsync_len;
> +
> +	struct timing_entry vactive;
> +	struct timing_entry vfront_porch;
> +	struct timing_entry vback_porch;
> +	struct timing_entry vsync_len;
> +
> +	unsigned int vsync_pol_active;
> +	unsigned int hsync_pol_active;
> +	unsigned int de_pol_active;
> +	unsigned int pixelclk_pol;
> +	bool interlaced;
> +	bool doublescan;
> +};
> +
> +struct display_timings {
> +	unsigned int num_timings;
> +	unsigned int native_mode;
> +
> +	struct display_timing **timings;
> +};
> +
> +/* placeholder function until ranges are really needed */
> +static inline u32 display_timing_get_value(struct timing_entry *te, int
> index) +{
> +	return te->typ;
> +}
> +
> +static inline struct display_timing *display_timings_get(struct
> display_timings *disp, +							 int index)
> +{
> +	struct display_timing *dt;
> +
> +	if (disp->num_timings > index) {
> +		dt = disp->timings[index];
> +		return dt;
> +	} else
> +		return NULL;
> +}
> +void timings_release(struct display_timings *disp);
> +void display_timings_release(struct display_timings *disp);
> +
> +#endif

-- 
Regards,

Laurent Pinchart

  parent reply	other threads:[~2012-10-31 17:09 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-31  9:28 [PATCH v7 0/8] of: add display helper Steffen Trumtrar
2012-10-31  9:28 ` Steffen Trumtrar
2012-10-31  9:28 ` [PATCH v7 1/8] video: add display_timing struct and helpers Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-10-31 17:04   ` Laurent Pinchart
2012-10-31 17:04     ` Laurent Pinchart
2012-10-31 17:09   ` Laurent Pinchart [this message]
2012-10-31 17:09     ` Laurent Pinchart
     [not found]   ` <1351675689-26814-2-git-send-email-s.trumtrar-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-11-01 20:08     ` Thierry Reding
2012-11-01 20:08       ` Thierry Reding
2012-11-01 20:08       ` Thierry Reding
2012-11-04 16:53       ` Steffen Trumtrar
2012-11-04 16:53         ` Steffen Trumtrar
2012-10-31  9:28 ` [PATCH v7 2/8] of: add helper to parse display timings Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-11-01 17:52   ` Stephen Warren
2012-11-01 17:52     ` Stephen Warren
2012-11-01 20:15   ` Thierry Reding
2012-11-01 20:15     ` Thierry Reding
     [not found]     ` <20121101201510.GB13137-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-11-04 17:10       ` Steffen Trumtrar
2012-11-04 17:10         ` Steffen Trumtrar
2012-11-04 17:10         ` Steffen Trumtrar
2012-11-02 17:19   ` Leela Krishna Amudala
2012-11-02 17:31     ` Leela Krishna Amudala
2012-11-04 17:23     ` Steffen Trumtrar
2012-11-04 17:23       ` Steffen Trumtrar
2012-10-31  9:28 ` [PATCH v7 3/8] of: add generic videomode description Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-11-01 20:17   ` Thierry Reding
2012-11-01 20:17     ` Thierry Reding
2012-10-31  9:28 ` [PATCH v7 4/8] video: add videomode helpers Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-10-31 17:18   ` Laurent Pinchart
2012-10-31 17:18     ` Laurent Pinchart
2012-10-31  9:28 ` [PATCH v7 5/8] fbmon: " Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-10-31 15:30   ` Manjunathappa, Prakash
2012-10-31 16:49     ` Steffen Trumtrar
2012-10-31 16:49       ` Steffen Trumtrar
2012-11-08 21:25     ` Steffen Trumtrar
2012-11-08 21:25       ` Steffen Trumtrar
     [not found]       ` <20121108212545.GA32605-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-11-09 16:54         ` Manjunathappa, Prakash
2012-11-09 16:54           ` Manjunathappa, Prakash
2012-11-09 16:54           ` Manjunathappa, Prakash
2012-11-09 19:31           ` Steffen Trumtrar
2012-11-09 19:31             ` Steffen Trumtrar
2012-11-12 11:46             ` Laurent Pinchart
2012-11-12 11:46               ` Laurent Pinchart
2012-10-31  9:28 ` [PATCH v7 6/8] fbmon: add of_videomode helpers Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-10-31  9:28 ` [PATCH v7 7/8] drm_modes: add videomode helpers Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-10-31  9:28 ` [PATCH v7 8/8] drm_modes: add of_videomode helpers Steffen Trumtrar
2012-10-31  9:28   ` Steffen Trumtrar
2012-11-05  9:10   ` Thierry Reding
2012-11-05  9:10     ` Thierry Reding
2012-11-08 21:35 ` [PATCH v7 0/8] of: add display helper Rob Herring
2012-11-08 21:35   ` Rob Herring
2012-11-09  8:22   ` Steffen Trumtrar
2012-11-09  8:22     ` Steffen Trumtrar

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=1783334.5mdSA56Pjh@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=g.liakhovetski@gmx.de \
    --cc=kernel@pengutronix.de \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=robherring2@gmail.com \
    --cc=s.trumtrar@pengutronix.de \
    --cc=swarren@wwwdotorg.org \
    --cc=thierry.reding@avionic-design.de \
    --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 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.