ov7670: clean up ov7670_read semantics
PATCH 1/1 ov7670: clean up ov7670_read semantics
Cortland Setlow pointed out a bug in ov7670.c where the result from ov7670_read() was just being checked for !0, rather than <0. This made me realize that ov7670_read's semantics were rather confusing; it both fills in 'value' with the result, and returns it. This is goes against general kernel convention; so rather than fixing callers, let's fix the function.
This makes ov7670_read return <0 in the case of an error, and 0 upon success. Thus, code like:
res = ov7670_read(...);
if (!res)
goto error;
..will work properly.
Signed-off-by Cortland Setlow <[email protected]>
Signed-off-by Andres Salomon <[email protected]>
--- drivers/media/video/ov7670.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
drivers/media/video/ov7670.c +3 -1
@@ -406,8 +406,10 @@ static int ov7670_read(struct i2c_client *c, unsigned char reg,int ret; ret =i2c_smbus_read_byte_data (c, reg); -if (ret >=0 ) +if (ret >=0 ) { *value = (unsigned char ) ret; + ret =0 ; + }return ret; }
Signature · 1 line
1.5.5.3
[Added Mauro]
Quoted 2 lines · On Mon, 7 Jul 2008 01:41:26 +0000 Andres Salomon <[email protected]> wrote:
This makes
ov7670_readreturn <0 in the case of an error, and 0 upon success.
The change seems fine to me.
Acked-by Jonathan Corbet <[email protected]>
jon