01 Mar, 2010

4 commits

  • * 'drm-radeon-testing' of /ssd/git/drm-radeon-next:
    drm/radeon: r100/r200 ums: block ability for userspace app to trash 0 page and beyond
    drm/ttm: fix function prototype to match implementation
    drm/radeon: use ALIGN instead of open coding it
    drm/radeon/kms: initialize set_surface_reg reg for rs600 asic

    Dave Airlie
     
  • Fix function prototype to match its actual usage and implementation.

    drivers/gpu/drm/ttm/ttm_bo_util.c:341:10: error: symbol 'ttm_io_prot' redeclared with different type (originally declared at include/drm/ttm/ttm_bo_driver.h:911) - incompatible argument 1 (different signedness)

    Signed-off-by: Randy Dunlap
    Cc: David Airlie
    Signed-off-by: Dave Airlie

    Randy Dunlap
     
  • * anholt/drm-intel-next: (103 commits)
    drm/i915: Use a dmi quirk to skip a broken SDVO TV output.
    drm/i915: enable/disable LVDS port at DPMS time
    drm/i915: check for multiple write domains in pin_and_relocate
    drm/i915: clean-up i915_gem_flush_gpu_write_domain
    drm/i915: reuse i915_gpu_idle helper
    drm/i915: ensure lru ordering of fence_list
    drm/i915: extract fence stealing code
    drm/i915: fixup active list locking in object_unbind
    drm/i915: reuse i915_gem_object_put_fence_reg for fence stealing code
    drm/i915: Add dependency on the intel agp module
    drm/i915: More s/IS_IRONLAKE/HAS_PCH_SPLIT for Sandybridge.
    drm/i915: Correct the Sandybridge chipset info structs.
    drm/i915: Disable the hangcheck reset on Sandybridge until we add support.
    drm/i915: Add a new mobile Sandybridge PCI ID.
    agp/intel: Add a new Sandybridge HB/IG PCI ID combo.
    drm/i915, agp/intel: Fix stolen memory size on Sandybridge
    drm/i915: Correct locking in the modesetting failure path, fixing a BUG_ON.
    drm/i915: Disable the surface tile swizzling on Sandybridge.
    agp/intel: Use a non-reserved value for the cache field of the PTEs.
    drm/i915: Fix sandybridge status page setup.
    ...

    Dave Airlie
     
  • * nouveau/for-airlied: (25 commits)
    drm/nouveau: use ALIGN instead of open coding it
    drm/nouveau: report unknown connector state if lid closed
    drm/nouveau: support version 0x20 displayport tables
    drm/nouveau: Fix noaccel/nofbaccel option descriptions.
    drm/nv50: Implement ctxprog/state generation.
    drm/nouveau: use dcb connector types throughout the driver
    drm/nv50: enable hpd on any connector we know the gpio line for
    drm/nouveau: use dcb connector table for creating drm connectors
    drm/nouveau: construct a connector table for cards that lack a real one
    drm/nouveau: check for known dcb connector types
    drm/nouveau: parse dcb gpio/connector tables after encoders
    drm/nouveau: reorganise bios header, add dcb connector type enums
    drm/nouveau: merge nvbios and nouveau_bios_info
    drm/nouveau: merge parsed_dcb and bios_parsed_dcb into dcb_table
    drm/nouveau: rename parsed_dcb_gpio to dcb_gpio_table
    drm/nouveau: allow retrieval of vbios image from debugfs
    drm/nouveau: fix missing spin_unlock in failure path
    drm/nouveau: fix i2ctable bounds checking
    drm/nouveau: fix nouveau_i2c_find bounds checking
    drm/nouveau: fix pramdac_table range checking
    ...

    Conflicts:
    drivers/gpu/drm/nouveau/nouveau_gem.c

    Dave Airlie
     

27 Feb, 2010

1 commit


26 Feb, 2010

1 commit

  • * korg/drm-radeon-testing: (62 commits)
    drm/radeon/kms: update new pll algo
    drm/radeon/kms: add support for square microtiles on r3xx-r5xx
    drm/radeon/kms: force pinning buffer into visible VRAM
    drm/radeon/kms/evergreen: fix typo in cursor code
    drm/radeon/kms: implement reading active PCIE lanes on R600+
    drm/radeon/kms: for downclocking non-mobility check PERFORMANCE state
    drm/radeon/kms: simplify storing current and requested PM mode
    drm/radeon: fixes for r6xx/r7xx gfx init
    drm/radeon/rv740: fix backend setup
    drm/radeon/kms: fix R3XX/R4XX memory controller initialization
    [rfc] drm/radeon/kms: pm debugging check for vbl.
    drm/radeon: Fix memory allocation failures in the preKMS command stream checking.
    drm: Add generic multipart buffer.
    drm/radeon/kms: simplify memory controller setup V2
    drm/radeon: Add asic hook for dma copy to r200 cards.
    drm/radeon/kms: Create asic structure for r300 pcie cards.
    drm/radeon/kms: remove unused r600_gart_clear_page
    drm/radeon/kms: remove HDP flushes from fence emit (v2)
    drm/radeon/kms: add LVDS pll quirk for Dell Studio 15
    drm/radeon/kms: simplify picking power state
    ...

    Conflicts:
    drivers/gpu/drm/radeon/atom.c
    drivers/gpu/drm/radeon/atombios.h
    drivers/gpu/drm/radeon/atombios_dp.c
    drivers/gpu/drm/radeon/r600.c
    drivers/gpu/drm/radeon/r600_audio.c
    drivers/gpu/drm/radeon/r600_cp.c
    drivers/gpu/drm/radeon/radeon.h
    drivers/gpu/drm/radeon/radeon_connectors.c
    drivers/gpu/drm/radeon/radeon_ring.c
    drivers/gpu/drm/radeon/rv770.c

    Dave Airlie
     

25 Feb, 2010

2 commits


23 Feb, 2010

1 commit

  • Allocating multiple pages of memory for data that is coming
    from user space may fail. To fix memory allocation failures
    the buffer object should be split to multiple independ pages.

    drm buffer provides generic interface to copy and process
    large data arrays from user space.

    Interface includes allocation and free functions to allocate
    the buffer object and data storage pages.

    All access operations are performed relative to a internal
    pointer which is advanced with drm_buffer_advance function.

    The buffer can be accessed using drm_buffer_pointer_to_XXX
    functions if it is known that requested object doesn't split
    over a page boundary. These functions don't do any error
    checking to maximize performance.

    If there is large object which could be split there is special
    drm_buffer_read_object function. drm_buffer_read_object takes
    a pointer as argument which is used as temporary store for
    data if it is split over boundary in the buffer.

    Signed-off-by: Pauli Nieminen
    Signed-off-by: Dave Airlie

    Pauli Nieminen
     

11 Feb, 2010

4 commits

  • This patch introduces the drm_gem_object_unreference_unlocked
    and drm_gem_object_handle_unreference_unlocked functions that
    do not require holding struct_mutex.

    drm_gem_object_unreference_unlocked calls the new
    ->gem_free_object_unlocked entry point if available, and
    otherwise just takes struct_mutex and just calls ->gem_free_object

    Signed-off-by: Luca Barbieri
    Signed-off-by: Dave Airlie

    Luca Barbieri
     
  • * 'nouveau/for-airlied' of /home/airlied/kernel/drm-next:
    nouveau: fix state detection with switchable graphics
    drm/nouveau: move dereferences after null checks
    drm/nv50: make the pgraph irq handler loop like the pre-nv50 version
    drm/nv50: delete ramfc object after disabling fifo, not before
    drm/nv50: avoid unloading pgraph context when ctxprog is running
    drm/nv50: align size of buffer object to the right boundaries.
    drm/nv50: disregard dac outputs in nv50_sor_dpms()
    drm/nv50: prevent multiple init tables being parsed at the same time
    drm/nouveau: make dp auxch xfer len check for reads only
    drm/nv40: make INIT_COMPUTE_MEM a NOP, just like nv50
    drm/nouveau: Add proper vgaarb support.
    drm/nouveau: Fix fbcon on mixed pre-NV50 + NV50 multicard.
    drivers/gpu/drm/nouveau/nouveau_grctx.c: correct NULL test
    drm/nouveau: call ttm_bo_wait with the bo lock held to prevent hang
    drm/nouveau: Fixup semaphores on pre-nv50 cards.
    drm/nouveau: Add getparam to get available PGRAPH units.
    drm/nouveau: Add module options to disable acceleration.
    drm/nouveau: fix non-vram notifier blocks

    Dave Airlie
     
  • Even if this bumps the version to 1 it does not mean the driver is
    out of staging. From what we know this is the last backwards
    incompatible change to the driver.

    Signed-off-by: Jakob Bornecrantz
    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Dave Airlie

    Jakob Bornecrantz
     
  • When time-based throttling is implemented, we need to bump minor.
    When the old way of detecting scanout is removed, we need to bump major.
    In the meantime, this change should not break existing user-space.

    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Jakob Bornecrantz
    Signed-off-by: Dave Airlie

    Thomas Hellstrom
     

09 Feb, 2010

3 commits


02 Feb, 2010

1 commit

  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/radeon/kms: Fix oops after radeon_cs_parser_init() failure.
    drm/radeon/kms: move radeon KMS on/off switch out of staging.
    drm/radeon/kms: Bailout of blit if error happen & protect with mutex V3
    drm/vmwgfx: Don't send bad flags to the host
    drm/vmwgfx: Request SVGA version 2 and bail if not found
    drm/vmwgfx: Correctly detect 3D
    drm/ttm: remove unnecessary save_flags and ttm_flag_masked in ttm_bo_util.c
    drm/kms: Remove incorrect comment in struct drm_mode_modeinfo
    drm/ttm: remove padding from ttm_ref_object on 64bit builds
    drm/radeon/kms: release agp on error.
    drm/kms/radeon/agp: Move the check of the aper_size after drm_acp_acquire and drm_agp_info
    drm/kms/radeon/agp: Fix warning, format ‘%d’ expects type ‘int’, but argument 4 has type ‘size_t’
    drm/ttm: Avoid conflicting reserve_memtype during ttm_tt_set_page_caching.
    drm/kms/radeon: pick digitial encoders smarter. (v3)
    drm/radeon/kms: use active device to pick connector for encoder
    drm/radeon/kms: fix incorrect logic in DP vs eDP connector checking.

    Linus Torvalds
     

01 Feb, 2010

1 commit


26 Jan, 2010

1 commit

  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (95 commits)
    drm/radeon/kms: preface warning printk with driver name
    drm/radeon/kms: drop unnecessary printks.
    drm: fix regression in fb blank handling
    drm/radeon/kms: make hibernate work on IGPs
    drm/vmwgfx: Optimize memory footprint for DMA buffers.
    drm/ttm: Allow system memory as a busy placement.
    drm/ttm: Fix race condition in ttm_bo_delayed_delete (v3, final)
    drm/nv50: prevent switching off SOR when in use for DVI-over-DP
    drm/nv50: fail auxch transaction if reply count not what we expect
    drm/nouveau: fix failure path if userspace specifies no valid memtypes
    drm/nouveau: report LVDS as disconnected if lid closed
    drm/radeon/kms: fix legacy get_engine/memory clock
    drm/radeon/kms/atom: atom parser fixes
    drm/radeon/kms: clean up atombios pll code
    drm/radeon/kms: clean up pll struct
    drm/radeon/kms/atom: fix crtc lock ordering
    drm/radeon: r6xx/r7xx possible security issue, system ram access
    drm/radeon/kms: r600/r700 don't test ib if ib initialization fails
    drm/radeon/kms: Forbid creation of framebuffer with no valid GEM object
    drm/radeon/kms: r600 handle irq vector ring overflow
    ...

    Linus Torvalds
     

14 Jan, 2010

1 commit

  • This is needed for a bugfix in the vmwgfx driver.
    Drivers may have GPU bindings on buffers that core TTM is not aware of,
    and TTM may view those buffers as ordinary system memory buffers.
    Add a notifier to such drivers when TTM is about to move the buffer
    contents out to swappable memory. The driver must then release any
    private GPU bindings on those buffers.

    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Dave Airlie

    Thomas Hellstrom
     

12 Jan, 2010

1 commit

  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (45 commits)
    drm/nv04: Fix set_operation software method.
    drm/nouveau: initialise DMA tracking parameters earlier
    drm/nouveau: use dma.max rather than pushbuf size for checking GET validity
    drm/nv04: differentiate between nv04/nv05
    drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence
    drm/nv50: prevent a possible ctxprog hang
    drm/nouveau: have ttm's fault handler called directly
    drm/nv50: restore correct cache1 get/put address on fifoctx load
    drm/nouveau: create function for "dealing" with gpu lockup
    drm/nouveau: remove unused nouveau_channel_idle() function
    drm/nouveau: fix handling of fbcon colours in 8bpp
    drm/nv04: Context switching fixes.
    drm/nouveau: Use the software object for fencing.
    drm/nouveau: Allocate a per-channel instance of NV_SW.
    drm/nv50: make the blocksize depend on vram size
    drm/nouveau: better alignment of bo sizes and use roundup instead of ALIGN
    drm/nouveau: Don't skip card take down on nv0x.
    drm/nouveau: Implement nv42-nv43 TV load detection.
    drm/nouveau: Clean up the nv17-nv4x load detection code a bit.
    drm/nv50: fix fillrect color
    ...

    Linus Torvalds
     

11 Jan, 2010

1 commit

  • * korg/drm-radeon-next:
    drm/radeon/kms: add additional safe regs for r4xx/rs6xx and r5xx
    drm/radeon/kms: Don't try to enable IRQ if we have no handler installed
    drm: Avoid calling vblank function is vblank wasn't initialized
    drm/radeon: mkregtable.c: close a file before exit
    drm/radeon/kms: Make sure we release AGP device if we acquired it
    drm/radeon/kms: Schedule host path read cache flush through the ring V2
    drm/radeon/kms: Workaround RV410/R420 CP errata (V3)
    drm/radeon/kms: detect sideport memory on IGP chips
    drm/radeon: fix a couple of array index errors
    drm/radeon/kms: add support for eDP (embedded DisplayPort)
    drm: Add eDP connector type
    drm/radeon/kms: pull in the latest upstream ObjectID.h changes
    drm/radeon/kms: whitespace changes to ObjectID.h
    drm/radeon/kms: fix typo in atom connector type handling

    Dave Airlie
     

08 Jan, 2010

2 commits


07 Jan, 2010

4 commits

  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/radeon/kms: rs600: use correct mask for SW interrupt
    gpu/drm/radeon/radeon_irq.c: move a dereference below a NULL test
    drm/radeon/radeon_device.c: move a dereference below a NULL test
    drm/radeon/radeon_fence.c: move a dereference below the NULL test
    drm/radeon/radeon_connectors.c: add a NULL test before dereference
    drm/radeon/kms: fix memory leak
    drm/kms: Fix &&/|| confusion in drm_fb_helper_connector_parse_command_line()
    drm/edid: Fix CVT width/height decode
    drm/edid: Skip empty CVT codepoints
    drm: remove address mask param for drm_pci_alloc()
    drm/radeon/kms: add missing breaks in i2c and ss lookups
    drm/radeon/kms: add primary dac adj values table
    drm/radeon/kms: fallback to default connector table

    Linus Torvalds
     
  • drm_pci_alloc() has input of address mask for setting pci dma
    mask on the device, which should be properly setup by drm driver.
    And leave it as a param for drm_pci_alloc() would cause confusion
    or mistake would corrupt the correct dma mask setting, as seen on
    intel hw which set wrong dma mask for hw status page. So remove
    it from drm_pci_alloc() function.

    Signed-off-by: Zhenyu Wang
    Signed-off-by: Dave Airlie

    Zhenyu Wang
     
  • * 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel: (23 commits)
    drm/i915: remove full registers dump debug
    drm/i915: Add DP dpll limit on ironlake and use existing DPLL search function
    drm/i915: Select the correct BPC for LVDS on Ironlake
    drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in pipeconf on Ironlake
    drm/i915: Enable/disable the dithering for LVDS based on VBT setting
    drm/i915: Permit pinning whilst the device is 'suspended'
    drm/i915: Hold struct mutex whilst pinning power context bo.
    drm/i915: fix unused var
    drm/i915: Storage class should be before const qualifier
    drm/i915: remove render reclock support
    drm/i915: Fix RC6 suspend/resume
    drm/i915: execbuf2 support
    drm/i915: Reload hangcheck timer too for Ironlake
    drm/i915: only enable hotplug for detected outputs
    drm/i915: Track whether cursor needs physical address in intel_device_info
    drm/i915: Implement IS_* macros using static tables
    drm/i915: Move PCI IDs into i915 driver
    drm/i915: Update LVDS connector status when receiving ACPI LID event
    drm/i915: Add MALATA PC-81005 to ACPI LID quirk list
    drm/i915: implement new pm ops for i915
    ...

    Linus Torvalds
     
  • This patch adds a new execbuf ioctl, execbuf2, for use by clients that
    want to control fence register allocation more finely. The buffer
    passed in to the new ioctl includes a new relocation type to indicate
    whether a given object needs a fence register assigned for the command
    buffer in question.

    Compatibility with the existing execbuf ioctl is implemented in terms
    of the new code, preserving the assumption that fence registers are
    required for pre-965 rendering commands.

    Signed-off-by: Jesse Barnes
    [ickle: Remove pre-emptive clear_fence_reg()]
    Signed-off-by: Chris Wilson
    Signed-off-by: Kristian Høgsberg
    [anholt: Removed dmesg spam]
    Signed-off-by: Eric Anholt

    Jesse Barnes
     

18 Dec, 2009

2 commits

  • drm_ioctl is called with the Big Kernel Lock held,
    which shows up very high in statistics on vfs_ioctl.

    Moving the lock into the drm_ioctl function itself
    makes sure we blame the right subsystem and it gets
    us one step closer to eliminating the locked version
    of fops->ioctl.

    Since drm_ioctl does not require the lock itself,
    we only need to hold it while calling the specific
    handler. The 32 bit conversion handlers do not
    interact with any other code, so they don't need
    the BKL here either and can just call drm_ioctl.

    As a bonus, this cleans up all the other users
    of drm_ioctl which now no longer have to find
    the inode or call lock_kernel.

    [airlied: squashed the non-driver bits
    of the second patch in here, this provides
    the flag for drivers to use to select unlocked
    ioctls - but doesn't modify any drivers].

    Signed-off-by: Arnd Bergmann
    Cc: David Airlie
    Cc: dri-devel@lists.sourceforge.net
    Cc: Frederic Weisbecker
    Cc: Thomas Gleixner
    Signed-off-by: Dave Airlie

    Arnd Bergmann
     
  • Dave Airlie
     

15 Dec, 2009

2 commits


11 Dec, 2009

2 commits

  • This adds a drm/kms staging non-API stable driver for GPUs from NVIDIA.

    This driver is a KMS-based driver and requires a compatible nouveau
    userspace libdrm and nouveau X.org driver.

    This driver requires firmware files not available in this kernel tree,
    interested parties can find them via the nouveau project git archive.

    This driver is reverse engineered, and is in no way supported by nVidia.

    Support for nearly the complete range of nvidia hw from nv04->g80 (nv50)
    is available, and the kms driver should support driving nearly all
    output types (displayport is under development still) along with supporting
    suspend/resume.

    This work is all from the upstream nouveau project found at
    nouveau.freedesktop.org.

    The original authors list from nouveau git tree is:
    Anssi Hannula
    Ben Skeggs
    Francisco Jerez
    Maarten Maathuis
    Marcin Kościelnicki
    Matthew Garrett
    Matt Parnell
    Patrice Mandin
    Pekka Paalanen
    Xavier Chantry
    along with project founder Stephane Marchesin

    Signed-off-by: Ben Skeggs
    Signed-off-by: Dave Airlie

    Ben Skeggs
     
  • Convert ttm_buffer_object_init to use struct ttm_placement and
    rename to ttm_bo_init for consistency with function naming. This
    allow to give more complex placement at buffer creation. For
    instance you ask to allocate bo into vram first but if there is
    not enough vram you can give system as a second possible
    placement. It also allow to create buffer in a specific range.

    Also rename ttm_buffer_object_validate to ttm_bo_validate.

    Signed-off-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Jerome Glisse
     

10 Dec, 2009

4 commits

  • drm_mm_debug_table will print the memory manager state
    in table allowing to give a snapshot of the manager at
    given point in time. Usefull for debugging.

    Signed-off-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Jerome Glisse
     
  • Return -ERESTARTSYS instead of -ERESTART when interrupted by a signal.
    The -ERESTARTSYS is converted to an -EINTR by the kernel signal layer
    before returned to user-space.

    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Thomas Hellstrom
     
  • This change allow driver to pass sorted memory placement,
    from most prefered placement to least prefered placement.
    In order to avoid long function prototype a structure is
    used to gather memory placement informations such as range
    restriction (if you need a buffer to be in given range).
    Range restriction is determined by fpfn & lpfn which are
    the first page and last page number btw which allocation
    can happen. If those fields are set to 0 ttm will assume
    buffer can be put anywhere in the address space (thus it
    avoids putting a burden on the driver to always properly
    set those fields).

    This patch also factor few functions like evicting first
    entry of lru list or getting a memory space. This avoid
    code duplication.

    V2: Change API to use placement flags and array instead
    of packing placement order into a quadword.
    V3: Make sure we set the appropriate mem.placement flag
    when validating or allocation memory space.

    [Pending Thomas Hellstrom further review but okay
    from preliminary review so far].

    Signed-off-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Jerome Glisse
     
  • These are required for changes to TTM.

    Signed-off-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Jerome Glisse
     

08 Dec, 2009

2 commits