• Grazvydas Ignotas's avatar
    drm/amdgpu: use .early_unregister hook to remove DP AUX i2c · 40492f60
    Grazvydas Ignotas authored
    When DisplayPort AUX channel i2c adapter is registered, drm_connector's
    kdev member is used as a parent, so we get sysfs structure like:
      /drm/card1/card1-DP-2/i2c-12
    Because of that, there is a problem when drm core (and not the driver)
    calls drm_connector_unregister(), it removes parent sysfs entries
    ('card1-DP-2' in our example) while the i2c adapter is still registered.
    Later we get a WARN when we try to unregister the i2c adapter:
    
      WARNING: CPU: 3 PID: 1374 at fs/sysfs/group.c:243 sysfs_remove_group+0x14c/0x150
      sysfs group ffffffff82911e40 not found for kobject 'i2c-12'
    
    To fix it, we can use the .early_unregister hook to unregister the i2c
    adapter before drm_connector's sysfs is torn down.
    Signed-off-by: default avatarGrazvydas Ignotas <notasas@gmail.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    40492f60
amdgpu_connectors.c 65.4 KB