All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v17 0/7] of: add display helper
@ 2013-01-25  9:01 ` Steffen Trumtrar
  0 siblings, 0 replies; 38+ messages in thread
From: Steffen Trumtrar @ 2013-01-25  9:01 UTC (permalink / raw)
  To: devicetree-discuss, Dave Airlie
  Cc: Steffen Trumtrar, Rob Herring, linux-fbdev, dri-devel,
	Laurent Pinchart, Thierry Reding, Guennady Liakhovetski,
	linux-media, Tomi Valkeinen, Stephen Warren,
	Florian Tobias Schandinat, Rob Clark, Leela Krishna Amudala,
	Mohammed, Afzal, kernel

Hi!

This is basically just a resend of v16 that was rebased onto v3.8-rc4 and has
two new "tested-by"s from Rob and Leela.

The patches were tested with:

        - v15 on Tegra by Thierry
        - sh-mobile-lcdcfb by Laurent
        - MX53QSB by Marek
        - Exynos: smdk5250 by Leela
        - AM335X EVM & AM335X EVM-SK by Afzal
	- tilcdc lcd-panel by Rob
        - imx6q: sabrelite, sabresd by Philipp and me
        - imx53: tqma53/mba53 by me


Changes since v16:
	- rebased from 3.7 to 3.8-rc4

Changes since v15:
        - move include/linux/{videomode,display_timing}.h to include/video
        - move include/linux/of_{videomode,display_timing}.h to include/video
        - reimplement flags: add VESA flags and data flags
        - let pixelclock in struct videomode be unsigned long
        - rename of_display_timings_exists to of_display_timings_exist
        - revise logging/error messages: replace __func__ with np->full_name
        - rename pixelclk-inverted to pixelclk-active
        - revise comments in code

Changes since v14:
        - fix "const struct *" warning
                (reported by: Leela Krishna Amudala <l.krishna@samsung.com>)
        - return -EINVAL when htotal or vtotal are zero
        - remove unreachable code in of_get_display_timings
        - include headers in .c files and not implicit in .h
        - sort includes alphabetically
        - fix lower/uppercase in binding documentation
        - rebase onto v3.7-rc7

Changes since v13:
        - fix "const struct *" warning
                (reported by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>)
        - prevent division by zero in fb_videomode_from_videomode

Changes since v12:
        - rename struct display_timing to via_display_timing in via subsystem
        - fix refreshrate calculation
        - fix "const struct *" warnings
                (reported by: Manjunathappa, Prakash <prakash.pm@ti.com>)
        - some CodingStyle fixes
        - rewrite parts of commit messages and display-timings.txt
        - let display_timing_get_value get all values instead of just typical

Changes since v11:
        - make pointers const where applicable
        - add reviewed-by Laurent Pinchart

Changes since v10:
        - fix function name (drm_)display_mode_from_videomode
        - add acked-by, reviewed-by, tested-by

Changes since v9:
        - don't leak memory when previous timings were correct
        - CodingStyle fixes
        - move blank lines around

Changes since v8:
        - fix memory leaks
        - change API to be more consistent (foo_from_bar(struct bar, struct foo))
        - include headers were necessary
        - misc minor bugfixes

Changes since v7:
        - move of_xxx to drivers/video
        - remove non-binding documentation from display-timings.txt
        - squash display_timings and videomode in one patch
        - misc minor fixes

Changes since v6:
        - get rid of some empty lines etc.
        - move functions to their subsystems
        - split of_ from non-of_ functions
        - add at least some kerneldoc to some functions

Changes since v5:
        - removed all display stuff and just describe timings

Changes since v4:
        - refactored functions

Changes since v3:
        - print error messages
        - free alloced memory
        - general cleanup

Changes since v2:
        - use hardware-near property-names
        - provide a videomode structure
        - allow ranges for all properties (<min,typ,max>)
        - functions to get display_mode or fb_videomode


Regards
Steffen

Steffen Trumtrar (7):
  viafb: rename display_timing to via_display_timing
  video: add display_timing and videomode
  video: add of helper for display timings/videomode
  fbmon: add videomode helpers
  fbmon: add of_videomode helpers
  drm_modes: add videomode helpers
  drm_modes: add of_videomode helpers

 .../devicetree/bindings/video/display-timing.txt   |  109 +++++++++
 drivers/gpu/drm/drm_modes.c                        |   70 ++++++
 drivers/video/Kconfig                              |   21 ++
 drivers/video/Makefile                             |    4 +
 drivers/video/display_timing.c                     |   24 ++
 drivers/video/fbmon.c                              |   94 ++++++++
 drivers/video/of_display_timing.c                  |  239 ++++++++++++++++++++
 drivers/video/of_videomode.c                       |   54 +++++
 drivers/video/via/hw.c                             |    6 +-
 drivers/video/via/hw.h                             |    2 +-
 drivers/video/via/lcd.c                            |    2 +-
 drivers/video/via/share.h                          |    2 +-
 drivers/video/via/via_modesetting.c                |    8 +-
 drivers/video/via/via_modesetting.h                |    6 +-
 drivers/video/videomode.c                          |   39 ++++
 include/drm/drmP.h                                 |    9 +
 include/linux/fb.h                                 |    8 +
 include/video/display_timing.h                     |  124 ++++++++++
 include/video/of_display_timing.h                  |   20 ++
 include/video/of_videomode.h                       |   18 ++
 include/video/videomode.h                          |   48 ++++
 21 files changed, 894 insertions(+), 13 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/video/display-timing.txt
 create mode 100644 drivers/video/display_timing.c
 create mode 100644 drivers/video/of_display_timing.c
 create mode 100644 drivers/video/of_videomode.c
 create mode 100644 drivers/video/videomode.c
 create mode 100644 include/video/display_timing.h
 create mode 100644 include/video/of_display_timing.h
 create mode 100644 include/video/of_videomode.h
 create mode 100644 include/video/videomode.h

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 38+ messages in thread
* Re: [PATCH v17 4/7] fbmon: add videomode helpers
  2013-01-25  9:01   ` Steffen Trumtrar
  (?)
@ 2013-02-01  9:33 ` Jingoo Han
  -1 siblings, 0 replies; 38+ messages in thread
From: Jingoo Han @ 2013-02-01  9:33 UTC (permalink / raw)
  To: Steffen Trumtrar
  Cc: Mohammed, Afzal, Jingoo Han, Florian Tobias Schandinat,
	Dave Airlie, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
	linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Tomi Valkeinen,
	Laurent Pinchart, kernel-bIcnvbaLZ9MEGnE8C9+IrQ,
	Guennady Liakhovetski, linux-media-u79uwXL29TY76Z2rM5mHXA

On Friday, January 25, 2013 6:02 PM, Steffen Trumtrar wrote
> 
> Add a function to convert from the generic videomode to a fb_videomode.
> 
> Signed-off-by: Steffen Trumtrar <s.trumtrar-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> Reviewed-by: Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
> Acked-by: Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
> Tested-by: Thierry Reding <thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
> Tested-by: Philipp Zabel <p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
> Reviewed-by: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
> Acked-by: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
> Tested-by: Afzal Mohammed <Afzal-l0cyMroinI0@public.gmane.org>
> Tested-by: Rob Clark <robclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> Tested-by: Leela Krishna Amudala <leelakrishna.a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
>  drivers/video/fbmon.c |   52 +++++++++++++++++++++++++++++++++++++++++++++++++
>  include/linux/fb.h    |    4 ++++
>  2 files changed, 56 insertions(+)
> 
> diff --git a/drivers/video/fbmon.c b/drivers/video/fbmon.c
> index cef6557..17ce135 100644
> --- a/drivers/video/fbmon.c
> +++ b/drivers/video/fbmon.c
> @@ -31,6 +31,7 @@
>  #include <linux/pci.h>
>  #include <linux/slab.h>
>  #include <video/edid.h>
> +#include <video/videomode.h>
>  #ifdef CONFIG_PPC_OF
>  #include <asm/prom.h>
>  #include <asm/pci-bridge.h>
> @@ -1373,6 +1374,57 @@ int fb_get_mode(int flags, u32 val, struct fb_var_screeninfo *var, struct fb_inf
>  	kfree(timings);
>  	return err;
>  }
> +
> +#if IS_ENABLED(CONFIG_VIDEOMODE)
> +int fb_videomode_from_videomode(const struct videomode *vm,
> +				struct fb_videomode *fbmode)
> +{
> +	unsigned int htotal, vtotal;
> +
> +	fbmode->xres = vm->hactive;
> +	fbmode->left_margin = vm->hback_porch;
> +	fbmode->right_margin = vm->hfront_porch;
> +	fbmode->hsync_len = vm->hsync_len;
> +
> +	fbmode->yres = vm->vactive;
> +	fbmode->upper_margin = vm->vback_porch;
> +	fbmode->lower_margin = vm->vfront_porch;
> +	fbmode->vsync_len = vm->vsync_len;
> +
> +	/* prevent division by zero in KHZ2PICOS macro */
> +	fbmode->pixclock = vm->pixelclock ?
> +			KHZ2PICOS(vm->pixelclock / 1000) : 0;
> +
> +	fbmode->sync = 0;
> +	fbmode->vmode = 0;
> +	if (vm->dmt_flags & VESA_DMT_HSYNC_HIGH)
> +		fbmode->sync |= FB_SYNC_HOR_HIGH_ACT;
> +	if (vm->dmt_flags & VESA_DMT_HSYNC_HIGH)

Hi Steffen Trumtrar,

Um, it seems to be a type. 'H'SYNC -> 'V'SYNC
Thus, it would be changed as below:

    VESA_DMT_HSYNC_HIGH -> VESA_DMT_VSYNC_HIGH


Best regards,
Jingoo Han

> +		fbmode->sync |= FB_SYNC_VERT_HIGH_ACT;
> +	if (vm->data_flags & DISPLAY_FLAGS_INTERLACED)
> +		fbmode->vmode |= FB_VMODE_INTERLACED;
> +	if (vm->data_flags & DISPLAY_FLAGS_DOUBLESCAN)
> +		fbmode->vmode |= FB_VMODE_DOUBLE;
> +	fbmode->flag = 0;
> +
> +	htotal = vm->hactive + vm->hfront_porch + vm->hback_porch +
> +		 vm->hsync_len;
> +	vtotal = vm->vactive + vm->vfront_porch + vm->vback_porch +
> +		 vm->vsync_len;
> +	/* prevent division by zero */
> +	if (htotal && vtotal) {
> +		fbmode->refresh = vm->pixelclock / (htotal * vtotal);
> +	/* a mode must have htotal and vtotal != 0 or it is invalid */
> +	} else {
> +		fbmode->refresh = 0;
> +		return -EINVAL;
> +	}
> +
> +	return 0;
> +}
> +EXPORT_SYMBOL_GPL(fb_videomode_from_videomode);
> +#endif
> +
>  #else
>  int fb_parse_edid(unsigned char *edid, struct fb_var_screeninfo *var)
>  {
> diff --git a/include/linux/fb.h b/include/linux/fb.h
> index c7a9571..100a176 100644
> --- a/include/linux/fb.h
> +++ b/include/linux/fb.h
> @@ -19,6 +19,7 @@ struct vm_area_struct;
>  struct fb_info;
>  struct device;
>  struct file;
> +struct videomode;
> 
>  /* Definitions below are used in the parsed monitor specs */
>  #define FB_DPMS_ACTIVE_OFF	1
> @@ -714,6 +715,9 @@ extern void fb_destroy_modedb(struct fb_videomode *modedb);
>  extern int fb_find_mode_cvt(struct fb_videomode *mode, int margins, int rb);
>  extern unsigned char *fb_ddc_read(struct i2c_adapter *adapter);
> 
> +extern int fb_videomode_from_videomode(const struct videomode *vm,
> +				       struct fb_videomode *fbmode);
> +
>  /* drivers/video/modedb.c */
>  #define VESA_MODEDB_SIZE 34
>  extern void fb_var_to_videomode(struct fb_videomode *mode,
> --
> 1.7.10.4
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2013-03-05  9:25 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-25  9:01 [PATCH v17 0/7] of: add display helper Steffen Trumtrar
2013-01-25  9:01 ` Steffen Trumtrar
2013-01-25  9:01 ` [PATCH v17 1/7] viafb: rename display_timing to via_display_timing Steffen Trumtrar
2013-01-25  9:01   ` Steffen Trumtrar
2013-01-25  9:01 ` [PATCH v17 2/7] video: add display_timing and videomode Steffen Trumtrar
2013-01-25  9:01   ` Steffen Trumtrar
2013-02-18 14:09   ` Tomi Valkeinen
2013-02-18 14:09     ` Tomi Valkeinen
     [not found]     ` <51223615.4090709-X3B1VOXEql0@public.gmane.org>
2013-02-27 15:45       ` Tomi Valkeinen
2013-02-27 15:45         ` Tomi Valkeinen
2013-02-27 15:45         ` Tomi Valkeinen
2013-02-27 16:05         ` Steffen Trumtrar
2013-02-27 16:05           ` Steffen Trumtrar
     [not found]           ` <20130227160540.GA10491-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2013-02-27 16:13             ` Tomi Valkeinen
