2154 cam->v4ldev.debug = 0;
2155
2156 cam->v4ldev.parent = &pdev->dev;
2157 ret = video_register_device(&cam->v4ldev, VFL_TYPE_GRABBER, -1);
2158 if (ret)
2159 goto out_smbus;
2160
2161
2162
2163 if (!alloc_bufs_at_read) {
2164 if (cafe_alloc_dma_bufs(cam, 1))
2165 cam_warn(cam, "Unable to alloc DMA buffers at load"
2166 " will try again later.");
2167 }
2168
2169 cafe_dfs_cam_setup(cam);
2170 mutex_unlock(&cam->s_mutex);
2171 cafe_add_dev(cam);
2172 return 0;
2173
2174 out_smbus:
2175 cafe_smbus_shutdown(cam);
2176 out_freeirq:
2177 cafe_ctlr_power_down(cam);
2178 free_irq(pdev->irq, cam);
2179 out_iounmap:
2180 pci_iounmap(pdev, cam->regs);
2181 out_free:
2182 kfree(cam);
2183 out:
2184 return ret;
2185}
2186
2187
2188
2189
2190
2191static void cafe_shutdown(struct cafe_camera *cam)
2192{
2193
2194 cafe_dfs_cam_shutdown(cam);