• Chris Wilson's avatar
    drm/i915/sdvo: Reorder i2c initialisation before ddc proxy · 56184e3d
    Chris Wilson authored
    The ddc proxy depends upon the underlying i2c bus being selected. Under
    certain configurations, the i2c-adapter functionality is queried during
    initialisation and so may trigger an OOPS during boot. Hence, we need to
    reorder the initialisation of the ddc proxy until after we hook up the i2c
    adapter for the SDVO device.
    
    The condition under which it fails is when the i2c_add_adapter calls
    into i2c_detect which will attempt to probe all valid addresses on the
    adapter iff there is a pre-existing i2c_driver with the same class as
    the freshly added i2c_adapter.
    
    So it appears to depend upon having compiled in (or loaded such a
    module before i915.ko) an i2c-driver that likes to futz over the
    i2c_adapters claiming DDC support.
    Reported-by: default avatarMihai Moldovan <ionic@ionic.de>
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: default avatarKeith Packard <keithp@keithp.com>
    Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
    56184e3d
intel_sdvo.c 79.2 KB