From a8fc1c003e515838693110aeea6f16da25b8e52a Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Sat, 11 Jun 2011 14:46:47 -0300 Subject: [PATCH] --- yaml --- r: 261308 b: refs/heads/master c: 1c68f889c3287bd9beedd23164804e7e09c6566b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/video/marvell-ccic/cafe-driver.c | 9 ++++++++- trunk/drivers/media/video/marvell-ccic/mcam-core.c | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index e10542c49d9c..a60f83e5e12c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f8ff6a96cd6e9f7dc8b606f302129f99bcb82674 +refs/heads/master: 1c68f889c3287bd9beedd23164804e7e09c6566b diff --git a/trunk/drivers/media/video/marvell-ccic/cafe-driver.c b/trunk/drivers/media/video/marvell-ccic/cafe-driver.c index 1027265d46ab..3dbc7e55499d 100644 --- a/trunk/drivers/media/video/marvell-ccic/cafe-driver.c +++ b/trunk/drivers/media/video/marvell-ccic/cafe-driver.c @@ -84,7 +84,14 @@ struct cafe_camera { #define TWSIC0_EN 0x00000001 /* TWSI enable */ #define TWSIC0_MODE 0x00000002 /* 1 = 16-bit, 0 = 8-bit */ #define TWSIC0_SID 0x000003fc /* Slave ID */ -#define TWSIC0_SID_SHIFT 2 +/* + * Subtle trickery: the slave ID field starts with bit 2. But the + * Linux i2c stack wants to treat the bottommost bit as a separate + * read/write bit, which is why slave ID's are usually presented + * >>1. For consistency with that behavior, we shift over three + * bits instead of two. + */ +#define TWSIC0_SID_SHIFT 3 #define TWSIC0_CLKDIV 0x0007fc00 /* Clock divider */ #define TWSIC0_MASKACK 0x00400000 /* Mask ack from sensor */ #define TWSIC0_OVMAGIC 0x00800000 /* Make it work on OV sensors */ diff --git a/trunk/drivers/media/video/marvell-ccic/mcam-core.c b/trunk/drivers/media/video/marvell-ccic/mcam-core.c index 0d6023435557..d5f18a300094 100644 --- a/trunk/drivers/media/video/marvell-ccic/mcam-core.c +++ b/trunk/drivers/media/video/marvell-ccic/mcam-core.c @@ -1549,7 +1549,7 @@ int mccic_register(struct mcam_camera *cam) { struct i2c_board_info ov7670_info = { .type = "ov7670", - .addr = 0x42, + .addr = 0x42 >> 1, .platform_data = &sensor_cfg, }; int ret;