1. 18 11月, 2015 2 次提交
    • I
      drm/i915/skl: init/uninit display core as part of the HW power domain state · 73dfc227
      Imre Deak 提交于
      We need to initialize the display core part early, before initializing
      the rest of the display power state. This is also described in the bspec
      termed "Display initialization sequence". Atm we run this sequence
      during driver loading after power domain HW state initialization which
      is too late and during runtime suspend/resume which is unneeded and can
      interere with DMC functionality which handles HW resources toggled
      by this init/uninit sequence automatically. The init sequence must be
      run as the first step of HW power state initialization and during
      system resume. The uninit sequence must be run during system suspend.
      
      To address the above move the init sequence to the initial HW power
      state setup and the uninit sequence to a new power domains suspend
      function called during system suspend.
      
      As part of the init sequence we also have to reprogram the DMC firmware
      as it's lost across a system suspend/resume cycle.
      
      After this change CD clock initialization during driver loading will
      happen only later after other dependent HW/SW parts are initialized,
      while during system resume it will get initialized as the last step of
      the init sequence. This distinction can be removed by some refactoring
      of platform independent parts. I left this refactoring out from this
      series since I didn't want to change non-SKL parts. This is a TODO for
      later.
      
      v2:
      - fix error path in i915_drm_suspend_late()
      - don't try to re-program the DMC firmware if it failed to load
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NPatrik Jakobsson <patrik.jakobsson@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1447774433-20834-1-git-send-email-imre.deak@intel.com
      73dfc227
    • D
      drm/i915: Make turning on/off PW1 and Misc I/O part of the init/fini sequences · 2f693e28
      Damien Lespiau 提交于
      Before this patch, we used the intel_display_power_{get,put} functions
      to make sure the PW1 and Misc I/O power wells were enabled all the
      time while LCPLL was enabled. We called a get() at
      intel_ddi_pll_init() when we discovered that LCPLL was enabled, then
      we would call put/get at skl_{un,}init_cdclk().
      
      The problem is that skl_uninit_cdclk() is indirectly called by
      intel_runtime_suspend(). So it will only release its power well
      _after_ we already decided to runtime suspend. But since we only
      decide to runtime suspend after all power wells and refcounts are
      released, that basically means we will never decide to runtime
      suspend.
      
      So what this patch does to fix that problem is move the PW1 + Misc I/O
      power well handling out of the runtime PM mechanism: instead of
      calling intel_display_power_{get_put} - functions that touch the
      refcount -, we'll call the low level intel_power_well_{en,dis}able,
      which don't change the refcount. This way, it is now possible for the
      refcount to actually reach zero, and we'll now start runtime
      suspending/resuming.
      
      v2 (from Paulo):
        - Write a commit message since the original patch left it empty.
        - Rebase after the intel_power_well_{en,dis}able rename.
        - Use lookup_power_well() instead of hardcoded indexes.
      
      Testcase: igt/pm_rpm/rte (and every other rpm test)
      Signed-off-by: NDamien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Signed-off-by: NPaulo Zanoni <paulo.r.zanoni@intel.com>
      Reviewed-by: NPatrik Jakobsson <patrik.jakobsson@linux.intel.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92211
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92605Signed-off-by: NImre Deak <imre.deak@intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1446657859-9598-4-git-send-email-imre.deak@intel.com
      2f693e28
  2. 16 11月, 2015 1 次提交
  3. 12 11月, 2015 3 次提交
  4. 11 11月, 2015 2 次提交
  5. 10 11月, 2015 3 次提交
  6. 05 11月, 2015 3 次提交
  7. 04 11月, 2015 1 次提交
  8. 02 11月, 2015 2 次提交
  9. 22 10月, 2015 4 次提交
  10. 21 10月, 2015 2 次提交
  11. 19 10月, 2015 2 次提交
  12. 13 10月, 2015 1 次提交
  13. 09 10月, 2015 1 次提交
  14. 06 10月, 2015 1 次提交
  15. 02 10月, 2015 1 次提交
    • S
      drm/i915/bxt: Modify BXT BLC according to VBT changes · 022e4e52
      Sunil Kamath 提交于
      Latest VBT mentions which set of registers will be used for BLC,
      as controller number field. Making use of this field in BXT
      BLC implementation. Also, the registers are used in case control
      pin indicates display DDI. Adding a check for this.
      According to Bspec, BLC_PWM_*_2 uses the display utility pin for output.
      To use backlight 2, enable the utility pin with mode = PWM
         v2: Jani's review comments
         addressed
             - Add a prefix _ to BXT BLC registers definitions.
             - Add "bxt only" comment for u8 controller
             - Remove control_pin check for DDI controller
             - Check for valid controller values
             - Set pipe bits in UTIL_PIN_CTL
             - Enable/Disable UTIL_PIN_CTL in enable/disable_backlight()
             - If BLC 2 is used, read active_low_pwm from UTIL_PIN polarity
         Satheesh's review comment addressed
             - If UTIL PIN is already enabled, BIOS would have programmed it. No
             need to disable and enable again.
         v3: Jani's review comments
             - add UTIL_PIN_PIPE_MASK and UTIL_PIN_MODE_MASK
             - Disable UTIL_PIN if controller 1 is used
             - Mask out UTIL_PIN_PIPE_MASK and UTIL_PIN_MODE_MASK before enabling
             UTIL_PIN
             - check valid controller value in intel_bios.c
             - add backlight.util_pin_active_low
             - disable util pin before enabling
         v4: Change for BXT-PO branch:
         Stubbed unwanted definition which was existing before
         because of DC6 patch.
         UTIL_PIN_MODE_PWM     (0x1b << 24)
      
      v2: Fixed Jani's review comment.
      
      v3: Split the backight PWM frequency programming into separate patch,
          in cases BIOS doesn't initializes it.
      
      v4: Starting afresh and not modifying existing state for backlight, as
          per Jani's recommendation.
      
      v5: Fixed Jani's review comment wrt util pin enable
      Signed-off-by: NVandana Kannan <vandana.kannan@intel.com>
      Signed-off-by: NSunil Kamath <sunil.kamath@intel.com>
      Signed-off-by: NUma Shankar <uma.shankar@intel.com>
      Reviewed-by: NJani Nikula <jani.nikula@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      022e4e52
  16. 30 9月, 2015 7 次提交
  17. 25 9月, 2015 1 次提交
  18. 23 9月, 2015 3 次提交