RE: [PATCH 4/5] m5mols: Add boot flag for not showing the msg of I2C error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sylwester,

> -----Original Message-----
> From: linux-media-owner@xxxxxxxxxxxxxxx [mailto:linux-media-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Sylwester Nawrocki
> Sent: Tuesday, November 15, 2011 7:35 AM
> To: Heungjun Kim
> Cc: linux-media; Kyungmin Park
> Subject: Re: [PATCH 4/5] m5mols: Add boot flag for not showing the msg of
> I2C error
> 
> Hi HeungJun,
> 
> Sorry for late review. Please see my comments below..
Nevermind. It's fine.

> 
> On 10/21/2011 09:35 AM, HeungJun, Kim wrote:
> > In M-5MOLS sensor, the I2C error can be occured before sensor booting
> done,
> > becase I2C interface is not stabilized although the sensor have done
> already
> > for booting, so the right value is deliver through I2C interface. In case,
> > it needs to make the I2C error msg not to be printed.
> >
> > Signed-off-by: HeungJun, Kim<riverful.kim@xxxxxxxxxxx>
> > Signed-off-by: Kyungmin Park<kyungmin.park@xxxxxxxxxxx>
> > ---
> >   drivers/media/video/m5mols/m5mols.h      |    2 ++
> >   drivers/media/video/m5mols/m5mols_core.c |   17 +++++++++++++----
> >   2 files changed, 15 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/media/video/m5mols/m5mols.h
> b/drivers/media/video/m5mols/m5mols.h
> > index 75f7984..0d7e202 100644
> > --- a/drivers/media/video/m5mols/m5mols.h
> > +++ b/drivers/media/video/m5mols/m5mols.h
> > @@ -175,6 +175,7 @@ struct m5mols_version {
> >    * @ver: information of the version
> >    * @cap: the capture mode attributes
> >    * @power: current sensor's power status
> > + * @boot: "true" means the M-5MOLS sensor done ARM Booting
> 
> How about making this "booting" instead (the opposite meaning) ? Also there
> is
> no need for quotation marks.
Ok. It sounds close to the meaning.

> 
> >    * @ctrl_sync: true means all controls of the sensor are initialized
> >    * @int_capture: true means the capture interrupt is issued once
> >    * @lock_ae: true means the Auto Exposure is locked
> > @@ -210,6 +211,7 @@ struct m5mols_info {
> >   	struct m5mols_version ver;
> >   	struct m5mols_capture cap;
> >   	bool power;
> > +	bool boot;
> >   	bool issue;
> >   	bool ctrl_sync;
> >   	bool lock_ae;
> > diff --git a/drivers/media/video/m5mols/m5mols_core.c
> b/drivers/media/video/m5mols/m5mols_core.c
> > index 24e66ad..0aae868 100644
> > --- a/drivers/media/video/m5mols/m5mols_core.c
> > +++ b/drivers/media/video/m5mols/m5mols_core.c
> > @@ -138,6 +138,7 @@ static u32 m5mols_swap_byte(u8 *data, u8 length)
> >   static int m5mols_read(struct v4l2_subdev *sd, u32 size, u32 reg, u32
> *val)
> >   {
> >   	struct i2c_client *client = v4l2_get_subdevdata(sd);
> > +	struct m5mols_info *info = to_m5mols(sd);
> >   	u8 rbuf[M5MOLS_I2C_MAX_SIZE + 1];
> >   	u8 category = I2C_CATEGORY(reg);
> >   	u8 cmd = I2C_COMMAND(reg);
> > @@ -168,8 +169,10 @@ static int m5mols_read(struct v4l2_subdev *sd, u32
> size, u32 reg, u32 *val)
> >
> >   	ret = i2c_transfer(client->adapter, msg, 2);
> >   	if (ret<  0) {
> > -		v4l2_err(sd, "read failed: size:%d cat:%02x cmd:%02x. %d\n",
> > -			 size, category, cmd, ret);
> > +		if (info->boot)
> > +			v4l2_err(sd,
> > +				"read failed: cat:%02x cmd:%02x ret:%d\n",
> > +				category, cmd, ret);
> >   		return ret;
> 
> To avoid dodgy indentation, this could be for instance rewritten as:
> 
>    	ret = i2c_transfer(client->adapter, msg, 2);
>    	if (ret == 2)
> 		return 0;
> 
> 	if (!info->booting)
> 		v4l2_err(sd, "read failed: size:%d cat:%02x cmd:%02x. %d\n",
> 			 size, category, cmd, ret);
> 
>   	return ret < 0 ? ret : -EIO;
>
Ok. If the reason is dodgy indentation, it would be better to change the message
string to the more shorter others. I'll consider at the next version patch. 

> >   	}
> >
> > @@ -232,6 +235,7 @@ int m5mols_read_u32(struct v4l2_subdev *sd, u32 reg,
> u32 *val)
> >   int m5mols_write(struct v4l2_subdev *sd, u32 reg, u32 val)
> >   {
> >   	struct i2c_client *client = v4l2_get_subdevdata(sd);
> > +	struct m5mols_info *info = to_m5mols(sd);
> >   	u8 wbuf[M5MOLS_I2C_MAX_SIZE + 4];
> >   	u8 category = I2C_CATEGORY(reg);
> >   	u8 cmd = I2C_COMMAND(reg);
> > @@ -263,8 +267,10 @@ int m5mols_write(struct v4l2_subdev *sd, u32 reg,
> u32 val)
> >
> >   	ret = i2c_transfer(client->adapter, msg, 1);
> >   	if (ret<  0) {
> > -		v4l2_err(sd, "write failed: size:%d cat:%02x cmd:%02x. %d\n",
> > -			size, category, cmd, ret);
> > +		if (info->boot)
> > +			v4l2_err(sd,
> > +				"write failed: cat:%02x cmd:%02x ret:%d\n",
> > +				category, cmd, ret);
> 
> Ditto.
> 
> >   		return ret;
> >   	}
> >
> > @@ -778,6 +784,7 @@ int __attribute__ ((weak)) m5mols_update_fw(struct
> v4l2_subdev *sd,
> >    */
> >   static int m5mols_sensor_armboot(struct v4l2_subdev *sd)
> >   {
> > +	struct m5mols_info *info = to_m5mols(sd);
> >   	int ret;
> >
> >   	/* Execute ARM boot sequence */
> > @@ -786,6 +793,8 @@ static int m5mols_sensor_armboot(struct v4l2_subdev
> *sd)
> >   		ret = m5mols_write(sd, FLASH_CAM_START, REG_START_ARM_BOOT);
> >   	if (!ret)
> >   		ret = m5mols_timeout_interrupt(sd, REG_INT_MODE, 2000);
> > +	if (!ret)
> > +		info->boot = true;
> 
> If you move this line after the check below, there is no need for "if
> (!ret)".
It looks better. I'll adapt it.

> 
> >   	if (ret<  0)
> >   		return ret;
> >
> 
> --
> Regards,
> Sylwester
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux