aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-11-22 03:39:56 -0500
committerTony Lindgren <tony@atomide.com>2012-12-14 14:10:59 -0500
commitca2e16faa7378878c1522a7c1b6c38211de3331d (patch)
treec6dbc4334497fb5df182710af7f6e0bea634fad1 /arch
parentbce9e90fc614eea7f286591288ea9a120ecc06cb (diff)
OMAP: board-files: fix i2c_bus for tfp410
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c1
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c1
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c1
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3stalker.c1
6 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index 7b201546834d..bb73afc9ac17 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -157,6 +157,7 @@ static struct omap_dss_device sdp3430_lcd_device = {
157 157
158static struct tfp410_platform_data dvi_panel = { 158static struct tfp410_platform_data dvi_panel = {
159 .power_down_gpio = -1, 159 .power_down_gpio = -1,
160 .i2c_bus_num = -1,
160}; 161};
161 162
162static struct omap_dss_device sdp3430_dvi_device = { 163static struct omap_dss_device sdp3430_dvi_device = {
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 4be58fd071f6..f81a303b87ff 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -208,6 +208,7 @@ static struct omap_dss_device am3517_evm_tv_device = {
208 208
209static struct tfp410_platform_data dvi_panel = { 209static struct tfp410_platform_data dvi_panel = {
210 .power_down_gpio = -1, 210 .power_down_gpio = -1,
211 .i2c_bus_num = -1,
211}; 212};
212 213
213static struct omap_dss_device am3517_evm_dvi_device = { 214static struct omap_dss_device am3517_evm_dvi_device = {
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index c8e37dc00892..b3102c2f4a3c 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -241,6 +241,7 @@ static struct omap_dss_device cm_t35_lcd_device = {
241 241
242static struct tfp410_platform_data dvi_panel = { 242static struct tfp410_platform_data dvi_panel = {
243 .power_down_gpio = CM_T35_DVI_EN_GPIO, 243 .power_down_gpio = CM_T35_DVI_EN_GPIO,
244 .i2c_bus_num = -1,
244}; 245};
245 246
246static struct omap_dss_device cm_t35_dvi_device = { 247static struct omap_dss_device cm_t35_dvi_device = {
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 7667eb749522..12865af25d3a 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -141,6 +141,7 @@ static struct omap_dss_device devkit8000_lcd_device = {
141 141
142static struct tfp410_platform_data dvi_panel = { 142static struct tfp410_platform_data dvi_panel = {
143 .power_down_gpio = -1, 143 .power_down_gpio = -1,
144 .i2c_bus_num = 1,
144}; 145};
145 146
146static struct omap_dss_device devkit8000_dvi_device = { 147static struct omap_dss_device devkit8000_dvi_device = {
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 54647d6286b4..3985f35aee06 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -240,6 +240,7 @@ static struct omap_dss_device omap3_evm_tv_device = {
240 240
241static struct tfp410_platform_data dvi_panel = { 241static struct tfp410_platform_data dvi_panel = {
242 .power_down_gpio = OMAP3EVM_DVI_PANEL_EN_GPIO, 242 .power_down_gpio = OMAP3EVM_DVI_PANEL_EN_GPIO,
243 .i2c_bus_num = -1,
243}; 244};
244 245
245static struct omap_dss_device omap3_evm_dvi_device = { 246static struct omap_dss_device omap3_evm_dvi_device = {
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index d8638b3b4f94..53a6cbcf9747 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -118,6 +118,7 @@ static struct omap_dss_device omap3_stalker_tv_device = {
118 118
119static struct tfp410_platform_data dvi_panel = { 119static struct tfp410_platform_data dvi_panel = {
120 .power_down_gpio = DSS_ENABLE_GPIO, 120 .power_down_gpio = DSS_ENABLE_GPIO,
121 .i2c_bus_num = -1,
121}; 122};
122 123
123static struct omap_dss_device omap3_stalker_dvi_device = { 124static struct omap_dss_device omap3_stalker_dvi_device = {