1. 27 12月, 2016 1 次提交
  2. 06 12月, 2016 1 次提交
    • M
      drm: Add new driver for MXSFB controller · 45d59d70
      Marek Vasut 提交于
      Add new driver for the MXSFB controller found in i.MX23/28/6SX .
      The MXSFB controller is a simple framebuffer controller with one
      parallel LCD output. Unlike the MXSFB fbdev driver that is used
      on these systems now, this driver uses the DRM/KMS framework.
      Signed-off-by: NMarek Vasut <marex@denx.de>
      Cc: Lucas Stach <l.stach@pengutronix.de>
      Cc: Fabio Estevam <fabio.estevam@nxp.com>
      Cc: Shawn Guo <shawnguo@kernel.org>
      45d59d70
  3. 01 12月, 2016 1 次提交
    • N
      drm: Add support for Amlogic Meson Graphic Controller · bbbe775e
      Neil Armstrong 提交于
      The Amlogic Meson Display controller is composed of several components :
      
      DMC|---------------VPU (Video Processing Unit)----------------|------HHI------|
         | vd1   _______     _____________    _________________     |               |
      D  |-------|      |----|            |   |                |    |   HDMI PLL    |
      D  | vd2   | VIU  |    | Video Post |   | Video Encoders |<---|-----VCLK      |
      R  |-------|      |----| Processing |   |                |    |               |
         | osd2  |      |    |            |---| Enci ----------|----|-----VDAC------|
      R  |-------| CSC  |----| Scalers    |   | Encp ----------|----|----HDMI-TX----|
      A  | osd1  |      |    | Blenders   |   | Encl ----------|----|---------------|
      M  |-------|______|----|____________|   |________________|    |               |
      ___|__________________________________________________________|_______________|
      
      VIU: Video Input Unit
      ---------------------
      
      The Video Input Unit is in charge of the pixel scanout from the DDR memory.
      It fetches the frames addresses, stride and parameters from the "Canvas" memory.
      This part is also in charge of the CSC (Colorspace Conversion).
      It can handle 2 OSD Planes and 2 Video Planes.
      
      VPP: Video Post Processing
      --------------------------
      
      The Video Post Processing is in charge of the scaling and blending of the
      various planes into a single pixel stream.
      There is a special "pre-blending" used by the video planes with a dedicated
      scaler and a "post-blending" to merge with the OSD Planes.
      The OSD planes also have a dedicated scaler for one of the OSD.
      
      VENC: Video Encoders
      --------------------
      
      The VENC is composed of the multiple pixel encoders :
       - ENCI : Interlace Video encoder for CVBS and Interlace HDMI
       - ENCP : Progressive Video Encoder for HDMI
       - ENCL : LCD LVDS Encoder
      The VENC Unit gets a Pixel Clocks (VCLK) from a dedicated HDMI PLL and clock
      tree and provides the scanout clock to the VPP and VIU.
      The ENCI is connected to a single VDAC for Composite Output.
      The ENCI and ENCP are connected to an on-chip HDMI Transceiver.
      
      This driver is a DRM/KMS driver using the following DRM components :
       - GEM-CMA
       - PRIME-CMA
       - Atomic Modesetting
       - FBDev-CMA
      
      For the following SoCs :
       - GXBB Family (S905)
       - GXL Family (S905X, S905D)
       - GXM Family (S912)
      
      The current driver only supports the CVBS PAL/NTSC output modes, but the
      CRTC/Planes management should support bigger modes.
      But Advanced Colorspace Conversion, Scaling and HDMI Modes will be added in
      a second time.
      
      The Device Tree bindings makes use of the endpoints video interface definitions
      to connect to the optional CVBS and in the future the HDMI Connector nodes.
      
      HDMI Support is planned for a next release.
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NNeil Armstrong <narmstrong@baylibre.com>
      bbbe775e
  4. 16 11月, 2016 1 次提交
    • G
      drm/fence: add in-fences support · 96260142
      Gustavo Padovan 提交于
      There is now a new property called IN_FENCE_FD attached to every plane
      state that receives sync_file fds from userspace via the atomic commit
      IOCTL.
      
      The fd is then translated to a fence (that may be a fence_array
      subclass or just a normal fence) and then used by DRM to fence_wait() for
      all fences in the sync_file to signal. So it only commits when all
      framebuffers are ready to scanout.
      
      v2: Comments by Daniel Vetter:
      	- remove set state->fence = NULL in destroy phase
      	- accept fence -1 as valid and just return 0
      	- do not call fence_get() - sync_file_fences_get() already calls it
      	- fence_put() if state->fence is already set, in case userspace
      	set the property more than once.
      
      v3: WARN_ON if fence is set but state has no FB
      
      v4: Comment from Maarten Lankhorst
      	- allow set fence with no related fb
      
      v5: rename FENCE_FD to IN_FENCE_FD
      
      v6: Comments by Daniel Vetter:
      	- rename plane_state->in_fence back to "fence"
      	- re-introduce WARN_ON if fence set but no fb
      
           - rebase after fence -> dma_fence rename
      
      v7: Comments by Brian Starkey
      	- set state->fence to NULL when duplicating the state
      	- fail if IN_FENCE_FD was already set
      
      v8: rebase against latest drm-misc
      Signed-off-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Reviewed-by: NBrian Starkey <brian.starkey@arm.com>
      Reviewed-by: NSean Paul <seanpaul@chromium.org>
      Tested-by: NRobert Foss <robert.foss@collabora.com>
      [danvet: Rebase onto extracted drm_mode_config.[hc].]
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      96260142
  5. 10 11月, 2016 1 次提交
  6. 09 11月, 2016 1 次提交
  7. 08 11月, 2016 1 次提交
  8. 07 11月, 2016 1 次提交
  9. 01 9月, 2016 1 次提交
  10. 25 8月, 2016 2 次提交
  11. 12 8月, 2016 1 次提交
  12. 08 8月, 2016 1 次提交
  13. 06 5月, 2016 1 次提交
  14. 02 5月, 2016 1 次提交
  15. 29 4月, 2016 1 次提交
    • X
      drm/hisilicon: Add hisilicon kirin drm master driver · 23e7b2ab
      Xinliang Liu 提交于
      Add kirin DRM master driver for hi6220 SoC which used in HiKey board.
      Add dumb buffer feature.
      Add prime dmabuf feature.
      
      v9: Add OF and ARM64 depends on in Kconfig
      v8: None.
      v7:
      - Add config.mutex protection when accessing mode_config.connector_list.
      - Clean up match data getting.
      v6: None.
      v5: None.
      v4: None.
      v3:
      - Move and rename all the files to kirin sub-directory.
        So that we could separate different seires SoCs' driver.
      - Replace drm_platform_init, load, unload implementation.
      v2:
      - Remove abtraction layer.
      Signed-off-by: NXinliang Liu <xinliang.liu@linaro.org>
      Signed-off-by: NXinwei Kong <kong.kongxinwei@hisilicon.com>
      23e7b2ab
  16. 28 4月, 2016 1 次提交
  17. 26 4月, 2016 1 次提交
  18. 12 2月, 2016 1 次提交
    • R
      drm/dp: Add a drm_aux-dev module for reading/writing dpcd registers. · e94cb37b
      Rafael Antognolli 提交于
      This module is heavily based on i2c-dev. Once loaded, it provides one
      dev node per DP AUX channel, named drm_dp_auxN, where N is an integer.
      
      It's possible to know which connector owns this aux channel by looking
      at the respective sysfs /sys/class/drm_aux_dev/drm_dp_auxN/connector, if
      the connector device pointer was correctly set in the aux helper struct.
      
      Two main operations are provided on the registers read and write. The
      address of the register to be read or written is given using lseek. The
      seek position is updated upon read or write.
      
      v2:
       - lseek is used to select the register to read/write
       - read/write are used instead of ioctl
       - no blocking_notifier is used, just a direct callback
      
      v3:
       - use drm_dp_aux_dev prefix for public functions
       - chardev is named drm_dp_auxN
       - read/write don't allocate a buffer anymore, and transfer up to 16 bytes a
         time
       - remove notifier list from the implementation
       - option on menuconfig is now a boolean
       - add inline stub functions to avoid breakage when this option is disabled
      
      v4:
       - fix build system changes - actually disable this module when not selected.
      
      v5:
       - Use kref to avoid device closing while still in use
       - Don't use list, use an idr for storing aux_dev
       - Remove "connector" attribute
       - set aux.dev to the connector drm_connector device, instead of
         drm_device
      
      v6:
       - Use atomic_t for usage count
       - Use a mutex instead of spinlock for idr lock
       - Destroy chardev immediately on unregister
       - other minor suggestions from Ville
      
      v7:
       - style fixes
       - error handling fixes
      
      v8:
       - more error handling fixes
      
      v9:
       - remove module_init and module_exit, and add drm_dp_aux_dev_init/exit
       to drm_kms_helper_init/exit.
      Signed-off-by: NRafael Antognolli <rafael.antognolli@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/1453417821-2811-3-git-send-email-rafael.antognolli@intel.com
      e94cb37b
  19. 11 2月, 2016 1 次提交
  20. 10 2月, 2016 1 次提交
  21. 21 1月, 2016 1 次提交
    • C
      dma-mapping: always provide the dma_map_ops based implementation · e1c7e324
      Christoph Hellwig 提交于
      Move the generic implementation to <linux/dma-mapping.h> now that all
      architectures support it and remove the HAVE_DMA_ATTR Kconfig symbol now
      that everyone supports them.
      
      [valentinrothberg@gmail.com: remove leftovers in Kconfig]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Aurelien Jacquiot <a-jacquiot@ti.com>
      Cc: Chris Metcalf <cmetcalf@ezchip.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Helge Deller <deller@gmx.de>
      Cc: James Hogan <james.hogan@imgtec.com>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Ley Foon Tan <lftan@altera.com>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Steven Miao <realmz6@gmail.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: Joerg Roedel <jroedel@suse.de>
      Cc: Sebastian Ott <sebott@linux.vnet.ibm.com>
      Signed-off-by: NValentin Rothberg <valentinrothberg@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e1c7e324
  22. 22 12月, 2015 1 次提交
  23. 15 12月, 2015 1 次提交
  24. 21 10月, 2015 1 次提交
    • E
      drm/vc4: Add KMS support for Raspberry Pi. · c8b75bca
      Eric Anholt 提交于
      This is enough for fbcon and bringing up X using
      xf86-video-modesetting.  It doesn't support the 3D accelerator or
      power management yet.
      
      v2: Drop FB_HELPER select thanks to Archit's patches.  Do manual init
          ordering instead of using the .load hook.  Structure registration
          more like tegra's, but still using the typical "component" code.
          Drop no-op hooks for atomic_begin and mode_fixup() now that
          they're optional.  Drop sentinel in Makefile.  Fix minor style
          nits I noticed on another reread.
      
      v3: Use the new bcm2835 clk driver to manage pixel/HSM clocks instead
          of having a fixed video mode.  Use exynos-style component driver
          matching instead of devicetree nodes to list the component driver
          instances.  Rename compatibility strings to say bcm2835, and
          distinguish pv0/1/2.  Clean up some h/vsync code, and add in
          interlaced mode setup.  Fix up probe/bind error paths.  Use
          bitops.h macros for vc4_regs.h
      
      v4: Include i2c.h, allow building under COMPILE_TEST, drop msleep now
          that other bugs have been fixed, add timeouts to cpu_relax()
          loops, rename hpd-gpio to hpd-gpios.
      Signed-off-by: NEric Anholt <eric@anholt.net>
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c8b75bca
  25. 20 8月, 2015 1 次提交
    • J
      drm/layerscape: Add Freescale DCU DRM driver · 109eee2f
      Jianwei Wang 提交于
      This patch add support for Two Dimensional Animation and Compositing
      Engine (2D-ACE) on the Freescale SoCs.
      
      2D-ACE is a Freescale display controller. 2D-ACE describes
      the functionality of the module extremely well its name is a value
      that cannot be used as a token in programming languages.
      Instead the valid token "DCU" is used to tag the register names and
      function names.
      
      The Display Controller Unit (DCU) module is a system master that
      fetches graphics stored in internal or external memory and displays
      them on a TFT LCD panel. A wide range of panel sizes is supported
      and the timing of the interface signals is highly configurable.
      Graphics are read directly from memory and then blended in real-time,
      which allows for dynamic content creation with minimal CPU
      intervention.
      
      The features:
      (1) Full RGB888 output to TFT LCD panel.
      (2) Blending of each pixel using up to 4 source layers
      dependent
      on size of panel.
      (3) Each graphic layer can be placed with one pixel resolution
      in either axis.
      (4) Each graphic layer support RGB565 and RGB888 direct colors
      without alpha channel and BGRA8888 BGRA4444 ARGB1555 direct
      colors
      with an alpha channel and YUV422 format.
      (5) Each graphic layer support alpha blending with 8-bit
      resolution.
      This is a simplified version, only one primary plane, one
      framebuffer, one crtc, one connector and one encoder for TFT
      LCD panel.
      Signed-off-by: NAlison Wang <b18965@freescale.com>
      Signed-off-by: NXiubo Li <lixiubo@cmss.chinamobile.com>
      Signed-off-by: NJianwei Wang <jianwei.wang.chn@gmail.com>
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      109eee2f
  26. 18 8月, 2015 2 次提交
  27. 15 8月, 2015 1 次提交
  28. 06 8月, 2015 3 次提交
    • A
      drm: Add top level Kconfig option for DRM fbdev emulation · a03fdcb1
      Archit Taneja 提交于
      Legacy fbdev emulation support via DRM is achieved through KMS FB helpers.
      Most modesetting drivers enable provide fbdev emulation by default by
      selecting KMS FB helpers. A few provide a separate Kconfig option for the
      user to enable or disbale fbdev emulation.
      
      Enabling fbdev emulation is finally a distro-level decision. Having a top
      level Kconfig option for fbdev emulation helps by providing a uniform way
      to enable/disable fbdev emulation for any modesetting driver. It also lets
      us remove unnecessary driver specific Kconfig options that causes bloat.
      
      With a top level Kconfig in place, we can stub out the fb helper functions
      when not needed without breaking functionality. Having stub functions also
      prevents drivers to require wrapping fb helper function calls with #ifdefs.
      
      DRM_FBDEV_EMULATION defaults to y since many drivers enable fbdev
      emulation by default and majority of distributions expect the fbdev
      interface in the kernel.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a03fdcb1
    • A
      drm/fb_helper: Create wrappers for blit, copyarea and fillrect funcs · 742547b7
      Archit Taneja 提交于
      drm drivers that emulate fbdev populate their fb_fillrect, fb_copyarea
      and fb_imageblit fb_ops with the help of cfb_* or sys_* fbdev core
      helper functions.
      
      Create drm_fb_helper functions that wrap around these calls.
      
      This is part of an effort to prevent drm drivers from calling fbdev
      functions directly, in order to make fbdev emulation a top level drm
      option.
      
      v3:
      - Fixed kerneldoc errors
      
      v2:
      - Added kerneldocs
      - Follow the drm way of aligning of arguments in func definitions
      - Remove unnecessary checks for non NULL fb_info
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      742547b7
    • A
      drm/fb_helper: Create wrappers for fb_sys_read/write funcs · cbb1a82e
      Archit Taneja 提交于
      Some drm drivers populate their fb_ops with fb_sys_read/write fb sysfs
      ops.
      
      Create a drm_fb_helper function that wraps around these calls.
      
      This is part of an effort to prevent drm drivers from calling fbdev
      functions directly, in order to make fbdev emulation a top level drm
      option.
      
      v3:
      - Fix kerneldoc errors
      
      v2:
      - Added kerneldocs
      - Follow the drm way of aligning of arguments in func definitions
      - Remove unnecessary checks for non NULL fb_info
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      cbb1a82e
  29. 04 6月, 2015 1 次提交
  30. 03 6月, 2015 1 次提交
    • D
      Add virtio gpu driver. · dc5698e8
      Dave Airlie 提交于
      This patch adds a kms driver for the virtio gpu.  The xorg modesetting
      driver can handle the device just fine, the framebuffer for fbcon is
      there too.
      
      Qemu patches for the host side are under review currently.
      
      The pci version of the device comes in two variants: with and without
      vga compatibility.  The former has a extra memory bar for the vga
      framebuffer, the later is a pure virtio device.  The only concern for
      this driver is that in the virtio-vga case we have to kick out the
      firmware framebuffer.
      
      Initial revision has only 2d support, 3d (virgl) support requires
      some more work on the qemu side and will be added later.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      dc5698e8
  31. 02 4月, 2015 1 次提交
  32. 03 2月, 2015 1 次提交
    • C
      drm: Kconfig: Let all DRM_GEM_CMA_HELPER related macros depend on HAVE_DMA_ATTRS · db88c8f4
      Chen Gang S 提交于
      DRM_GEM_CMA_HELPER is depend on HAVE_DMA_ATTRS, or it will break the
      building. The related error (with allmodconfig under xtensa):
      
          CC [M]  drivers/gpu/drm/drm_gem_cma_helper.o
        drivers/gpu/drm/drm_gem_cma_helper.c: In function 'drm_gem_cma_create':
        drivers/gpu/drm/drm_gem_cma_helper.c:110:19: error: implicit declaration of function 'dma_alloc_writecombine' [-Werror=implicit-function-declaration]
          cma_obj->vaddr = dma_alloc_writecombine(drm->dev, size,
                           ^
        drivers/gpu/drm/drm_gem_cma_helper.c:110:17: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
          cma_obj->vaddr = dma_alloc_writecombine(drm->dev, size,
                         ^
        drivers/gpu/drm/drm_gem_cma_helper.c: In function 'drm_gem_cma_free_object':
        drivers/gpu/drm/drm_gem_cma_helper.c:193:3: error: implicit declaration of function 'dma_free_writecombine' [-Werror=implicit-function-declaration]
           dma_free_writecombine(gem_obj->dev->dev, cma_obj->base.size,
           ^
        drivers/gpu/drm/drm_gem_cma_helper.c: In function 'drm_gem_cma_mmap_obj':
        drivers/gpu/drm/drm_gem_cma_helper.c:330:8: error: implicit declaration of function 'dma_mmap_writecombine' [-Werror=implicit-function-declaration]
          ret = dma_mmap_writecombine(cma_obj->base.dev->dev, vma,
                ^
      Signed-off-by: NChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      db88c8f4
  33. 22 1月, 2015 1 次提交
  34. 21 1月, 2015 1 次提交
  35. 02 12月, 2014 1 次提交
  36. 26 11月, 2014 1 次提交
    • P
      drm: imx: Move imx-drm driver out of staging · 6556f7f8
      Philipp Zabel 提交于
      The imx-drm driver was put into staging mostly for the following reasons,
      all of which have been addressed or superseded:
       - convert the irq driver to use linear irq domains
       - work out the device tree bindings, this lead to the common of_graph
         bindings being used
       - factor out common helper functions, this mostly resulted in the
         component framework and drm of_graph helpers.
      
      Before adding new fixes, and certainly before adding new features,
      move it into its proper place below drivers/gpu/drm.
      Signed-off-by: NPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      6556f7f8