From 68deb926b52bd0521f88842dfc635b9509e8daa1 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 5 May 2010 12:30:01 -0300 Subject: [PATCH] --- yaml --- r: 193160 b: refs/heads/master c: 64561a38838c66de1af059e7f4c14bbaa7dd3d54 h: refs/heads/master v: v3 --- [refs] | 2 +- .../staging/cx25821/cx25821-medusa-video.c | 53 ++++++++----------- 2 files changed, 22 insertions(+), 33 deletions(-) diff --git a/[refs] b/[refs] index 06bd1d7847ae..1c6ae0958a44 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e36309f54a6196792fce74100356ebdeaecabd56 +refs/heads/master: 64561a38838c66de1af059e7f4c14bbaa7dd3d54 diff --git a/trunk/drivers/staging/cx25821/cx25821-medusa-video.c b/trunk/drivers/staging/cx25821/cx25821-medusa-video.c index 0bb33ba7e99d..34616dc507f9 100644 --- a/trunk/drivers/staging/cx25821/cx25821-medusa-video.c +++ b/trunk/drivers/staging/cx25821/cx25821-medusa-video.c @@ -778,9 +778,9 @@ int medusa_set_saturation(struct cx25821_dev *dev, int saturation, int decoder) int medusa_video_init(struct cx25821_dev *dev) { - u32 value = 0, tmp = 0; - int ret_val = 0; - int i = 0; + u32 value, tmp = 0; + int ret_val; + int i; mutex_lock(&dev->lock); @@ -790,18 +790,15 @@ int medusa_video_init(struct cx25821_dev *dev) value = cx25821_i2c_read(&dev->i2c_bus[0], MON_A_CTRL, &tmp); value &= 0xFFFFF0FF; ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MON_A_CTRL, value); + if (ret_val < 0) + goto error; - if (ret_val < 0) { - mutex_unlock(&dev->lock); - return -EINVAL; - } /* Turn off Master source switch enable */ value = cx25821_i2c_read(&dev->i2c_bus[0], MON_A_CTRL, &tmp); value &= 0xFFFFFFDF; ret_val = cx25821_i2c_write(&dev->i2c_bus[0], MON_A_CTRL, value); - if (ret_val < 0) - return -EINVAL; + goto error; mutex_unlock(&dev->lock); @@ -815,31 +812,25 @@ int medusa_video_init(struct cx25821_dev *dev) value &= 0xFF70FF70; value |= 0x00090008; /* set en_active */ ret_val = cx25821_i2c_write(&dev->i2c_bus[0], DENC_AB_CTRL, value); + if (ret_val < 0) + goto error; - if (ret_val < 0) { - mutex_unlock(&dev->lock); - return -EINVAL; - } /* enable input is VIP/656 */ value = cx25821_i2c_read(&dev->i2c_bus[0], BYP_AB_CTRL, &tmp); value |= 0x00040100; /* enable VIP */ ret_val = cx25821_i2c_write(&dev->i2c_bus[0], BYP_AB_CTRL, value); - if (ret_val < 0) { - mutex_unlock(&dev->lock); - return -EINVAL; - } + if (ret_val < 0) + goto error; + /* select AFE clock to output mode */ value = cx25821_i2c_read(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, &tmp); value &= 0x83FFFFFF; - ret_val = - cx25821_i2c_write(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, - value | 0x10000000); + ret_val = cx25821_i2c_write(&dev->i2c_bus[0], AFE_AB_DIAG_CTRL, + value | 0x10000000); + if (ret_val < 0) + goto error; - if (ret_val < 0) { - mutex_unlock(&dev->lock); - return -EINVAL; - } /* Turn on all of the data out and control output pins. */ value = cx25821_i2c_read(&dev->i2c_bus[0], PIN_OE_CTRL, &tmp); value &= 0xFEF0FE00; @@ -858,17 +849,15 @@ int medusa_video_init(struct cx25821_dev *dev) value |= 7; ret_val = cx25821_i2c_write(&dev->i2c_bus[0], PIN_OE_CTRL, value); - if (ret_val < 0) { - mutex_unlock(&dev->lock); - return -EINVAL; - } + if (ret_val < 0) + goto error; mutex_unlock(&dev->lock); ret_val = medusa_set_videostandard(dev); + return ret_val; - if (ret_val < 0) - return -EINVAL; - - return 1; +error: + mutex_unlock(&dev->lock); + return ret_val; }