1. 17 Jul, 2014 3 commits
    • Mario Kleiner's avatar
      drm/radeon: Prevent too early kms-pageflips triggered by vblank. · f53f81b2
      Mario Kleiner authored
      Since 3.16-rc1 we have this new failure:
      
      When the userspace XOrg ddx schedules vblank events to
      trigger deferred kms-pageflips, e.g., via the OML_sync_control
      extension call glXSwapBuffersMscOML(), or if a glXSwapBuffers()
      is called immediately after completion of a previous swapbuffers
      call, e.g., in a tight rendering loop with minimal rendering,
      it happens frequently that the pageflip ioctl() is executed
      within the same vblank in which a previous kms-pageflip completed,
      or - for deferred swaps - always one vblank earlier than requested
      by the client app.
      
      This causes premature pageflips and detection of failure by
      the ddx, e.g., XOrg log warnings like...
      
      "(WW) RADEON(1): radeon_dri2_flip_event_handler: Pageflip
      completion event has impossible msc 201025 < target_msc 201026"
      
      ... and error/invalid return values of glXWaitForSbcOML() and
      Intel_swap_events extension.
      
      Reason is the new way in which kms-pageflips are programmed
      since 3.16.
      
      This commit changes the time window in which the hw can
      execute pending programmed pageflips. Before, a pending flip
      would get executed anywhere within the vblank interval. Now
      a pending flip only gets executed at the leading edge of
      vblank (start of front porch), making sure that a invocation
      of the pageflip ioctl() within a given vblank interval will
      only lead to pageflip completion in the following vblank.
      
      Tested to death on a DCE-4 card.
      Signed-off-by: default avatarMario Kleiner <mario.kleiner.de@gmail.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      f53f81b2
    • Alex Deucher's avatar
      drm/radeon: set default bl level to something reasonable · 201bb624
      Alex Deucher authored
      If the value in the scratch register is 0, set it to the
      max level.  This fixes an issue where the console fb blanking
      code calls back into the backlight driver on unblank and then
      sets the backlight level to 0 after the driver has already
      set the mode and enabled the backlight.
      
      bugs:
      https://bugs.freedesktop.org/show_bug.cgi?id=81382
      https://bugs.freedesktop.org/show_bug.cgi?id=70207Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Tested-by: default avatarDavid Heidelberger <david.heidelberger@ixit.cz>
      Cc: stable@vger.kernel.org
      201bb624
    • Alex Deucher's avatar
      drm/radeon: avoid leaking edid data · 0ac66eff
      Alex Deucher authored
      In some cases we fetch the edid in the detect() callback
      in order to determine what sort of monitor is connected.
      If that happens, don't fetch the edid again in the get_modes()
      callback or we will leak the edid.
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      0ac66eff
  2. 11 Jul, 2014 1 commit
  3. 10 Jul, 2014 7 commits
  4. 09 Jul, 2014 17 commits
  5. 08 Jul, 2014 8 commits
  6. 07 Jul, 2014 4 commits