Hi Hugo, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linuxtv-media/master] [also build test WARNING on v4.16 next-20180410] [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/Hugo-Grostabussiat/usbtv-Add-SECAM-support-and-fix-color-encoding-selection/20180409-054206 base: git://linuxtv.org/media_tree.git master config: i386-randconfig-h0-04110123 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): drivers/media/usb/usbtv/usbtv-video.c: In function 'usbtv_select_norm': >> drivers/media/usb/usbtv/usbtv-video.c:261:31: warning: passing argument 2 of 'usbtv_set_regs' from incompatible pointer type ret = usbtv_set_regs(usbtv, cfg, ARRAY_SIZE(cfg)); ^ In file included from drivers/media/usb/usbtv/usbtv-video.c:48:0: drivers/media/usb/usbtv/usbtv.h:129:5: note: expected 'const u16 (*)[2]' but argument is of type 'u16 (*)[2]' int usbtv_set_regs(struct usbtv *usbtv, const u16 regs[][2], int size); ^ vim +/usbtv_set_regs +261 drivers/media/usb/usbtv/usbtv-video.c 142 143 static int usbtv_select_norm(struct usbtv *usbtv, v4l2_std_id norm) 144 { 145 int ret; 146 /* These are the series of register values used to configure the 147 * decoder for a specific standard. 148 * The first 21 register writes are copied from the 149 * Settings\DecoderDefaults registry keys present in the Windows driver 150 * .INF file, and control various image tuning parameters (color 151 * correction, sharpness, ...). 152 */ 153 static const u16 pal[][2] = { 154 /* "AVPAL" tuning sequence from .INF file */ 155 { USBTV_BASE + 0x0003, 0x0004 }, 156 { USBTV_BASE + 0x001a, 0x0068 }, 157 { USBTV_BASE + 0x0100, 0x00d3 }, 158 { USBTV_BASE + 0x010e, 0x0072 }, 159 { USBTV_BASE + 0x010f, 0x00a2 }, 160 { USBTV_BASE + 0x0112, 0x00b0 }, 161 { USBTV_BASE + 0x0115, 0x0015 }, 162 { USBTV_BASE + 0x0117, 0x0001 }, 163 { USBTV_BASE + 0x0118, 0x002c }, 164 { USBTV_BASE + 0x012d, 0x0010 }, 165 { USBTV_BASE + 0x012f, 0x0020 }, 166 { USBTV_BASE + 0x0220, 0x002e }, 167 { USBTV_BASE + 0x0225, 0x0008 }, 168 { USBTV_BASE + 0x024e, 0x0002 }, 169 { USBTV_BASE + 0x024f, 0x0002 }, 170 { USBTV_BASE + 0x0254, 0x0059 }, 171 { USBTV_BASE + 0x025a, 0x0016 }, 172 { USBTV_BASE + 0x025b, 0x0035 }, 173 { USBTV_BASE + 0x0263, 0x0017 }, 174 { USBTV_BASE + 0x0266, 0x0016 }, 175 { USBTV_BASE + 0x0267, 0x0036 }, 176 /* End image tuning */ 177 { USBTV_BASE + 0x024e, 0x0002 }, 178 { USBTV_BASE + 0x024f, 0x0002 }, 179 }; 180 181 static const u16 ntsc[][2] = { 182 /* "AVNTSC" tuning sequence from .INF file */ 183 { USBTV_BASE + 0x0003, 0x0004 }, 184 { USBTV_BASE + 0x001a, 0x0079 }, 185 { USBTV_BASE + 0x0100, 0x00d3 }, 186 { USBTV_BASE + 0x010e, 0x0068 }, 187 { USBTV_BASE + 0x010f, 0x009c }, 188 { USBTV_BASE + 0x0112, 0x00f0 }, 189 { USBTV_BASE + 0x0115, 0x0015 }, 190 { USBTV_BASE + 0x0117, 0x0000 }, 191 { USBTV_BASE + 0x0118, 0x00fc }, 192 { USBTV_BASE + 0x012d, 0x0004 }, 193 { USBTV_BASE + 0x012f, 0x0008 }, 194 { USBTV_BASE + 0x0220, 0x002e }, 195 { USBTV_BASE + 0x0225, 0x0008 }, 196 { USBTV_BASE + 0x024e, 0x0002 }, 197 { USBTV_BASE + 0x024f, 0x0001 }, 198 { USBTV_BASE + 0x0254, 0x005f }, 199 { USBTV_BASE + 0x025a, 0x0012 }, 200 { USBTV_BASE + 0x025b, 0x0001 }, 201 { USBTV_BASE + 0x0263, 0x001c }, 202 { USBTV_BASE + 0x0266, 0x0011 }, 203 { USBTV_BASE + 0x0267, 0x0005 }, 204 /* End image tuning */ 205 { USBTV_BASE + 0x024e, 0x0002 }, 206 { USBTV_BASE + 0x024f, 0x0002 }, 207 }; 208 209 static const u16 secam[][2] = { 210 /* "AVSECAM" tuning sequence from .INF file */ 211 { USBTV_BASE + 0x0003, 0x0004 }, 212 { USBTV_BASE + 0x001a, 0x0073 }, 213 { USBTV_BASE + 0x0100, 0x00dc }, 214 { USBTV_BASE + 0x010e, 0x0072 }, 215 { USBTV_BASE + 0x010f, 0x00a2 }, 216 { USBTV_BASE + 0x0112, 0x0090 }, 217 { USBTV_BASE + 0x0115, 0x0035 }, 218 { USBTV_BASE + 0x0117, 0x0001 }, 219 { USBTV_BASE + 0x0118, 0x0030 }, 220 { USBTV_BASE + 0x012d, 0x0004 }, 221 { USBTV_BASE + 0x012f, 0x0008 }, 222 { USBTV_BASE + 0x0220, 0x002d }, 223 { USBTV_BASE + 0x0225, 0x0028 }, 224 { USBTV_BASE + 0x024e, 0x0008 }, 225 { USBTV_BASE + 0x024f, 0x0002 }, 226 { USBTV_BASE + 0x0254, 0x0069 }, 227 { USBTV_BASE + 0x025a, 0x0016 }, 228 { USBTV_BASE + 0x025b, 0x0035 }, 229 { USBTV_BASE + 0x0263, 0x0021 }, 230 { USBTV_BASE + 0x0266, 0x0016 }, 231 { USBTV_BASE + 0x0267, 0x0036 }, 232 /* End image tuning */ 233 { USBTV_BASE + 0x024e, 0x0002 }, 234 { USBTV_BASE + 0x024f, 0x0002 }, 235 }; 236 237 ret = usbtv_configure_for_norm(usbtv, norm); 238 239 if (!ret) { 240 /* Masks for norms using a NTSC or PAL color encoding. */ 241 static const v4l2_std_id ntsc_mask = 242 V4L2_STD_NTSC | V4L2_STD_NTSC_443; 243 static const v4l2_std_id pal_mask = 244 V4L2_STD_PAL | V4L2_STD_PAL_60 | V4L2_STD_PAL_M; 245 246 if (norm & ntsc_mask) 247 ret = usbtv_set_regs(usbtv, ntsc, ARRAY_SIZE(ntsc)); 248 else if (norm & pal_mask) 249 ret = usbtv_set_regs(usbtv, pal, ARRAY_SIZE(pal)); 250 else if (norm & V4L2_STD_SECAM) 251 ret = usbtv_set_regs(usbtv, secam, ARRAY_SIZE(secam)); 252 else 253 ret = -EINVAL; 254 } 255 256 if (!ret) { 257 /* Configure the decoder for the color standard */ 258 u16 cfg[][2] = { 259 { USBTV_BASE + 0x016f, usbtv_norm_to_16f_reg(norm) } 260 }; > 261 ret = usbtv_set_regs(usbtv, cfg, ARRAY_SIZE(cfg)); 262 } 263 264 return ret; 265 } 266 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip