All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Németh Márton" <nm127@freemail.hu>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: V4L Mailing List <linux-media@vger.kernel.org>
Subject: Re: [PATCH] soc_camera: match signedness of soc_camera_limit_side()
Date: Wed, 24 Feb 2010 07:32:45 +0100	[thread overview]
Message-ID: <4B84C80D.6000708@freemail.hu> (raw)
In-Reply-To: <Pine.LNX.4.64.1002121030420.4605@axis700.grange>

Hi Guennadi,
Guennadi Liakhovetski wrote:
> Hi Németh
> 
> On Tue, 9 Feb 2010, Guennadi Liakhovetski wrote:
> 
>> Ok, I modified your patch a bit, how about the below version? If you 
>> agree, I'll commit it in that form (after converting to utf-8):
>>
>> From: Márton Németh <nm127@freemail.hu>
>>
>> The first two parameters of soc_camera_limit_side() are usually pointers 
>> to struct v4l2_rect elements. They are signed, so adjust the prototype 
>> accordingly.
>>
>> This will remove the following sparse warning (see "make C=1"):
>>
>>  * incorrect type in argument 1 (different signedness)
>>        expected unsigned int *start
>>        got signed int *<noident>
>>
>> as well as a couple more signedness mismatches.
>>
>> Signed-off-by: Márton Németh <nm127@freemail.hu>
>> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> 
> please confirm, if you agree with my version of your patch, or I'll have 
> to leave it out from my pull request.

I confirm.

Sorry about the late response, I was not able to access my emails for a while.

Regards,

	Márton Németh


