drm/kms: Simplify setup of the initial I2C encoder config.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 22 Jul 2010 15:07:38 +0000 (17:07 +0200)
committerDave Airlie <airlied@redhat.com>
Wed, 4 Aug 2010 23:37:45 +0000 (09:37 +1000)
In most use cases the driver will be using the same static config all
the time: interpreting i2c_board_info::platform_data as the default
config we can can save the GPU driver a redundant set_config() call.

Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_encoder_slave.c

index f0184696edf3bef667b786e53488f0ed9c08aaa2..d62c064fbaa02e747328d8a932fa58eef96cbedb 100644 (file)
@@ -41,6 +41,9 @@
  * &drm_encoder_slave. The @slave_funcs field will be initialized with
  * the hooks provided by the slave driver.
  *
+ * If @info->platform_data is non-NULL it will be used as the initial
+ * slave config.
+ *
  * Returns 0 on success or a negative errno on failure, in particular,
  * -ENODEV is returned when no matching driver is found.
  */
@@ -85,6 +88,10 @@ int drm_i2c_encoder_init(struct drm_device *dev,
        if (err)
                goto fail_unregister;
 
+       if (info->platform_data)
+               encoder->slave_funcs->set_config(&encoder->base,
+                                                info->platform_data);
+
        return 0;
 
 fail_unregister: