1. 17 5月, 2012 1 次提交
    • 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
  2. 08 5月, 2012 3 次提交
  3. 27 4月, 2012 2 次提交
  4. 24 4月, 2012 1 次提交
  5. 20 4月, 2012 5 次提交
  6. 12 4月, 2012 1 次提交
  7. 03 4月, 2012 1 次提交
  8. 02 4月, 2012 1 次提交
  9. 30 3月, 2012 1 次提交
  10. 27 3月, 2012 1 次提交
  11. 24 3月, 2012 1 次提交
  12. 21 3月, 2012 6 次提交
  13. 20 3月, 2012 3 次提交
    • C
      drm: allow loading an EDID as firmware to override broken monitor · da0df92b
      Carsten Emde 提交于
      Broken monitors and/or broken graphic boards may send erroneous or no
      EDID data. This also applies to broken KVM devices that are unable to
      correctly forward the EDID data of the connected monitor but invent
      their own fantasy data.
      
      This patch allows to specify an EDID data set to be used instead of
      probing the monitor for it. It contains built-in data sets of frequently
      used screen resolutions. In addition, a particular EDID data set may be
      provided in the /lib/firmware directory and loaded via the firmware
      interface. The name is passed to the kernel as module parameter of the
      drm_kms_helper module either when loaded
        options drm_kms_helper edid_firmware=edid/1280x1024.bin
      or as kernel commandline parameter
        drm_kms_helper.edid_firmware=edid/1280x1024.bin
      
      It is also possible to restrict the usage of a specified EDID data set
      to a particular connector. This is done by prepending the name of the
      connector to the name of the EDID data set using the syntax
        edid_firmware=[<connector>:]<edid>
      such as, for example,
        edid_firmware=DVI-I-1:edid/1920x1080.bin
      in which case no other connector will be affected.
      
      The built-in data sets are
      Resolution    Name
      --------------------------------
      1024x768      edid/1024x768.bin
      1280x1024     edid/1280x1024.bin
      1680x1050     edid/1680x1050.bin
      1920x1080     edid/1920x1080.bin
      
      They are ignored, if a file with the same name is available in the
      /lib/firmware directory.
      
      The built-in EDID data sets are based on standard timings that may not
      apply to a particular monitor and even crash it. Ideally, EDID data of
      the connected monitor should be used. They may be obtained through the
      drm/cardX/cardX-<connector>/edid entry in the /sys/devices PCI directory
      of a correctly working graphics adapter.
      
      It is even possible to specify the name of an EDID data set on-the-fly
      via the /sys/module interface, e.g.
      echo edid/myedid.bin >/sys/module/drm_kms_helper/parameters/edid_firmware
      The new screen mode is considered when the related kernel function is
      called for the first time after the change. Such calls are made when the
      X server is started or when the display settings dialog is opened in an
      already running X server.
      Signed-off-by: NCarsten Emde <C.Emde@osadl.org>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      da0df92b
    • I
      drm/exynos: update gem and buffer framework. · 2b35892e
      Inki Dae 提交于
      with this patch, we can allocate physically continuous or non-continuous
      memory and also it creates scatterlist for iommu support so allocated
      memory region can be mapped to iommu page table using scatterlist.
      Signed-off-by: NInki Dae <inki.dae@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      2b35892e
    • J
      drm/exynos: add HDMI version 1.4 support · 3ecd70b1
      Joonyoung Shim 提交于
      Later Exynos series from Exynos4X12 support HDMI version 1.4. We will
      distinguish to use which version via platform data. This patch supports
      only default features of HDMI version 1.4(The 3D, sound and etc don't
      support yet)
      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>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      3ecd70b1
  14. 15 3月, 2012 7 次提交
  15. 10 3月, 2012 1 次提交
  16. 05 3月, 2012 1 次提交
    • P
      BUG: headers with BUG/BUG_ON etc. need linux/bug.h · 187f1882
      Paul Gortmaker 提交于
      If a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any
      other BUG variant in a static inline (i.e. not in a #define) then
      that header really should be including <linux/bug.h> and not just
      expecting it to be implicitly present.
      
      We can make this change risk-free, since if the files using these
      headers didn't have exposure to linux/bug.h already, they would have
      been causing compile failures/warnings.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      187f1882
  17. 29 2月, 2012 1 次提交
  18. 17 2月, 2012 1 次提交
    • D
      drm: add some caps for userspace to discover more info for dumb KMS driver (v2) · 019d96cb
      Dave Airlie 提交于
      For the simple KMS driver case we need some more info about what the preferred
      depth and if a shadow framebuffer is preferred.
      
      I've only added this for intel/radeon which support the dumb ioctls so far.
      
      If you need something really fancy you should be writing a real X.org driver.
      
      v2: drop cursor information, just return an error from the cursor ioctls
      and we can make userspace fallback to sw cursor in that case, cursor
      info was getting too messy, best to start smaller.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      019d96cb
  19. 15 2月, 2012 2 次提交