Merge branch 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung...
authorDave Airlie <airlied@redhat.com>
Sun, 7 Oct 2012 11:06:33 +0000 (21:06 +1000)
committerDave Airlie <airlied@redhat.com>
Sun, 7 Oct 2012 11:06:33 +0000 (21:06 +1000)
Inki writes:
"this patch set updates exynos drm framework and includes minor fixups.
and this pull request except hdmi device tree support patch set posted
by Rahul Sharma because that includes media side patch so for this
patch set, we may have git pull one more time in addition, if we get
an agreement with media guys. for this patch, you can refer to below link,
        http://comments.gmane.org/gmane.comp.video.dri.devel/74504

 this pull request adds hdmi device tree support
and includes related patch set such as disabling of hdmi internal
interrupt, suppport for platform variants for hdmi and mixer,
support to disable video processor based on platform type and
removal of drm common platform data. as you know, this patch
set was delayed because it included an media side patch. so for this,
we got an ack from v4l2-based hdmi driver author, Tomasz Stanislawski."

* 'exynos-drm-next' of git://git.infradead.org/users/kmpark/linux-samsung: (34 commits)
  drm: exynos: hdmi: remove drm common hdmi platform data struct
  drm: exynos: hdmi: add support for exynos5 hdmi
  drm: exynos: hdmi: replace is_v13 with version check in hdmi
  drm: exynos: hdmi: add support for exynos5 mixer
  drm: exynos: hdmi: add support to disable video processor in mixer
  drm: exynos: hdmi: add support for platform variants for mixer
  drm: exynos: hdmi: add support for exynos5 hdmiphy
  drm: exynos: hdmi: add support for exynos5 ddc
  drm: exynos: remove drm hdmi platform data struct
  drm: exynos: hdmi: turn off HPD interrupt in HDMI chip
  drm: exynos: hdmi: use s5p-hdmi platform data
  drm: exynos: hdmi: fix interrupt handling
  drm: exynos: hdmi: support for platform variants
  media: s5p-hdmi: add HPD GPIO to platform data
  drm/exynos: fix kcalloc size of g2d cmdlist node
  drm/exynos: fix to calculate CRTC shown via screen
  drm/exynos: fix display power call issue.
  drm/exynos: add platform_device_id table and driver data for drm fimd
  drm/exynos: Fix potential NULL pointer dereference
  drm/exynos: support drm_wait_vblank feature for VIDI
  ...

Conflicts:
include/drm/exynos_drm.h

17 files changed:
1  2 
drivers/gpu/drm/exynos/exynos_ddc.c
drivers/gpu/drm/exynos/exynos_drm_connector.c
drivers/gpu/drm/exynos/exynos_drm_core.c
drivers/gpu/drm/exynos/exynos_drm_crtc.c
drivers/gpu/drm/exynos/exynos_drm_drv.h
drivers/gpu/drm/exynos/exynos_drm_encoder.c
drivers/gpu/drm/exynos/exynos_drm_fb.c
drivers/gpu/drm/exynos/exynos_drm_fbdev.c
drivers/gpu/drm/exynos/exynos_drm_fimd.c
drivers/gpu/drm/exynos/exynos_drm_g2d.c
drivers/gpu/drm/exynos/exynos_drm_hdmi.c
drivers/gpu/drm/exynos/exynos_drm_plane.c
drivers/gpu/drm/exynos/exynos_drm_vidi.c
drivers/gpu/drm/exynos/exynos_hdmi.c
drivers/gpu/drm/exynos/exynos_hdmiphy.c
drivers/gpu/drm/exynos/exynos_mixer.c
include/drm/exynos_drm.h

