19 Feb, 2014

2 commits

  • Pull request of 2014-02-18

    One compile fix and one memory leak.

    * tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
    drm/ttm: Fix memory leak in ttm_agp_backend.c
    drm/ttm: declare 'struct device' in ttm_page_alloc.h

    Dave Airlie
     
  • Some hardware may not support standard 64x64 cursors. Add
    a drm cap to query the cursor size from the kernel. Some examples
    include radeon CIK parts (128x128 cursors) and armada (32x64 or 64x32).
    This allows things like device specific ddxes to remove asics specific
    logic and also allows xf86-video-modesetting to work properly with hw
    cursors on this hardware. Default to 64 if the driver doesn't specify
    a size.

    Signed-off-by: Alex Deucher
    Reviewed-by: Rob Clark

    Alex Deucher
     

18 Feb, 2014

1 commit


11 Feb, 2014

1 commit

  • Just minor stuff really, on vlv dp fix and two patches to tune down some
    opregion sanity check. Plus MAINTAINERS update for the new git repo, which
    is the only reason I've really bothered with this pull request.

    * tag 'drm-intel-fixes-2014-02-06' of ssh://git.freedesktop.org/git/drm-intel:
    drm/i915: demote opregion excessive timeout WARN_ONCE to DRM_INFO_ONCE
    drm: add DRM_INFO_ONCE() to print a one-time DRM_INFO() message
    MAINTAINERS: Update drm/i915 git repo
    drm/i915: vlv: fix DP PHY lockup due to invalid PP sequencer setup

    Dave Airlie
     

05 Feb, 2014

1 commit


29 Jan, 2014

1 commit

  • drm/tegra: Changes for v3.14-rc1 (update)

    These patches fix some issues caused by the DRM panel support from the
    previous pull request and add two more panels (for the Toshiba AC100 as
    well as the Seaboard and Ventana).

    * tag 'drm/for-3.14-rc1-20140123' of git://anongit.freedesktop.org/tegra/linux:
    drm/tegra: Obtain head number from DT
    drm/panel: update EDID BLOB in panel_simple_get_modes()
    gpu: host1x: Remove unnecessary include
    drm/tegra: Use proper data type
    drm/tegra: Clarify how panel modes override others
    drm/tegra: Fix possible CRTC mask for RGB outputs
    drm/i915: Use drm_encoder_crtc_ok()
    drm: Move drm_encoder_crtc_ok() to core
    drm: provide a helper for the encoder possible_crtcs mask
    drm/tegra: Don't check resource with devm_ioremap_resource()
    drm/panel: Add support for Chunghwa CLAA101WA01A panel
    drm/panel: Add support for Samsung LTN101NT05 panel

    Dave Airlie
     

22 Jan, 2014

1 commit

  • Here's the vblank timestamp pull request you wanted.

    I addressed the few bugs that Mario pointed out and added
    the r-bs.

    As it has been a while since I made the changes, I gave it a
    quick spin on a few different i915 machines. Fortunately
    everything still seems to be fine.

    * 'drm-vbl-timestamp' of git://gitorious.org/vsyrjala/linux:
    drm/i915: Add a kludge for DSL incrementing too late and ISR not working
    drm/radeon: Move the early vblank IRQ fixup to radeon_get_crtc_scanoutpos()
    drm: Pass 'flags' from the caller to .get_scanout_position()
    drm: Fix vblank timestamping constants for interlaced modes
    drm/i915: Fix scanoutpos calculations for interlaced modes
    drm: Change {pixel,line,frame}dur_ns from s64 to int
    drm: Use crtc_clock in drm_calc_timestamping_constants()
    drm/radeon: Populate crtc_clock in radeon_atom_get_tv_timings()
    drm: Simplify the math in drm_calc_timestamping_constants()
    drm: Improve drm_calc_timestamping_constants() documentation
    drm/i915: Call drm_calc_timestamping_constants() earlier
    drm/i915: Kill hwmode save/restore
    drm: Pass the display mode to drm_calc_vbltimestamp_from_scanoutpos()
    drm: Pass the display mode to drm_calc_timestamping_constants()

    Dave Airlie
     

21 Jan, 2014

2 commits


20 Jan, 2014

5 commits

  • Preparation for moving the early vblank IRQ logic into
    radeon_get_crtc_scanoutpos().

    v2: Fix radeon_drv.c compile warning (Mario)

    Reviewed-by: mario.kleiner.de@gmail.com
    Signed-off-by: Ville Syrjälä

    Ville Syrjälä
     
  • Using s64 for the timestamping constants is wasteful. Signed 32bit
    integers get us a range of over +-2 seconds. Presuming that no-one
    wants to a vrefresh rate less than 0.5, we can switch to using int
    for the timestamping constants. We save a few bytes in drm_crtc and
    avoid a bunch of 64bit math.

    Reviewed-by: mario.kleiner.de@gmail.com
    Signed-off-by: Ville Syrjälä

    Ville Syrjälä
     
  • Rather than using crtc->hwmode, just pass the relevant mode to
    drm_calc_vbltimestamp_from_scanoutpos(). This removes the last hwmode
    usage from core drm.

    Reviewed-by: mario.kleiner.de@gmail.com
    Signed-off-by: Ville Syrjälä

    Ville Syrjälä
     
  • We don't really use hwmode anymore in i915, so eliminating its use
    from the core code seems prudent. Just pass the appropriate mode
    to drm_calc_timestamping_constants().

    Reviewed-by: mario.kleiner.de@gmail.com
    Signed-off-by: Ville Syrjälä

    Ville Syrjälä
     
  • drm-intel-next-2014-01-10:
    - final bits for runtime D3 on Haswell from Paul (now enabled fully)
    - parse the backlight modulation freq information in the VBT from Jani
    (but not yet used)
    - more watermark improvements from Ville for ilk-ivb and bdw
    - bugfixes for fastboot from Jesse
    - watermark fix for i830M (but not yet everything)
    - vlv vga hotplug w/a (Imre)
    - piles of other small improvements, cleanups and fixes all over

    Note that the pull request includes a backmerge of the last drm-fixes
    pulled into Linus' tree - things where getting a bit too messy. So the
    shortlog also contains a bunch of patches from Linus tree. Please yell if
    you want me to frob it for you a bit.

    * 'drm-intel-next' of git://people.freedesktop.org/~danvet/drm-intel: (609 commits)
    drm/i915/bdw: make sure south port interrupts are enabled properly v2
    drm/i915: Include more information in disabled hotplug interrupt warning
    drm/i915: Only complain about a rogue hotplug IRQ after disabling
    drm/i915: Only WARN about a stuck hotplug irq ONCE
    drm/i915: s/hotplugt_status_gen4/hotplug_status_g4x/

    Dave Airlie
     

14 Jan, 2014

4 commits

  • Using the new drm_crtc_mask() function, drm_encoder_crtc_ok() can now be
    written in a significantly shorter way, so it can be moved to a header
    file and be made static inline.

    Signed-off-by: Thierry Reding

    Thierry Reding
     
  • The encoder possible_crtcs mask identifies which CRTCs can be bound to
    a particular encoder. Each bit from bit 0 defines an index in the list
    of CRTCs held in the DRM mode_config crtc_list. Rather than having
    drivers trying to track the position of their CRTCs in the list, expose
    the code which already exists for calculating the appropriate mask bit
    for a CRTC.

    Signed-off-by: Russell King
    Reviewed-by: David Herrmann
    Reviewed-by: Jani Nikula
    [treding@nvidia.com: add drm_crtc_index(), move to core]
    Signed-off-by: Thierry Reding

    Russell King
     
  • This was hidden in a generic void * dev->mm_private. But only ever
    used for gem. But thanks to this fake generic pretension no one
    noticed that Rob's drm drivers are now all broken.

    So just give the offset manager a type pointer and fix up msm, omapdrm
    and tilcdc.

    v2: Fixup compile fail.

    v3: Fixup rebase fail that David spotted.

    Cc: David Herrmann
    Cc: Rob Clark
    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Anyway, nothing big here, Three more code cleanup patches from Rashika
    Kheria, and one TTM/vmwgfx patch from me that tightens security around TTM
    objects enough for them to opened using prime objects from render nodes:

    Previously any client could access a shared buffer using the "name", also
    without actually opening it. Now a reference is required, and for render nodes
    such a reference is intended to only be obtainable using a prime fd.

    vmwgfx-next 2014-01-13 pull request

    * tag 'vmwgfx-next-2014-01-13' of git://people.freedesktop.org/~thomash/linux:
    drivers: gpu: Mark functions as static in vmwgfx_fence.c
    drivers: gpu: Mark functions as static in vmwgfx_buffer.c
    drivers: gpu: Mark functions as static in vmwgfx_kms.c
    drm/ttm: ttm object security fixes for render nodes

    Dave Airlie
     

