Ben Skeggs 71e9b67
From 74ef65374ae6d0eead4a631aea3aca80d016ff0f Mon Sep 17 00:00:00 2001
Ben Skeggs 71e9b67
From: Francisco Jerez <currojerez@riseup.net>
Ben Skeggs 71e9b67
Date: Thu, 22 Jul 2010 17:07:38 +0200
Ben Skeggs 71e9b67
Subject: [PATCH 1/5] drm-simplify-i2c-config
Ben Skeggs 71e9b67
Ben Skeggs 71e9b67
drm/kms: Simplify setup of the initial I2C encoder config.
Ben Skeggs 71e9b67
Ben Skeggs 71e9b67
In most use cases the driver will be using the same static config all
Ben Skeggs 71e9b67
the time: interpreting i2c_board_info::platform_data as the default
Ben Skeggs 71e9b67
config we can can save the GPU driver a redundant set_config() call.
Ben Skeggs 71e9b67
Ben Skeggs 71e9b67
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Ben Skeggs 71e9b67
Signed-off-by: Dave Airlie <airlied@redhat.com>
Ben Skeggs 71e9b67
---
Ben Skeggs 71e9b67
 drivers/gpu/drm/drm_encoder_slave.c |    7 +++++++
Ben Skeggs 71e9b67
 1 files changed, 7 insertions(+), 0 deletions(-)
Ben Skeggs 71e9b67
Ben Skeggs 71e9b67
diff --git a/drivers/gpu/drm/drm_encoder_slave.c b/drivers/gpu/drm/drm_encoder_slave.c
Ben Skeggs 71e9b67
index f018469..d62c064 100644
Ben Skeggs 71e9b67
--- a/drivers/gpu/drm/drm_encoder_slave.c
Ben Skeggs 71e9b67
+++ b/drivers/gpu/drm/drm_encoder_slave.c
Ben Skeggs 71e9b67
@@ -41,6 +41,9 @@
Ben Skeggs 71e9b67
  * &drm_encoder_slave. The @slave_funcs field will be initialized with
Ben Skeggs 71e9b67
  * the hooks provided by the slave driver.
Ben Skeggs 71e9b67
  *
Ben Skeggs 71e9b67
+ * If @info->platform_data is non-NULL it will be used as the initial
Ben Skeggs 71e9b67
+ * slave config.
Ben Skeggs 71e9b67
+ *
Ben Skeggs 71e9b67
  * Returns 0 on success or a negative errno on failure, in particular,
Ben Skeggs 71e9b67
  * -ENODEV is returned when no matching driver is found.
Ben Skeggs 71e9b67
  */
Ben Skeggs 71e9b67
@@ -85,6 +88,10 @@ int drm_i2c_encoder_init(struct drm_device *dev,
Ben Skeggs 71e9b67
 	if (err)
Ben Skeggs 71e9b67
 		goto fail_unregister;
Ben Skeggs 71e9b67
 
Ben Skeggs 71e9b67
+	if (info->platform_data)
Ben Skeggs 71e9b67
+		encoder->slave_funcs->set_config(&encoder->base,
Ben Skeggs 71e9b67
+						 info->platform_data);
Ben Skeggs 71e9b67
+
Ben Skeggs 71e9b67
 	return 0;
Ben Skeggs 71e9b67
 
Ben Skeggs 71e9b67
 fail_unregister:
Ben Skeggs 71e9b67
-- 
Ben Skeggs 71e9b67
1.7.2
Ben Skeggs 71e9b67