1. 17 12月, 2015 5 次提交
  2. 02 12月, 2015 2 次提交
  3. 25 11月, 2015 1 次提交
  4. 23 11月, 2015 3 次提交
  5. 18 11月, 2015 17 次提交
  6. 12 11月, 2015 3 次提交
  7. 11 11月, 2015 1 次提交
    • V
      drm/i915: Kill intel_runtime_pm_disable() · 18a04a73
      Ville Syrjälä 提交于
      intel_runtime_pm_disable() takes an extra rpm reference which combined
      with the one we leak from intel_display_set_init_power() leaves the
      usage count at <original>+1 after the driver has been unloaded.
      The original ref is dropped explicitly in intel_runtime_pm_enable().
      So the next time we load the driver we can no longer do runtime PM ever.
      
      This used to work, but
      commit 292b990e ("drm/i915: Update power domains on readout.")
      broke things by not dropping the init power domain during fbdev
      teardown. Based on the comment in intel_power_domains_fini(), the
      way it used to to work wasn't intentional. As in we weren't supposed
      to drop the init power during driver unload. And since we no longer
      do, we now leak an extra rpm reference.
      
      So fix things by throwing intel_runtime_pm_disable() to the bin, so
      that the only leaked reference comes from the init power domain.
      
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Daniel Stone <daniels@collabora.com>
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Fixes: 292b990e ("drm/i915: Update power domains on readout.")
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1446815313-9490-2-git-send-email-ville.syrjala@linux.intel.comReviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      18a04a73
  8. 06 11月, 2015 1 次提交
  9. 29 10月, 2015 1 次提交
    • R
      drm/i915/kbl: Introduce Kabylake platform defition. · ef11bdb3
      Rodrigo Vivi 提交于
      Kabylake is a Intel® Processor containing Intel® HD Graphics
      following Skylake.
      
      It is Gen9p5, so it inherits everything from Skylake.
      
      Let's start by adding the platform separated from Skylake
      but reusing most of all features, functions etc. Later we
      rebase the PCI-ID patch without is_skylake=1
      so we don't replace what original Author did there.
      
      Few IS_SKYLAKEs if statements are not being covered by this patch
      on purpose:
         - Workarounds: Kabylake is derivated from Skylake H0 so no
           		  W/As apply here.
         - GuC: A following patch removes Kabylake support with an
           	  explanation: No firmware available yet.
         - DMC/CSR: Done in a separated patch since we need to be carefull
           	      and load the version for revision 7 since
      	      Kabylake is Skylake H0.
      
      v2: relative cleaner commit message and added the missed
          IS_KABYLAKE to intel_i2c.c as pointed out by Jani.
      
      Cc: Jani Nikula <jani.nikula@intel.com>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      ef11bdb3
  10. 19 10月, 2015 1 次提交
  11. 06 10月, 2015 1 次提交
  12. 30 9月, 2015 2 次提交
    • J
      drm/i915: fixup runtime PM handling v2 · 165ed87c
      Jesse Barnes 提交于
      According to the PCI docs and Rafael, we don't need to be doing explicit
      enables and disables in our init and teardown routines, as they're taken
      care of by the PCI core.  So drop the pm_runtime_disable() at teardown
      and pm_runtime_set_active() at init.
      
      This fixes one failure of the basic-pci-d3-state test on my BYT.
      
      v2: drop extra get_noresume() and put_noidle() (Rafael)
      
      Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
      Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
      Acked-by: N"Rafael J. Wysocki" <rjw@rjwysocki.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      165ed87c
    • A
      drm/i915/skl: Block disable call for pw1 if dmc firmware is present. · 08aef7ca
      Animesh Manna 提交于
      Another interesting criteria to work dmc as expected is pw1 to be
      enabled by driver and dmc will shut it off in its execution
      sequence. If already disabled by driver dmc will get confuse and
      behave differently than expected found during pc10 entry issue
      for skl.
      
      So berfore we disable power-well 1, added check if dmc firmware is
      present and driver will not disable power well 1, but for any reason
      if firmware is not present of failed to load we can shut off the
      power well 1 which will save some power.
      
      As skl is currently fully dependent on dmc to go in lowest possible
      power state (dc6) but the same is not applicable for bxt. Display
      engine can enter into dc9 without dmc, hence unblocking disable call.
      
      v1: Initial version.
      
      v2: Rebased as per current patch series.
      
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Damien Lespiau <damien.lespiau@intel.com>
      Cc: Imre Deak <imre.deak@intel.com>
      Cc: Sunil Kamath <sunil.kamath@intel.com>
      Signed-off-by: NAnimesh Manna <animesh.manna@intel.com>
      Signed-off-by: NVathsala Nagaraju <vathsala.nagaraju@intel.com>
      Reviewed-by: NA.Sunil Kamath <sunil.kamath@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      08aef7ca
  13. 28 9月, 2015 1 次提交
    • R
      drm/i915/skl: Don't call intel_prepare_ddi when encoder list isn't yet initialized. · bc5f2ab1
      Rodrigo Vivi 提交于
      In case something goes wrong with power well initialization we were calling
      intel_prepare_ddi during boot while encoder list isnt't initilized.
      
      [    9.618747] i915 0000:00:02.0: Invalid ROM contents
      [    9.631446] [drm] failed to find VBIOS tables
      [    9.720036] BUG: unable to handle kernel NULL pointer dereference at 00000000
      00000058
      [    9.721986] IP: [<ffffffffa014eb72>] ddi_get_encoder_port+0x82/0x190 [i915]
      [    9.723736] PGD 0
      [    9.724286] Oops: 0000 [#1] PREEMPT SMP
      [    9.725386] Modules linked in: intel_powerclamp snd_hda_intel(+) coretemp crc
      32c_intel snd_hda_codec snd_hda_core serio_raw snd_pcm snd_timer i915(+) parport
      _pc parport pinctrl_sunrisepoint pinctrl_intel nfsd nfs_acl
      [    9.730635] CPU: 0 PID: 497 Comm: systemd-udevd Not tainted 4.3.0-rc2-eywa-10
      967-g72de2cfd-dirty #2
      [    9.732785] Hardware name: Intel Corporation Cannonlake Client platform/Skyla
      ke DT DDR4 RVP8, BIOS CNLSE2R1.R00.X021.B00.1508040310 08/04/2015
      [    9.735785] task: ffff88008a704700 ti: ffff88016a1ac000 task.ti: ffff88016a1a
      c000
      [    9.737584] RIP: 0010:[<ffffffffa014eb72>]  [<ffffffffa014eb72>] ddi_get_enco
      der_port+0x82/0x190 [i915]
      [    9.739934] RSP: 0000:ffff88016a1af710  EFLAGS: 00010296
      [    9.741184] RAX: 000000000000004e RBX: ffff88008a9edc98 RCX: 0000000000000001
      [    9.742934] RDX: 000000000000004e RSI: ffffffff81fc1e82 RDI: 00000000ffffffff
      [    9.744634] RBP: ffff88016a1af730 R08: 0000000000000000 R09: 0000000000000578
      [    9.746333] R10: 0000000000001065 R11: 0000000000000578 R12: fffffffffffffff8
      [    9.748033] R13: ffff88016a1af7a8 R14: ffff88016a1af794 R15: 0000000000000000
      [    9.749733] FS:  00007eff2e1e07c0(0000) GS:ffff88016fc00000(0000) knlGS:00000
      00000000000
      [    9.751683] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [    9.753083] CR2: 0000000000000058 CR3: 000000016922b000 CR4: 00000000003406f0
      [    9.754782] Stack:
      [    9.755332]  ffff88008a9edc98 ffff88008a9ed800 ffffffffa01d07b0 00000000fffb9
      09e
      [    9.757232]  ffff88016a1af7d8 ffffffffa0154ea7 0000000000000246 ffff88016a370
      080
      [    9.759182]  ffff88016a370080 ffff88008a9ed800 0000000000000246 ffff88008a9ed
      c98
      [    9.761132] Call Trace:
      [    9.761782]  [<ffffffffa0154ea7>] intel_prepare_ddi+0x67/0x860 [i915]
      [    9.763332]  [<ffffffff81a56996>] ? _raw_spin_unlock_irqrestore+0x26/0x40
      [    9.765031]  [<ffffffffa00fad01>] ? gen9_read32+0x141/0x360 [i915]
      [    9.766531]  [<ffffffffa00b43e1>] skl_set_power_well+0x431/0xa80 [i915]
      [    9.768181]  [<ffffffffa00b4a63>] skl_power_well_enable+0x13/0x20 [i915]
      [    9.769781]  [<ffffffffa00b2188>] intel_power_well_enable+0x28/0x50 [i915]
      [    9.771481]  [<ffffffffa00b4d52>] intel_display_power_get+0x92/0xc0 [i915]
      [    9.773180]  [<ffffffffa00b4fcb>] intel_display_set_init_power+0x3b/0x40 [i91
      5]
      [    9.774980]  [<ffffffffa00b5170>] intel_power_domains_init_hw+0x120/0x520 [i9
      15]
      [    9.776780]  [<ffffffffa0194c61>] i915_driver_load+0xb21/0xf40 [i915]
      
      So let's protect this case.
      
      My first attempt was to remove the intel_prepare_ddi, but Daniel had pointed out
      this is really needed to restore those registers values. And Imre pointed out
      that this case was without the flag protection and this was actually where things
      were going bad. So I've just checked and this indeed solves my issue.
      
      The regressing intel_prepare_ddi call was added in
      
      commit 1d2b9526
      Author: Damien Lespiau <damien.lespiau@intel.com>
      Date:   Fri Mar 6 18:50:53 2015 +0000
      
          drm/i915/skl: Restore the DDI translation tables when enabling PW1
      
      Cc: Imre Deak <imre.deak@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Reviewed-by: NImre Deak <imre.deak@intel.com>
      [Jani: regression reference]
      Signed-off-by: NJani Nikula <jani.nikula@intel.com>
      bc5f2ab1
  14. 14 9月, 2015 1 次提交