1. 13 3月, 2009 4 次提交
    • D
      drm: radeon: Use surface for PCI GART table. · 6abf6bb0
      David Miller 提交于
      This allocates a physical surface for the PCI GART table, this way no
      matter what other surface configurations exist the GART table will
      always be seen by the hardware properly.
      
      We encode the file pointer of the virtual surface allocate using a
      special cookie value, called PCIGART_FILE_PRIV.  On the last close, we
      release that surface.
      
      Just to be doubly safe, we run the pcigart table setup with the main
      surface control register clear.
      
      Based upon ideas from David Airlie and Ben Benjamin Herrenschmidt.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      6abf6bb0
    • D
      drm: radeon: Fix calculation of RB_RPTR_ADDR in non-AGP case. · e8a89437
      David Miller 提交于
      The address needs to be a GART relative address, rather than a PCI
      DMA address.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      e8a89437
    • D
      drm: radeon: Fix ring_rptr accesses. · b07fa022
      David Miller 提交于
      The memory behind ring_rptr can either be in ioremapped memory
      or a vmalloc() normal kernel memory buffer.
      
      However, the code unconditionally uses DRM_{READ,WRITE}32() (and thus
      readl() and writel()) to access it.
      
      Basically, if RADEON_IS_AGP then it's ioremap()'d memory else it's
      vmalloc'd memory.
      
      Adjust all of the ring_rptr access code as needed.
      
      While we're here, kill the 'scratch' pointer in drm_radeon_private.
      It's only used in the one place where it is initialized.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      b07fa022
    • B
      drm: Make drm_local_map use a resource_size_t offset · 41c2e75e
      Benjamin Herrenschmidt 提交于
      This changes drm_local_map to use a resource_size for its "offset"
      member instead of an unsigned long, thus allowing 32-bit machines
      with a >32-bit physical address space to be able to store there
      their register or framebuffer addresses when those are above 4G,
      such as when using a PCI video card on a recent AMCC 440 SoC.
      
      This patch isn't as "trivial" as it sounds: A few functions needed
      to have some unsigned long/int changed to resource_size_t and a few
      printk's had to be adjusted.
      
      But also, because userspace isn't capable of passing such offsets,
      I had to modify drm_find_matching_map() to ignore the offset passed
      in for maps of type _DRM_FRAMEBUFFER or _DRM_REGISTERS.
      
      If we ever support multiple _DRM_FRAMEBUFFER or _DRM_REGISTERS maps
      for a given device, we might have to change that trick, but I don't
      think that happens on any current driver.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      41c2e75e
  2. 20 2月, 2009 1 次提交
  3. 08 2月, 2009 1 次提交
  4. 29 12月, 2008 3 次提交
  5. 25 11月, 2008 1 次提交
  6. 11 11月, 2008 1 次提交
    • D
      drm/radeon: map registers at load time · 78538bf1
      Dave Airlie 提交于
      Now that the radeon driver has suspend/resume functions, it needs to map its
      registers at load time or it will likely crash if a suspend operation occurs
      before the driver has been initialized.
      
      This patch moves the register mapping code from firstopen to load and makes
      the mapping into a _DRM_DRIVER one so that the core won't remove it at
      lastclose time.
      
      Fixes (at least partially) kernel bz #11891.
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: NDave Airlie <airlied@linux.ie>
      78538bf1
  7. 28 10月, 2008 1 次提交
  8. 18 10月, 2008 5 次提交
  9. 01 9月, 2008 1 次提交
  10. 25 8月, 2008 1 次提交
  11. 15 7月, 2008 1 次提交
  12. 14 7月, 2008 1 次提交
    • D
      drm: reorganise drm tree to be more future proof. · c0e09200
      Dave Airlie 提交于
      With the coming of kernel based modesetting and the memory manager stuff,
      the everything in one directory approach was getting very ugly and
      starting to be unmanageable.
      
      This restructures the drm along the lines of other kernel components.
      
      It creates a drivers/gpu/drm directory and moves the hw drivers into
      subdirectores. It moves the includes into an include/drm, and
      sets up the unifdef for the userspace headers we should be exporting.
      Signed-off-by: NDave Airlie <airlied@redhat.com>
      c0e09200
  13. 19 6月, 2008 13 次提交
  14. 30 4月, 2008 1 次提交
  15. 17 3月, 2008 1 次提交
  16. 20 2月, 2008 1 次提交
  17. 07 2月, 2008 3 次提交