1. 15 Jan, 2015 2 commits
  2. 13 Jan, 2015 1 commit
    • Ben Goz's avatar
      drm/amdkfd: Fix for-loop when allocating HQD (non-HWS) · f0ec5b99
      Ben Goz authored
      This patch fixes a minor bug in allocate_hqd(), where the loop run from the
      next-to-allocate pipe until the number of pipes.
      
      This is wrong because we need to consider the possibility where
      next-to-allocate pipe is not 0, and thus, the for-loop only checks part of the
      pipes and doesn't wrap-around, as it supposed to do.
      
      Therefore, we add another counting variable to make sure we go over all the
      pipes, regardless of where we start to look at the first iteration of the loop.
      
      This bug only affected non-HWS mode. In HWS mode, the CP fw is responsible for
      allocating the HQD.
      Signed-off-by: default avatarBen Goz <ben.goz@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      f0ec5b99
  3. 02 Dec, 2014 1 commit
    • Ben Goz's avatar
      drm/amdkfd: Add initial VI support for KQ · 6898f0a5
      Ben Goz authored
      This patch starts to add support for the VI APU in the KQ (kernel queue)
      module.
      
      Because most (more than 90%) of the KQ code is shared among AMD's APUs, we
      chose a design that performs most/all the code in the shared KQ file
      (kfd_kernel_queue.c). If there is H/W specific code to be executed,
      than it is written in an asic-specific extension function for that H/W.
      
      That asic-specific extension function is called from the shared function at the
      appropriate time. This requires that for every asic-specific extension function
      that is implemented in a specific ASIC, there will be an equivalent
      implementation in ALL ASICs, even if those implementations are just stubs.
      
      That way we achieve:
      
      - Maintainability: by having one copy of most of the code, we only need to
        fix bugs at one locations
      
      - Readability: very clear what is the shared code and what is done per ASIC
      
      - Extensibility: very easy to add new H/W specific files/functions
      Signed-off-by: default avatarBen Goz <ben.goz@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      6898f0a5
  4. 12 Jan, 2015 4 commits
    • Oded Gabbay's avatar
      drm/amdkfd: Encapsulate KQ functions in ops structure · 443fbd5f
      Oded Gabbay authored
      This patch does some re-org on the kernel_queue structure. It takes out
      all the function pointers from the structure and puts them in a new structure,
      called kernel_queue_ops. Then, it puts an instance of that structure
      inside kernel_queue.
      
      This re-org is done to prepare the KQ module to support more than one AMD APU
      (Kaveri).
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      443fbd5f
    • Ben Goz's avatar
      drm/amdkfd: Add initial VI support for DQM · a22fc854
      Ben Goz authored
      This patch starts to add support for the VI APU in the DQM module.
      
      Because most (more than 90%) of the DQM code is shared among AMD's APUs, we
      chose a design that performs most/all the code in the shared DQM file
      (kfd_device_queue_manager.c). If there is H/W specific code to be executed,
      than it is written in an asic-specific extension function for that H/W.
      
      That asic-specific extension function is called from the shared function at the
      appropriate time. This requires that for every asic-specific extension function
      that is implemented in a specific ASIC, there will be an equivalent
      implementation in ALL ASICs, even if those implementations are just stubs.
      
      That way we achieve:
      
      - Maintainability: by having one copy of most of the code, we only need to
        fix bugs at one locations
      
      - Readability: very clear what is the shared code and what is done per ASIC
      
      - Extensibility: very easy to add new H/W specific files/functions
      Signed-off-by: default avatarBen Goz <ben.goz@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      a22fc854
    • Oded Gabbay's avatar
      drm/amdkfd: Encapsulate DQM functions in ops structure · 45c9a5e4
      Oded Gabbay authored
      This patch does some re-org on the device_queue_manager structure. It takes out
      all the function pointers from the structure and puts them in a new structure,
      called device_queue_manager_ops. Then, it puts an instance of that structure
      inside device_queue_manager.
      
      This re-org is done to prepare the DQM module to support more than one AMD APU
      (Kaveri).
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      45c9a5e4
    • Oded Gabbay's avatar
      drm/amdkfd: Don't BUG on freeing GART sub-allocation · 9216ed29
      Oded Gabbay authored
      Instead of creating a BUG if trying to free a NULL GART sub-allocation object,
      just return 0 (success).
      
      This is done to mirror behavior of kfree.
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      9216ed29
  5. 18 Aug, 2014 1 commit
  6. 05 Jan, 2015 1 commit
  7. 04 Jan, 2015 1 commit
    • Ben Goz's avatar
      drm/amdkfd: Change MQD manager to be H/W specific · 4b8f589b
      Ben Goz authored
      The MQDs for CI and VI are different. Therefore, the MQD manager module need to
      be H/W specific.
      
      This patch splits the current MQD manager into three files:
      
      - kfd_mqd_manager.c, which contains common functions and initializes the
        specific mqd manager module according to the H/W
      
      - kfd_mqd_manager_cik.c, which contains Kaveri specific functions. This is
        basically the old kfd_mqd_manager.c
      
      - kfd_mqd_manager_vi.c, which will contain VI specific functions. Currently it
        is not implemented except for returning NULL on initialization.
      Signed-off-by: default avatarBen Goz <ben.goz@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      4b8f589b
  8. 01 Jan, 2015 1 commit
    • Ben Goz's avatar
      drm/amdkfd: Add asic property to kfd_device_info · 0da7558c
      Ben Goz authored
      This patch adds a new property to kfd_device_info structure. That structure
      holds information that is H/W specific.
      
      The new property is called asic_family and its purpose is to distinguish
      between different asic families in amdkfd operations, mainly in QCM (queue
      control & management)
      
      This patch also adds a new enum, to select different ASICs. We set the current
      kfd_device_info instance as Kaveri and create a new instance which describes
      the new AMD APU, codenamed 'Carrizo'.
      Signed-off-by: default avatarBen Goz <ben.goz@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      0da7558c
  9. 04 Jan, 2015 2 commits
  10. 02 Jan, 2015 4 commits
  11. 26 Oct, 2014 1 commit
  12. 02 Jan, 2015 1 commit
    • Ben Goz's avatar
      drm/radeon: Initialize compute vmid · 08dcc57f
      Ben Goz authored
      This patch moves to radeon the initialization of compute vmid.
      
      That initializations was done in kfd-->kgd interface, but doing it in radeon
      as part of radeon's H/W initialization routines is more appropriate.
      
      In addition, this simplifies the kfd-->kgd interface.
      
      The patch removes the function from the interface file and from the interface
      declaration file.
      
      The function initializes memory apertures to fixed base/limit address and non
      cached memory types.
      Signed-off-by: default avatarBen Goz <ben.goz@amd.com>
      Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      08dcc57f
  13. 21 Jan, 2015 3 commits
    • Dave Airlie's avatar
      Merge tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux into drm-next · fc839753
      Dave Airlie authored
      imx-drm mode fixup support, imx-hdmi bridge conversion and imx-drm cleanup
      
      - Implement mode_fixup for a DI vertical timing limitation
      - Use generic DRM OF helpers in DRM core
      - Convert imx-hdmi to dw_hdmi drm_bridge and add rockchip
        driver
      - Add DC use counter to fix multi-display support
      - Simplify handling of DI clock flags
      - A few small fixes and cleanup
      
      * tag 'imx-drm-next-2015-01-09' of git://git.pengutronix.de/git/pza/linux: (26 commits)
        imx-drm: core: handling of DI clock flags to ipu_crtc_mode_set()
        gpu: ipu-di: Switch to DIV_ROUND_CLOSEST for DI clock divider calc
        gpu: ipu-v3: Use videomode in struct ipu_di_signal_cfg
        imx-drm: encoder prepare/mode_set must use adjusted mode
        imx-drm: ipuv3-crtc: Implement mode_fixup
        drm_modes: add drm_display_mode_to_videomode
        gpu: ipu-di: remove some non-functional code
        gpu: ipu-di: Add ipu_di_adjust_videomode()
        drm: rockchip: export functions needed by rockchip dw_hdmi bridge driver
        drm: bridge/dw_hdmi: request interrupt only after initializing the mutes
        drm: bridge/dw_hdmi: add rockchip rk3288 support
        dt-bindings: Add documentation for rockchip dw hdmi
        drm: bridge/dw_hdmi: add function dw_hdmi_phy_enable_spare
        drm: bridge/dw_hdmi: clear i2cmphy_stat0 reg in hdmi_phy_wait_i2c_done
        drm: bridge/dw_hdmi: add mode_valid support
        drm: bridge/dw_hdmi: add support for multi-byte register width access
        dt-bindings: add document for dw_hdmi
        drm: imx: imx-hdmi: move imx-hdmi to bridge/dw_hdmi
        drm: imx: imx-hdmi: split phy configuration to platform driver
        drm: imx: imx-hdmi: convert imx-hdmi to drm_bridge mode
        ...
      fc839753
    • Dave Airlie's avatar
      Merge branch 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev into drm-next · b2eb0489
      Dave Airlie authored
      * 'drm/next/du' of git://linuxtv.org/pinchartl/fbdev:
        drm: rcar-du: Implement support for interlaced modes
        drm: rcar-du: Clamp DPMS states to on and off
        drm: rcar-du: Enable hotplug detection on HDMI connector
        drm: rcar-du: Output HSYNC instead of CSYNC
        drm: rcar-du: Add support for external pixel clock
        drm: rcar-du: Refactor DEFR8 feature
        drm: rcar-du: Remove LVDS and HDMI encoders chaining restriction
        drm: rcar-du: Configure pitch for chroma plane of multiplanar formats
        drm: rcar-du: Don't fail probe in case of partial encoder init error
        drm: adv7511: Remove interlaced mode check
      b2eb0489
    • Dave Airlie's avatar
      Merge tag 'drm-amdkfd-next-2015-01-09' of git://people.freedesktop.org/~gabbayo/linux into drm-next · 4f4d89af
      Dave Airlie authored
      - Add support for SDMA usermode queues
      - Replace logic of sub-allocating from GART buffer in amdkfd. Instead
        of using radeon_sa module, use a new module that is more suited for
        this purpose
      - Add the number of watch points to amdkfd topology
      - Split a function that did two things into two seperate functions.
      
      * tag 'drm-amdkfd-next-2015-01-09' of git://people.freedesktop.org/~gabbayo/linux:
        drm/amd: Remove old radeon_sa funcs from kfd-->kgd interface
        drm/radeon: Remove old radeon_sa usage from kfd-->kgd interface
        drm/amdkfd: Using new gtt sa in amdkfd
        drm/amdkfd: Allocate gart memory using new interface
        drm/amdkfd: Fixed calculation of gart buffer size
        drm/amdkfd: Add kfd gtt sub-allocator functions
        drm/amdkfd: Add gtt sa related data to kfd_dev struct
        drm/radeon: Impl. new gtt allocate/free functions
        drm/amd: Add new kfd-->kgd interface for gart usage
        drm/radeon: Enable sdma preemption
        drm/amdkfd: Pass queue type to pqm_create_queue()
        drm/amdkfd: Identify SDMA queue in create queue ioctl
        drm/amdkfd: Add SDMA user-mode queues support to QCM
        drm/amdkfd: Add SDMA mqd support
        drm/radeon: Implement SDMA interface functions
        drm/amd: Add SDMA functions to kfd-->kgd interface
        drm/amdkfd: Process-device data creation and lookup split
        drm/amdkfd: Add number of watch points to topology
      4f4d89af
  14. 12 Jan, 2015 1 commit
  15. 09 Jan, 2015 16 commits