08 Jan, 2014

2 commits

  • When a client looks up a ttm object, don't look it up through the device hash
    table, but rather from the file hash table. That makes sure that the client
    has indeed put a reference on the object, or in gem terms, has opened
    the object; either using prime or using the global "name".

    To avoid a performance loss, make sure the file hash table entries can be
    looked up from under an RCU lock, and as a consequence, replace the rwlock
    with a spinlock, since we never need to take it in read mode only anymore.

    Finally add a ttm object lookup function for the device hash table, that is
    intended to be used when we put a ref object on a base object or, in gem terms,
    when we open the object.

    Signed-off-by: Thomas Hellstrom
    Reviewed-by: Brian Paul

    Thomas Hellstrom
     
  • Needed for some vm operations; most notably unmap_mapping_range() with
    even_cows = 0.

    Signed-off-by: Thomas Hellstrom
    Reviewed-by: Brian Paul

    Thomas Hellstrom
     

23 Dec, 2013

2 commits

  • Fixes rendering corruption due to incorrect
    gfx configuration.

    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=63599

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • drm/tegra: Changes for v3.14-rc1

    This series of changes brings DRM panel support as well as initial code
    to register DSI hosts and peripherals and bind them to DSI drivers. The
    panel and DSI code are both used by the simple panel driver.

    The Tegra-specific changes build on top of this work to add support for
    various panels found on Tegra boards. New drivers enable the DSI host
    found on Tegra114 and a special hardware block that calibrates the pads
    used for DSI and CSI. The host1x and the display controller drivers gain
    basic Tegra124 support. To round of the new features, the DRM driver now
    sports a very simple PRIME implementation.

    In addition there are various improvements such as the host1x API being
    exported so that client drivers (like the Tegra DRM driver) can be built
    as modules. HDMI now does better power management and legacy FBDEV can
    now be disabled via Kconfig (though it's still enabled by default). A
    few sparse warnings have been squashed and various parts of the code
    have become more robust.

    * tag 'drm/for-3.14-rc1' of git://anongit.freedesktop.org/tegra/linux: (121 commits)
    drm/tegra: fix compile w/ CONFIG_DYNAMIC_DEBUG
    drm/tegra: Add PRIME support
    drm/tegra: Relocate some output-specific code
    drm/tegra: Add Tegra124 DC support
    drm/tegra: Fix small leak on error in tegra_fb_alloc()
    drm/tegra: Make legacy fbdev support optional
    drm/tegra: Sort reverse-dependencies alphabetically
    drm/tegra: Fix return value check
    drm/tegra: Add DSI support
    drm/tegra: Disable outputs for power-saving
    drm/tegra: Track HDMI enable state
    drm/tegra: Fix HDMI audio frequency typo
    drm/tegra: Do not export tegra_bo_ops
    drm/tegra: Remove spurious blank line
    drm/tegra: Increase compile test coverage
    drm/tegra: Allow the driver to be built as a module
    gpu: host1x: Add Tegra124 support
    gpu: host1x: clk_round_rate() can return a zero upon error
    gpu: host1x: Fix build warnings
    gpu: host1x: Increase compile test coverage
    ...

    Dave Airlie
     

18 Dec, 2013

18 commits

  • - DP_TEST_LINK_PATTERN is ambiguous, rename to DP_TEST_LINK_VIDEO_PATTERN to clarify
    - Added DP_TEST_LINK_FAUX_PATTERN to support automated testing of Fast AUX

    Signed-off-by: Todd Previte
    Reviewed-by: Jani Nikula
    Signed-off-by: Dave Airlie

    Todd Previte
     
  • This is just used for a debugfs file, and we can easily reconstruct
    this number by just walking the list twice. Which isn't really bad for
    a debugfs file anyway.

    So let's rip this out.

    There's the other issue that the dev->vmalist itself is a bit useless,
    since that can be reconstructed with all the memory mapping
    information from proc. But remove that is a different topic entirely.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • It's racy, and it's only used in debugfs. There are simpler ways to
    know whether something is going on (like looking at dmesg with full
    debugging enabled). And they're all much more useful.

    So let's just rip this out.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Now dev->ioctl_count tries to prevent the device from disappearing if
    it's still in use. And if we'd actually need this code it would be
    hopelessly racy and broken.

    But luckily the vfs already takes care of this. So we can just rip it
    out.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Checking directly for the right capability is simpler. Also this rids
    us of a few places that use DRM_CURRENTPID.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • The real linux interfaces are soooo much easier on the eyes ...

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Less yelling ftw!

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Less yelling ftw!

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • I've killed them a long time ago in drm/i915, let's get rid of this
    remnant of shared drm core days for good.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • We don't have any userspace interfaces that use HZ as a time unit, so
    having our own DRM define is useless.

    Remove this remnant from the shared drm core days.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • The header provides dummy functions and
    fallbacks, so no need for screaming macros.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Call drm_pci_agp_destroy directly, there's no point in the
    indirection. Long term we want to shuffle this into each driver's
    unload logic, but that needs cleared-up drm lifetime rules first.

    v2: Add a dummy function for !CONFIG_PCI, spotted my David Herrmann.

    v3: Fixup for the coding style police.

    Reviewed-by: David Herrmann
    Cc: David Herrmann
    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Wrapping a kfree is pointless.

    v2: Add a comment to the kerneldoc for drm_agp_init to explain where
    the kfree happens as requested by David. Note that for modeset drivers
    agp cleanup is fairly complicated anyway: The drm_agp_clear is a noop
    and drivers must call drm_agp_release on their own. Which they all
    seem to do properly.

    Cc: David Herrmann
    Reviewed-by: David Herrmann
    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • The PCI bus helper is the only user of it. Call it directly before
    device-registration to get rid of the callback.

    Note that all drm_agp_*() calls are locked with the drm-global-mutex so we
    need to explicitly lock it during initialization. It's not really clear
    why it's needed, but lets be safe.

    v2: Rebase on top of the agp_init interface change.

    v3: Remove the rebase-fail where I've accidentally killed the ->irq_by_busid
    callback a bit too early.

    Cc: David Herrmann
    Signed-off-by: David Herrmann (v1)
    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Most place actually want to just check for dev->agp (most do, but a
    few don't so this fixes a few potential NULL derefs). The only
    exception is the agp init code which should check for the AGP driver
    feature flag.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Thanks to the removal of REQUIRE_AGP we can use a void return value
    and shed a bit of complexity.

    Reviewed-by: David Herrmann
    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • Only the two intel drivers need this and they can easily check for
    working agp support in their driver ->load callbacks.

    This is the only reason why agp initialization could fail, so allows
    us to rip out a bit of error handling code in the next patch.

    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Daniel Vetter
     
  • The current values seem to be defined in a format that's specific to the
    i915, gma500 and radeon drivers. To make this more generally useful, use
    the values as defined in the specification.

    While at it, prefix the constants with DP_ for improved namespacing.

    Signed-off-by: Thierry Reding
    Reviewed-by: Daniel Vetter
    Reviewed-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Thierry Reding