Hi Akinobu, I love your patch! Yet something to improve: [auto build test ERROR on linuxtv-media/master] [also build test ERROR on v4.20-rc5 next-20181207] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Akinobu-Mita/media-ov2640-fix-two-problems/20181208-165345 base: git://linuxtv.org/media_tree.git master config: x86_64-randconfig-x011-201848 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All error/warnings (new ones prefixed by >>): drivers/media//i2c/ov2640.c: In function 'ov2640_get_fmt': >> drivers/media//i2c/ov2640.c:930:8: error: implicit declaration of function 'v4l2_subdev_get_try_format'; did you mean 'v4l2_subdev_notify_event'? [-Werror=implicit-function-declaration] mf = v4l2_subdev_get_try_format(sd, cfg, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~ v4l2_subdev_notify_event >> drivers/media//i2c/ov2640.c:930:6: warning: assignment makes pointer from integer without a cast [-Wint-conversion] mf = v4l2_subdev_get_try_format(sd, cfg, 0); ^ drivers/media//i2c/ov2640.c: In function 'ov2640_init_cfg': >> drivers/media//i2c/ov2640.c:1007:3: warning: initialization makes pointer from integer without a cast [-Wint-conversion] v4l2_subdev_get_try_format(sd, cfg, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +930 drivers/media//i2c/ov2640.c 917 918 static int ov2640_get_fmt(struct v4l2_subdev *sd, 919 struct v4l2_subdev_pad_config *cfg, 920 struct v4l2_subdev_format *format) 921 { 922 struct v4l2_mbus_framefmt *mf = &format->format; 923 struct i2c_client *client = v4l2_get_subdevdata(sd); 924 struct ov2640_priv *priv = to_ov2640(client); 925 926 if (format->pad) 927 return -EINVAL; 928 929 if (format->which == V4L2_SUBDEV_FORMAT_TRY) { > 930 mf = v4l2_subdev_get_try_format(sd, cfg, 0); 931 format->format = *mf; 932 933 return 0; 934 } 935 936 mf->width = priv->win->width; 937 mf->height = priv->win->height; 938 mf->code = priv->cfmt_code; 939 mf->colorspace = V4L2_COLORSPACE_SRGB; 940 mf->field = V4L2_FIELD_NONE; 941 942 return 0; 943 } 944 945 static int ov2640_set_fmt(struct v4l2_subdev *sd, 946 struct v4l2_subdev_pad_config *cfg, 947 struct v4l2_subdev_format *format) 948 { 949 struct v4l2_mbus_framefmt *mf = &format->format; 950 struct i2c_client *client = v4l2_get_subdevdata(sd); 951 struct ov2640_priv *priv = to_ov2640(client); 952 const struct ov2640_win_size *win; 953 int ret = 0; 954 955 if (format->pad) 956 return -EINVAL; 957 958 mutex_lock(&priv->lock); 959 960 /* select suitable win */ 961 win = ov2640_select_win(mf->width, mf->height); 962 mf->width = win->width; 963 mf->height = win->height; 964 965 mf->field = V4L2_FIELD_NONE; 966 mf->colorspace = V4L2_COLORSPACE_SRGB; 967 968 switch (mf->code) { 969 case MEDIA_BUS_FMT_RGB565_2X8_BE: 970 case MEDIA_BUS_FMT_RGB565_2X8_LE: 971 case MEDIA_BUS_FMT_YUYV8_2X8: 972 case MEDIA_BUS_FMT_UYVY8_2X8: 973 case MEDIA_BUS_FMT_YVYU8_2X8: 974 case MEDIA_BUS_FMT_VYUY8_2X8: 975 break; 976 default: 977 mf->code = MEDIA_BUS_FMT_UYVY8_2X8; 978 break; 979 } 980 981 if (format->which == V4L2_SUBDEV_FORMAT_ACTIVE) { 982 struct ov2640_priv *priv = to_ov2640(client); 983 984 if (priv->streaming) { 985 ret = -EBUSY; 986 goto out; 987 } 988 /* select win */ 989 priv->win = win; 990 /* select format */ 991 priv->cfmt_code = mf->code; 992 } else { 993 cfg->try_fmt = *mf; 994 } 995 out: 996 mutex_unlock(&priv->lock); 997 998 return ret; 999 } 1000 1001 static int ov2640_init_cfg(struct v4l2_subdev *sd, 1002 struct v4l2_subdev_pad_config *cfg) 1003 { 1004 struct i2c_client *client = v4l2_get_subdevdata(sd); 1005 struct ov2640_priv *priv = to_ov2640(client); 1006 struct v4l2_mbus_framefmt *try_fmt = > 1007 v4l2_subdev_get_try_format(sd, cfg, 0); 1008 1009 try_fmt->width = priv->win->width; 1010 try_fmt->height = priv->win->height; 1011 try_fmt->code = priv->cfmt_code; 1012 try_fmt->colorspace = V4L2_COLORSPACE_SRGB; 1013 try_fmt->field = V4L2_FIELD_NONE; 1014 try_fmt->ycbcr_enc = V4L2_YCBCR_ENC_DEFAULT; 1015 try_fmt->quantization = V4L2_QUANTIZATION_DEFAULT; 1016 try_fmt->xfer_func = V4L2_XFER_FUNC_DEFAULT; 1017 1018 return 0; 1019 } 1020 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip