Re: [PATCH 2/9] [media] tvp5150: add userspace subdev API

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

 



Hi Philipp,

[auto build test ERROR on: v4.4-rc1]
[also build test ERROR on: next-20151118]
[cannot apply to: linuxtv-media/master]

url:    https://github.com/0day-ci/linux/commits/Lucas-Stach/tvp5150-convert-register-access-to-regmap/20151119-005732
config: x86_64-randconfig-x018-11181928 (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   drivers/media/i2c/tvp5150.c: In function 'tvp5150_get_pad_format':
>> drivers/media/i2c/tvp5150.c:1062:10: error: implicit declaration of function 'v4l2_subdev_get_try_format' [-Werror=implicit-function-declaration]
      return v4l2_subdev_get_try_format(sd, cfg, pad);
             ^
>> drivers/media/i2c/tvp5150.c:1062:10: warning: return makes pointer from integer without a cast [-Wint-conversion]
   drivers/media/i2c/tvp5150.c: In function 'tvp5150_get_pad_crop':
>> drivers/media/i2c/tvp5150.c:1077:10: error: implicit declaration of function 'v4l2_subdev_get_try_crop' [-Werror=implicit-function-declaration]
      return v4l2_subdev_get_try_crop(sd, cfg, pad);
             ^
   drivers/media/i2c/tvp5150.c:1077:10: warning: return makes pointer from integer without a cast [-Wint-conversion]
   drivers/media/i2c/tvp5150.c: In function 'tvp5150_open':
>> drivers/media/i2c/tvp5150.c:1180:27: warning: passing argument 2 of 'tvp5150_set_default' makes pointer from integer without a cast [-Wint-conversion]
     tvp5150_set_default(std, v4l2_subdev_get_try_crop(fh, 0),
                              ^
   drivers/media/i2c/tvp5150.c:1152:13: note: expected 'struct v4l2_rect *' but argument is of type 'int'
    static void tvp5150_set_default(v4l2_std_id std, struct v4l2_rect *crop,
                ^
   drivers/media/i2c/tvp5150.c:1181:6: warning: passing argument 3 of 'tvp5150_set_default' makes pointer from integer without a cast [-Wint-conversion]
         v4l2_subdev_get_try_format(fh, 0));
         ^
   drivers/media/i2c/tvp5150.c:1152:13: note: expected 'struct v4l2_mbus_framefmt *' but argument is of type 'int'
    static void tvp5150_set_default(v4l2_std_id std, struct v4l2_rect *crop,
                ^
   drivers/media/i2c/tvp5150.c: In function 'tvp5150_probe':
>> drivers/media/i2c/tvp5150.c:1340:4: error: 'struct v4l2_subdev' has no member named 'entity'
     sd->entity.flags |= MEDIA_ENT_T_V4L2_SUBDEV_DECODER;
       ^
   drivers/media/i2c/tvp5150.c:1342:29: error: 'struct v4l2_subdev' has no member named 'entity'
     res = media_entity_init(&sd->entity, 1, &core->pad, 0);
                                ^
   cc1: some warnings being treated as errors

vim +/v4l2_subdev_get_try_format +1062 drivers/media/i2c/tvp5150.c

  1056	tvp5150_get_pad_format(struct tvp5150 *decoder, struct v4l2_subdev *sd,
  1057				 struct v4l2_subdev_pad_config *cfg, unsigned int pad,
  1058				 enum v4l2_subdev_format_whence which)
  1059	{
  1060		switch (which) {
  1061		case V4L2_SUBDEV_FORMAT_TRY:
> 1062			return v4l2_subdev_get_try_format(sd, cfg, pad);
  1063		case V4L2_SUBDEV_FORMAT_ACTIVE:
  1064			return &decoder->format;
  1065		default:
  1066			return NULL;
  1067		}
  1068	}
  1069	
  1070	static struct v4l2_rect *
  1071	tvp5150_get_pad_crop(struct tvp5150 *decoder, struct v4l2_subdev *sd,
  1072			       struct v4l2_subdev_pad_config *cfg, unsigned int pad,
  1073			       enum v4l2_subdev_format_whence which)
  1074	{
  1075		switch (which) {
  1076		case V4L2_SUBDEV_FORMAT_TRY:
> 1077			return v4l2_subdev_get_try_crop(sd, cfg, pad);
  1078		case V4L2_SUBDEV_FORMAT_ACTIVE:
  1079			return &decoder->rect;
  1080		default:
  1081			return NULL;
  1082		}
  1083	}
  1084	
  1085	static int tvp5150_enum_frame_size(struct v4l2_subdev *sd,
  1086					   struct v4l2_subdev_pad_config *cfg,
  1087					   struct v4l2_subdev_frame_size_enum *fse)
  1088	{
  1089		struct tvp5150 *decoder = to_tvp5150(sd);
  1090		v4l2_std_id std;
  1091	
  1092		if (fse->index > 0 || fse->code != MEDIA_BUS_FMT_UYVY8_2X8)
  1093			return -EINVAL;
  1094	
  1095		fse->min_width = TVP5150_H_MAX - TVP5150_MAX_CROP_LEFT;
  1096		fse->max_width = TVP5150_H_MAX;
  1097	
  1098		/* Calculate height based on current standard */
  1099		if (decoder->norm == V4L2_STD_ALL)
  1100			std = tvp5150_read_std(sd);
  1101		else
  1102			std = decoder->norm;
  1103	
  1104		if (std & V4L2_STD_525_60) {
  1105			fse->min_height = TVP5150_V_MAX_525_60 - TVP5150_MAX_CROP_TOP;
  1106			fse->max_height = TVP5150_V_MAX_525_60;
  1107		} else {
  1108			fse->min_height = TVP5150_V_MAX_OTHERS - TVP5150_MAX_CROP_TOP;
  1109			fse->max_height = TVP5150_V_MAX_OTHERS;
  1110		}
  1111	
  1112		return 0;
  1113	}
  1114	
  1115	static int tvp5150_get_format(struct v4l2_subdev *sd,
  1116				      struct v4l2_subdev_pad_config *cfg,
  1117				      struct v4l2_subdev_format *format)
  1118	{
  1119		struct tvp5150 *decoder = to_tvp5150(sd);
  1120	
  1121		format->format = *tvp5150_get_pad_format(decoder, sd, cfg,
  1122							   format->pad, format->which);
  1123		return 0;
  1124	}
  1125	
  1126	static int tvp5150_set_format(struct v4l2_subdev *sd,
  1127				      struct v4l2_subdev_pad_config *cfg,
  1128				      struct v4l2_subdev_format *format)
  1129	{
  1130		struct tvp5150 *decoder = to_tvp5150(sd);
  1131		struct v4l2_mbus_framefmt *mbus_format;
  1132		struct v4l2_rect *crop;
  1133	
  1134		crop = tvp5150_get_pad_crop(decoder, sd, cfg, format->pad,
  1135						format->which);
  1136		mbus_format = tvp5150_get_pad_format(decoder, sd, cfg, format->pad,
  1137						    format->which);
  1138		mbus_format->width = crop->width;
  1139		mbus_format->height = crop->height;
  1140	
  1141		format->format = *mbus_format;
  1142	
  1143		if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE)
  1144			tvp5150_reset(sd, 0);
  1145	
  1146		v4l2_dbg(1, debug, sd, "width = %d, height = %d\n", mbus_format->width,
  1147				mbus_format->height);
  1148	
  1149		return 0;
  1150	}
  1151	
  1152	static void tvp5150_set_default(v4l2_std_id std, struct v4l2_rect *crop,
  1153					struct v4l2_mbus_framefmt *format)
  1154	{
  1155		crop->left = 0;
  1156		crop->width = TVP5150_H_MAX;
  1157		crop->top = 0;
  1158		if (std & V4L2_STD_525_60)
  1159			crop->height = TVP5150_V_MAX_525_60;
  1160		else
  1161			crop->height = TVP5150_V_MAX_OTHERS;
  1162	
  1163		format->width = crop->width;
  1164		format->height = crop->height;
  1165		format->code = MEDIA_BUS_FMT_UYVY8_2X8;
  1166		format->field = V4L2_FIELD_SEQ_TB;
  1167		format->colorspace = V4L2_COLORSPACE_SMPTE170M;
  1168	}
  1169	
  1170	static int tvp5150_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
  1171	{
  1172		struct tvp5150 *decoder = to_tvp5150(sd);
  1173		v4l2_std_id std;
  1174	
  1175		if (decoder->norm == V4L2_STD_ALL)
  1176			std = tvp5150_read_std(sd);
  1177		else
  1178			std = decoder->norm;
  1179	
> 1180		tvp5150_set_default(std, v4l2_subdev_get_try_crop(fh, 0),
> 1181					 v4l2_subdev_get_try_format(fh, 0));
  1182		return 0;
  1183	}
  1184	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: Binary data


[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