1. 05 8月, 2014 23 次提交
    • A
      drm/radeon: restructure edid fetching · 72a5c970
      Alex Deucher 提交于
      Split radeon_ddc_get_modes() and move it into
      radeon_connectors.c since that is the only place
      that uses it.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      72a5c970
    • S
      drm/radeon/audio: break out of loops once we match connector · 88fd4789
      Stefan Brüns 提交于
      No need to continue with the loops once we've matched
      the appropriate connector.
      See commit 8a992ee1Signed-off-by: NStefan Brüns <stefan.bruens@rwth-aachen.de>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      88fd4789
    • S
      drm/radeon: Use correct value for unknown audio/video latency · c748990b
      Stefan Brüns 提交于
      Valid values are 1 to 251 for 0 to 500 ms latency, 0 for unknown
      and 255 for audio/video unsupported by sink, according to HDMI 1.3 spec.
      Also matches Radeon HDA verb 0xf7b documentation.
      Signed-off-by: NStefan Brüns <stefan.bruens@rwth-aachen.de>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      c748990b
    • L
      drm/radeon: Inline r100_mm_rreg, -wreg, v3 · 59bc1d89
      Lauri Kasanen 提交于
      This was originally un-inlined by Andi Kleen in 2011 citing size concerns.
      Indeed, a first attempt at inlining it grew radeon.ko by 7%.
      
      However, 2% of cpu is spent in this function. Simply inlining it gave 1% more fps
      in Urban Terror.
      
      v2: We know the minimum MMIO size. Adding it to the if allows the compiler to
      optimize the branch out, improving both performance and size.
      
      The v2 patch decreases radeon.ko size by 2%. I didn't re-benchmark, but common sense
      says perf is now more than 1% better.
      
      v3: Also change _wreg, make the threshold a define.
      
      Inlining _wreg increased the size a bit compared to v2, so now radeon.ko
      is only 1% smaller.
      Signed-off-by: NLauri Kasanen <cand@gmx.com>
      Reviewed-by: NChristian König <christian.koenig@amd.com>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      59bc1d89
    • A
      drm/radeon: consolidate vga and dvi get_modes functions (v2) · 3e22920f
      Alex Deucher 提交于
      They are identical.
      
      v2: rebase
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      3e22920f
    • A
      drm/radeon: enable display scaling on all connectors (v2) · da997620
      Alex Deucher 提交于
      This enables the display scaler on all connectors for r5xx
      and newer asics.  Previously we only enabled the scaler for
      fixed mode displays (eDP or LVDS) since they have to use the
      scaler to support non-native modes.  Most other displays
      are multi-sync or have a built in scaler to support non-native
      modes.  The default scaling mode for non-fixed displays is
      none which will use the scaler in the monitor.  Note that
      we do not populate any fake modes like we do for fixed
      displays so it will only use the modes in the edid.  For
      other modes, you'll need to populate them manually.
      
      bug:
      https://bugs.freedesktop.org/show_bug.cgi?id=80868
      
      v2: properly handle scaling with no modes defined
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      da997620
    • F
      drm/radeon: remove null test before kfree · 9c244878
      Fabian Frederick 提交于
      Fix checkpatch warning:
      WARNING: kfree(NULL) is safe this check is probably not required
      
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: NFabian Frederick <fabf@skynet.be>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      9c244878
    • A
      drm/radeon/cik: Add support for new ucode format (v5) · f2c6b0f4
      Alex Deucher 提交于
      This adds CIK support for the new ucode format.
      
      v2: add size validation, integrate debug info
      v3: add support for MEC2 on KV
      v4: fix typos
      v4: update to latest format
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      f2c6b0f4
    • A
      drm/radeon/si: Add support for new ucode format (v3) · 629bd33c
      Alex Deucher 提交于
      This adds SI support for the new ucode format.
      
      v2: add size validation, integrate debug info
      v3: update to latest version
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      629bd33c
    • A
      drm/radeon: add new firmware header definitions (v3) · de515822
      Alex Deucher 提交于
      These are needed to properly handle more frequently
      updated firmware.
      
      v2: add new firmware helper functions as well.
      v3: update to latest format
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      de515822
    • A
      drm/radeon: disable gfx cgcg on cik · 6960948d
      Alex Deucher 提交于
      This needs some tweaking to be stable with newer
      ucode versions.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      6960948d
    • A
      drm/radeon/dpm: add support for SVI2 voltage for SI · 636e2582
      Alex Deucher 提交于
      Some newer boards use SVI2 for voltage control rather
      than GPIO.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      636e2582
    • T
      drm/ttm: Pass GFP flags in order to avoid deadlock. · a91576d7
      Tetsuo Handa 提交于
      Commit 7dc19d5a "drivers: convert shrinkers to new count/scan API" added
      deadlock warnings that ttm_page_pool_free() and ttm_dma_page_pool_free()
      are currently doing GFP_KERNEL allocation.
      
      But these functions did not get updated to receive gfp_t argument.
      This patch explicitly passes sc->gfp_mask or GFP_KERNEL to these functions,
      and removes the deadlock warning.
      Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: stable <stable@kernel.org> [2.6.35+]
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      a91576d7
    • T
      drm/ttm: Fix possible stack overflow by recursive shrinker calls. · 71336e01
      Tetsuo Handa 提交于
      While ttm_dma_pool_shrink_scan() tries to take mutex before doing GFP_KERNEL
      allocation, ttm_pool_shrink_scan() does not do it. This can result in stack
      overflow if kmalloc() in ttm_page_pool_free() triggered recursion due to
      memory pressure.
      
        shrink_slab()
        => ttm_pool_shrink_scan()
           => ttm_page_pool_free()
              => kmalloc(GFP_KERNEL)
                 => shrink_slab()
                    => ttm_pool_shrink_scan()
                       => ttm_page_pool_free()
                          => kmalloc(GFP_KERNEL)
      
      Change ttm_pool_shrink_scan() to do like ttm_dma_pool_shrink_scan() does.
      Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: stable <stable@kernel.org> [2.6.35+]
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      71336e01
    • T
      drm/ttm: Use mutex_trylock() to avoid deadlock inside shrinker functions. · 22e71691
      Tetsuo Handa 提交于
      I can observe that RHEL7 environment stalls with 100% CPU usage when a
      certain type of memory pressure is given. While the shrinker functions
      are called by shrink_slab() before the OOM killer is triggered, the stall
      lasts for many minutes.
      
      One of reasons of this stall is that
      ttm_dma_pool_shrink_count()/ttm_dma_pool_shrink_scan() are called and
      are blocked at mutex_lock(&_manager->lock). GFP_KERNEL allocation with
      _manager->lock held causes someone (including kswapd) to deadlock when
      these functions are called due to memory pressure. This patch changes
      "mutex_lock();" to "if (!mutex_trylock()) return ...;" in order to
      avoid deadlock.
      Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: stable <stable@kernel.org> [3.3+]
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      22e71691
    • T
      drm/ttm: Choose a pool to shrink correctly in ttm_dma_pool_shrink_scan(). · 46c2df68
      Tetsuo Handa 提交于
      We can use "unsigned int" instead of "atomic_t" by updating start_pool
      variable under _manager->lock. This patch will make it possible to avoid
      skipping when choosing a pool to shrink in round-robin style, after next
      patch changes mutex_lock(_manager->lock) to !mutex_trylock(_manager->lork).
      Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: stable <stable@kernel.org> [3.3+]
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      46c2df68
    • T
      drm/ttm: Fix possible division by 0 in ttm_dma_pool_shrink_scan(). · 11e504cc
      Tetsuo Handa 提交于
      list_empty(&_manager->pools) being false before taking _manager->lock
      does not guarantee that _manager->npools != 0 after taking _manager->lock
      because _manager->npools is updated under _manager->lock.
      Signed-off-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: stable <stable@kernel.org> [3.3+]
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      11e504cc
    • D
      drm/tda998x: update for new drm connector APIs. · 74cd62ea
      Dave Airlie 提交于
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      74cd62ea
    • D
      drm/sti: fix warning in build. · 8bb652eb
      Dave Airlie 提交于
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      8bb652eb
    • D
      Merge branch 'drm_kms_for_next-v8' of... · 96b1b971
      Dave Airlie 提交于
      Merge branch 'drm_kms_for_next-v8' of git://git.linaro.org/people/benjamin.gaignard/kernel into drm-next
      
      This series of patches add the support of DRM/KMS drivers for STMicroelectronics
      chipsets stih416 and stih407.
      
      Hardware is split in two main blocks: Compositor and TVout. Each of them
      includes specific hardware IPs and the display timing are controlled by a specific
      Video Timing Generator hardware IP (VTG).
      
      Compositor is made of the follow hardware IPs:
       - GDP (Generic Display Pipeline) which is an entry point for graphic (RGB)
         buffers
       - VDP (Video Diplay Pipeline) which is an entry point for video (YUV) buffers
       - HQVDP (High Quality Video Display Processor) that supports scaling,
         deinterlacing and some miscellaneous image quality improvements.
         It fetches the Video decoded buffers from memory, processes them and pushes
         them to the Compositor through a HW dedicated bus.
       - Mixer is responsible of mixing all the entries depending of their
         respective z-order and layout
      
      TVout is divided in 3 parts:
       - HDMI to generate HDMI signals, depending of chipset version HDMI phy can
         change.
       - HDA to generate signals for HD analog TV
       - VIP to control/switch data path coming from Compositor
      
      On stih416 compositor and Tvout are on different dies so a Video Trafic Advance
      inter-die Communication mechanism (VTAC) is needed.
      
      +---------------------------------------------+   +----------------------------------------+
      | +-------------------------------+   +----+  |   |  +----+   +--------------------------+ |
      | |                               |   |    |  |   |  |    |   |  +---------+     +----+  | |
      | | +----+              +------+  |   |    |  |   |  |    |   |  | VIP     |---->|HDMI|  | |
      | | |GPD +------------->|      |  |   |    |  |   |  |    |   |  |         |     +----+  | |
      | | +----+              |Mixer |--|-->|    |  |   |  |    |---|->| switcher|             | |
      | |                     |      |  |   |    |  |   |  |    |   |  |         |     +----+  | |
      | |                     |      |  |   |    |  |   |  |    |   |  |         |---->|HDA |  | |
      | |                     +------+  |   |VTAC|========>|VTAC|   |  +---------+     +----+  | |
      | |                               |   |    |  |   |  |    |   |                          | |
      | |         Compositor            |   |    |  |   |  |    |   |           TVout          | |
      | +-------------------------------+   |    |  |   |  |    |   +--------------------------+ |
      |                      ^              |    |  |   |  |    |             ^                  |
      |                      |              |    |  |   |  |    |             |                  |
      |               +--------------+      |    |  |   |  |    |      +-------------+           |
      |               | VTG (master) |----->|    |  |   |  |    |----->| VTG (slave) |           |
      |               +--------------+      +----+  |   |  +----+      +-------------+           |
      |Digital die                                  |   |                              Analog Die|
      +---------------------------------------------+   +----------------------------------------+
      
      On stih407 Compositor and Tvout are on the same die
      
      +-----------------------------------------------------------------+
      | +-------------------------------+  +--------------------------+ |
      | |                               |  |  +---------+     +----+  | |
      | | +----+              +------+  |  |  | VIP     |---->|HDMI|  | |
      | | |GPD +------------->|      |  |  |  |         |     +----+  | |
      | | +----+              |Mixer |--|--|->| switcher|             | |
      | | +----+   +-----+    |      |  |  |  |         |     +----+  | |
      | | |VDP +-->+HQVDP+--->|      |  |  |  |         |---->|HDA |  | |
      | | +----+   +-----+    +------+  |  |  +---------+     +----+  | |
      | |                               |  |                          | |
      | |         Compositor            |  |           TVout          | |
      | +-------------------------------+  +--------------------------+ |
      |                              ^        ^                         |
      |                              |        |                         |
      |                           +--------------+                      |
      |                           |     VTG      |                      |
      |                           +--------------+                      |
      |Digital die                                                      |
      +-----------------------------------------------------------------+
      
      In addition of the drivers for the IPs listed before a thin I2C driver (hdmiddc) is used
      by HDMI driver to retrieve EDID for monitor.
      
      To unify interfaces of GDP and VDP we create a "layer" interface called by
      compositor to control both GPD and VDP.
      
      Hardware have memory contraints (alignment, contiguous) so we use CMA drm helpers functions
      to allocate frame buffer.
      
      File naming convention is:
       - sti_* for IPs drivers
       - sti_drm_* for drm functions implementation.
      
      * 'drm_kms_for_next-v8' of git://git.linaro.org/people/benjamin.gaignard/kernel:
        drm: sti: Add DRM driver itself
        drm: sti: add Compositor
        drm: sti: add Mixer
        drm: sti: add VID layer
        drm: sti: add GDP layer
        drm: sti: add TVOut driver
        drm: sti: add HDA driver
        drm: sti: add HDMI driver
        drm: sti: add VTAC drivers
        drm: sti: add VTG driver
        drm: sti: add bindings for DRM driver
      96b1b971
    • D
      Merge branch 'tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox into drm-next · 920f9464
      Dave Airlie 提交于
      This builds upon the previous set of fixes which were pulled on 6th July.
      Included in this set are:
      - an update from Jean-Francois to add the missing reg documentation entry
        to the device tree documentation.
      - conversion of the tda998x driver to the component helpers.
      
      * 'tda998x-devel' of git://ftp.arm.linux.org.uk/~rmk/linux-cubox:
        drm/i2c: tda998x: add component support
        drm/i2c: tda998x: allow re-use of tda998x support code
        drm/i2c: tda998x: fix lack of required reg in DT documentation
      
      Conflicts:
      	drivers/gpu/drm/i2c/tda998x_drv.c
      920f9464
    • D
      Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next · eceb55a0
      Dave Airlie 提交于
      This time around we have a mix of new hw enablement (mdp5 v1.3 /
      apq8084), plus devicetree and various upstream changes (mostly
      adapting to CCF vs downstream clk driver differences) for mdp4 /
      apq8064.  With these drm/msm patches plus a few other small patchsets
      (from linaro qcom integration branch.. mostly stuff queued up for
      3.17) we have the inforce ifc6410 board working, with gpu.  Much nicer
      to work with than ancient vendor android branch :-)
      
      * 'msm-next' of git://people.freedesktop.org/~robclark/linux:
        drm/msm/hdmi: fix HDMI_MUX_EN gpio request typo
        drm/msm/hdmi: enable lpm-mux if it is present
        drm/msm/mdp5: add support for MDP5 v1.3
        drm/msm: fix potential deadlock in gpu init
        drm/msm: use upstream iommu
        drm/msm: no mmu is only error if not using vram carveout
        drm/msm: fix BUG_ON() in error cleanup path
        drm/msm/mdp4: add mdp axi clk
        drm/msm: hdmi phy 8960 phy pll
        drm/msm: update generated headers
        drm/msm: DT support for 8960/8064 (v3)
        drm/msm: Implement msm drm fb_mmap callback function
        drm/msm: activate iommu support
        drm/msm: fix double struct_mutex acquire
      eceb55a0
    • D
      Merge tag 'v3.16' into drm-next · 5d42f82a
      Dave Airlie 提交于
      Linux 3.16
      
      backmerge requested by i915, nouveau and radeon authors
      
      Conflicts:
      	drivers/gpu/drm/i915/i915_gem_render_state.c
      	drivers/gpu/drm/i915/intel_drv.h
      5d42f82a
  2. 04 8月, 2014 17 次提交