On Mon, Feb 1, 2016 at 12:04 PM, Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > > > On 02/01/2016 10:07 AM, Ran Shalit wrote: >> On Mon, Feb 1, 2016 at 10:14 AM, Hans Verkuil <hverkuil@xxxxxxxxx> wrote: >>> >>> >>> On 02/01/2016 09:00 AM, Ran Shalit wrote: >>>> On Sun, Jan 31, 2016 at 10:35 PM, Ran Shalit <ranshalit@xxxxxxxxx> wrote: >>>>> Hello, >>>>> >>>>> Maybe someone will have some idea about the following: >>>>> I am using a pci card (not video card, just some dummy pci card), to >>>>> check v4l2 template for PCIe card (I used solo6x10 as template for the >>>>> driver and moved all hardware related to video into remarks). >>>>> I don't use any register read/write to hardware (just dummy functions). >>>>> >>>>> I get that load/unload of module is successful. >>>>> But on trying to start reading video frames (using read method with >>>>> v4l API userspace example), I get that the whole operating system is >>>>> freezed, and I must reboot the machine. >>>>> This is the queue_setup callback: >>>>> >>>>> static int test_queue_setup(struct vb2_queue *q, const struct v4l2_format *fmt, >>>>> unsigned int *num_buffers, unsigned int *num_planes, >>>>> unsigned int sizes[], void *alloc_ctxs[]) >>>>> { >>>>> struct test_dev *solo_dev = vb2_get_drv_priv(q); >>>>> dev_info(&test_dev->pdev->dev,"test_queue_setup\n"); >>>>> sizes[0] = test_image_size(test_dev); >>>>> alloc_ctxs[0] = solo_dev->alloc_ctx; >>>>> *num_planes = 1; >>>>> >>>>> if (*num_buffers < MIN_VID_BUFFERS) >>>>> *num_buffers = MIN_VID_BUFFERS; >>>>> >>>>> return 0; >>>>> } >>>>> >>>>> static const struct vb2_ops test_video_qops = { >>>>> .queue_setup = test_queue_setup, >>>>> .buf_queue = test_buf_queue, >>>>> .start_streaming = test_start_streaming, <- does nothing >>>>> .stop_streaming = test_stop_streaming, <- does nothing >>>>> .wait_prepare = vb2_ops_wait_prepare, >>>>> .wait_finish = vb2_ops_wait_finish, >>>>> }; >>>>> >>>>> >>>>> I didn't find anything suspicious in the videobuf2 callback that can >>>>> explain these freeze.( start_streaming,stop_streaming contains just >>>>> printk with function name). >>>>> I also can't know where it got stuck (The system is freezed without >>>>> any logging on screen, all log is in dmesg). >>>>> >>>>> Thank for any idea, >>>>> Ran >>>> >>>> On start reading frames (using read or mmap method), it seems as if >>>> there is some collisions between the pci video card and another card >>>> (becuase the monitor is also printed with strange colors as the moment >>>> the OS freezes) . >>>> I validated again that the PCIe boards IDs in the table are correct >>>> (it matches only the dummy pcie card when it is connected ). >>>> I also tried to comment out the irq request, to be sure that there is >>>> no irq collision with another board, but it still get freezed anyway. >>> >>> I can't tell anything from this, I'd need to see the full source. >>> >>> Regards, >>> >>> Hans >> >> Thank you Hans, >> The source code base on solo6x10 as template , and kernel 3.10.0.229 >> (I needed to use this kernel version instead of latest as start point >> because of other pacakge , Intel's media sdk encoder ) : >> >> https://drive.google.com/file/d/0B22GsWueReZTSElIUEJJSHplUVU/view?usp=sharing >> - This package compiled with the makefile >> - relevant changes are in solo6x10-core.c & solo6x10-v4l2.c > > It would certainly help if you don't try to enable interrupts on your pci > card. Basically, don't touch the pci at all. The only purpose of using a > dummy PCI card is that your template driver is loaded. But touching the hardware > will of course have bad results since it isn't video hardware. > > Frankly, why not just take the v4l2-pci-skeleton.c as your template instead > of trying to strip down the solo driver? The skeleton driver is already stripped > down! > > Much easier. > > Regards, > > Hans Hi Hans, Thank you for the suggestions. I've tried the skeleton and I got the same behaviour. When using vivid device, it works (frame reading) without any issues. Since the whole system freezes its hard to know the exact problem. Regards, Ran -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html