Hi Mauro, This is my solo6x10 driver overhaul. It is identical to:
http://www.mail-archive.com/linux-media@vger.kernel.org/msg59864.html but rebased on top of my const changes (http://patchwork.linuxtv.org/patch/17568/) and with the source/header rename patches. This patch series syncs the driver to the latest code from Bluecherry and then fixes many v4l issues. Remaining open issues: 1) Most importantly, the video from video0 is broken: it is supposed to be either one of the four inputs or a 2x2 image of all four inputs, instead I always get the first video line of the input repeated for the whole image. I have no idea why and it would be very nice if someone from Bluecherry can look at this. I do not see anything wrong in the DMA code, so it is a mystery to me. 2) I couldn't get it to work on a big-endian system. Perhaps it is because the PCI card is sitting in a PCIe slot using a PCIe-to-PCI adapter. 3) The 'extended streams' have been disabled. Basically you can get two encoded streams out of the box: each with different encoder settings (e.g. high and low bitrates). This should probably be implemented as an extra video node. 4) There is a custom extension for motion detection. Besides adding two private ioctls to support regional motion thresholds I left that part otherwise unchanged as it doesn't look too bad, but I am unable to test it properly. I've ordered a suitable CCTV camera from dealextreme, but that will take a few weeks before I have it (dx.com is cheap, but delivery is quite slow). I'd like to experiment a bit with this. 5) The tw28* 'drivers' should really be split off as subdevice drivers. 6) Capture of video0 is now using dma-contig. It used to be dma-sg, but due to locking issues Bluecherry changed it to dma-contig. So I've kept it that way, but it can probably be converted back to dma-sg. But issue 1 should be fixed first before we mess with this. So there is still work to be done, but at least the driver is in a much better state. The idea is that Bluecherry will develop from this code base and keep the kernel driver in sync. Regards, Hans The following changes since commit 8bf1a5a826d06a9b6f65b3e8dffb9be59d8937c3: v4l2-ioctl: add precision when printing names. (2013-03-22 11:59:21 +0100) are available in the git repository at: git://linuxtv.org/hverkuil/media_tree.git solo3 for you to fetch changes up to 13c810d87b0e332ecefb3a889246f2d2b3d4e749: solo6x10: prefix sources with 'solo6x10-' (2013-03-22 12:40:36 +0100) ---------------------------------------------------------------- Hans Verkuil (21): solo6x10: sync to latest code from Bluecherry's git repo. solo6x10: fix querycap and update driver version. solo6x10: add v4l2_device. solo6x10: add control framework. solo6x10: fix various format-related compliancy issues. solo6x10: add support for prio and control event handling. solo6x10: move global fields in solo_dev_fh to solo_dev. solo6x10: move global fields in solo_enc_fh to solo_enc_dev. solo6x10: convert encoder nodes to vb2. solo6x10: convert the display node to vb2. solo6x10: fix 'BUG: key ffff88081a2a9b58 not in .data!' solo6x10: add call to pci_dma_mapping_error. solo6x10: drop video_type and add proper s_std support. solo6x10: also stop DMA if the SOLO_PCI_ERR_P2M_DESC is raised. solo6x10: small big-endian fix. solo6x10: use V4L2_PIX_FMT_MPEG4, not _FMT_MPEG solo6x10: fix sequence handling. solo6x10: disable the 'priv' abuse. solo6x10: clean up motion detection handling. solo6x10: rename headers. solo6x10: prefix sources with 'solo6x10-' drivers/staging/media/solo6x10/Kconfig | 3 +- drivers/staging/media/solo6x10/Makefile | 4 +- drivers/staging/media/solo6x10/TODO | 33 +- drivers/staging/media/solo6x10/core.c | 321 -------- drivers/staging/media/solo6x10/offsets.h | 74 -- drivers/staging/media/solo6x10/osd-font.h | 154 ---- drivers/staging/media/solo6x10/p2m.c | 306 ------- drivers/staging/media/solo6x10/solo6x10-core.c | 708 ++++++++++++++++ drivers/staging/media/solo6x10/{disp.c => solo6x10-disp.c} | 128 ++- drivers/staging/media/solo6x10/solo6x10-eeprom.c | 154 ++++ drivers/staging/media/solo6x10/{enc.c => solo6x10-enc.c} | 240 ++++-- drivers/staging/media/solo6x10/{g723.c => solo6x10-g723.c} | 93 ++- drivers/staging/media/solo6x10/{gpio.c => solo6x10-gpio.c} | 13 +- drivers/staging/media/solo6x10/{i2c.c => solo6x10-i2c.c} | 26 +- drivers/staging/media/solo6x10/solo6x10-jpeg.h | 94 ++- drivers/staging/media/solo6x10/solo6x10-offsets.h | 85 ++ drivers/staging/media/solo6x10/solo6x10-p2m.c | 332 ++++++++ drivers/staging/media/solo6x10/{registers.h => solo6x10-regs.h} | 88 +- drivers/staging/media/solo6x10/{tw28.c => solo6x10-tw28.c} | 187 +++-- drivers/staging/media/solo6x10/{tw28.h => solo6x10-tw28.h} | 12 +- drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c | 1363 ++++++++++++++++++++++++++++++ drivers/staging/media/solo6x10/solo6x10-v4l2.c | 734 +++++++++++++++++ drivers/staging/media/solo6x10/solo6x10.h | 257 ++++-- drivers/staging/media/solo6x10/v4l2-enc.c | 1829 ----------------------------------------- drivers/staging/media/solo6x10/v4l2.c | 961 ---------------------- 25 files changed, 4161 insertions(+), 4038 deletions(-) delete mode 100644 drivers/staging/media/solo6x10/core.c delete mode 100644 drivers/staging/media/solo6x10/offsets.h delete mode 100644 drivers/staging/media/solo6x10/osd-font.h delete mode 100644 drivers/staging/media/solo6x10/p2m.c create mode 100644 drivers/staging/media/solo6x10/solo6x10-core.c rename drivers/staging/media/solo6x10/{disp.c => solo6x10-disp.c} (74%) create mode 100644 drivers/staging/media/solo6x10/solo6x10-eeprom.c rename drivers/staging/media/solo6x10/{enc.c => solo6x10-enc.c} (50%) rename drivers/staging/media/solo6x10/{g723.c => solo6x10-g723.c} (83%) rename drivers/staging/media/solo6x10/{gpio.c => solo6x10-gpio.c} (91%) rename drivers/staging/media/solo6x10/{i2c.c => solo6x10-i2c.c} (92%) create mode 100644 drivers/staging/media/solo6x10/solo6x10-offsets.h create mode 100644 drivers/staging/media/solo6x10/solo6x10-p2m.c rename drivers/staging/media/solo6x10/{registers.h => solo6x10-regs.h} (90%) rename drivers/staging/media/solo6x10/{tw28.c => solo6x10-tw28.c} (84%) rename drivers/staging/media/solo6x10/{tw28.h => solo6x10-tw28.h} (88%) create mode 100644 drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c create mode 100644 drivers/staging/media/solo6x10/solo6x10-v4l2.c delete mode 100644 drivers/staging/media/solo6x10/v4l2-enc.c delete mode 100644 drivers/staging/media/solo6x10/v4l2.c -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html