1. 16 8月, 2016 2 次提交
  2. 29 7月, 2016 1 次提交
    • M
      drm: add generic zpos property · 44d1240d
      Marek Szyprowski 提交于
      version 8:
      - move drm_blend.o from drm-y to drm_kms_helper-y to avoid
        EXPORT_SYMBOL(drm_atomic_helper_normalize_zpos)
      - remove dead function declarations in drm_crtc.h
      
      version 7:
      - remove useless EXPORT_SYMBOL()
      - better z-order wording in Documentation
      
      version 6:
      - add zpos in gpu documentation file
      - merge Ville patch about zpos initial value and API improvement.
        I have split Ville patch between zpos core and drivers
      
      version 5:
      - remove zpos range check and comeback to 0 to N-1
        normalization algorithm
      
      version 4:
      - make sure that normalized zpos value is stay
        in the defined property range and warn user if not
      
      This patch adds support for generic plane's zpos property property with
      well-defined semantics:
      - added zpos properties to plane and plane state structures
      - added helpers for normalizing zpos properties of given set of planes
      - well defined semantics: planes are sorted by zpos values and then plane
        id value if zpos equals
      
      Normalized zpos values are calculated automatically when generic
      muttable zpos property has been initialized. Drivers can simply use
      plane_state->normalized_zpos in their atomic_check and/or plane_update
      callbacks without any additional calls to DRM core.
      Signed-off-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      
      Compare to Marek's original patch zpos property is now specific to each
      plane and no more to the core.
      Normalize function take care of the range of per plane defined range
      before set normalized_zpos.
      Signed-off-by: NBenjamin Gaignard <benjamin.gaignard@linaro.org>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Tested-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      
      Cc: Inki Dae <inki.dae@samsung.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
      Cc: Joonyoung Shim <jy0922.shim@samsung.com>
      Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
      Cc: Andrzej Hajda <a.hajda@samsung.com>
      Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com>
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
      Cc: Gustavo Padovan <gustavo@padovan.org>
      Cc: vincent.abriou@st.com
      Cc: fabien.dessenne@st.com
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      44d1240d
  3. 10 6月, 2016 1 次提交
  4. 09 6月, 2016 1 次提交
  5. 23 5月, 2016 1 次提交
    • V
      drm: Add helper for DP++ adaptors · b3daa5ef
      Ville Syrjälä 提交于
      Add a helper which aids in the identification of DP dual mode
      (aka. DP++) adaptors. There are several types of adaptors
      specified: type 1 DVI, type 1 HDMI, type 2 DVI, type 2 HDMI
      
      Type 1 adaptors have a max TMDS clock limit of 165MHz, type 2 adaptors
      may go as high as 300MHz and they provide a register informing the
      source device what the actual limit is. Supposedly also type 1 adaptors
      may optionally implement this register. This TMDS clock limit is the
      main reason why we need to identify these adaptors.
      
      Type 1 adaptors provide access to their internal registers and the sink
      DDC bus through I2C. Type 2 adaptors provide this access both via I2C
      and I2C-over-AUX. A type 2 source device may choose to implement either
      of these methods. If a source device implements the I2C-over-AUX
      method, then the driver will obviously need specific support for such
      adaptors since the port is driven like an HDMI port, but DDC
      communication happes over the AUX channel.
      
      This helper should be enough to identify the adaptor type (some
      type 1 DVI adaptors may be a slight exception) and the maximum TMDS
      clock limit. Another feature that may be available is control over
      the TMDS output buffers on the adaptor, possibly allowing for some
      power saving when the TMDS link is down.
      
      Other user controllable features that may be available in the adaptors
      are downstream i2c bus speed control when using i2c-over-aux, and
      some control over the CEC pin. I chose not to provide any helper
      functions for those since I have no use for them in i915 at this time.
      The rest of the registers in the adaptor are mostly just information,
      eg. IEEE OUI, hardware and firmware revision, etc.
      
      v2: Pass adaptor type to helper functions to ease driver implementation
          Fix a bunch of typoes (Paulo)
          Add DRM_DP_DUAL_MODE_UNKNOWN for the case where we don't (yet) know
          the type (Paulo)
          Reject 0x00 and 0xff DP_DUAL_MODE_MAX_TMDS_CLOCK values (Paulo)
          Adjust drm_dp_dual_mode_detect() type2 vs. type1 detection to
          ease future LSPCON enabling
          Remove the unused DP_DUAL_MODE_LAST_RESERVED define
      v3: Fix kernel doc function argument descriptions (Jani)
          s/NONE/UNKNOWN/ in drm_dp_dual_mode_detect() docs
          Add kernel doc for enum drm_dp_dual_mode_type
          Actually build the docs
          Fix more typoes
      v4: Adjust code indentation of type2 adaptor detection (Shashank)
          Add debug messages for failurs cases (Shashank)
      v5: EXPORT_SYMBOL(drm_dp_dual_mode_read) (Paulo)
      
      Cc: stable@vger.kernel.org
      Cc: Tore Anderson <tore@fud.no>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Shashank Sharma <shashank.sharma@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Shashank Sharma <shashank.sharma@intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: Shashank Sharma <shashank.sharma@intel.com> (v4)
      Link: http://patchwork.freedesktop.org/patch/msgid/1462542412-25533-1-git-send-email-ville.syrjala@linux.intel.com
      (cherry picked from commit ede53344)
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      b3daa5ef
  6. 09 5月, 2016 1 次提交
    • V
      drm: Add helper for DP++ adaptors · ede53344
      Ville Syrjälä 提交于
      Add a helper which aids in the identification of DP dual mode
      (aka. DP++) adaptors. There are several types of adaptors
      specified: type 1 DVI, type 1 HDMI, type 2 DVI, type 2 HDMI
      
      Type 1 adaptors have a max TMDS clock limit of 165MHz, type 2 adaptors
      may go as high as 300MHz and they provide a register informing the
      source device what the actual limit is. Supposedly also type 1 adaptors
      may optionally implement this register. This TMDS clock limit is the
      main reason why we need to identify these adaptors.
      
      Type 1 adaptors provide access to their internal registers and the sink
      DDC bus through I2C. Type 2 adaptors provide this access both via I2C
      and I2C-over-AUX. A type 2 source device may choose to implement either
      of these methods. If a source device implements the I2C-over-AUX
      method, then the driver will obviously need specific support for such
      adaptors since the port is driven like an HDMI port, but DDC
      communication happes over the AUX channel.
      
      This helper should be enough to identify the adaptor type (some
      type 1 DVI adaptors may be a slight exception) and the maximum TMDS
      clock limit. Another feature that may be available is control over
      the TMDS output buffers on the adaptor, possibly allowing for some
      power saving when the TMDS link is down.
      
      Other user controllable features that may be available in the adaptors
      are downstream i2c bus speed control when using i2c-over-aux, and
      some control over the CEC pin. I chose not to provide any helper
      functions for those since I have no use for them in i915 at this time.
      The rest of the registers in the adaptor are mostly just information,
      eg. IEEE OUI, hardware and firmware revision, etc.
      
      v2: Pass adaptor type to helper functions to ease driver implementation
          Fix a bunch of typoes (Paulo)
          Add DRM_DP_DUAL_MODE_UNKNOWN for the case where we don't (yet) know
          the type (Paulo)
          Reject 0x00 and 0xff DP_DUAL_MODE_MAX_TMDS_CLOCK values (Paulo)
          Adjust drm_dp_dual_mode_detect() type2 vs. type1 detection to
          ease future LSPCON enabling
          Remove the unused DP_DUAL_MODE_LAST_RESERVED define
      v3: Fix kernel doc function argument descriptions (Jani)
          s/NONE/UNKNOWN/ in drm_dp_dual_mode_detect() docs
          Add kernel doc for enum drm_dp_dual_mode_type
          Actually build the docs
          Fix more typoes
      v4: Adjust code indentation of type2 adaptor detection (Shashank)
          Add debug messages for failurs cases (Shashank)
      v5: EXPORT_SYMBOL(drm_dp_dual_mode_read) (Paulo)
      
      Cc: stable@vger.kernel.org
      Cc: Tore Anderson <tore@fud.no>
      Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
      Cc: Shashank Sharma <shashank.sharma@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Shashank Sharma <shashank.sharma@intel.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: Shashank Sharma <shashank.sharma@intel.com> (v4)
      Link: http://patchwork.freedesktop.org/patch/msgid/1462542412-25533-1-git-send-email-ville.syrjala@linux.intel.com
      ede53344
  7. 06 5月, 2016 1 次提交
  8. 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
  9. 28 4月, 2016 1 次提交
  10. 26 4月, 2016 1 次提交
  11. 12 2月, 2016 2 次提交
  12. 10 2月, 2016 1 次提交
  13. 29 12月, 2015 1 次提交
  14. 15 12月, 2015 1 次提交
  15. 25 11月, 2015 1 次提交
  16. 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
  17. 01 10月, 2015 1 次提交
  18. 30 9月, 2015 1 次提交
  19. 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
  20. 06 8月, 2015 1 次提交
    • 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
  21. 04 6月, 2015 1 次提交
  22. 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
  23. 27 5月, 2015 1 次提交
  24. 13 5月, 2015 1 次提交
  25. 02 4月, 2015 1 次提交
  26. 28 1月, 2015 1 次提交
    • A
      drm/bridge: make bridge registration independent of drm flow · 3d3f8b1f
      Ajay Kumar 提交于
      Currently, third party bridge drivers(ptn3460) are dependent
      on the corresponding encoder driver init, since bridge driver
      needs a drm_device pointer to finish drm initializations.
      The encoder driver passes the drm_device pointer to the
      bridge driver. Because of this dependency, third party drivers
      like ptn3460 doesn't adhere to the driver model.
      
      In this patch, we reframe the bridge registration framework
      so that bridge initialization is split into 2 steps, and
      bridge registration happens independent of drm flow:
      --Step 1: gather all the bridge settings independent of drm and
      	  add the bridge onto a global list of bridges.
      --Step 2: when the encoder driver is probed, call drm_bridge_attach
      	  for the corresponding bridge so that the bridge receives
      	  drm_device pointer and continues with connector and other
      	  drm initializations.
      
      The old set of bridge helpers are removed, and a set of new helpers
      are added to accomplish the 2 step initialization.
      
      The bridge devices register themselves onto global list of bridges
      when they get probed by calling "drm_bridge_add".
      
      The parent encoder driver waits till the bridge is available
      in the lookup table(by calling "of_drm_find_bridge") and then
      continues with its initialization.
      
      The encoder driver should also call "drm_bridge_attach" to pass
      on the drm_device to the bridge object.
      
      drm_bridge_attach inturn calls "bridge->funcs->attach" so that
      bridge can continue with drm related initializations.
      Signed-off-by: NAjay Kumar <ajaykumar.rs@samsung.com>
      Acked-by: NInki Dae <inki.dae@samsung.com>
      Tested-by: NRahul Sharma <rahul.sharma@samsung.com>
      Tested-by: NJavier Martinez Canillas <javier.martinez@collabora.co.uk>
      Tested-by: NGustavo Padovan <gustavo.padovan@collabora.co.uk>
      Tested-by: NSjoerd Simons <sjoerd.simons@collabora.co.uk>
      Signed-off-by: NThierry Reding <treding@nvidia.com>
      3d3f8b1f
  27. 21 1月, 2015 1 次提交
  28. 21 12月, 2014 1 次提交
    • O
      drm: Put amdkfd before radeon in drm Makefile · 611a03d7
      Oded Gabbay 提交于
      When amdkfd and radeon are compiled inside the kernel image (not as modules),
      radeon will load before amdkfd, which will cause a bug when radeon will probe
      the GPUs.
      
      When the two drivers are compiled as modules, amdkfd is loaded after radeon is
      loaded but before radeon starts probing the GPUs. This is done because radeon
      loads the amdkfd module through symbol_request function.
      
      This patch makes amdkfd load before radeon when they are both compiled inside
      the kernel image, which makes the behavior similar to the case when they are
      modules, and prevents the kernel bug.
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      611a03d7
  29. 02 12月, 2014 1 次提交
  30. 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
  31. 06 11月, 2014 2 次提交
    • D
      drm: Add atomic/plane helpers · c2fcd274
      Daniel Vetter 提交于
      This is the first cut of atomic helper code. As-is it's only useful to
      implement a pure atomic interface for plane updates.
      
      Later patches will integrate this with the crtc helpers so that full
      atomic updates are possible. We also need a pile of helpers to aid
      drivers in transitioning from the legacy world to the shiny new atomic
      age. Finally we need helpers to implement legacy ioctls on top of the
      atomic interface.
      
      The design of the overall helpers<->driver interaction is fairly
      simple, but has an unfortunate large interface:
      
      - We have ->atomic_check callbacks for crtcs and planes. The idea is
        that connectors don't need any checking, and if they do they can
        adjust the relevant crtc driver-private state. So no connector hooks
        should be needed. Also the crtc helpers integration will do the
        ->best_encoder checks, so no need for that.
      
      - Framebuffer pinning needs to be done before we can commit to the hw
        state. This is especially important for async updates where we must
        pin all buffers before returning to userspace, so that really only
        hw failures can happen in the asynchronous worker.
      
        Hence we add ->prepare_fb and ->cleanup_fb hooks for this resources
        management.
      
      - The actual atomic plane commit can't fail (except hw woes), so has
        void return type. It has three stages:
        1. Prepare all affected crtcs with crtc->atomic_begin. Drivers can
           use this to unset the GO bit or similar latches to prevent plane
           updates.
        2. Update plane state by looping over all changed planes and calling
           plane->atomic_update. Presuming the hardware is sane and has GO
           bits drivers can simply bash the state into the hardware in this
           function. Other drivers might use this to precompute hw state for
           the final step.
        3. Finally latch the update for the next vblank with
           crtc->atomic_flush. Note that this function doesn't need to wait
           for the vblank to happen even for the synchronous case.
      
      v2: Clear drm_<obj>_state->state to NULL when swapping in state.
      
      v3: Add TODO that we don't short-circuit plane updates for now. Likely
      no one will care.
      
      v4: Squash in a bit of polish that somehow landed in the wrong (later)
      patche.
      
      v5: Integrate atomic functions into the drm docbook and fixup the
      kerneldoc.
      
      v6: Fixup fixup patch squashing fumble.
      
      v7: Don't touch the legacy plane state plane->fb and plane->crtc. This
      is only used by the legacy ioctl code in the drm core, and that code
      already takes care of updating the pointers in all relevant cases.
      This is in stark contrast to connector->encoder->crtc links on the
      modeset side, which we still need to set since the core doesn't touch
      them.
      
      Also some more kerneldoc polish.
      
      v8: Drop outdated comment.
      
      v9: Handle the state->state pointer correctly: Only clearing the
      ->state pointer when assigning the state to the kms object isn't good
      enough. We also need to re-link the swapped out state into the
      drm_atomic_state structure.
      
      v10: Shuffle the misplaced docbook template hunk around that Sean spotted.
      
      Cc: Sean Paul <seanpaul@chromium.org>
      Reviewed-by: NSean Paul <seanpaul@chromium.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c2fcd274
    • D
      drm: Global atomic state handling · cc4ceb48
      Daniel Vetter 提交于
      Some differences compared to Rob's patches again:
      - Dropped the committed and checked booleans. Checking will be
        internally enforced by always calling ->atomic_check before
        ->atomic_commit. And async handling needs to be solved differently
        because the current scheme completely side-steps ww mutex deadlock
        avoidance (and so either reinvents a new deadlock avoidance wheel or
        like the current code just deadlocks).
      
      - State for connectors needed to be added, since now they have a
        full-blown drm_connector_state (so that drivers have something to
        attach their own stuff to).
      
      - Refcounting is gone. I plane to solve async updates differently,
        since the lock-passing scheme doesn't cut it (since it abuses ww
        mutexes). Essentially what we need for async is a simple ownership
        transfer from the caller to the driver. That doesn't need full-blown
        refcounting.
      
      - The acquire ctx is a pointer. Real atomic callers should have that
        on their stack, legacy entry points need to put the right one
        (obtained by drm_modeset_legacy_acuire_ctx) in there.
      
      - I've dropped all hooks except check/commit. All the begin/end
        handling is done by core functions and is the same.
      
      - commit/check are just thin wrappers that ensure that ->check is
        always called.
      
      - To help out with locking in the legacy implementations I've added a
        helper to just grab all locks in the backoff case.
      
      v2: Add notices that check/commit can fail with EDEADLK.
      
      v3:
      - More consistent naming for state_alloc.
      - Add state_clear which is needed for backoff and retry.
      
      v4: Planes/connectors can switch between crtcs, and we need to be
      careful that we grab the state (and locks) for both the old and new
      crtc. Improve the interface functions to ensure this.
      
      v5: Add functions to grab affected connectors for a crtc and to recompute
      the crtc->enable state. This is useful for both helper and atomic ioctl
      code when e.g. removing a connector.
      
      v6: Squash in fixup from Fengguang to use ERR_CAST.
      
      v7: Add debug output.
      
      v8: Make checkpatch happy about kcalloc argument ordering.
      
      v9: Improve kerneldoc in drm_crtc.h
      
      v10:
      - Fix another kcalloc argument misorder I've missed.
      - More polish for kerneldoc.
      
      v11: Clarify the ownership rules for the state object. The new rule is
      that a successful drm_atomic_commit (whether synchronous or asnyc)
      always inherits the state and is responsible for the clean-up. That
      way async and sync ->commit functions are more similar.
      
      v12: A few bugfixes:
      - Assign state->state pointers correctly when grabbing state objects -
        we need to link them up with the global state.
      - Handle a NULL crtc in set_crtc_for_plane to simplify code flow a bit
        for the callers of this function.
      
      v13: Review from Sean:
      - kerneldoc spelling fixes
      - Don't overallocate states->planes.
      - Handle NULL crtc in set_crtc_for_connector.
      
      v14: Sprinkle __must_check over all functions which do wait/wound
      locking to make sure callers don't forget this. Since I have ;-)
      
      v15: Be more explicit in the kerneldoc when functions can return
      -EDEADLK what to do. And that every other -errno is fatal.
      
      v16: Indent with tabs instead of space, spotted by Ander.
      
      v17: Review from Thierry, small kerneldoc and other naming polish.
      
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Ander Conselvan de Oliveira <conselvan2@gmail.com>
      Cc: Daniel Thompson <daniel.thompson@linaro.org>
      Cc: Fengguang Wu <fengguang.wu@intel.com>
      Cc: Sean Paul <seanpaul@chromium.org>
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Reviewed-by: NSean Paul <seanpaul@chromium.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      cc4ceb48
  32. 10 9月, 2014 2 次提交
  33. 06 8月, 2014 1 次提交
  34. 05 8月, 2014 1 次提交
  35. 31 7月, 2014 1 次提交
  36. 17 7月, 2014 1 次提交
    • O
      amdkfd: Add amdkfd skeleton driver · 4a488a7a
      Oded Gabbay 提交于
      This patch adds the amdkfd skeleton driver. The driver does nothing except
      define a /dev/kfd device.
      
      It returns -ENODEV on all amdkfd IOCTLs.
      
      v3: Move bool field to the end of structure, removed the pmc ioctls and added
      a meaningful error message for ioctl error.
      
      v5:
      
      Create a new folder drm/amd and move amdkfd from drm/radeon/ to drm/amd/
      Remove scheduler_class from kfd_priv.h as it was never used
      Add skeleton implementation of the Get Version IOCTL
      
      v6:
      Update module version to the correct number and remove the "default m" from the
      Kconfig file
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      4a488a7a