OMAP: board-files: fix i2c_bus for tfp410
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 22 Nov 2012 08:39:56 +0000 (10:39 +0200)
committerTony Lindgren <tony@atomide.com>
Fri, 14 Dec 2012 19:10:59 +0000 (11:10 -0800)
The i2c handling in tfp410 driver, which handles converting parallel RGB
to DVI, was changed in 958f2717b84e88bf833d996997fda8f73276f2af
(OMAPDSS: TFP410: pdata rewrite). The patch changed what value the
driver considers as invalid/undefined.  Before the patch, 0 was the
invalid value, but as 0 is a valid bus number, the patch changed this to
-1.

However, the fact was missed that many board files do not define the bus
number at all, thus it's left to 0. This causes the driver to fail to
get the i2c bus, exiting from the driver's probe with an error, meaning
that the DVI output does not work for those boards.

This patch fixes the issue by changing the i2c_bus number field in the
driver's platform data from u16 to int, and setting the bus number to -1
in the board files for the boards that did not define the bus. The
exception is devkit8000, for which the bus is set to 1, which is the
correct bus for that board.

The bug exists in v3.5+ kernels.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reported-by: Thomas Weber <thomas@tomweber.eu>
Cc: Thomas Weber <thomas@tomweber.eu>
Cc: <stable@vger.kernel.org> # v3.5+
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/board-3430sdp.c
arch/arm/mach-omap2/board-am3517evm.c
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-devkit8000.c
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-omap3stalker.c
include/video/omap-panel-tfp410.h

index 7b201546834d271ce309803144a57339622a7c81..bb73afc9ac17cbc83e915145b7887b0e8203ff90 100644 (file)
@@ -157,6 +157,7 @@ static struct omap_dss_device sdp3430_lcd_device = {
 
 static struct tfp410_platform_data dvi_panel = {
        .power_down_gpio        = -1,
+       .i2c_bus_num            = -1,
 };
 
 static struct omap_dss_device sdp3430_dvi_device = {
index 4be58fd071f66c868b997689553ae642b2a23f16..f81a303b87ff1afbba44e9ddcfdea4dcb2363ffb 100644 (file)
@@ -208,6 +208,7 @@ static struct omap_dss_device am3517_evm_tv_device = {
 
 static struct tfp410_platform_data dvi_panel = {
        .power_down_gpio        = -1,
+       .i2c_bus_num            = -1,
 };
 
 static struct omap_dss_device am3517_evm_dvi_device = {
index c8e37dc0089226e034b4e57b9d53c10075c41f4b..b3102c2f4a3cbbede79af9aeb10beecf808a60a5 100644 (file)
@@ -241,6 +241,7 @@ static struct omap_dss_device cm_t35_lcd_device = {
 
 static struct tfp410_platform_data dvi_panel = {
        .power_down_gpio        = CM_T35_DVI_EN_GPIO,
+       .i2c_bus_num            = -1,
 };
 
 static struct omap_dss_device cm_t35_dvi_device = {
index 7667eb749522dc5ff568a380ee1dfaa87efe5cc1..12865af25d3a865b351e8dff3b8cb5fc20649ca5 100644 (file)
@@ -141,6 +141,7 @@ static struct omap_dss_device devkit8000_lcd_device = {
 
 static struct tfp410_platform_data dvi_panel = {
        .power_down_gpio        = -1,
+       .i2c_bus_num            = 1,
 };
 
 static struct omap_dss_device devkit8000_dvi_device = {
index 54647d6286b4d401b1952e6f9768c94e3a616b16..3985f35aee06a6cffbc05d2930b56c456231ee97 100644 (file)
@@ -240,6 +240,7 @@ static struct omap_dss_device omap3_evm_tv_device = {
 
 static struct tfp410_platform_data dvi_panel = {
        .power_down_gpio        = OMAP3EVM_DVI_PANEL_EN_GPIO,
+       .i2c_bus_num            = -1,
 };
 
 static struct omap_dss_device omap3_evm_dvi_device = {
index d8638b3b4f9407ccf959784b1798b8ac957e50f0..53a6cbcf9747bdd88acbbf9fdd155db05a5dc817 100644 (file)
@@ -118,6 +118,7 @@ static struct omap_dss_device omap3_stalker_tv_device = {
 
 static struct tfp410_platform_data dvi_panel = {
        .power_down_gpio        = DSS_ENABLE_GPIO,
+       .i2c_bus_num            = -1,
 };
 
 static struct omap_dss_device omap3_stalker_dvi_device = {
index 68c31d79c5717621502b0facb24e4de9fdc637a1..aef35e48bc7e5a99d0d7dad0899cbb07149723d7 100644 (file)
@@ -28,7 +28,7 @@ struct omap_dss_device;
  * @power_down_gpio: gpio number for PD pin (or -1 if not available)
  */
 struct tfp410_platform_data {
-       u16 i2c_bus_num;
+       int i2c_bus_num;
        int power_down_gpio;
 };
 
This page took 0.032257 seconds and 5 git commands to generate.