CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: Mauro Carvalho Chehab <[email protected]> CC: [email protected]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: ef8e4d3c2ab1f47f63b6c7e578266b7e5cc9cd1b commit: 81acf39488cfe99319b0a25f2b9a0e2e3bb40b6d media: platform: place Via drivers on a separate dir date: 7 weeks ago :::::: branch date: 5 hours ago :::::: commit date: 7 weeks ago config: riscv-randconfig-c006-20220503 (https://download.01.org/0day-ci/archive/20220504/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 363b3a645a1e30011cc8da624f13dac5fd915628) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=81acf39488cfe99319b0a25f2b9a0e2e3bb40b6d git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 81acf39488cfe99319b0a25f2b9a0e2e3bb40b6d # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^~~ drivers/md/dm-kcopyd.c:913:2: note: Taking false branch if (!kc) ^ drivers/md/dm-kcopyd.c:916:2: note: Loop condition is false. Exiting loop spin_lock_init(&kc->job_lock); ^ include/linux/spinlock.h:329:35: note: expanded from macro 'spin_lock_init' # define spin_lock_init(lock) \ ^ drivers/md/dm-kcopyd.c:924:6: note: Assuming 'r' is 0 if (r) ^ drivers/md/dm-kcopyd.c:924:2: note: Taking false branch if (r) ^ drivers/md/dm-kcopyd.c:927:2: note: Loop condition is false. Exiting loop INIT_WORK(&kc->kcopyd_work, do_work); ^ include/linux/workqueue.h:245:2: note: expanded from macro 'INIT_WORK' __INIT_WORK((_work), (_func), 0) ^ include/linux/workqueue.h:225:2: note: expanded from macro '__INIT_WORK' do { \ ^ drivers/md/dm-kcopyd.c:929:6: note: Assuming field 'kcopyd_wq' is non-null if (!kc->kcopyd_wq) { ^~~~~~~~~~~~~~ drivers/md/dm-kcopyd.c:929:2: note: Taking false branch if (!kc->kcopyd_wq) { ^ drivers/md/dm-kcopyd.c:939:6: note: Calling 'client_reserve_pages' r = client_reserve_pages(kc, reserve_pages); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/dm-kcopyd.c:309:20: note: 'pl' initialized to a null pointer value struct page_list *pl = NULL, *next; ^~ drivers/md/dm-kcopyd.c:311:14: note: Assuming 'i' is >= 'nr_pages' for (i = 0; i < nr_pages; i++) { ^~~~~~~~~~~~ drivers/md/dm-kcopyd.c:311:2: note: Loop condition is false. Execution continues on line 322 for (i = 0; i < nr_pages; i++) { ^ drivers/md/dm-kcopyd.c:323:23: note: Passing null pointer value via 2nd parameter 'pl' kcopyd_put_pages(kc, pl); ^~ drivers/md/dm-kcopyd.c:323:2: note: Calling 'kcopyd_put_pages' kcopyd_put_pages(kc, pl); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/dm-kcopyd.c:246:10: note: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'pl') next = pl->next; ^~ Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. lib/842/842_compress.c:534:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = add_repeat_template(p, repeat_count); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/842/842_compress.c:534:4: note: Value stored to 'ret' is never read ret = add_repeat_template(p, repeat_count); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. >> drivers/media/platform/via/via-camera.c:1259:2: warning: Value stored to >> 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = vb2_queue_init(vq); ^ ~~~~~~~~~~~~~~~~~~ drivers/media/platform/via/via-camera.c:1259:2: note: Value stored to 'ret' is never read ret = vb2_queue_init(vq); ^ ~~~~~~~~~~~~~~~~~~ Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. drivers/power/supply/generic-adc-battery.c:288:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = PTR_ERR(adc_bat->channel[chan]); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/power/supply/generic-adc-battery.c:288:4: note: Value stored to 'ret' is never read ret = PTR_ERR(adc_bat->channel[chan]); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (2 in non-user code, 2 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. vim +/ret +1259 drivers/media/platform/via/via-camera.c a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1136 4c62e9764ab403 drivers/media/platform/via-camera.c Greg Kroah-Hartman 2012-12-21 1137 static int viacam_probe(struct platform_device *pdev) 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1138 { 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1139 int ret; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1140 struct i2c_adapter *sensor_adapter; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1141 struct viafb_dev *viadev = pdev->dev.platform_data; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1142 struct vb2_queue *vq; a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1143 struct i2c_board_info ov7670_info = { a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1144 .type = "ov7670", a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1145 .addr = 0x42 >> 1, a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1146 .platform_data = &sensor_cfg, a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1147 }; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1148 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1149 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1150 * Note that there are actually two capture channels on 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1151 * the device. We only deal with one for now. That 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1152 * is encoded here; nothing else assumes it's dealing with 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1153 * a unique capture device. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1154 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1155 struct via_camera *cam; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1156 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1157 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1158 * Ensure that frame buffer memory has been set aside for 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1159 * this purpose. As an arbitrary limit, refuse to work 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1160 * with less than two frames of VGA 16-bit data. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1161 * 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1162 * If we ever support the second port, we'll need to set 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1163 * aside more memory. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1164 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1165 if (viadev->camera_fbmem_size < (VGA_HEIGHT*VGA_WIDTH*4)) { 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1166 printk(KERN_ERR "viacam: insufficient FB memory reserved\n"); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1167 return -ENOMEM; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1168 } 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1169 if (viadev->engine_mmio == NULL) { 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1170 printk(KERN_ERR "viacam: No I/O memory, so no pictures\n"); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1171 return -ENOMEM; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1172 } c6384c886dfed8 drivers/media/video/via-camera.c Daniel Drake 2011-03-03 1173 c6384c886dfed8 drivers/media/video/via-camera.c Daniel Drake 2011-03-03 1174 if (machine_is_olpc() && viacam_serial_is_enabled()) c6384c886dfed8 drivers/media/video/via-camera.c Daniel Drake 2011-03-03 1175 return -EBUSY; c6384c886dfed8 drivers/media/video/via-camera.c Daniel Drake 2011-03-03 1176 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1177 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1178 * Basic structure initialization. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1179 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1180 cam = kzalloc (sizeof(struct via_camera), GFP_KERNEL); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1181 if (cam == NULL) 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1182 return -ENOMEM; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1183 via_cam_info = cam; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1184 cam->platdev = pdev; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1185 cam->viadev = viadev; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1186 cam->opstate = S_IDLE; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1187 cam->user_format = cam->sensor_format = viacam_def_pix_format; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1188 mutex_init(&cam->lock); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1189 INIT_LIST_HEAD(&cam->buffer_queue); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1190 cam->mmio = viadev->engine_mmio; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1191 cam->fbmem = viadev->fbmem; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1192 cam->fb_offset = viadev->camera_fbmem_offset; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1193 cam->flags = 1 << CF_CONFIG_NEEDED; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1194 cam->mbus_code = via_def_mbus_code; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1195 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1196 * Tell V4L that we exist. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1197 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1198 ret = v4l2_device_register(&pdev->dev, &cam->v4l2_dev); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1199 if (ret) { 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1200 dev_err(&pdev->dev, "Unable to register v4l2 device\n"); dbf8f4e5839869 drivers/media/platform/via-camera.c Javier Martin 2013-01-29 1201 goto out_free; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1202 } dbf8f4e5839869 drivers/media/platform/via-camera.c Javier Martin 2013-01-29 1203 ret = v4l2_ctrl_handler_init(&cam->ctrl_handler, 10); dbf8f4e5839869 drivers/media/platform/via-camera.c Javier Martin 2013-01-29 1204 if (ret) dbf8f4e5839869 drivers/media/platform/via-camera.c Javier Martin 2013-01-29 1205 goto out_unregister; dbf8f4e5839869 drivers/media/platform/via-camera.c Javier Martin 2013-01-29 1206 cam->v4l2_dev.ctrl_handler = &cam->ctrl_handler; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1207 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1208 * Convince the system that we can do DMA. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1209 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1210 pdev->dev.dma_mask = &viadev->pdev->dma_mask; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1211 dma_set_mask(&pdev->dev, 0xffffffff); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1212 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1213 * Fire up the capture port. The write to 0x78 looks purely 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1214 * OLPCish; any system will need to tweak 0x1e. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1215 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1216 via_write_reg_mask(VIASR, 0x78, 0, 0x80); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1217 via_write_reg_mask(VIASR, 0x1e, 0xc0, 0xc0); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1218 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1219 * Get the sensor powered up. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1220 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1221 ret = via_sensor_power_setup(cam); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1222 if (ret) dbf8f4e5839869 drivers/media/platform/via-camera.c Javier Martin 2013-01-29 1223 goto out_ctrl_hdl_free; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1224 via_sensor_power_up(cam); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1225 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1226 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1227 * See if we can't find it on the bus. The VIA_PORT_31 assumption 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1228 * is OLPC-specific. 0x42 assumption is ov7670-specific. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1229 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1230 sensor_adapter = viafb_find_i2c_adapter(VIA_PORT_31); a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1231 cam->sensor = v4l2_i2c_new_subdev_board(&cam->v4l2_dev, sensor_adapter, a39fbb1d747aa8 drivers/media/video/via-camera.c Daniel Drake 2012-04-30 1232 &ov7670_info, NULL); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1233 if (cam->sensor == NULL) { 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1234 dev_err(&pdev->dev, "Unable to find the sensor!\n"); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1235 ret = -ENODEV; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1236 goto out_power_down; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1237 } 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1238 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1239 * Get the IRQ. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1240 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1241 viacam_int_disable(cam); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1242 ret = request_threaded_irq(viadev->pdev->irq, viacam_quick_irq, 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1243 viacam_irq, IRQF_SHARED, "via-camera", cam); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1244 if (ret) 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1245 goto out_power_down; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1246 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1247 vq = &cam->vq; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1248 vq->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1249 vq->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF | VB2_READ; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1250 vq->drv_priv = cam; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1251 vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1252 vq->buf_struct_size = sizeof(struct via_buffer); 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1253 vq->dev = cam->v4l2_dev.dev; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1254 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1255 vq->ops = &viacam_vb2_ops; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1256 vq->mem_ops = &vb2_dma_sg_memops; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1257 vq->lock = &cam->lock; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1258 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 @1259 ret = vb2_queue_init(vq); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1260 /* 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1261 * Tell V4l2 that we exist. 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1262 */ 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1263 cam->vdev = viacam_v4l_template; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1264 cam->vdev.v4l2_dev = &cam->v4l2_dev; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1265 cam->vdev.lock = &cam->lock; 4590c07462fbff drivers/media/platform/via-camera.c Hans Verkuil 2019-07-28 1266 cam->vdev.queue = vq; 4965bcd3c1f3d3 drivers/media/platform/via-camera.c Hans Verkuil 2019-07-17 1267 video_set_drvdata(&cam->vdev, cam); 70cad4495a7438 drivers/media/platform/via-camera.c Hans Verkuil 2020-02-03 1268 ret = video_register_device(&cam->vdev, VFL_TYPE_VIDEO, -1); 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1269 if (ret) 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1270 goto out_irq; 024fafbac36b17 drivers/media/video/via-camera.c Jonathan Corbet 2010-10-19 1271 :::::: The code at line 1259 was first introduced by commit :::::: 4590c07462fbff4ecbfe1deec44431c16191bd19 media: via-camera: convert to the vb2 framework :::::: TO: Hans Verkuil <[email protected]> :::::: CC: Mauro Carvalho Chehab <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
