1. 23 Mar, 2018 4 commits
    • Piotr Piórkowski's avatar
      drm/i915/guc: Fix null pointer dereference when GuC FW is not available · 28e0e8ac
      Piotr Piórkowski authored
      If GuC firmware is not available on the system and we load i915 with enable
      GuC, then we hit this null pointer dereference issue:
      
      [   71.098873] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
      [   71.098938] IP: intel_uc_fw_upload+0x1f/0x360 [i915]
      [   71.098947] PGD 0 P4D 0
      [   71.098956] Oops: 0000 [#1] PREEMPT SMP PTI
      [   71.098965] Modules linked in: i915(O+) netconsole x86_pkg_temp_thermal intel_powerclamp coretemp crct10dif_pclmul crc32_pclmul ghash_clmulni_intel mei_me i2c_i801 prime_numbers mei [last unloaded: i915]
      [   71.099005] CPU: 2 PID: 1167 Comm: insmod Tainted: G     U  W  O     4.16.0-rc1+ #337
      [   71.099018] Hardware name: /NUC6i5SYB, BIOS SYSKLi35.86A.0065.2018.0103.1000 01/03/2018
      [   71.099077] RIP: 0010:intel_uc_fw_upload+0x1f/0x360 [i915]
      [   71.099087] RSP: 0018:ffffc90000417aa0 EFLAGS: 00010282
      [   71.099097] RAX: 0000000000000000 RBX: ffff88084cad12f8 RCX: ffffffffa03e9357
      [   71.099108] RDX: 0000000000000002 RSI: ffffffffa034dba0 RDI: ffff88084cad12f8
      [   71.099118] RBP: 0000000000000002 R08: ffff88085344ca90 R09: 0000000000000001
      [   71.099128] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88084cad0000
      [   71.099139] R13: ffffffffa034dba0 R14: 00000000fffffff5 R15: ffff88084cad12b0
      [   71.099151] FS:  00007f7f24ae2740(0000) GS:ffff88085e200000(0000) knlGS:0000000000000000
      [   71.099162] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   71.099171] CR2: 0000000000000008 CR3: 0000000855f48001 CR4: 00000000003606e0
      [   71.099182] Call Trace:
      [   71.099246]  intel_uc_init_hw+0xc8/0x520 [i915]
      [   71.099303]  i915_gem_init_hw+0x11f/0x2d0 [i915]
      [   71.099364]  i915_gem_init+0x2b9/0x640 [i915]
      [   71.099413]  i915_driver_load+0xb74/0x1110 [i915]
      [   71.099462]  i915_pci_probe+0x2e/0x90 [i915]
      [   71.099476]  pci_device_probe+0xa1/0x130
      [   71.099488]  driver_probe_device+0x302/0x470
      [   71.099502]  __driver_attach+0xb9/0xe0
      [   71.099513]  ? driver_probe_device+0x470/0x470
      [   71.099525]  ? driver_probe_device+0x470/0x470
      [   71.099538]  bus_for_each_dev+0x64/0x90
      [   71.099550]  bus_add_driver+0x164/0x260
      [   71.099561]  ? 0xffffffffa04d6000
      [   71.099572]  driver_register+0x57/0xc0
      [   71.099582]  ? 0xffffffffa04d6000
      [   71.099593]  do_one_initcall+0x3b/0x160
      [   71.099606]  ? kmem_cache_alloc_trace+0x1c3/0x2a0
      [   71.099621]  do_init_module+0x5b/0x1f9
      [   71.099635]  load_module+0x2467/0x2a70
      [   71.099654]  ? SyS_finit_module+0xbd/0xe0
      [   71.099668]  SyS_finit_module+0xbd/0xe0
      [   71.099682]  do_syscall_64+0x73/0x1c0
      [   71.099694]  entry_SYSCALL_64_after_hwframe+0x26/0x9b
      [   71.099706] RIP: 0033:0x7f7f23fb40d9
      [   71.099717] RSP: 002b:00007ffda7d67ed8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
      [   71.099734] RAX: ffffffffffffffda RBX: 000055f96e2a8870 RCX: 00007f7f23fb40d9
      [   71.099748] RDX: 0000000000000000 RSI: 000055f96e2a8260 RDI: 0000000000000003
      [   71.099763] RBP: 000055f96e2a8260 R08: 0000000000000000 R09: 00007ffda7d68088
      [   71.099777] R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000000000
      [   71.099791] R13: 000055f96e2a8830 R14: 0000000000000000 R15: 000055f96e2a8260
      [   71.099810] Code: 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 41 55 41 54 49 89 f5 55 53 48 c7 c1 57 93 3e a0 48 8b 47 10 48 89 fb 4c 8b 07 <48> 8b 68 08 8b 47 28 85 c0 74 15 83 f8 01 48 c7 c1 5b 93 3e a0
      [   71.100004] RIP: intel_uc_fw_upload+0x1f/0x360 [i915] RSP: ffffc90000417aa0
      [   71.100020] CR2: 0000000000000008
      [   71.100031] ---[ end trace d8ac93c30ceff5b2 ]--
      
      Fixes: 6b0478fb ("drm/i915: Implement dynamic GuC WOPCM offset and size calculation")
      
      v2: don't assume it is always GuC FW (Michal)
      v3: added a new variable to avoid exceeding the number of characters in the
      line (Michal)
      Signed-off-by: default avatarPiotr Piórkowski <piotr.piorkowski@intel.com>
      Reported-by: default avatarRadoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
      Cc: Michał Winiarski <michal.winiarski@intel.com>
      Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
      Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Jackie Li <yaodong.li@intel.com>
      Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
      Reviewed-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
      Reviewed-by: default avatarJackie Li <yaodong.li@intel.com>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180323112319.16293-1-piotr.piorkowski@intel.com
      28e0e8ac
    • Ville Syrjälä's avatar
      drm/i915: Don't spew errors when resetting HDMI scrambling/bit clock ratio fails · 277ab5ab
      Ville Syrjälä authored
      When we're disabling the HDMI link we try to reset the scrambling and
      TMDS bit clock ratio back to the default values. This will fail if the
      sink has already been disconnected. Thus we should not print an error
      message when resetting the scrambling/TMDS bit clock ratio fail during
      disable. During enable we do want the error, and during disable we may
      still want to know what happended for debug purposes so let's use
      DRM_DEBUG_KMS() there.
      
      v2: Remember them consts
      v3: Go back to just one function and print the errors/debugs
          from callers (Shashank)
      
      Cc: Shashank Sharma <shashank.sharma@intel.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105644
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105655Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180322154707.22103-1-ville.syrjala@linux.intel.comReviewed-by: default avatarShashank Sharma <shashank.sharma@intel.com>
      277ab5ab
    • Tvrtko Ursulin's avatar
      drm/i915: Skip logging impossible slices · 0ef904bb
      Tvrtko Ursulin authored
      Log up to sseu->max_slices instead basing on ARRAY_SIZE since to avoid
      printing impossible and empty slices for a platform.
      
      Also compact slice total and slice mask into one log line.
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
      Reviewed-by: default avatarLionel Landwerlin <lionel.g.landwerlin@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180321103228.32205-1-tvrtko.ursulin@linux.intel.com
      0ef904bb
    • Mika Kuoppala's avatar
      drm/i915: Avoid setting ring freq on invalid rps freqs · 66c1f77a
      Mika Kuoppala authored
      Looping through rps frequencies when both min and max are zero
      ends up into an endless loop. This can happen during hardware
      enablement.
      
      Bail out early if rps frequencies are not correctly set yet.
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
      Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20180320151734.11761-1-mika.kuoppala@linux.intel.com
      66c1f77a
  2. 22 Mar, 2018 6 commits
  3. 21 Mar, 2018 10 commits
  4. 20 Mar, 2018 7 commits
  5. 19 Mar, 2018 13 commits