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/
>
>
prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox