drm/amdgpu: use .early_unregister hook to remove DP AUX i2c
authorGrazvydas Ignotas <notasas@gmail.com>
Sun, 9 Oct 2016 17:28:19 +0000 (20:28 +0300)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 12 Oct 2016 19:44:12 +0000 (15:44 -0400)
commit40492f60794aaf32576cb42d9af86eed785a6e63
treee34852ace546e9ed191cc74273b1ee753f6bed35
parent69405d3da98b48633b78a49403e4f9cdb7c6a0f5
drm/amdgpu: use .early_unregister hook to remove DP AUX i2c

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: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c