[2.6.20.y PATCH 6/7] V4L: fix cx25840 firmware loading

From: Michael Krufky
Date: Sat Mar 03 2007 - 09:38:45 EST


From: Hans Verkuil <hverkuil@xxxxxxxxx>
Date: Thu, 15 Feb 2007 03:40:34 -0300
Subject: [PATCH] V4L: fix cx25840 firmware loading

Due to changes in the i2c handling in 2.6.20 this cx25840 bug surfaced,
causing the firmware load to fail for the ivtv driver. The correct
sequence is to first attach the i2c client, then use the client's
device to load the firmware.

Signed-off-by: Hans Verkuil <hverkuil@xxxxxxxxx>
Acked-by: Mike Isely <isely@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxx>
Signed-off-by: Michael Krufky <mkrufky@xxxxxxxxxxx>
(cherry picked from commit d55c7aec666658495e5b57a6b194c8c2a1ac255f)
---
drivers/media/video/cx25840/cx25840-core.c | 4 ++--
drivers/media/video/cx25840/cx25840-firmware.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
index 7bb7589..2f29ba4 100644
--- a/drivers/media/video/cx25840/cx25840-core.c
+++ b/drivers/media/video/cx25840/cx25840-core.c
@@ -907,13 +907,13 @@ static int cx25840_detect_client(struct i2c_adapter *adapter, int address,
state->vbi_line_offset = 8;
state->id = id;

+ i2c_attach_client(client);
+
if (state->is_cx25836)
cx25836_initialize(client);
else
cx25840_initialize(client, 1);

- i2c_attach_client(client);
-
return 0;
}

diff --git a/drivers/media/video/cx25840/cx25840-firmware.c b/drivers/media/video/cx25840/cx25840-firmware.c
index 1958d40..0e86b9d 100644
--- a/drivers/media/video/cx25840/cx25840-firmware.c
+++ b/drivers/media/video/cx25840/cx25840-firmware.c
@@ -37,7 +37,7 @@
*/
#define FWSEND 48

-#define FWDEV(x) &((x)->adapter->dev)
+#define FWDEV(x) &((x)->dev)

static char *firmware = FWFILE;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/