23 Nov, 2011

2 commits

  • An unlikely race could case a bo to be returned reserved on an error path.

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

    Thomas Hellstrom
     
  • * 'drm-intel-fixes' of git://people.freedesktop.org/~keithp/linux: (25 commits)
    drm/i915: Fix inconsistent backlight level during disabled
    drm, i915: Fix memory leak in i915_gem_busy_ioctl().
    drm/i915: Use DPCD value for max DP lanes.
    drm/i915: Initiate DP link training only on the lanes we'll be using
    drm/i915: Remove trailing white space
    drm/i915: Try harder during dp pattern 1 link training
    drm/i915: Make DP prepare/commit consistent with DP dpms
    drm/i915: Let panel power sequencing hardware do its job
    drm/i915: Treat PCH eDP like DP in most places
    drm/i915: Remove link_status field from intel_dp structure
    drm/i915: Move common PCH_PP_CONTROL setup to ironlake_get_pp_control
    drm/i915: Module parameters using '-1' as default must be signed type
    drm/i915: Turn on another required clock gating bit on gen6.
    drm/i915: Turn on a required 3D clock gating bit on Sandybridge.
    drm/i915: enable cacheable objects on Ivybridge
    drm/i915: add constants to size fence arrays and fields
    drm/i915: Ivybridge still has fences!
    drm/i915: forcewake warning fixes in debugfs
    drm/i915: Fix object refcount leak on mmappable size limit error path.
    drm/i915: Use mode_config.mutex in ironlake_panel_vdd_work
    ...

    Dave Airlie
     

20 Nov, 2011

1 commit

  • This adds a new optional chunk to the CS ioctl that specifies optional flags
    to the CS parser. Why this is useful is explained below. Note that some regs
    no longer need the NOP relocation packet if this feature is enabled.
    Tested on r300g and r600g with this flag disabled and enabled.

    Assume there are two contexts sharing the same mipmapped tiled texture.
    One context wants to render into the first mipmap and the other one
    wants to render into the last mipmap. As you probably know, the hardware
    has a MACRO_SWITCH feature, which turns off macro tiling for small mipmaps,
    but that only applies to samplers.
    (at least on r300-r500, though later hardware likely behaves the same)

    So we want to just re-set the tiling flags before rendering (writing
    packets), right? ... No. The contexts run in parallel, so they may
    set the tiling flags simultaneously and then fire their command streams
    also simultaneously. The last one setting the flags wins, the other one
    loses.

    Another problem is when one context wants to render into the first and
    the last mipmap in one CS. Impossible. It must flush before changing
    tiling flags and do the rendering into the smaller mipmaps in another CS.

    Yet another problem is that writing copy_blit in userspace would be a mess
    involving re-setting tiling flags to please the kernel, and causing races
    with other contexts at the same time.

    The only way out of this is to send tiling flags with each CS, ideally
    with each relocation. But we already do that through the registers.
    So let's just use what we have in the registers.

    Signed-off-by: Marek Olšák
    Signed-off-by: Dave Airlie

    Marek Olšák
     

18 Nov, 2011

2 commits

  • When the brightness property is inquired while the backlight is disabled,
    the driver returns a wrong value (zero) because it probes the value after
    the backlight was turned off. This caused a black screen even after the
    backlight is enabled again. It should return the internal backlight_level
    instead, so that it won't be influenced by the backlight-enable state.

    BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=41926
    BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/872652

    Tested-by: Kamal Mostafa
    Cc: Alex Davis
    Cc:
    Signed-off-by: Takashi Iwai
    Signed-off-by: Keith Packard

    Takashi Iwai
     
  • A call to i915_add_request() has been made in function i915_gem_busy_ioctl(). i915_add_request can fail,
    so in it's exit path previously allocated memory needs to be freed.

    Signed-off-by: Rakib Mullick
    Reviewed-by: Keith Packard
    Signed-off-by: Keith Packard

    Rakib Mullick
     