>> ---
>> diff --git a/drivers/media/video/mt9v022.c b/drivers/media/video/mt9v022.c
>> index 1a34d29..e5bae4c 100644
>> --- a/drivers/media/video/mt9v022.c
>> +++ b/drivers/media/video/mt9v022.c
>> @@ -325,7 +325,7 @@ static int mt9v022_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
>>  	if (ret < 0)
>>  		return ret;
>>  
>> -	dev_dbg(&client->dev, "Frame %ux%u pixel\n", rect.width, rect.height);
>> +	dev_dbg(&client->dev, "Frame %dx%d pixel\n", rect.width, rect.height);
>>  
>>  	mt9v022->rect = rect;
>>  
>> diff --git a/drivers/media/video/mx3_camera.c b/drivers/media/video/mx3_camera.c
>> index bd297f5..d477e30 100644
>> --- a/drivers/media/video/mx3_camera.c
>> +++ b/drivers/media/video/mx3_camera.c
>> @@ -796,7 +796,7 @@ static int acquire_dma_channel(struct mx3_camera_dev *mx3_cam)
>>   * FIXME: learn to use stride != width, then we can keep stride properly aligned
>>   * and support arbitrary (even) widths.
>>   */
>> -static inline void stride_align(__s32 *width)
>> +static inline void stride_align(__u32 *width)
>>  {
>>  	if (((*width + 7) &  ~7) < 4096)
>>  		*width = (*width + 7) &  ~7;
>> @@ -844,7 +844,7 @@ static int mx3_camera_set_crop(struct soc_camera_device *icd,
>>  		 * So far only direct camera-to-memory is supported
>>  		 */
>>  		if (channel_change_requested(icd, rect)) {
>> -			int ret = acquire_dma_channel(mx3_cam);
>> +			ret = acquire_dma_channel(mx3_cam);
>>  			if (ret < 0)
>>  				return ret;
>>  		}
>> diff --git a/drivers/media/video/rj54n1cb0c.c b/drivers/media/video/rj54n1cb0c.c
>> index 9277194..bbd9c11 100644
>> --- a/drivers/media/video/rj54n1cb0c.c
>> +++ b/drivers/media/video/rj54n1cb0c.c
>> @@ -555,15 +555,15 @@ static int rj54n1_commit(struct i2c_client *client)
>>  	return ret;
>>  }
>>  
>> -static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
>> -			       u32 *out_w, u32 *out_h);
>> +static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
>> +			       s32 *out_w, s32 *out_h);
>>  
>>  static int rj54n1_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
>>  {
>>  	struct i2c_client *client = sd->priv;
>>  	struct rj54n1 *rj54n1 = to_rj54n1(client);
>>  	struct v4l2_rect *rect = &a->c;
>> -	unsigned int dummy = 0, output_w, output_h,
>> +	int dummy = 0, output_w, output_h,
>>  		input_w = rect->width, input_h = rect->height;
>>  	int ret;
>>  
>> @@ -577,7 +577,7 @@ static int rj54n1_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
>>  	output_w = (input_w * 1024 + rj54n1->resize / 2) / rj54n1->resize;
>>  	output_h = (input_h * 1024 + rj54n1->resize / 2) / rj54n1->resize;
>>  
>> -	dev_dbg(&client->dev, "Scaling for %ux%u : %u = %ux%u\n",
>> +	dev_dbg(&client->dev, "Scaling for %dx%d : %u = %dx%d\n",
>>  		input_w, input_h, rj54n1->resize, output_w, output_h);
>>  
>>  	ret = rj54n1_sensor_scale(sd, &input_w, &input_h, &output_w, &output_h);
>> @@ -638,8 +638,8 @@ static int rj54n1_g_fmt(struct v4l2_subdev *sd,
>>   * the output one, updates the window sizes and returns an error or the resize
>>   * coefficient on success. Note: we only use the "Fixed Scaling" on this camera.
>>   */
>> -static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
>> -			       u32 *out_w, u32 *out_h)
>> +static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
>> +			       s32 *out_w, s32 *out_h)
>>  {
>>  	struct i2c_client *client = sd->priv;
>>  	struct rj54n1 *rj54n1 = to_rj54n1(client);
>> @@ -749,7 +749,7 @@ static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
>>  	 * improve the image quality or stability for larger frames (see comment
>>  	 * above), but I didn't check the framerate.
>>  	 */
>> -	skip = min(resize / 1024, (unsigned)15);
>> +	skip = min(resize / 1024, 15U);
>>  
>>  	inc_sel = 1 << skip;
>>  
>> @@ -819,7 +819,7 @@ static int rj54n1_sensor_scale(struct v4l2_subdev *sd, u32 *in_w, u32 *in_h,
>>  	*out_w = output_w;
>>  	*out_h = output_h;
>>  
>> -	dev_dbg(&client->dev, "Scaled for %ux%u : %u = %ux%u, skip %u\n",
>> +	dev_dbg(&client->dev, "Scaled for %dx%d : %u = %ux%u, skip %u\n",
>>  		*in_w, *in_h, resize, output_w, output_h, skip);
>>  
>>  	return resize;
>> @@ -1017,7 +1017,7 @@ static int rj54n1_s_fmt(struct v4l2_subdev *sd,
>>  	struct i2c_client *client = sd->priv;
>>  	struct rj54n1 *rj54n1 = to_rj54n1(client);
>>  	const struct rj54n1_datafmt *fmt;
>> -	unsigned int output_w, output_h, max_w, max_h,
>> +	int output_w, output_h, max_w, max_h,
>>  		input_w = rj54n1->rect.width, input_h = rj54n1->rect.height;
>>  	int ret;
>>  
>> diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c
>> index f09c714..af506bc 100644
>> --- a/drivers/media/video/sh_mobile_ceu_camera.c
>> +++ b/drivers/media/video/sh_mobile_ceu_camera.c
>> @@ -1040,13 +1040,13 @@ static int client_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *crop,
>>  	 */
>>  	if (!memcmp(rect, cam_rect, sizeof(*rect))) {
>>  		/* Even if camera S_CROP failed, but camera rectangle matches */
>> -		dev_dbg(dev, "Camera S_CROP successful for %ux%u@%u:%u\n",
>> +		dev_dbg(dev, "Camera S_CROP successful for %dx%d@%d:%d\n",
>>  			rect->width, rect->height, rect->left, rect->top);
>>  		return 0;
>>  	}
>>  
>>  	/* Try to fix cropping, that camera hasn't managed to set */
>> -	dev_geo(dev, "Fix camera S_CROP for %ux%u@%u:%u to %ux%u@%u:%u\n",
>> +	dev_geo(dev, "Fix camera S_CROP for %dx%d@%d:%d to %dx%d@%d:%d\n",
>>  		cam_rect->width, cam_rect->height,
>>  		cam_rect->left, cam_rect->top,
>>  		rect->width, rect->height, rect->left, rect->top);
>> @@ -1102,7 +1102,7 @@ static int client_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *crop,
>>  
>>  		v4l2_subdev_call(sd, video, s_crop, cam_crop);
>>  		ret = client_g_rect(sd, cam_rect);
>> -		dev_geo(dev, "Camera S_CROP %d for %ux%u@%u:%u\n", ret,
>> +		dev_geo(dev, "Camera S_CROP %d for %dx%d@%d:%d\n", ret,
>>  			cam_rect->width, cam_rect->height,
>>  			cam_rect->left, cam_rect->top);
>>  	}
>> @@ -1116,7 +1116,7 @@ static int client_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *crop,
>>  		*cam_rect = cap.bounds;
>>  		v4l2_subdev_call(sd, video, s_crop, cam_crop);
>>  		ret = client_g_rect(sd, cam_rect);
>> -		dev_geo(dev, "Camera S_CROP %d for max %ux%u@%u:%u\n", ret,
>> +		dev_geo(dev, "Camera S_CROP %d for max %dx%d@%d:%d\n", ret,
>>  			cam_rect->width, cam_rect->height,
>>  			cam_rect->left, cam_rect->top);
>>  	}
>> diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h
>> index dcc5b86..5a17365 100644
>> --- a/include/media/soc_camera.h
>> +++ b/include/media/soc_camera.h
>> @@ -264,8 +266,8 @@ static inline unsigned long soc_camera_bus_param_compatible(
>>  		common_flags;
>>  }
>>  
>> -static inline void soc_camera_limit_side(unsigned int *start,
>> -		unsigned int *length, unsigned int start_min,
>> +static inline void soc_camera_limit_side(int *start, int *length,
>> +		unsigned int start_min,
>>  		unsigned int length_min, unsigned int length_max)
>>  {
>>  	if (*length < length_min)
>>
> 
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> 
> 


      reply	other threads:[~2010-02-24  6:59 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-23 13:43 [PATCH] soc_camera: match signedness of soc_camera_limit_side() Németh Márton
2010-01-27 16:05 ` Guennadi Liakhovetski
2010-01-27 18:11   ` Németh Márton
2010-01-27 18:22     ` Guennadi Liakhovetski
2010-01-27 19:58       ` Németh Márton
2010-01-27 20:12         ` Guennadi Liakhovetski
2010-01-27 21:42           ` Németh Márton
2010-01-28 20:52             ` Guennadi Liakhovetski
2010-01-28 21:30               ` Németh Márton
2010-02-09  9:05                 ` Guennadi Liakhovetski
2010-02-12  9:32                   ` Guennadi Liakhovetski
2010-02-24  6:32                     ` Németh Márton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B84C80D.6000708@freemail.hu \
    --to=nm127@freemail.hu \
    --cc=g.liakhovetski@gmx.de \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.