2013-02-27 16:13               ` Tomi Valkeinen
2013-02-27 16:13               ` Tomi Valkeinen
     [not found]               ` <512E30BD.7010603-l0cyMroinI0@public.gmane.org>
2013-03-05  9:24                 ` Steffen Trumtrar
2013-03-05  9:24                   ` Steffen Trumtrar
2013-03-05  9:24                   ` Steffen Trumtrar
2013-01-25  9:01 ` [PATCH v17 3/7] video: add of helper for display timings/videomode Steffen Trumtrar
2013-01-25  9:01   ` =?UTF-8?q?=5BPATCH=20v17=203/7=5D=20video=3A=20add=20of=20helper=20for=20display=20timings/videomode Steffen Trumtrar
2013-01-25  9:01 ` [PATCH v17 4/7] fbmon: add videomode helpers Steffen Trumtrar
2013-01-25  9:01   ` Steffen Trumtrar
2013-02-01  9:29   ` Jingoo Han
2013-02-01  9:29     ` Jingoo Han
2013-02-01  9:29     ` Jingoo Han
     [not found]     ` <003401ce005e$af665c50$0e3314f0$%han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2013-02-05 18:29       ` Steffen Trumtrar
2013-02-05 18:29         ` Steffen Trumtrar
2013-02-05 18:29         ` Steffen Trumtrar
2013-01-25  9:01 ` [PATCH v17 5/7] fbmon: add of_videomode helpers Steffen Trumtrar
2013-01-25  9:01   ` Steffen Trumtrar
2013-01-25  9:01 ` [PATCH v17 6/7] drm_modes: add videomode helpers Steffen Trumtrar
2013-01-25  9:01   ` Steffen Trumtrar
2013-01-25  9:01 ` [PATCH v17 7/7] drm_modes: add of_videomode helpers Steffen Trumtrar
2013-01-25  9:01   ` Steffen Trumtrar
2013-02-01  9:33 [PATCH v17 4/7] fbmon: add videomode helpers Jingoo Han
2013-02-01  9:33 ` Jingoo Han
2013-02-01  9:33 ` Jingoo Han

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.