1. 22 Jun, 2020 4 commits
  2. 21 Jun, 2020 4 commits
  3. 20 Jun, 2020 6 commits
  4. 19 Jun, 2020 7 commits
  5. 18 Jun, 2020 5 commits
  6. 17 Jun, 2020 1 commit
  7. 16 Jun, 2020 4 commits
  8. 15 Jun, 2020 6 commits
  9. 11 Jun, 2020 3 commits
    • Imre Deak's avatar
      drm/dp_mst: Fix flushing the delayed port/mstb destroy work · 72822c3b
      Imre Deak authored
      Atm, a pending delayed destroy work during module removal will be
      canceled, leaving behind MST ports, mstbs. Fix this by using a dedicated
      workqueue which will be drained of requeued items as well when
      destroying it.
      
      v2:
      - Check if wq is NULL before calling destroy_workqueue().
      
      Cc: Lyude Paul <lyude@redhat.com>
      Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Reviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200610134704.25270-1-imre.deak@intel.com
      72822c3b
    • Imre Deak's avatar
      drm/dp_mst: Fix the DDC I2C device registration of an MST port · d8bd15b3
      Imre Deak authored
      During the initial MST probing an MST port's I2C device will be
      registered using the kdev of the DRM device as a parent. Later after MST
      Connection Status Notifications this I2C device will be re-registered
      with the kdev of the port's connector. This will also move
      inconsistently the I2C device's sysfs entry from the DRM device's sysfs
      dir to the connector's dir.
      
      Fix the above by keeping the DRM kdev as the parent of the I2C device.
      
      Ideally the connector's kdev would be used as a parent, similarly to
      non-MST connectors, however that needs some more refactoring to ensure
      the connector's kdev is already available early enough. So keep the
      existing (initial) behavior for now.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200607212522.16935-2-imre.deak@intel.com
      d8bd15b3
    • Imre Deak's avatar
      drm/dp_mst: Fix the DDC I2C device unregistration of an MST port · 7d115076
      Imre Deak authored
      The WARN below triggers during the removal of an MST port. The problem
      is that the parent device's (the connector's kdev) sysfs directory is
      removed recursively when the connector is unregistered (even though the
      I2C device holds a reference on the parent device). To fix this set
      first the Peer Device Type to none which will remove the I2C device.
      
      Note that atm, inconsistently, the parent of the I2C device is initially set to
      the DRM kdev and after a Connection Status Notification the parent may be reset
      to be the connector's kdev. This problem is addressed by the next patch.
      
      [ 4462.989299] ------------[ cut here ]------------
      [ 4463.014940] sysfs group 'power' not found for kobject 'i2c-24'
      [ 4463.034664] WARNING: CPU: 0 PID: 970 at fs/sysfs/group.c:281 sysfs_remove_group+0x71/0x80
      [ 4463.044357] Modules linked in: snd_hda_intel i915 drm_kms_helper(O) drm netconsole snd_hda_codec_hdmi mei_hdcp x86_pkg_temp_thermal coretemp crct10dif_pclmul snd_intel_dspcf
      g crc32_pclmul snd_hda_codec snd_hwdep ghash_clmulni_intel snd_hda_core asix usbnet kvm_intel mii i2c_algo_bit snd_pcm syscopyarea sysfillrect e1000e sysimgblt fb_sys_fops prim
      e_numbers ptp pps_core i2c_i801 r8169 mei_me realtek mei [last unloaded: drm]
      [ 4463.044399] CPU: 0 PID: 970 Comm: kworker/0:2 Tainted: G           O      5.7.0+ #172
      [ 4463.044402] Hardware name: Intel Corporation Tiger Lake Client Platform/TigerLake U DDR4 SODIMM RVP
      [ 4463.044423] Workqueue: events drm_dp_delayed_destroy_work [drm_kms_helper]
      [ 4463.044428] RIP: 0010:sysfs_remove_group+0x71/0x80
      [ 4463.044431] Code: 48 89 df 5b 5d 41 5c e9 cd b6 ff ff 48 89 df e8 95 b4 ff ff eb cb 49 8b 14 24 48 8b 75 00 48 c7 c7 20 0f 3f 82 e8 9f c5 d7 ff <0f> 0b 5b 5d 41 5c c3 0f 1f
      84 00 00 00 00 00 48 85 f6 74 31 41 54
      [ 4463.044433] RSP: 0018:ffffc900018bfbf0 EFLAGS: 00010282
      [ 4463.044436] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000001
      [ 4463.044439] RDX: 0000000080000001 RSI: ffff88849e828f38 RDI: 00000000ffffffff
      [ 4463.052970] [drm:drm_atomic_get_plane_state [drm]] Added [PLANE:100:plane 2B] 00000000c2160caa state to 00000000d172564a
      [ 4463.070533] RBP: ffffffff820cea20 R08: ffff88847f4b8958 R09: 0000000000000000
      [ 4463.070535] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88848a725018
      [ 4463.070537] R13: 0000000000000000 R14: ffffffff827090e0 R15: 0000000000000002
      [ 4463.070539] FS:  0000000000000000(0000) GS:ffff88849e800000(0000) knlGS:0000000000000000
      [ 4463.070541] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 4463.070543] CR2: 00007fdf8a756538 CR3: 0000000489684001 CR4: 0000000000760ef0
      [ 4463.070545] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [ 4463.070547] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [ 4463.070549] PKRU: 55555554
      [ 4463.070551] Call Trace:
      [ 4463.070560]  device_del+0x84/0x400
      [ 4463.070571]  cdev_device_del+0x10/0x30
      [ 4463.070578]  put_i2c_dev+0x69/0x80
      [ 4463.070584]  i2cdev_detach_adapter+0x2e/0x60
      [ 4463.070591]  notifier_call_chain+0x34/0x90
      [ 4463.070599]  blocking_notifier_call_chain+0x3f/0x60
      [ 4463.070606]  device_del+0x7c/0x400
      [ 4463.087817]  ? lockdep_init_map_waits+0x57/0x210
      [ 4463.087825]  device_unregister+0x11/0x60
      [ 4463.087829]  i2c_del_adapter+0x249/0x310
      [ 4463.087846]  drm_dp_port_set_pdt+0x6b/0x2c0 [drm_kms_helper]
      [ 4463.087862]  drm_dp_delayed_destroy_work+0x2af/0x350 [drm_kms_helper]
      [ 4463.087876]  process_one_work+0x268/0x600
      [ 4463.105438]  ? __schedule+0x30c/0x920
      [ 4463.105451]  worker_thread+0x37/0x380
      [ 4463.105457]  ? process_one_work+0x600/0x600
      [ 4463.105462]  kthread+0x140/0x160
      [ 4463.105466]  ? kthread_park+0x80/0x80
      [ 4463.105474]  ret_from_fork+0x24/0x50
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
      Reviewed-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
      Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200607212522.16935-1-imre.deak@intel.com
      7d115076