1. 27 7月, 2012 2 次提交
  2. 20 7月, 2012 1 次提交
  3. 17 5月, 2012 2 次提交
    • J
      drm/exynos: add G2D driver · d7f1642c
      Joonyoung Shim 提交于
      Changelog v3:
      - use __u64 instead of pointer in ioctl struct.
      
      The G2D is a 2D graphic accelerator that supports Bit Block Transfer.
      This G2D driver is exynos drm specific and supports only G2D(version
      4.1) of later Exynos series from Exynos4X12 because supporting DMA.
      
      The G2D is performed by two tasks simply.
      1. Configures the rendering parameters, such as foreground color and
         coordinates data by setting the drawing context registers.
      2. Start the rendering process by setting thre relevant command
         registers accordingly.
      
      The G2D version 4.1 supports DMA mode as host interface. User can make
      command list to reduce HOST(ARM) loads. The contents of The command list
      is setted to relevant registers of G2D by DMA.
      
      The command list is composed Header and command sets and Tail.
      - Header: The number of command set(4Bytes)
      - Command set: Register offset(4Bytes) + Register data(4Bytes)
      - Tail: Pointer of base address of the other command list(4Bytes)
      
      By Tail field, the G2D can process many command lists without halt at
      one go.
      
      The G2D has following the rendering pipeline.
      --> Primitive Drawing --> Rotation --> Clipping --> Bilinear Sampling
      --> Color Key --> ROP --> Mask Operation --> Alpha Blending -->
      Dithering --> FrameBuffer
      
      And supports various operations from the rendering pipeline.
      - copy
      - fast solid color fill
      - window clipping
      - rotation
      - flip
      - 4 operand raster operation(ROP4)
      - masking operation
      - alpha blending
      - color key
      - dithering
      - etc
      
      User should make the command list to data and registers needed by
      operation to use. The Exynos G2D driver only manages the command lists
      received from user. Some registers needs memory base address(physical
      address) of image. User doesn't know its physical address, so fills the
      gem handle of that memory than address to command sets, then G2D driver
      converts it to memory base address.
      
      We adds three ioctls and one event for Exynos G2D.
      
      - ioctls
      DRM_EXYNOS_G2D_GET_VER: get the G2D hardware version
      DRM_EXYNOS_G2D_SET_CMDLIST: set the command list from user to driver
      DRM_EXYNOS_G2D_EXEC: execute the command lists setted to driver
      
      - event
      DRM_EXYNOS_G2D_EVENT: event to give notification completion of the
      		      command list to user
      Signed-off-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      d7f1642c
    • S
      drm/exynos: added source size to overlay structure · 0d8071ee
      Seung-Woo Kim 提交于
      Set plane has source size but exynos overlay structure did
      not consider it. This patch adds source size to overlay
      structure. For set crtc, source size is set from crtc size.
      Signed-off-by: NSeung-Woo Kim <sw0312.kim@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      0d8071ee
  4. 12 4月, 2012 1 次提交
  5. 21 3月, 2012 1 次提交
  6. 20 3月, 2012 4 次提交
  7. 15 2月, 2012 1 次提交
  8. 29 12月, 2011 2 次提交
  9. 21 12月, 2011 2 次提交
  10. 17 11月, 2011 1 次提交
  11. 15 11月, 2011 3 次提交
  12. 18 10月, 2011 5 次提交
  13. 05 10月, 2011 1 次提交
    • I
      DRM: add DRM Driver for Samsung SoC EXYNOS4210. · 1c248b7d
      Inki Dae 提交于
      This patch is a DRM Driver for Samsung SoC Exynos4210 and now enables
      only FIMD yet but we will add HDMI support also in the future.
      
      this patch is based on git repository below:
      git://people.freedesktop.org/~airlied/linux.git
      branch name: drm-next
      commit-id: 88ef4e3f
      
      you can refer to our working repository below:
      http://git.infradead.org/users/kmpark/linux-2.6-samsung
      branch name: samsung-drm
      
      We tried to re-use lowlevel codes of the FIMD driver(s3c-fb.c
      based on Linux framebuffer) but couldn't so because lowlevel codes
      of s3c-fb.c are included internally and so FIMD module of this driver has
      its own lowlevel codes.
      
      We used GEM framework for buffer management and DMA APIs(dma_alloc_*)
      for buffer allocation so we can allocate physically continuous memory
      for DMA through it and also we could use CMA later if CMA is applied to
      mainline.
      
      Refer to this link for CMA(Continuous Memory Allocator):
      http://lkml.org/lkml/2011/7/20/45
      
      this driver supports only physically continuous memory(non-iommu).
      
      Links to previous versions of the patchset:
      v1: < https://lwn.net/Articles/454380/ >
      v2: < http://www.spinics.net/lists/kernel/msg1224275.html >
      v3: < http://www.spinics.net/lists/dri-devel/msg13755.html >
      v4: < http://permalink.gmane.org/gmane.comp.video.dri.devel/60439 >
      v5: < http://comments.gmane.org/gmane.comp.video.dri.devel/60802 >
      
      Changelog v2:
      DRM: add DRM_IOCTL_SAMSUNG_GEM_MMAP ioctl command.
      
          this feature maps user address space to physical memory region
          once user application requests DRM_IOCTL_SAMSUNG_GEM_MMAP ioctl.
      
      DRM: code clean and add exception codes.
      
      Changelog v3:
      DRM: Support multiple irq.
      
          FIMD and HDMI have their own irq handler but DRM Framework can regiter
          only one irq handler this patch supports mutiple irq for Samsung SoC.
      
      DRM: Consider modularization.
      
          each DRM, FIMD could be built as a module.
      
      DRM: Have indenpendent crtc object.
      
          crtc isn't specific to SoC Platform so this patch gets a crtc
          to be used as common object.
          created crtc could be attached to any encoder object.
      
      DRM: code clean and add exception codes.
      
      Changelog v4:
      DRM: remove is_defult from samsung_fb.
      
          is_default isn't used for default framebuffer.
      
      DRM: code refactoring to fimd module.
          this patch is be considered with multiple display objects and
          would use its own request_irq() to register a irq handler instead of
          drm framework's one.
      
      DRM: remove find_samsung_drm_gem_object()
      
      DRM: move kernel private data structures and definitions to driver folder.
      
          samsung_drm.h would contain only public information for userspace
          ioctl interface.
      
      DRM: code refactoring to gem modules.
          buffer module isn't dependent of gem module anymore.
      
      DRM: fixed security issue.
      
      DRM: remove encoder porinter from specific connector.
      
          samsung connector doesn't need to have generic encoder.
      
      DRM: code clean and add exception codes.
      
      Changelog v5:
      DRM: updated fimd(display controller) driver.
          added various pixel formats, color key and pixel blending features.
      
      DRM: removed end_buf_off from samsung_drm_overlay structure.
          this variable isn't used and end buffer address would be
          calculated by each sub driver.
      
      DRM: use generic function for mmap_offset.
          replaced samsung_drm_gem_create_mmap_offset() and
          samsung_drm_free_mmap_offset() with generic ones applied
          to mainline recentrly.
      
      DRM: removed unnecessary codes and added exception codes.
      
      DRM: added comments and code clean.
      
      Changelog v6:
      DRM: added default config options.
      
      DRM: added padding for 64-bit align.
      
      DRM: changed prefix 'samsung' to 'exynos'
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Signed-off-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: NSeung-Woo Kim <sw0312.kim@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reviewed-by: NDave Airlie <airlied@redhat.com>
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      1c248b7d