17 Nov, 2011

9 commits


16 Nov, 2011

3 commits


14 Nov, 2011

2 commits

  • I assumed all PCI buses had a bridge, but playing with qemu recently, I
    discovered vgaarb bug where it wasn't detecting both devices shared a bridge
    at the root level.

    Don't check for NULL, if two buses have a NULL bridge, assume they share the
    root bus.

    Acked-by: Jesse Barnes
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • commit 27641c3f (drm/vblank: Add support for precise vblank
    timestamping) adds preempt_disable()/enable() around a spin locked
    section with the comments:

    * Disable preemption, so vblank_time_lock is held as short as
    * possible, even under a kernel with PREEMPT_RT patches.

    /* Disable preemption while holding vblank_time_lock. Do
    * it explicitely to guard against PREEMPT_RT kernel.

    Just that this has never been tested on a RT kernel which would have
    granted that nonsense with a might_sleep() warning because
    dev->vblank_time_lock is converted to a "sleeping" spinlock on RT.

    So this is activly wrong on RT and superflous on mainline. Remove it.

    Signed-off-by: Thomas Gleixner
    Acked-by: Mario Kleiner
    Signed-off-by: Dave Airlie

    Thomas Gleixner
     

13 Nov, 2011

1 commit


11 Nov, 2011

20 commits

  • On newer chips the number of clock modes per power state varies.

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Avoid a lot of extra loops through the pm state array.

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • The new power tables need to be handled differently when setting
    up the profiles.

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • It's already called via the DPMS functions.

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Signed-off-by: Inki Dae
    Signed-off-by: Kyungmin Park
    Signed-off-by: Dave Airlie

    Inki Dae
     
  • Fix kconfig unmet dependency warning. BACKLIGHT_CLASS_DEVICE depends on
    BACKLIGHT_LCD_SUPPORT, so select the latter along with the former.

    warning: (DRM_RADEON_KMS && DRM_I915 && STUB_POULSBO && FB_BACKLIGHT && PANEL_SHARP_LS037V7DW01 && PANEL_ACX565AKM && USB_APPLEDISPLAY && FB_OLPC_DCON && ASUS_LAPTOP && SONY_LAPTOP && THINKPAD_ACPI && EEEPC_LAPTOP && ACPI_ASUS && ACPI_CMPC && SAMSUNG_Q10) selects BACKLIGHT_CLASS_DEVICE which has unmet direct dependencies (HAS_IOMEM && BACKLIGHT_LCD_SUPPORT)

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

    Randy Dunlap
     
  • * 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nouveau/linux-2.6:
    drm/nouveau: Fix bandwidth calculation for DisplayPort
    drm/nouveau: by default use low bpp framebuffer on low memory cards
    drm/nv10: Change the BO size threshold determining the memory placement range.
    drm/nvc0: enable acceleration for nvc1 by default
    drm/nvc0/gr: fixup the mmio list register writes for 0xc1
    drm/nvc1: hacky workaround to fix accel issues
    drm/nvc0/gr: fix some bugs in grctx generation
    drm/nvc0: enable acceleration on 0xc8 by default
    drm/nvc0/vram: skip disabled PBFB subunits
    drm/nv40/pm: fix issues on igp chipsets, which don't have memory
    drm/nouveau: testing the wrong variable
    drm/nvc0/vram: storage type 0xc3 is not compressed
    drm/nv50: fix stability issue on NV86.
    drm/nouveau: initialize chan->fence.lock before use
    drm/nv50/vram: fix incorrect detection of bank count on newer chipsets
    drm/nv50/gr: typo fix, how about we not reset fifo during graph init?
    drm/nv50/bios: fixup mpll programming from the init table parser
    drm/nouveau: fix oops if i2c bus not found in nouveau_i2c_identify()
    drm: make sure drm_vblank_init() has been called before touching vbl_lock

    Dave Airlie
     
  • during the review of the fix for locks problems in drm_wait_vblank,
    a couple of false concerns were raised about how the drm_vblank_get
    and drm_vblank_put are used in this function; it turned out that the
    code is correct and that it cannot be simplified

    add a few comments to explain non-obvious flows in the code,
    to prevent "false alarms" in the future

    v2: incorporate comments received from Daniel Vetter

    Signed-off-by: Ilija Hadzic
    Reviewed-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Ilija Hadzic
     
  • radeon_benchmark_do_move() returns an int so "time" should be int
    too. Making it unsigned breaks the error handling.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Dave Airlie

    Dan Carpenter
     
  • drm_wait_vblank must be DRM_UNLOCKED because otherwise it
    will grab the drm_global_mutex and then go to sleep until the vblank
    event it is waiting for. That can wreck havoc in the windowing system
    because if one process issues this ioctl, it will block all other
    processes for the duration of all vblanks between the current and the
    one it is waiting for. In some cases it can block the entire windowing
    system.

    v2: incorporate comments received from Daniel Vetter and
    Michel Daenzer.

    v3/v4: after a lengty discussion with Daniel Vetter, it was concluded
    that the only thing not yet protected with locks and atomic
    ops is the write to dev->last_vblank_wait. It's only used in a
    debug file in proc, and the current code already employs no
    correct locking: the proc file only takes dev->struct_mutex,
    whereas drm_wait_vblank implicitly took the drm_global_mutex.
    Given all this, it's not worth bothering to try to fix
    the locks at this time.

    Signed-off-by: Ilija Hadzic
    Reviewed-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Ilija Hadzic
     
  • As Exynos DRM is merged at mainline. Also update the maintainer entry.

    Signed-off-by: Kyungmin Park
    Signed-off-by: Dave Airlie

    Kyungmin Park
     
  • We restore the CRTC, encoder, and connector configurations, but if the
    mode set failed, the attached display may have been turned off, so we
    need to try set_config again to restore things to the way they were.

    Signed-off-by: Jesse Barnes
    Reviewed-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Jesse Barnes
     
  • Can happen when there is no DP panel attached, confusing
    users. Make it debug only.

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

    Alex Deucher
     
  • slow-work got killed in commit 181a51f6e0. This means that since v2.6.36
    there is no Kconfig symbol SLOW_WORK. Apparently selecting that symbol
    is a nop. Drop that select.

    Signed-off-by: Paul Bolle
    Signed-off-by: Dave Airlie

    Paul Bolle
     
  • Nouveau, when configured with debugfs, creates debugfs files for every
    channel, so structure holding list of files needs to be protected from
    simultaneous changes by multiple threads.

    Without this patch it's possible to hit kernel oops in
    drm_debugfs_remove_files just by running a couple of xterms with
    looped glxinfo.

    Signed-off-by: Marcin Slusarz
    Reviewed-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Marcin Slusarz
     
  • This hunk seems to have gotten lost when I rebased the patch.

    Reported-by: Sylvain Bertrand
    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • This was only the case if the GPU reset was triggered from the CS ioctl,
    otherwise other processes could happily enter the CS ioctl and wreak havoc
    during the GPU reset.

    This is a little complicated because the GPU reset can be triggered from the
    CS ioctl, in which case we're already holding the mutex, or from other call
    paths, in which case we need to lock the mutex. AFAICT the mutex API doesn't
    allow recursive locking or finding out the mutex owner, so we need to handle
    this with helper functions which allow recursive locking from the same
    process.

    Signed-off-by: Michel Dänzer
    Reviewed-by: Jerome Glisse
    Signed-off-by: Dave Airlie

    Michel Dänzer
     
  • Fixes Coverity buffer not null terminated defect.

    Signed-off-by: Vinson Lee
    Signed-off-by: Dave Airlie

    Vinson Lee
     
  • Snooping code expects this to be the case.

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

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

    Jakob Bornecrantz