drm/i915/i2c: Track the parent encoder rather than just the dev
The SDVO proxy i2c adapter wants to be able to use information stored in
the encoder, so pass that through intel_i2c rather than iterate over all
known encoders every time.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index df42a9c..7de7d1a 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -362,7 +362,8 @@
intel_encoder = &intel_dvo->base;
/* Set up the DDC bus */
- intel_encoder->ddc_bus = intel_i2c_create(dev, GPIOD, "DVODDC_D");
+ intel_encoder->ddc_bus = intel_i2c_create(intel_encoder,
+ GPIOD, "DVODDC_D");
if (!intel_encoder->ddc_bus)
goto free_intel;
@@ -389,10 +390,10 @@
*/
if (i2cbus != NULL)
intel_i2c_destroy(i2cbus);
- if (!(i2cbus = intel_i2c_create(dev, gpio,
- gpio == GPIOB ? "DVOI2C_B" : "DVOI2C_E"))) {
+ i2cbus = intel_i2c_create(intel_encoder, gpio,
+ gpio == GPIOB ? "DVOI2C_B" : "DVOI2C_E");
+ if (i2cbus == NULL)
continue;
- }
intel_dvo->dev = *dvo;
ret = dvo->dev_ops->init(&intel_dvo->dev, i2cbus);