Simple merge
Simple merge
Simple merge
  #ifndef _EXYNOS_DRM_H_
  #define _EXYNOS_DRM_H_
  
 -#include "drm.h"
 -
 -/**
 - * User-desired buffer creation information structure.
 - *
 - * @size: user-desired memory allocation size.
 - *    - this size value would be page-aligned internally.
 - * @flags: user request for setting memory type or cache attributes.
 - * @handle: returned a handle to created gem object.
 - *    - this handle will be set by gem module of kernel side.
 - */
 -struct drm_exynos_gem_create {
 -      uint64_t size;
 -      unsigned int flags;
 -      unsigned int handle;
 -};
 -
 -/**
 - * A structure for getting buffer offset.
 - *
 - * @handle: a pointer to gem object created.
 - * @pad: just padding to be 64-bit aligned.
 - * @offset: relatived offset value of the memory region allocated.
 - *    - this value should be set by user.
 - */
 -struct drm_exynos_gem_map_off {
 -      unsigned int handle;
 -      unsigned int pad;
 -      uint64_t offset;
 -};
 -
 -/**
 - * A structure for mapping buffer.
 - *
 - * @handle: a handle to gem object created.
 - * @pad: just padding to be 64-bit aligned.
 - * @size: memory size to be mapped.
 - * @mapped: having user virtual address mmaped.
 - *    - this variable would be filled by exynos gem module
 - *    of kernel side with user virtual address which is allocated
 - *    by do_mmap().
 - */
 -struct drm_exynos_gem_mmap {
 -      unsigned int handle;
 -      unsigned int pad;
 -      uint64_t size;
 -      uint64_t mapped;
 -};
 -
 -/**
 - * A structure to gem information.
 - *
 - * @handle: a handle to gem object created.
 - * @flags: flag value including memory type and cache attribute and
 - *    this value would be set by driver.
 - * @size: size to memory region allocated by gem and this size would
 - *    be set by driver.
 - */
 -struct drm_exynos_gem_info {
 -      unsigned int handle;
 -      unsigned int flags;
 -      uint64_t size;
 -};
 -
 -/**
 - * A structure for user connection request of virtual display.
 - *
 - * @connection: indicate whether doing connetion or not by user.
 - * @extensions: if this value is 1 then the vidi driver would need additional
 - *    128bytes edid data.
 - * @edid: the edid data pointer from user side.
 - */
 -struct drm_exynos_vidi_connection {
 -      unsigned int connection;
 -      unsigned int extensions;
 -      uint64_t edid;
 -};
 -
 -/* Indicate Exynos specific vblank flags */
 -enum e_drm_exynos_vblank {
 -      /*
 -       * this flags is used for Virtual Display module
 -       * to use DRM_IOCTL_WAIT_VBLANK feature. for this,
 -       * user should set this flag to vblwait->request.type
 -       */
 -      _DRM_VBLANK_EXYNOS_VIDI = 2,
 -};
 -
 -/* memory type definitions. */
 -enum e_drm_exynos_gem_mem_type {
 -      /* Physically Continuous memory and used as default. */
 -      EXYNOS_BO_CONTIG        = 0 << 0,
 -      /* Physically Non-Continuous memory. */
 -      EXYNOS_BO_NONCONTIG     = 1 << 0,
 -      /* non-cachable mapping and used as default. */
 -      EXYNOS_BO_NONCACHABLE   = 0 << 1,
 -      /* cachable mapping. */
 -      EXYNOS_BO_CACHABLE      = 1 << 1,
 -      /* write-combine mapping. */
 -      EXYNOS_BO_WC            = 1 << 2,
 -      EXYNOS_BO_MASK          = EXYNOS_BO_NONCONTIG | EXYNOS_BO_CACHABLE |
 -                                      EXYNOS_BO_WC
 -};
 -
 -struct drm_exynos_g2d_get_ver {
 -      __u32   major;
 -      __u32   minor;
 -};
 -
 -struct drm_exynos_g2d_cmd {
 -      __u32   offset;
 -      __u32   data;
 -};
 -
 -enum drm_exynos_g2d_event_type {
 -      G2D_EVENT_NOT,
 -      G2D_EVENT_NONSTOP,
 -      G2D_EVENT_STOP,         /* not yet */
 -};
 -
 -struct drm_exynos_g2d_set_cmdlist {
 -      __u64                                   cmd;
 -      __u64                                   cmd_gem;
 -      __u32                                   cmd_nr;
 -      __u32                                   cmd_gem_nr;
 -
 -      /* for g2d event */
 -      __u64                                   event_type;
 -      __u64                                   user_data;
 -};
 -
 -struct drm_exynos_g2d_exec {
 -      __u64                                   async;
 -};
 -
 -#define DRM_EXYNOS_GEM_CREATE         0x00
 -#define DRM_EXYNOS_GEM_MAP_OFFSET     0x01
 -#define DRM_EXYNOS_GEM_MMAP           0x02
 -/* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */
 -#define DRM_EXYNOS_GEM_GET            0x04
 -#define DRM_EXYNOS_VIDI_CONNECTION    0x07
 -
 -/* G2D */
 -#define DRM_EXYNOS_G2D_GET_VER                0x20
 -#define DRM_EXYNOS_G2D_SET_CMDLIST    0x21
 -#define DRM_EXYNOS_G2D_EXEC           0x22
 -
 -#define DRM_IOCTL_EXYNOS_GEM_CREATE           DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create)
 -
 -#define DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET       DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_GEM_MAP_OFFSET, struct drm_exynos_gem_map_off)
 -
 -#define DRM_IOCTL_EXYNOS_GEM_MMAP     DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_GEM_MMAP, struct drm_exynos_gem_mmap)
 -
 -#define DRM_IOCTL_EXYNOS_GEM_GET      DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_GEM_GET,     struct drm_exynos_gem_info)
 -
 -#define DRM_IOCTL_EXYNOS_VIDI_CONNECTION      DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection)
 -
 -#define DRM_IOCTL_EXYNOS_G2D_GET_VER          DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_G2D_GET_VER, struct drm_exynos_g2d_get_ver)
 -#define DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST      DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_G2D_SET_CMDLIST, struct drm_exynos_g2d_set_cmdlist)
 -#define DRM_IOCTL_EXYNOS_G2D_EXEC             DRM_IOWR(DRM_COMMAND_BASE + \
 -              DRM_EXYNOS_G2D_EXEC, struct drm_exynos_g2d_exec)
 -
 -/* EXYNOS specific events */
 -#define DRM_EXYNOS_G2D_EVENT          0x80000000
 -
 -struct drm_exynos_g2d_event {
 -      struct drm_event        base;
 -      __u64                   user_data;
 -      __u32                   tv_sec;
 -      __u32                   tv_usec;
 -      __u32                   cmdlist_no;
 -      __u32                   reserved;
 -};
 -
 -#ifdef __KERNEL__
 +#include <uapi/drm/exynos_drm.h>
  
  /**
   * A structure for lcd panel information.
   *