1. 17 12月, 2013 9 次提交
  2. 14 12月, 2013 2 次提交
  3. 13 12月, 2013 1 次提交
  4. 12 12月, 2013 4 次提交
    • V
      drm/i915: FBC_CONTROL2 is gen4 only · 159f9875
      Ville Syrjälä 提交于
      Gen2 and gen3 don't have the FBC_CONTROL2 register, so don't
      touch it.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      159f9875
    • V
      drm/i915: Gen2 FBC1 CFB pitch wants 32B units · 42a430f5
      Ville Syrjälä 提交于
      On gen2 the compressed frame buffer pitch is specified in 32B units
      rather than the 64B units used on gen3+.
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      42a430f5
    • P
      drm/i915: touch VGA MSR after we enable the power well · f9dcb0df
      Paulo Zanoni 提交于
      Fixes regression introduced by:
          commit bf51d5e2
          Author: Paulo Zanoni <paulo.r.zanoni at intel.com>
          Date:   Wed Jul 3 17:12:13 2013 -0300
              drm/i915: switch disable_power_well default value to 1
      
      The bug I'm seeing can be reproduced with:
        - Have vgacon configured/enabled
        - Make sure the power well gets disabled, then enabled. You can
          check this by seeing the messages print by hsw_set_power_well
        - Stop your display manager
        - echo 0 > /sys/class/vtconsole/vtcon1/bind
      
      I can easily reproduce this by blacklising snd_hda_intel and booting
      with eDP+HDMI.
      
      If you do this and then look at dmesg, you'll see we're printing
      infinite "Unclaimed register" messages. This is happening because
      we're stuck on an infinite loop inside console_unlock(), which is
      calling many functions from vgacon.c. And the code that's triggering
      the error messages is from vgacon_set_cursor_size().
      
      After we re-enable the power well, every time we read/write the VGA
      address 0x3d5 we get an "unclaimed register" interrupt (ERR_INT) and
      print error messages. If we write anything to the VGA MSR register (it
      doesn't really matter which value you write to bit 0), any
      reads/writes to 0x3d5 _don't_ trigger the "unclaimed register" errors
      anymore (even if MSR bit 0 is zero). So what happens with the current
      code is that when we unbind i915 and bind vgacon, we call
      console_unlock(). Function console_unlock() is responsible for
      printing any messages that were supposed to be print when the console
      was locked, so it calls the TTY layer, which calls the console layer,
      which calls vgacon to print the messages. At this point, vgacon
      eventually calls vgacon_set_cursor_size(), which touches 0x3d5, which
      triggers unclaimed register interrupts. The problem is that when we
      get these interrupts, we print the error messages, so we add more work
      to console_unlock(), which will try to print it again, and then call
      vgacon again, trigger a new interrupt, which will put more stuff to
      the buffer, and then we'll be stuck at console_unlock() forever.
      
      If you patch intel_uncore.c to not print anything when we detect
      unclaimed registers, we won't get into the console_unlock() infinite
      loop and the driver unbind will work just fine. We will still be
      getting interrupts every time vgacon touches those registers, but we
      will survive. This is a valid experiment, but IMHO it's not the real
      fix: if we don't print any error messages we will still keep getting
      the interrupts, and if we disable ERR_INT we won't get the interrupt
      anymore, but we will also stop getting all the other error interrupts.
      
      I talked about this problem with the HW engineer and his
      recommendation is "So don't do any VGA I/O or memory access while the
      power well is disabled, and make to re-program MSR after enabling the
      power well and before using VGA I/O or memory accesses.".
      
      Notice that this is just a partial fix to fd.o #67813. This fixes the
      case where the power well is already enabled when we unbind, not when
      it's disabled when we unbind.
      
      V2: - Rebase (first version was sent in September).
      V3: - Complete rewrite of the same fix: smaller implementation,
            improved commit message.
      
      Testcase: igt/drv_module_reload
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=67813Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f9dcb0df
    • P
      drm/i915: extract hsw_power_well_post_{enable, disable} · d5e8fdc8
      Paulo Zanoni 提交于
      I want to add more code to the post_enable function.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d5e8fdc8
  5. 11 12月, 2013 2 次提交
    • P
      drm/i915: add initial Runtime PM functions · 8a187455
      Paulo Zanoni 提交于
      This patch adds the initial infrastructure to allow a Runtime PM
      implementation that sets the device to its D3 state. The patch just
      adds the necessary callbacks and the initial infrastructure.
      
      We still don't have any platform that actually uses this
      infrastructure, we still don't call get/put in all the places we need
      to, and we don't have any function to save/restore the state of the
      registers. This is not a problem since no platform uses the code added
      by this patch. We have a few people simultaneously working on runtime
      PM, so this initial code could help everybody make their plans.
      
      V2: - Move some functions to intel_pm.c
          - Remove useless pm_runtime_allow() call at init
          - Remove useless pm_runtime_mark_last_busy() call at get
          - Use pm_runtime_get_sync() instead of 2 calls
          - Add a WARN to check if we're really awake
      
      V3: - Rebase.
      
      V4: - Don't need to call pci_{save,restore}_state and
            pci_set_power_sate, since they're already called by the PCI
            layer
          - Remove wrong pm_runtime_enable() call at init_runtime_pm
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      8a187455
    • P
      drm/i915: get a PC8 reference when enabling the power well · d62292c8
      Paulo Zanoni 提交于
      In the current code, at haswell_modeset_global_resources, first we
      decide if we want to enable/disable the power well, then we decide if
      we want to enable/disable PC8. On the case where we're enabling PC8
      this works fine, but on the case where we disable PC8 due to a non-eDP
      monitor being enabled, we first enable the power well and then disable
      PC8. Although wrong, this doesn't seem to be causing any problems now,
      and we don't even see anything in dmesg. But the patches for runtime
      D3 turn this problem into a real bug, so we need to fix it.
      
      This fixes the "modeset-non-lpsp" subtest from the "pm_pc8" test from
      intel-gpu-tools.
      
      v2: - Rebase (i915_disable_power_well).
      v3: - More reabase.
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d62292c8
  6. 04 12月, 2013 2 次提交
  7. 28 11月, 2013 5 次提交
  8. 27 11月, 2013 6 次提交
  9. 25 11月, 2013 1 次提交
  10. 21 11月, 2013 1 次提交
  11. 20 11月, 2013 1 次提交
    • D
      drm/i915: Fix gen3 self-refresh watermarks · f727b490
      Daniel Vetter 提交于
      This regression has been introduced in
      
      commit 4fe8590a
      Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Date:   Wed Sep 4 18:25:22 2013 +0300
      
          drm/i915: Use adjusted_mode appropriately when computing watermarks
      
      I guess we should renable the enabled local variable into something a
      notch more descriptive, but that's something for -next.
      
      The effect on my i945gme netbook is pretty severe amounts of underruns
      - usually the very first pixel gets used for the entire screeen.
      
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      f727b490
  12. 16 11月, 2013 1 次提交
  13. 14 11月, 2013 1 次提交
  14. 09 11月, 2013 4 次提交