[no subject]
-- Hallo Mein Name ist Tom Crist Ich habe eine Spende von €2.100.000,00 für Sie. Ich habe die Amerika-Lotterie in Amerika im Wert von 40 Millionen Dollar gewonnen und ich gebe einen Teil davon an fünf glückliche Leute zum Gedenken an meine verstorbene Frau, die an Krebs gestorben ist. Kontaktieren Sie mich für weitere Details Tom Crist
kernel 4.14 causes duplicate key presses
I just submitted this redhat bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1528754, but I see the ir-keytable man page says send bug reports here, so here I am :-). When I updated my Intel NUC recently with latest fedora 26 updates, I got a 4.14 kernel and the next time I tried to use kodi after that, all my remote key presses were duplicated. I went back to the previous kernel (4.13) and everything worked fine. More details can be found in the bugzilla linked above.
[PATCH 5/8] Documentation: fix media related doc refs
Make media doc refs valid. Signed-off-by: Tom Saeger <tom.sae...@oracle.com> --- Documentation/admin-guide/kernel-parameters.txt| 4 ++-- Documentation/media/dvb-drivers/bt8xx.rst | 8 Documentation/media/uapi/v4l/dev-sliced-vbi.rst| 2 +- Documentation/media/uapi/v4l/extended-controls.rst | 2 +- Documentation/media/uapi/v4l/pixfmt-reserved.rst | 2 +- Documentation/media/v4l-drivers/max2175.rst| 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 411b41127eee..cbfae6b1c644 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -439,7 +439,7 @@ bttv.card= [HW,V4L] bttv (bt848 + bt878 based grabber cards) bttv.radio= Most important insmod options are available as kernel args too. - bttv.pll= See Documentation/video4linux/bttv/Insmod-options + bttv.pll= See Documentation/media/v4l-drivers/bttv.rst bttv.tuner= bulk_remove=off [PPC] This parameter disables the use of the pSeries @@ -2251,7 +2251,7 @@ See Documentation/admin-guide/pm/sleep-states.rst. meye.*= [HW] Set MotionEye Camera parameters - See Documentation/video4linux/meye.txt. + See Documentation/media/v4l-drivers/meye.rst. mfgpt_irq= [IA-32] Specify the IRQ to use for the Multi-Function General Purpose Timers on AMD Geode diff --git a/Documentation/media/dvb-drivers/bt8xx.rst b/Documentation/media/dvb-drivers/bt8xx.rst index b43958b7340c..e3e387bdf498 100644 --- a/Documentation/media/dvb-drivers/bt8xx.rst +++ b/Documentation/media/dvb-drivers/bt8xx.rst @@ -18,7 +18,7 @@ General information This class of cards has a bt878a as the PCI interface, and require the bttv driver for accessing the i2c bus and the gpio pins of the bt8xx chipset. -Please see Documentation/dvb/cards.txt => o Cards based on the Conexant Bt8xx PCI bridge: +Please see Documentation/media/dvb-drivers/cards.rst => o Cards based on the Conexant Bt8xx PCI bridge: Compiling kernel please enable: @@ -45,7 +45,7 @@ Loading Modules Regular case: If the bttv driver detects a bt8xx-based DVB card, all frontend and backend modules will be loaded automatically. Exceptions are: - Old TwinHan DST cards or clones with or without CA slot and not containing an Eeprom. -People running udev please see Documentation/dvb/udev.txt. +People running udev please see Documentation/media/dvb-drivers/udev.rst. In the following cases overriding the PCI type detection for dvb-bt8xx might be necessary: @@ -72,7 +72,7 @@ Useful parameters for verbosity level and debugging the dst module: The autodetected values are determined by the cards' "response string". In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI]. For bug reports please send in a complete log with verbose=4 activated. -Please also see Documentation/dvb/ci.txt. +Please also see Documentation/media/dvb-drivers/ci.rst. Running multiple cards ~~ @@ -100,7 +100,7 @@ Examples of card ID's: $ modprobe bttv card=113 card=135 -For a full list of card ID's please see Documentation/video4linux/CARDLIST.bttv. +For a full list of card ID's please see Documentation/media/v4l-drivers/bttv-cardlist.rst. In case of further problems please subscribe and send questions to the mailing list: linux-...@linuxtv.org. Probing the cards with broken PCI subsystem ID diff --git a/Documentation/media/uapi/v4l/dev-sliced-vbi.rst b/Documentation/media/uapi/v4l/dev-sliced-vbi.rst index 9d6c860271cb..d311a6866b3b 100644 --- a/Documentation/media/uapi/v4l/dev-sliced-vbi.rst +++ b/Documentation/media/uapi/v4l/dev-sliced-vbi.rst @@ -431,7 +431,7 @@ MPEG stream. *Historical context*: This format specification originates from a custom, embedded, sliced VBI data format used by the ``ivtv`` driver. This format has already been informally specified in the kernel sources -in the file ``Documentation/video4linux/cx2341x/README.vbi`` . The +in the file ``Documentation/media/v4l-drivers/cx2341x.rst`` . The maximum size of the payload and other aspects of this format are driven by the CX23415 MPEG decoder's capabilities and limitations with respect to extracting, decoding, and displaying sliced VBI data embedded within diff --git a/Documentation/media/uapi/v4l/extended-controls.rst b/Documentation/media/uapi/v4l/extended-controls.rst index a3e81c1d276b..dfe49ae57e78 100644 --- a/Documentation/media/uapi/v4l/extended-controls.rst +++ b/Documentation/media/uapi/v4l/extended-controls.rst @@ -284,7 +284,7 @@ enum v4l2_mpeg_stream_vbi_fmt - * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV`` - VBI in private packets, IVTV format (documented in the
[PATCH 2/8] Documentation: fix admin-guide doc refs
Make admin-guide document refs valid. Signed-off-by: Tom Saeger <tom.sae...@oracle.com> --- Documentation/ABI/stable/sysfs-devices | 2 +- Documentation/ABI/testing/sysfs-devices-system-cpu | 6 -- Documentation/ABI/testing/sysfs-power | 6 -- Documentation/admin-guide/README.rst | 2 +- Documentation/admin-guide/kernel-parameters.txt| 4 ++-- Documentation/admin-guide/reporting-bugs.rst | 4 ++-- Documentation/laptops/laptop-mode.txt | 6 +++--- Documentation/media/v4l-drivers/bttv.rst | 2 +- Documentation/power/interface.txt | 3 ++- 9 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Documentation/ABI/stable/sysfs-devices b/Documentation/ABI/stable/sysfs-devices index 35c457f8ce73..4404bd9b96c1 100644 --- a/Documentation/ABI/stable/sysfs-devices +++ b/Documentation/ABI/stable/sysfs-devices @@ -1,5 +1,5 @@ # Note: This documents additional properties of any device beyond what -# is documented in Documentation/sysfs-rules.txt +# is documented in Documentation/admin-guide/sysfs-rules.rst What: /sys/devices/*/of_node Date: February 2015 diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu index f3d5817c4ef0..d6d862db3b5d 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -187,7 +187,8 @@ Description:Processor frequency boosting control This switch controls the boost setting for the whole system. Boosting allows the CPU and the firmware to run at a frequency beyound it's nominal limit. - More details can be found in Documentation/cpu-freq/boost.txt + More details can be found in + Documentation/admin-guide/pm/cpufreq.rst What: /sys/devices/system/cpu/cpu#/crash_notes @@ -223,7 +224,8 @@ Description:Parameters for the Intel P-state driver no_turbo: limits the driver to selecting P states below the turbo frequency range. - More details can be found in Documentation/cpu-freq/intel-pstate.txt + More details can be found in + Documentation/admin-guide/pm/intel_pstate.rst What: /sys/devices/system/cpu/cpu*/cache/index*/ Date: July 2014(documented, existed before August 2008) diff --git a/Documentation/ABI/testing/sysfs-power b/Documentation/ABI/testing/sysfs-power index a1d1612f3651..1e0d1dac706b 100644 --- a/Documentation/ABI/testing/sysfs-power +++ b/Documentation/ABI/testing/sysfs-power @@ -18,7 +18,8 @@ Description: Writing one of the above strings to this file causes the system to transition into the corresponding state, if available. - See Documentation/power/states.txt for more information. + See Documentation/admin-guide/pm/sleep-states.rst for more + information. What: /sys/power/mem_sleep Date: November 2016 @@ -35,7 +36,8 @@ Description: represented by it to be used on subsequent attempts to suspend the system. - See Documentation/power/states.txt for more information. + See Documentation/admin-guide/pm/sleep-states.rst for more + information. What: /sys/power/disk Date: September 2006 diff --git a/Documentation/admin-guide/README.rst b/Documentation/admin-guide/README.rst index b5343c5aa224..63066db39910 100644 --- a/Documentation/admin-guide/README.rst +++ b/Documentation/admin-guide/README.rst @@ -350,7 +350,7 @@ If something goes wrong help debugging the problem. The text above the dump is also important: it tells something about why the kernel dumped code (in the above example, it's due to a bad kernel pointer). More information - on making sense of the dump is in Documentation/admin-guide/oops-tracing.rst + on making sense of the dump is in Documentation/admin-guide/bug-hunting.rst - If you compiled the kernel with CONFIG_KALLSYMS you can send the dump as is, otherwise you will have to use the ``ksymoops`` program to make diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 05496622b4ef..e857bbbc8575 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -2248,7 +2248,7 @@ s2idle - Suspend-To-Idle shallow - Power-On Suspend or equivalent (if supported) deep- Suspend-To-RAM or equivalent (if supported) - See Documentation/power/states.txt. + See Documentation/admin-guide/pm/sleep-states.rst. meye.*= [HW] Set MotionEye
Re: kill off pci_enable_msi_{exact,range}
On 1/13/2017 11:15 AM, Christoph Hellwig wrote: > On Fri, Jan 13, 2017 at 11:13:21AM -0600, Bjorn Helgaas wrote: >> I dropped the empty commit and replaced the xgbe patch with the one below. >> Can you take a look at [1] and make sure it's what you expected? > > This looks great, thanks! > Christoph and Bjorn, thanks for taking care of this! Tom -- 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
Re: [PATCH 2/3] xgbe: switch to pci_irq_alloc_vectors
On 1/11/2017 3:03 AM, Christoph Hellwig wrote: > On Tue, Jan 10, 2017 at 12:40:10PM -0600, Tom Lendacky wrote: >> On 1/9/2017 2:37 PM, Christoph Hellwig wrote: >>> The newly added xgbe drivers uses the deprecated pci_enable_msi_exact >>> and pci_enable_msix_range interfaces. Switch it to use >>> pci_irq_alloc_vectors instead. >> >> I was just working on switching over to this API with some additional >> changes / simplification. I'm ok with using this patch so that you get >> the API removal accomplished. Going through the PCI tree just means >> it will probably be easier for me to hold off on the additional changes >> I wanted to make until later. > > Hi Tom, Hi Christoph, > > if you have a better patch I'd be more than happy to use that one instead, > this one was intended as a stupid search and replace. The important > part for me is to get the two conversions and the interface removal > in together. That sounds good, I'll send the patch to you in a separate email for use in your series. Thanks, Tom > > E.g. I've alreayd wondered why the driver requires the exact vector > number for MSI and a variable one for MSI-X, and there certainly is > all kinds of opportunity for cosmetic cleanup. > -- 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
Re: [PATCH 2/3] xgbe: switch to pci_irq_alloc_vectors
On 1/9/2017 2:37 PM, Christoph Hellwig wrote: > The newly added xgbe drivers uses the deprecated pci_enable_msi_exact > and pci_enable_msix_range interfaces. Switch it to use > pci_irq_alloc_vectors instead. I was just working on switching over to this API with some additional changes / simplification. I'm ok with using this patch so that you get the API removal accomplished. Going through the PCI tree just means it will probably be easier for me to hold off on the additional changes I wanted to make until later. Acked-by: Tom Lendacky <thomas.lenda...@amd.com> > > Signed-off-by: Christoph Hellwig <h...@lst.de> > --- > drivers/net/ethernet/amd/xgbe/xgbe-pci.c | 47 > +--- > drivers/net/ethernet/amd/xgbe/xgbe.h | 1 - > 2 files changed, 19 insertions(+), 29 deletions(-) > > diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c > b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c > index e76b7f6..be2690e 100644 > --- a/drivers/net/ethernet/amd/xgbe/xgbe-pci.c > +++ b/drivers/net/ethernet/amd/xgbe/xgbe-pci.c > @@ -133,12 +133,13 @@ static int xgbe_config_msi(struct xgbe_prv_data *pdata) >pdata->tx_ring_count); > msi_count = roundup_pow_of_two(msi_count); > > - ret = pci_enable_msi_exact(pdata->pcidev, msi_count); > + ret = pci_alloc_irq_vectors(pdata->pcidev, msi_count, msi_count, > + PCI_IRQ_MSI); > if (ret < 0) { > dev_info(pdata->dev, "MSI request for %u interrupts failed\n", >msi_count); > > - ret = pci_enable_msi(pdata->pcidev); > + ret = pci_alloc_irq_vectors(pdata->pcidev, 1, 1, PCI_IRQ_MSI); > if (ret < 0) { > dev_info(pdata->dev, "MSI enablement failed\n"); > return ret; > @@ -149,25 +150,26 @@ static int xgbe_config_msi(struct xgbe_prv_data *pdata) > > pdata->irq_count = msi_count; > > - pdata->dev_irq = pdata->pcidev->irq; > + pdata->dev_irq = pci_irq_vector(pdata->pcidev, 0); > > if (msi_count > 1) { > - pdata->ecc_irq = pdata->pcidev->irq + 1; > - pdata->i2c_irq = pdata->pcidev->irq + 2; > - pdata->an_irq = pdata->pcidev->irq + 3; > + pdata->ecc_irq = pci_irq_vector(pdata->pcidev, 1); > + pdata->i2c_irq = pci_irq_vector(pdata->pcidev, 2); > + pdata->an_irq = pci_irq_vector(pdata->pcidev, 3); > > for (i = XGBE_MSIX_BASE_COUNT, j = 0; >(i < msi_count) && (j < XGBE_MAX_DMA_CHANNELS); >i++, j++) > - pdata->channel_irq[j] = pdata->pcidev->irq + i; > + pdata->channel_irq[j] = > + pci_irq_vector(pdata->pcidev, i); > pdata->channel_irq_count = j; > > pdata->per_channel_irq = 1; > pdata->channel_irq_mode = XGBE_IRQ_MODE_LEVEL; > } else { > - pdata->ecc_irq = pdata->pcidev->irq; > - pdata->i2c_irq = pdata->pcidev->irq; > - pdata->an_irq = pdata->pcidev->irq; > + pdata->ecc_irq = pci_irq_vector(pdata->pcidev, 0); > + pdata->i2c_irq = pci_irq_vector(pdata->pcidev, 0); > + pdata->an_irq = pci_irq_vector(pdata->pcidev, 0); > } > > if (netif_msg_probe(pdata)) > @@ -186,33 +188,22 @@ static int xgbe_config_msix(struct xgbe_prv_data *pdata) > msix_count += max(pdata->rx_ring_count, > pdata->tx_ring_count); > > - pdata->msix_entries = devm_kcalloc(pdata->dev, msix_count, > -sizeof(struct msix_entry), > -GFP_KERNEL); > - if (!pdata->msix_entries) > - return -ENOMEM; > - > - for (i = 0; i < msix_count; i++) > - pdata->msix_entries[i].entry = i; > - > - ret = pci_enable_msix_range(pdata->pcidev, pdata->msix_entries, > - XGBE_MSIX_MIN_COUNT, msix_count); > + ret = pci_alloc_irq_vectors(pdata->pcidev, XGBE_MSIX_MIN_COUNT, > + msix_count, PCI_IRQ_MSIX); > if (ret < 0) { > dev_info(pdata->dev, "MSI-X enablement failed\n"); > - devm_kfree(pdata->dev, pdata->msix_entries); > - pdata->msix_entries = NULL; > return ret; > } > > pdata->ir
RE: Sony tuner chip driver questions
Hello Tim and Linux-media team. Thanks for the introduction. We look forward to working with the Linux Media group. Just a comment on the SPI interface in this TV tuner. The device acts as an SPI slave. The SPI bus is used for both, control interface (internal register read/writes) and also for transfer of the MPEG TS packet data. Regards Tom -Original Message- From: Bird, Timothy Sent: Friday, July 29, 2016 7:12 AM To: linux-media@vger.kernel.org Cc: Shimizu, Kazuhiro; Yamamoto, Masayuki; Yonezawa, Kota; Matsumoto, Toshihiko; Watanabe, Satoshi (SSS); Berry, Tom; Takiguchi, Yasunari; Rowand, Frank; tbird...@gmail.com Subject: Sony tuner chip driver questions Hello Linux-media people... :-) A group at Sony would like to develop a proper kernel driver for a TV/tuner chip that Sony produces, and we'd like to ask some questions before we get started. FYI - I'm kicking off the conversation thread, but I'm not a TV or media-driver person, so please excuse anything that sounds strangely worded or is just a really dumb question. I have experts CC:ed who can clarify anything I misstate. :-) First some background: The chip is in the same family as other chips for which there are currently some kernel drivers in mainline, produced by 3rd parties (not Sony). The drivers already in the tree are linux/media/dvb-frontend/cxd2820.c, cxd2841er.c, and ascot2e.c. Currently Sony provides a user-space driver to its customers, but we'd like to switch to an in-kernel driver. The chip has a tuner and demodulator included. First, we will be delivering the actual video data over SPI. Currently, we only see examples of doing this over PCI and USB busses. Are there any examples of the appropriate method to transfer video data (or other high-volume data) over SPI? If not, are there any recommendations or tips for going about this? Second, the current drivers for the cxd2820 and cxd2841 seem to use a lot of hard-coded register values (and don't appear to use device tree). We're not sure if these drivers are the best examples to follow in creating a new dvb driver for Linux. Is there a recommended driver or example that shows the most recent or preferred good structure for such drivers, that we should use in starting ours? Is DVB is the correct kernel subsystem to use for this driver, or is V4L more appropriate? If we have multiple files in our driver, should we put them all in the dvb-frontend directory, or should they be sprinkled around in different directories based on function? Or should we create a 'sony' directory somewhere to hold them? What debugging tools, if any, are available for testing dvb drivers in the kernel? Do any current tuner drivers support dual-tuner configurations? Thanks for any assistance or information you can provide to help us get started. -- Tim Bird Senior Staff Software Engineer, Sony North America P.S. We are ramping up the project now, but will likely get to major development effort in a month or two. -- 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
Philanthropic Donation To Your Email In Honor Of My Late Wife Who Died Of Cancer
I am Tom Crist retired CEO of EECOL Electric and winner of Forty Million Dollars in the Calgary Lotto and I ve made a donation to your email. Contact me with name, address, age, phone number and occupation via private email. View link for more info; http://www.cbc.ca/video/news/audioplayer.html?clipid=2424885304 -- 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
Re: why frameformat instead pixelformat?
Tom Bassai_Dai at gmx.net writes: Hello, ... For that I found the negotiation rfc of that topic, but I don't really get the relevance of a frameformat. http://www.spinics.net/lists/linux-media/msg10006.html Can anyone explain why the media-api uses the frameformat instead of the pixelformat and what the main differences are? ... Can really nobody explain me why the media-api uses the v4l2_mbus_framefmt instead of the v4l2_format?? -- 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
why frameformat instead pixelformat?
Hello, while reading into the media-api issue I found out that for configuring the entity pads a frameformat is used. For that I found the negotiation rfc of that topic, but I don't really get the relevance of a frameformat. http://www.spinics.net/lists/linux-media/msg10006.html Can anyone explain why the media-api uses the frameformat instead of the pixelformat and what the main differences are? Thanks in advance. Best regards, Tom -- 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
ti codec engine
Hello, I'm using dm3730 processor along with a ov3640 camera sensor. I'm working with the ti-dvsdk_dm3730-evm_04_03_00_06 and the appropriate 2.6.37 linux kernel. With a working camera driver I'm able to grab images and store them to memory. My goal is to use some kind of a image processing algorithm on the dsp with the image I stored in memory. So for that I read that the sdk provides the dsplink, the cmem, the lpm driver and on top of that the codec engine to work with the dsp. Are there already some tutorials or examples which matches my task? Does anyone have some experience with the codec engine from ti? Best Regards, Tom -- 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
Re: ov3640 sensor - CCDC won't become idle!
Peter Meerwald pmeerw at pmeerw.net writes: Hello Peter, Many thanks for posting your solution. Your idea sounds great and I'll give it a try on next monday. Thanks again. Best Regards, Tom -- 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
Your EMAIL Was Submitted To Me By Google To Receive $1.2 Million Donation From Me
Congratulations! You are receiving this email from Mr. Tom Crist, the Canadian CEO who won $40 million in the Calgary Lotto, i am writing to inform you that Google have submitted your Email upon my request to receive a check for $1.2 million from me, as I am giving all my winnings away to honour my late wife, Jan who died of cancer two years ago. Please send me your *FULL-NAMES, *AGE:, *CELL:, *COUNTRY:.Please view the links below for more details/information; http://edition.cnn.com/video/data/2.0/video/world/2013/12/18/dnt-ctv-network-lotto-winner.ctv-network.html http://www.cbc.ca/video/news/audioplayer.html?clipid=2424885304 Sincerely, Mr. Tom Crist, Retired Canadian CEO Lotto Winner -- 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
CCDC won't become idle!
Hello, sorry for questioning this issue again, but by all the articles I found I never got clear reason for the idle problem of the ccdc. With my camera its a kind of randomly problem. I grab images with the yavta tool. I configured it to wait for pressing ENTER before giving the STREAMON command. So now sometimes all works fine. I grab my images and they are as I imagined. But sometimes I get the ccdc won't become idle error. I really don't understand what this error causes. Are there any clear reasons what this problem causes? Best regrads, Tom -- 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
Re: Add private controls to ctrl_handler
Hans Verkuil hverkuil at xs4all.nl writes: Don't use V4L2_CID_PRIVATE_BASE, that doesn't work with the control framework (for good but somewhat obscure reasons). Instead use (V4L2_CID_USER_BASE | 0x1000) as the base for your private controls. If you want to upstream the code, then you should define a range for the private controls of this driver in v4l2-controls.h. Search for e.g. V4L2_CID_USER_S2255_BASE in that header to see how it is done. Regards, Hans thanks for your help. It worked for me with (V4L2_CID_USER_BASE | 0x1000) base and the v4l2_ctrl_new_custom function. Regards, Tom -- 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
Add private controls to ctrl_handler
Hello, I want to add some driver specific ctrls to my ctrl-handler which are not defined in the /include/uapi/linux/v4l2-controls.h. I read that I would need the V4L2_CID_PRIVATE_BASE to define the new IDs, but I don't get how I can add them to my ctrl-handler so that they are accessible by calling VIDIOC_S_CTRL. Can someone give me a hint how I can add my own controls to my ctrl-handler? what I tried: #define V4L2_SENS_TEST1 (V4L2_CID_PRIVATE_BASE + 1) #define V4L2_SENS_TEST2 (V4L2_CID_PRIVATE_BASE + 2) #define V4L2_SENS_TEST3 (V4L2_CID_PRIVATE_BASE + 3) static int ov3640_probe(struct i2c_client *client, const struct i2c_device_id *id) { . . . //I can add the standard controls as usual... v4l2_ctrl_handler_init(ov3640-ctrl_handler, 19); v4l2_ctrl_new_std(ov3640-ctrl_handler, ov3640_ctrl_ops, V4L2_CID_BRIGHTNESS, -48, 48, 1, 0); v4l2_ctrl_new_std(ov3640-ctrl_handler, ov3640_ctrl_ops, V4L2_CID_CONTRAST, -12, 12, 1, 0); v4l2_ctrl_new_std(ov3640-ctrl_handler, ov3640_ctrl_ops, V4L2_CID_SATURATION, -32, 32, 1, 0); . . . //so far so good... v4l2_ctrl_new_std(ov3640-ctrl_handler, ov3640_ctrl_ops, V4L2_SENS_TEST1, 0, 1, 1, 0); v4l2_ctrl_new_std(ov3640-ctrl_handler, ov3640_ctrl_ops, V4L2_SENS_TEST2, 0, 1, 1, 0); v4l2_ctrl_new_std(ov3640-ctrl_handler, ov3640_ctrl_ops, V4L2_SENS_TEST3, 0, 1, 1, 0); //but I cannot add these three controls like this. if (ov3640-ctrl_handler.error) { dev_err(client-dev, control initialization error %d\n, ov3640-ctrl_handler.error); ret = ov3640-ctrl_handler.error; goto done; } //the ctrl-handler will give me an ERROR back when adding these 3 controls } static int ov3640_ctrl(struct v4l2_ctrl *ctrl, int command) { struct ov3640 *ov3640 = container_of(ctrl-handler, struct ov3640, ctrl_handler); int ret = 0; switch (ctrl-id) { case V4L2_CID_BRIGHTNESS: ret = ov3640_set_brightness(ov3640, ctrl-val, command); break; case V4L2_CID_CONTRAST: ret = ov3640_set_contrast(ov3640, ctrl-val, command); break; case V4L2_CID_SATURATION: ret = ov3640_set_saturation(ov3640, ctrl-val, command); break; case V4L2_SENS_TEST1://! case V4L2_SENS_TEST2://! case V4L2_SENS_TEST3://! ret = ov3640_test(ov3640, ctrl-val, ctrl-id, command); break; } return ret; } static int ov3640_set_ctrl(struct v4l2_ctrl *ctrl) { int ret; int command = SET_DATA; ret = ov3640_ctrl(ctrl, command); return ret; } static int ov3640_get_ctrl(struct v4l2_ctrl *ctrl) { int ret; int command = GET_DATA; ret = ov3640_ctrl(ctrl, command); return ret; } static struct v4l2_ctrl_ops ov3640_ctrl_ops = { .s_ctrl = ov3640_set_ctrl, .g_volatile_ctrl = ov3640_get_ctrl, }; Best Regards, Tom -- 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
Re: Add private controls to ctrl_handler
Tom Bassai_Dai at gmx.net writes: sorry I forgot to tell that I am using linux version 3.10. Best Regards, Tom -- 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
use other formats from ov3640 camera sensor through the isp pipeline
Hello, I am using the ov3640 camera sensor along with the isp pipeline and configured it like: sensor-ccdc-memory My sensor supports more formats like rgb565 and so. Does anyone have an idea how I could manage to set these formats out of the users application? If I understand it right, the isp pipeline will not allow a format the ccdc sink pad does not know. Regards, Tom -- 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
ccdc image capture interrupts
Hello, I want to capture an image with my ov3640 camera sensor connected with a gumstix overo board. I tried to change the isp registers and the registers of the ov3640 like in an old driver which worked with kernel version 2.6.34. I was able to get an image but I don't understand what the problem might be. sudo ./media-ctl -v -r -l 'ov3640 3-003c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1]' sudo ./media-ctl -v -V 'ov3640 3-003c:0 [UYVY2X8 640x480], OMAP3 ISP CCDC:1 [UYVY2X8 640x480]' sudo ./yavta -p -f UYVY -s 640x480 -n 4 --skip 3 --capture=13 --file=img#.raw /dev/video2 the picture I got looks like this (should be a standard test pattern): http://s7.directupload.net/file/d/3435/2s5kuacl_png.htm does someone know on which signal each of these 3 functions (ccdc_vd0_isr; ccdc_vd1_isr; ccdc_hs_vs_isr) are called. what signal has to be high? Regards, Tom -- 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
LIRC Kernel Bug (mceusb device)
https://bugzilla.kernel.org/show_bug.cgi?id=64631 Bug ID: 64631 Summary: LIRC Kernel bug (mceusb device) Product: Drivers Version: 2.5 Kernel Version: 3.12.0 Hardware: x86-64 OS: Linux Tree: Mainline Status: NEW Severity: high Priority: P1 Component: USB Assignee: g...@kroah.com Reporter: xx_unknown...@hotmail.com Regression: No BUG: unable to handle kernel NULL pointer dereference My philips MCE USB receiver (mceusb device) does not work with Lirc and causes a kernel error. System is ubuntu 12.04-mini 64 bit. Please add me in CC. -- 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
Re: ov3640 driver tested with media-ctl and yavta
Tom Bassai_Dai at gmx.net writes: Hello, I tried to use the ov3640 camera driver from Laurent Pinchart with the media-ctl and the yavta tools. I configured the pipeline as sensor - ccdc -memory. First I got problems with the CCDC module. it always said that the ccdc won't become idle!, but it didn't restart by itself. So for testing I removed the waiting function which waits for the ccdc to become idle and tried again. Now I received some data from the buffers but the image is just black. Any idea what my problem could be? Best Regards, Tom Hello, I still have the problem that I don't receive any image data when the waiting function is commented in. I just get the ccdc won't become idle output. when this function is commented out and the polarities within the board-overo.c file are correct. I get some image data on which I can see the right structure but wrong colors. Does anyone have an idea what the problem could be when the color is incorrect? http://imageshack.us/photo/my-images/707/wkjf.png/ Regrads, Tom -- 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
Re: WPC8769L (WEC1020) support in winbond-cir?
On Mon, Oct 14, 2013 at 4:07 PM, Mauro Carvalho Chehab m.che...@samsung.com wrote: Hi Tom, Em Mon, 14 Oct 2013 15:16:20 +0200 Tom Gundersen t...@jklm.no escreveu: Hi David and Juan, I'm going through the various out-of-tree LIRC drivers to see if we can stop shipping them in Arch Linux [0]. So far it appears we can drop all except for lirc_wpc8769l [1] (PnP id WEC1020). Please copy the Linux Media ML to all Remote Controller drivers. There's where we're discussing those drivers. No need to c/c linux-input. Yeah, both lirc_atiusb and lirc_i2c were now obsoleted by upstream non-staging drivers. I suggest to just drop it from Arch Linux. Thanks for the info, we'll drop those drivers. Cheers, Tom -- 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
ov3640 driver tested with media-ctl and yavta
Hello, I tried to use the ov3640 camera driver from Laurent Pinchart with the media-ctl and the yavta tools. I configured the pipeline as sensor - ccdc -memory. First I got problems with the CCDC module. it always said that the ccdc won't become idle!, but it didn't restart by itself. So for testing I removed the waiting function which waits for the ccdc to become idle and tried again. Now I received some data from the buffers but the image is just black. Any idea what my problem could be? Best Regards, Tom -- 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
register ov3640 camera on i2c bus
Hello community, I tried to use my ov3640 camera along with my gumstix overo board and the linux kernel 3.10. So for that I added the appropriate lines into the board-overo.c file, but when I use i2cdetect after startup I get the wrong output: root@overo2:~# i2cdetect -r 3 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-3 using read byte commands. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@overo2:~# DMESG tells also that the driver couldn't be registered of the ISP. Can someone help me? Did I forget something to register the ov3640 on the ic2 bus? Regrads, Tom DMESG: root@overo2:~# dmesg [0.00] Booting Linux on physical CPU 0x0 [0.00] Linux version 3.10.0 (linuxentwickler@linuxentwickler-OEM) (gcc version 4.3.3 (GCC) ) #15 Thu Sep 26 15:32:18 CEST 2013 [0.00] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d [0.00] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [0.00] Machine: Gumstix Overo [0.00] cma: CMA: reserved 16 MiB at 8ec0 [0.00] Memory policy: ECC disabled, Data cache writeback [0.00] On node 0 totalpages: 56320 [0.00] free_area_init_node: node 0, pgdat c0763f94, node_mem_map c0cc6000 [0.00] Normal zone: 512 pages used for memmap [0.00] Normal zone: 0 pages reserved [0.00] Normal zone: 56320 pages, LIFO batch:15 [0.00] CPU: All CPU(s) started in SVC mode. [0.00] OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk ) [0.00] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [0.00] pcpu-alloc: [0] 0 [0.00] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 55808 [0.00] Kernel command line: mem=93M@0x8000 mem=128M@0x8800 console=ttyO2,115200n8 vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait [0.00] PID hash table entries: 1024 (order: 0, 4096 bytes) [0.00] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) [0.00] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) [0.00] Memory: 93MB 127MB = 220MB total [0.00] Memory: 193736k/193736k available, 32568k reserved, 0K highmem [0.00] Virtual kernel memory layout: [0.00] vector : 0x - 0x1000 ( 4 kB) [0.00] fixmap : 0xfff0 - 0xfffe ( 896 kB) [0.00] vmalloc : 0xd080 - 0xff00 ( 744 MB) [0.00] lowmem : 0xc000 - 0xd000 ( 256 MB) [0.00] pkmap : 0xbfe0 - 0xc000 ( 2 MB) [0.00] modules : 0xbf00 - 0xbfe0 ( 14 MB) [0.00] .text : 0xc0008000 - 0xc06bef04 (6876 kB) [0.00] .init : 0xc06bf000 - 0xc07093f4 ( 297 kB) [0.00] .data : 0xc070a000 - 0xc07681e8 ( 377 kB) [0.00].bss : 0xc07681e8 - 0xc0cc53b0 (5493 kB) [0.00] NR_IRQS:16 nr_irqs:16 16 [0.00] IRQ: Found an INTC at 0xfa20 (revision 4.0) with 96 interrupts [0.00] Total of 96 interrupts on 1 active controller [0.00] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz [0.00] OMAP clockevent source: timer1 at 32768 Hz [0.00] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms [0.00] OMAP clocksource: 32k_counter at 32768 Hz [0.00] Console: colour dummy device 80x30 [0.00] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar [0.00] ... MAX_LOCKDEP_SUBCLASSES: 8 [0.00] ... MAX_LOCK_DEPTH: 48 [0.00] ... MAX_LOCKDEP_KEYS:8191 [0.00] ... CLASSHASH_SIZE: 4096 [0.00] ... MAX_LOCKDEP_ENTRIES: 16384 [0.00] ... MAX_LOCKDEP_CHAINS: 32768 [0.00] ... CHAINHASH_SIZE: 16384 [0.00] memory used by lock dependency info: 3695 kB [0.00] per task-struct memory footprint: 1152 bytes [0.000946] Calibrating delay loop... 398.13 BogoMIPS (lpj=1990656) [0.119720] pid_max: default: 32768 minimum: 301 [0.120025] Security Framework initialized [0.120147] Mount-cache hash table entries: 512 [0.123596] CPU: Testing write buffer coherency: ok [0.125030] Setting up static identity map for 0xc04ddf70 - 0xc04ddfc8 [0.129821] devtmpfs: initialized [0.170440] pinctrl core: initialized
kconfig syntax error
Hello, I cloned the linux kernel from git://linuxtv.org/pinchartl/media.git and tried to configure the kernel, but I got the following problem: arch/arm/Kconfig:98: syntax error arch/arm/Kconfig:97: unknown option With arch/arm/Kconfig:98: unknown option DMA arch/arm/Kconfig:99: unknown option specified arch/arm/Kconfig:100: unknown option by arch/arm/Kconfig:130: syntax error arch/arm/Kconfig:129: unknown option The arch/arm/Kconfig:130: unknown option bus arch/arm/Kconfig:131: unknown option the arch/arm/Kconfig:132: unknown option 1995 arch/arm/Kconfig:135: syntax error . . . and so on. Does anyone know what I am missing? Is my crosscompiler too old? Regrads, Tom -- 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
ov3640 sensor - CCDC won't become idle!
( 14 MB) [0.00] .text : 0xc0008000 - 0xc067fff0 (6624 kB) [0.00] .init : 0xc068 - 0xc06bbdc0 ( 240 kB) [0.00] .data : 0xc06bc000 - 0xc0723a68 ( 415 kB) [0.00].bss : 0xc0723a8c - 0xc07ae6ec ( 556 kB) [0.00] NR_IRQS:474 [0.00] IRQ: Found an INTC at 0xfa20 (revision 4.0) with 96 interrupts [0.00] Total of 96 interrupts on 1 active controller [0.00] OMAP clockevent source: GPTIMER1 at 32768 Hz [0.00] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms [0.00] OMAP clocksource: 32k_counter at 32768 Hz [0.00] Console: colour dummy device 80x30 [0.000244] Calibrating delay loop... 597.64 BogoMIPS (lpj=2334720) [0.039123] pid_max: default: 32768 minimum: 301 [0.039306] Security Framework initialized [0.039428] Mount-cache hash table entries: 512 [0.040222] Initializing cgroup subsys debug [0.040252] Initializing cgroup subsys cpuacct [0.040252] Initializing cgroup subsys memory [0.040313] Initializing cgroup subsys devices [0.040344] Initializing cgroup subsys freezer [0.040344] Initializing cgroup subsys perf_event [0.040466] CPU: Testing write buffer coherency: ok [0.040771] Setting up static identity map for 0x80490d60 - 0x80490db8 [0.045043] devtmpfs: initialized [0.049926] dummy: [0.050323] NET: Registered protocol family 16 [0.050750] GPMC revision 5.0 [0.050781] gpmc: irq-20 could not claim: err -22 [0.052398] gpiochip_add: registered GPIOs 0 to 31 on device: gpio [0.052490] OMAP GPIO hardware version 2.5 [0.052703] gpiochip_add: registered GPIOs 32 to 63 on device: gpio [0.052978] gpiochip_add: registered GPIOs 64 to 95 on device: gpio [0.053253] gpiochip_add: registered GPIOs 96 to 127 on device: gpio [0.053527] gpiochip_add: registered GPIOs 128 to 159 on device: gpio [0.053802] gpiochip_add: registered GPIOs 160 to 191 on device: gpio [0.054626] TOM OVERO INIT ## [0.054870] omap_mux_init: Add partition: #1: core, flags: 0 [0.059844] _omap_mux_get_by_name: Could not find signal uart4_rx.uart4_rx [0.065643] Reprogramming SDRC clock to 33200 Hz [0.065673] dpll3_m2_clk rate change failed: -22 [0.065673] Found NAND on CS0 [0.065673] Registering NAND on CS0 [0.066925] usbhs_omap: alias fck already exists [0.067626] TOM OVERO CAMERA INIT ## [0.067779] TOM OVERO CAMERA INIT DONE ## [0.074462] hw-breakpoint: debug architecture 0x4 unsupported. [0.077362] omap-mcbsp.2: alias fck already exists [0.077545] omap-mcbsp.3: alias fck already exists [0.078491] OMAP DMA hardware revision 5.0 [0.086578] bio: create slab bio-0 at 0 [0.087341] fixed-dummy: [0.087432] reg-fixed-voltage reg-fixed-voltage.0: fixed-dummy supplying 0uV [0.087615] vads7846: override min_uV, 1 - 330 [0.087646] vads7846: override max_uV, 2147483647 - 330 [0.087677] vads7846: 3300 mV [0.087738] reg-fixed-voltage reg-fixed-voltage.1: vads7846 supplying 330uV [0.088470] SCSI subsystem initialized [0.088775] usbcore: registered new interface driver usbfs [0.088897] usbcore: registered new interface driver hub [0.089141] usbcore: registered new device driver usb [0.089599] omap_i2c omap_i2c.1: bus 1 rev1.4.0 at 2600 kHz [0.092346] twl 1-0048: PIH (irq 7) chaining IRQs 320..328 [0.092468] twl 1-0048: power (irq 325) chaining IRQs 328..335 [0.093109] twl4030_gpio twl4030_gpio: gpio (irq 320) chaining IRQs 336..353 [0.093444] gpiochip_add: registered GPIOs 192 to 211 on device: twl4030 [0.094299] VUSB1V5: override min_uV, 1 - 150 [0.094329] VUSB1V5: override max_uV, 2147483647 - 150 [0.094329] VUSB1V5: 1500 mV normal standby [0.094818] VUSB1V8: override min_uV, 1 - 180 [0.094848] VUSB1V8: override max_uV, 2147483647 - 180 [0.094879] VUSB1V8: 1800 mV normal standby [0.095306] VUSB3V1: override min_uV, 1 - 310 [0.095306] VUSB3V1: override max_uV, 2147483647 - 310 [0.095336] VUSB3V1: 3100 mV normal standby [0.096893] twl4030_usb twl4030_usb: HW_CONDITIONS 0x10/16; link 0 [0.097137] twl4030_usb twl4030_usb: Initialized TWL4030 USB module [0.097656] vdd_mpu_iva: 600 -- 1450 mV normal [0.098114] vdd_core: 600 -- 1450 mV normal [0.098632] VMMC1: 1850 -- 3150 mV at 3000 mV normal standby [0.099182] VDAC: 1800 mV normal standby [0.099731] VDVI: 1800 mV normal standby [0.100219] omap_i2c omap_i2c.3: bus 3 rev1.4.0 at 400 kHz [0.101013] omap-iommu omap-iommu.0: isp registered [0.101226] Advanced Linux Sound Architecture Driver Version 1.0.25. [0.102233] Switching to clocksource 32k_counter [0.130187] usbhs_omap usbhs_omap: xclk60mhsp2_ck set parentfailed error:-22 [0.131042] NET: Registered protocol family 2 [0.131378] IP route cache hash table
Re: implement ov3640 driver using subdev-api with omap3-isp
Hello Laurent, Laurent Pinchart laurent.pinchart at ideasonboard.com writes: Hi Tom, On Tuesday 16 July 2013 14:24:59 Tom wrote: Laurent Pinchart laurent.pinchart at ideasonboard.com writes: On Monday 15 July 2013 09:23:19 Tom wrote: Hello, I am working with a gumstix overo board connected with a e-con-systems camera module using a ov3640 camera sensor. Along with the board I got a camera driver (https://github.com/scottellis/econ-cam-driver) which can be used with linux kernel 2.6.34, but I want to use the camera along with the linux kernel 3.5. So I tried to implement the driver into the kernel sources by referring to a existing drivers like /driver/media/video/ov9640.c and /driver/media/video/mt9v032.c. The old driver has an isp implementation integrated and it registers itself once as a video device. So the application which is going to use the camera sensor just needs to open the right video device and by calling ioctl the corresponding functions will be called. By going through the linux 3.5 kernel sources I found out that the omap3-isp registers itself as an video-device and should support sensors using the v4l2-subdev interface. So am I right when I think that I just need to add the ov3640 subdev to the isp_v4l2_subdevs_group in the board-overo.c file and then just open thevideo device of the isp to use it via application (ioctl)? I read an article which told me that I need to use the v4l2_subdev_pad_ops to interact from isp with the ov3640 subdev, but it does not work. I don't know what I am doing wrong. Is there already an implemenation of the ov3640 using subdev-api which I couldn't find or can someone give me a hint what I need to do to get the sensor with the isp working? As a matter of fact there's one. You can't be blamed for not finding it, as it was stored on my computer. I've rebased the patches on top of the latest linuxtv master branch and pushed the patches to git://linuxtv.org/pinchartl/media.git sensors/ov3640 Two caveats: - The rebased patches have been compile-tested only, I haven't had time to test them on the hardware. One particular point that might break is the use of the clock API as a replacement for the OMAP3 ISP .set_xclk() callback. Any problem that may arise from this shouldn't be too difficult to fix. - The driver doesn't work in all resolutions and formats. This is really work in progress that I haven't had time to finish. The code should be relatively clean, but the lack of support from Omnivision killed the schedule (which I've planned too optimistically I have to confess). Fixes would be very welcome. I'd like to push this driver to mainline at some point, I'd hate to waste the time I've spent on this. Hello Laurent, many thanks for the quick reply. I'm still a beginner, so please excuse that I have to ask you once again just to understand the subdev-api and the isp exactly. No worries. As long as people do a bit of research and read documentation by themselves beforehand, I'm happy to answer questions and share knowledge. Is the implementation within the board-overo.c file correct to use the isp along with your camera driver? And would it be enough to just open the isp video device within my application or do I need to open the subdev-device, too when calling ioctl? You will need to access the subdevs directly to configure the OMAP3 ISP pipeline before starting the video stream. This task can be performed directly in a custom application using the media controller and V4L2 subdevs userspace APIs, or using the media-ctl command line tool (http://git.ideasonboard.org/media-ctl.git). The topic has been discussed extensively before and information is available online, both in web pages or in the linux-media mailing list archives. I don't have exact URLs, so it would be nice if you could post a couple of pointers in reply to this thread after searching for information, to help future newcomers. Once the pipeline is configured you can then capture video frames from the OMAP3 ISP output using the V4L2 API on the appropriate video node. Best Regards, Tom My Code Snippet board-overo.c: #define LM3553_SLAVE_ADDRESS 0x53 #define OV3640_I2C_ADDR (0x78 1) int omap3evm_ov3640_platform_data; int lm3553_platform_data; static struct i2c_board_info omap3_i2c_boardinfo_ov3640 = { I2C_BOARD_INFO(ov3640, OV3640_I2C_ADDR), .platform_data = omap3evm_ov3640_platform_data, }; static struct i2c_board_info omap3_i2c_boardinfo_lm3553 = { I2C_BOARD_INFO(lm3553,LM3553_SLAVE_ADDRESS
Re: media-ctl: line 1: syntax error:
Sakari Ailus sakari.ailus at iki.fi writes: Hello Sakari, You're missing single quotes around the argument to -l option. Looks like the string will reach media-ctl altogether w/o quotes and as several command line arguments, and both are bad. Entity names need to be quoted if they contain spaces. thanks for your reply. This solved my problem for now. Best Regards, Tom -- 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
yavta tool - Unable to start streaming: Invalid argument (22).
device node name /dev/video6 pad0: Sink - OMAP3 ISP resizer:1 [] - entity 13: OMAP3 ISP AEWB (1 pad, 1 link) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev5 pad0: Sink - OMAP3 ISP CCDC:2 [ENABLED,IMMUTABLE] - entity 14: OMAP3 ISP AF (1 pad, 1 link) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev6 pad0: Sink - OMAP3 ISP CCDC:2 [ENABLED,IMMUTABLE] - entity 15: OMAP3 ISP histogram (1 pad, 1 link) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev7 pad0: Sink - OMAP3 ISP CCDC:2 [ENABLED,IMMUTABLE] - entity 16: ov3640 3-003c (1 pad, 1 link) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev8 pad0: Source [fmt:YUYV2X8/2048x1536 crop:(12,18)/2048x1536] - OMAP3 ISP CCDC:0 [ENABLED] Setting up selection target 0 rectangle (32,20)/2048x1536 on pad ov3640 3-003c/0 Selection rectangle set: (32,20)/2040x1536 Setting up format SBGGR10 2048x1536 on pad ov3640 3-003c/0 Format set: SBGGR10 2040x1536 Setting up format SBGGR10 2040x1536 on pad OMAP3 ISP CCDC/0 Format set: SBGGR10 2040x1536 Setting up format SBGGR10 2048x1536 on pad OMAP3 ISP CCDC/1 Format set: SBGGR10 2032x1536 root@overo2:~/media_test/bin# cd root@overo2:~# cd yavta-HEAD-d9b7cfc/ root@overo2:~/yavta-HEAD-d9b7cfc# sudo ./yavta -f SBGGR10 -s 2048x1536 --capture=1 --file=/home/root/image /dev/video2 Device /dev/video2 opened. Device `OMAP3 ISP CCDC output' on `media' is a video capture device. Video format set: SBGGR10 (30314742) 2048x1536 (stride 4096) buffer size 6291456 Video format: SBGGR10 (30314742) 2048x1536 (stride 4096) buffer size 6291456 8 buffers requested. length: 6291456 offset: 0 timestamp type: unknown Buffer 0 mapped at address 0xb681f000. length: 6291456 offset: 6291456 timestamp type: unknown Buffer 1 mapped at address 0xb621f000. length: 6291456 offset: 12582912 timestamp type: unknown Buffer 2 mapped at address 0xb5c1f000. length: 6291456 offset: 18874368 timestamp type: unknown Buffer 3 mapped at address 0xb561f000. length: 6291456 offset: 25165824 timestamp type: unknown Buffer 4 mapped at address 0xb501f000. length: 6291456 offset: 31457280 timestamp type: unknown Buffer 5 mapped at address 0xb4a1f000. length: 6291456 offset: 37748736 timestamp type: unknown Buffer 6 mapped at address 0xb441f000. length: 6291456 offset: 44040192 timestamp type: unknown Buffer 7 mapped at address 0xb3e1f000. Unable to start streaming: Invalid argument (22). 8 buffers released. Best Regards, Tom -- 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
Re: yavta tool - Unable to start streaming: Invalid argument (22).
Tom Bassai_Dai at gmx.net writes: I solved the problem by myself. The problem was that the size of the image which I gave yavta did not correspond to the format size of the video device which I configured with media-ctl Regards, Tom -- 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
OMAP3 ISP DQBUF hangs using yavta and media-ctl tool
or VT_SENDSIG, 0xbee0379c) = 0 write(1, Video format: SBGGR10 (30314742)..., 74Video format: SBGGR10 (30314742) 640x480 (stride 1280) buffer size 614400 ) = 74 ioctl(3, VIDIOC_REQBUFS or VT_DISALLOCATE, 0xbee03b88) = 0 write(1, 1 buffers requested.\n, 211 buffers requested. ) = 21 brk(0) = 0x413000 brk(0x434000) = 0x434000 ioctl(3, VIDIOC_QUERYBUF or VT_RESIZE, 0xbee03a78) = 0 write(1, length: 614400 offset: 0 timesta..., 49length: 614400 offset: 0 timestamp type: unknown ) = 49 mmap2(NULL, 614400, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0xb6d09000 write(1, Buffer 0 mapped at address 0xb6d..., 39Buffer 0 mapped at address 0xb6d09000. ) = 39 ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0xbee035dc) = 0 ioctl(3, VIDIOC_STREAMON, 0xbee0354c) = 0 clock_gettime(CLOCK_MONOTONIC, {2658, 373383271}) = 0 ioctl(3, VIDIOC_DQBUF By printing out what the kernel does I figured out that ccdc stays in a waiting function isp_video_buffer_wait. It seems like there has to be an interupt to come up, but it doesn't. [ 2657.334289] TOM void ccdc_vd1_isr ## [ 2657.358917] TOM void ccdc_vd0_isr ## [ 2657.363403] TOM ccdc_isr_buffer ## [ 2657.367645] TOM ccdc_isr_buffer 1 ## [ 2657.372100] TOM ccdc_isr_buffer 2 ## [ 2657.376556] TOM ccdc_isr_buffer 3 ## [ 2657.383514] TOM ccdc_isr_buffer ERROR 3 ## [ 2657.388519] omap3isp omap3isp: CCDC won't become idle! [ 2657.393859] TOM void ccdc_vd0_isr DONE ## [ 2658.299743] TOM isp_video_streamon 8 ## [ 2658.304504] TOM isp_video_streamon DONE ## [ 2658.314025] TOM isp_video_dqbuf ## [ 2658.319427] TOM omap3isp_video_queue_dqbuf ## [ 2658.325439] TOM omap3isp_video_queue_dqbuf temp 1 ## [ 2658.332153] TOM omap3isp_video_queue_dqbuf temp 1,5 ## [ 2658.338897] TOM isp_video_buffer_wait ## [ 2658.343719] TOM isp_video_buffer_wait temp ## Can anyone help me with this problem? Best Regards, Tom the ispqueue.c: int omap3isp_video_queue_dqbuf(struct isp_video_queue *queue, struct v4l2_buffer *vbuf, int nonblocking) { printk(TOM omap3isp_video_queue_dqbuf ##\n); struct isp_video_buffer *buf; int ret; if (vbuf-type != queue-type) { printk(TOM omap3isp_video_queue_dqbuf ERROR 1 ##\n); return -EINVAL; } mutex_lock(queue-lock); if (list_empty(queue-queue)) { ret = -EINVAL; printk(TOM omap3isp_video_queue_dqbuf ERROR 2 ##\n); goto done; } printk(TOM omap3isp_video_queue_dqbuf temp 1 ##\n); buf = list_first_entry(queue-queue, struct isp_video_buffer, stream); printk(TOM omap3isp_video_queue_dqbuf temp 1,5 ##\n); if(buf == NULL) { printk(TOM omap3isp_video_queue_dqbuf temp 1,5 ERROR ##\n); } ret = isp_video_buffer_wait(buf, nonblocking); if (ret 0) { printk(TOM omap3isp_video_queue_dqbuf ERROR 1 ##\n); goto done; } printk(TOM omap3isp_video_queue_dqbuf temp 2 ##\n); list_del(buf-stream); printk(TOM omap3isp_video_queue_dqbuf temp 3 ##\n); isp_video_buffer_query(buf, vbuf); buf-state = ISP_BUF_STATE_IDLE; vbuf-flags = ~V4L2_BUF_FLAG_QUEUED; printk(TOM omap3isp_video_queue_dqbuf DONE ##\n); done: mutex_unlock(queue-lock); return ret; } static int isp_video_buffer_wait(struct isp_video_buffer *buf, int nonblocking) { printk(TOM isp_video_buffer_wait ##\n); if (nonblocking) { return (buf-state != ISP_BUF_STATE_QUEUED buf-state != ISP_BUF_STATE_ACTIVE) ? 0 : -EAGAIN; } printk(TOM isp_video_buffer_wait temp ##\n); return wait_event_interruptible(buf-wait, buf-state != ISP_BUF_STATE_QUEUED buf-state != ISP_BUF_STATE_ACTIVE); } -- 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
Re: media-ctl: line 1: syntax error: ( unexpected
Enrico ebutera at users.berlios.de writes: On Fri, Aug 23, 2013 at 3:08 PM, Tom Bassai_Dai at gmx.net wrote: Tom Bassai_Dai at gmx.net writes: Hello, I got the media-ctl tool from http://git.ideasonboard.org/git/media-ctl.git and compiled and build it successfully. But when try to run it I get this error: sudo ./media-ctl -r -l ov3640 3-003c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1] ./media-ctl: line 1: syntax error: ( unexpected Does anyone know how I can solve that problem? Looks like you are trying to execute a wrapper script instead of the real binary, it's in src/.libs Enrico Hello Enrico, thanks for your reply. All I did was to build the media-ctl tool, made make install and copied the resulting folder media-ctl-exe to my arm board. Then I executed the /media-ctl-exe/bin/media-ctl file with ./media-ctl --help and got this error. Best Regards, Tom -- 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
Re: media-ctl: line 1: syntax error: ( unexpected
Tom Bassai_Dai at gmx.net writes: Hello, I got the media-ctl tool from http://git.ideasonboard.org/git/media-ctl.git and compiled and build it successfully. But when try to run it I get this error: sudo ./media-ctl -r -l ov3640 3-003c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1] ./media-ctl: line 1: syntax error: ( unexpected Does anyone know how I can solve that problem? Best Regards, Tom Sorry, but does really nobody know how to solve that problem? Best Regards, Tom -- 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
Re: OMAP3 ISP DQBUF hangs
Su Jiaquan jiaquan.lnx at gmail.com writes: Hello, Hi Tom Well, for our practice, we QBUF before STREAMON (not on omap3 isp). You can try that and see what happens. As I check the omap3 code, you sequence maybe OK. Coz there is a restart mechanism in the code to restart CCDC hardware after buffer underrun. But for you sequence, if the interrupt comes before you QBUF, then the hardware is running in underrun state ever from the STREAMON. Not sure the restart mechanism works in this scenario. Let's wait for answers from the professional Jiaquan Thanks for your reply. The hang is solved. You were right. Now I do QBUF - STREAMON - DQBUF - STREAMOFF. My new Problem is that I receive a black image, but I think I do a new post with the appropriate subject. Best Regrads, Tom -- 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
OMAP3 ISP change image format
Hello, I try from my own application out to grab an image with a ov3640 sensor. For this I need to understand the media-api and the isp pipeline correctly. I had problems with the use of media-ctl so I implemented the functionality into my application and it seems to work fine. Without an error I grabbed an image, but it was black. So maybe my format settings are not correctly set. My Question is: For example I want to grab a rgb565 image from my camera sensor and display it on a webpage. my pipeline looks like this: ov3640-ccdc-memory Would it be enough to just set a raw bayer format on the source and sink pads and just the format of the video device (/dev/video2) as rgb565? Regards, Tom -- 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
Re: OMAP3 ISP DQBUF hangs
Su Jiaquan jiaquan.lnx at gmail.com writes: Hello, Hi Tom, On Thu, Aug 15, 2013 at 10:15 PM, Tom Bassai_Dai at gmx.net wrote: Hello, I'm working with an OMAP3 DM3730 processor module with a ov3640 camera module attached on parallel interface. I'm using Linux 3.5 and an application which builds the pipeline and grabs an image like the media-ctl and the yavta tools. I configured the pipeline to: sensor-ccdc-memory When I call ioctl with DQBUF the calling functions are: isp_video_dqbuf - omap3isp_video_queue_dqbuf - isp_video_buffer_wait - wait_event_interruptible The last function waits until the state of the buffer will be reseted somehow. Can someone tell my which function sets the state of the buffer? Am I missing an interrupt? Best Regards, Tom I'm not familar with omap3isp, but from the code, the wait queue is released by function ccdc_isr_buffer-omap3isp_video_buffer_next. You are either missing a interrupt, or running out of buffer, or found a buffer under run. Jiaquan -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html you are right. it seems that the list of the ccdc has no buffer left, because the printk(TOM ccdc_isr_buffer ERROR 1 ##\n); is shown in my log. But I don't understand what I need to do to solve the problem. What I do is: - configure the pipeline - open the video device - do ioctl VIDIOC_REQBUFS (with memory = V4L2_MEMORY_MMAP and type = V4L2_BUF_TYPE_VIDEO_CAPTURE) - do ioctl VIDIOC_QUERYBUF - do ioctl VIDIOC_STREAMON - do ioctl VIDIOC_QBUF without fail. and when I do ioctl VIDIOC_DQBUF. I get my problem. Does anyone have an idea what I need to do to solve this problem? static int ccdc_isr_buffer(struct isp_ccdc_device *ccdc) { printk(TOM ccdc_isr_buffer ##\n); struct isp_pipeline *pipe = to_isp_pipeline(ccdc-subdev.entity); struct isp_device *isp = to_isp_device(ccdc); struct isp_buffer *buffer; int restart = 0; /* The CCDC generates VD0 interrupts even when disabled (the datasheet * doesn't explicitly state if that's supposed to happen or not, so it * can be considered as a hardware bug or as a feature, but we have to * deal with it anyway). Disabling the CCDC when no buffer is available * would thus not be enough, we need to handle the situation explicitly. */ printk(TOM ccdc_isr_buffer 1 ##\n); if (list_empty(ccdc-video_out.dmaqueue)) { printk(TOM ccdc_isr_buffer ERROR 1 ##\n); goto done; } /* We're in continuous mode, and memory writes were disabled due to a * buffer underrun. Reenable them now that we have a buffer. The buffer * address has been set in ccdc_video_queue. */ printk(TOM ccdc_isr_buffer 2 ##\n); if (ccdc-state == ISP_PIPELINE_STREAM_CONTINUOUS ccdc-underrun) { restart = 1; ccdc-underrun = 0; printk(TOM ccdc_isr_buffer ERROR 2 ##\n); goto done; } printk(TOM ccdc_isr_buffer 3 ##\n); if (ccdc_sbl_wait_idle(ccdc, 1000)) { printk(TOM ccdc_isr_buffer ERROR 3 ##\n); dev_info(isp-dev, CCDC won't become idle!\n); goto done; } printk(TOM ccdc_isr_buffer 4 ##\n); buffer = omap3isp_video_buffer_next(ccdc-video_out); if (buffer != NULL) { ccdc_set_outaddr(ccdc, buffer-isp_addr); restart = 1; } printk(TOM ccdc_isr_buffer 5 ##\n); pipe-state |= ISP_PIPELINE_IDLE_OUTPUT; if (ccdc-state == ISP_PIPELINE_STREAM_SINGLESHOT isp_pipeline_ready(pipe)) omap3isp_pipeline_set_stream(pipe, ISP_PIPELINE_STREAM_SINGLESHOT); printk(TOM ccdc_isr_buffer DONE ##\n); done: return restart; } Regards, Tom -- 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
OMAP3 ISP DQBUF hangs
Hello, I'm working with an OMAP3 DM3730 processor module with a ov3640 camera module attached on parallel interface. I'm using Linux 3.5 and an application which builds the pipeline and grabs an image like the media-ctl and the yavta tools. I configured the pipeline to: sensor-ccdc-memory When I call ioctl with DQBUF the calling functions are: isp_video_dqbuf - omap3isp_video_queue_dqbuf - isp_video_buffer_wait - wait_event_interruptible The last function waits until the state of the buffer will be reseted somehow. Can someone tell my which function sets the state of the buffer? Am I missing an interrupt? Best Regards, Tom -- 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
omap3-isp pipeline using media-ctl and yavta
ce03f840 d09d7000 ce3d9148 ce048e00 ce3d 0002 bf03e128 overo2 [ 282.773071] 7d00: ce03f840 ce03f840 ce03f840 ce03f840 c048e7a0 ce03f840 overo2 [ 282.781616] 7d20: 0601 bf03c9b0 bf04c1f8 ce3d9148 cefe7e68 ce048e38 overo2 [ 282.790161] 7d40: bf04dfd1 cefe7d54 0001 0001 ce048e00 ce1d1e40 bf04c1f8 overo2 [ 282.798675] 7d60: ffe7 ce3d9148 cefe7e68 bf0143ac c742cb63 overo2 [ 282.807220] 7d80: 0002 ce03c10c ce03c0f8 0002 f720 0402 overo2 [ 282.815734] 7da0: 40045612 ce1d1e40 ce048e00 01e8 cefe7dec ce03c080 overo2 [ 282.824279] 7dc0: 6113 c00e0b00 ce03c080 0020 ce03c080 ce0dc740 0020 c0424340 overo2 [ 282.832824] 7de0: 0020 ce0dc740 ce03c080 ce0dc740 ce03c080 cbdc41e4 0016 32c213ac overo2 [ 282.841369] 7e00: 0002 c042bd08 ce03c080 c0416064 ce0dc740 c0710b20 overo2 [ 282.849884] 7e20: ce03c080 cbdc41d0 cefe7e38 c042c474 40045612 overo2 [ 282.858428] 7e40: ce1d1e40 cefe7e68 bf012774 0004 bf012908 overo2 [ 282.866973] 7e60: bee2850c 0001 0001 0001 overo2 [ 282.875488] 7e80: 0001 overo2 [ 282.884033] 7ea0: 0060 c06c51d8 0008 cee91800 c06c51d8 c03ea784 overo2 [ 282.892547] 7ec0: cee91c80 0046 0001 ce0dc740 0010 c06c51f8 0010 cefe7ee8 overo2 [ 282.901092] 7ee0: c030a484 c005db38 0010 ce1d1e40 ce3d9148 40045612 bee2850c overo2 [ 282.909637] 7f00: cefe6000 bf010708 cd5a0c68 ce1d1e40 0003 0003 overo2 [ 282.918151] 7f20: bee2850c c00f9c18 cefe6000 0003 000c 0101 000a c0765b80 overo2 [ 282.926696] 7f40: cefe6000 c003a448 cec06170 c025d4b4 fb058018 0001 0140 overo2 [ 282.935241] 7f60: 6193 c008f234 bee2850c 40045612 0003 ce1d1e40 cefe6000 overo2 [ 282.943756] 7f80: c00f9ccc cefe7fb0 0008 0001 bee28aec 0036 overo2 [ 282.952301] 7fa0: c000e984 c000e800 0008 0001 0003 40045612 bee2850c 40045612 overo2 [ 282.960815] 7fc0: 0008 0001 bee28aec 0036 0001 bee28aec overo2 [ 282.969360] 7fe0: 1000 bee28508 8f4c b6f3d45c 2010 0003 overo2 [ 283.079528] Code: ebffeba8 e1a05000 e1a4 ebffeba5 (e595200c) Best Regards, Tom -- 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
Re: implement ov3640 driver using subdev-api with omap3-isp
Laurent Pinchart laurent.pinchart at ideasonboard.com writes: Hi Tom, On Tuesday 16 July 2013 14:24:59 Tom wrote: Laurent Pinchart laurent.pinchart at ideasonboard.com writes: On Monday 15 July 2013 09:23:19 Tom wrote: Hello, I am working with a gumstix overo board connected with a e-con-systems camera module using a ov3640 camera sensor. Along with the board I got a camera driver (https://github.com/scottellis/econ-cam-driver) which can be used with linux kernel 2.6.34, but I want to use the camera along with the linux kernel 3.5. So I tried to implement the driver into the kernel sources by referring to a existing drivers like /driver/media/video/ov9640.c and /driver/media/video/mt9v032.c. The old driver has an isp implementation integrated and it registers itself once as a video device. So the application which is going to use the camera sensor just needs to open the right video device and by calling ioctl the corresponding functions will be called. By going through the linux 3.5 kernel sources I found out that the omap3-isp registers itself as an video-device and should support sensors using the v4l2-subdev interface. So am I right when I think that I just need to add the ov3640 subdev to the isp_v4l2_subdevs_group in the board-overo.c file and then just open thevideo device of the isp to use it via application (ioctl)? I read an article which told me that I need to use the v4l2_subdev_pad_ops to interact from isp with the ov3640 subdev, but it does not work. I don't know what I am doing wrong. Is there already an implemenation of the ov3640 using subdev-api which I couldn't find or can someone give me a hint what I need to do to get the sensor with the isp working? As a matter of fact there's one. You can't be blamed for not finding it, as it was stored on my computer. I've rebased the patches on top of the latest linuxtv master branch and pushed the patches to git://linuxtv.org/pinchartl/media.git sensors/ov3640 Two caveats: - The rebased patches have been compile-tested only, I haven't had time to test them on the hardware. One particular point that might break is the use of the clock API as a replacement for the OMAP3 ISP .set_xclk() callback. Any problem that may arise from this shouldn't be too difficult to fix. - The driver doesn't work in all resolutions and formats. This is really work in progress that I haven't had time to finish. The code should be relatively clean, but the lack of support from Omnivision killed the schedule (which I've planned too optimistically I have to confess). Fixes would be very welcome. I'd like to push this driver to mainline at some point, I'd hate to waste the time I've spent on this. Hello Laurent, many thanks for the quick reply. I'm still a beginner, so please excuse that I have to ask you once again just to understand the subdev-api and the isp exactly. No worries. As long as people do a bit of research and read documentation by themselves beforehand, I'm happy to answer questions and share knowledge. Is the implementation within the board-overo.c file correct to use the isp along with your camera driver? And would it be enough to just open the isp video device within my application or do I need to open the subdev-device, too when calling ioctl? You will need to access the subdevs directly to configure the OMAP3 ISP pipeline before starting the video stream. This task can be performed directly in a custom application using the media controller and V4L2 subdevs userspace APIs, or using the media-ctl command line tool (http://git.ideasonboard.org/media-ctl.git). The topic has been discussed extensively before and information is available online, both in web pages or in the linux-media mailing list archives. I don't have exact URLs, so it would be nice if you could post a couple of pointers in reply to this thread after searching for information, to help future newcomers. Once the pipeline is configured you can then capture video frames from the OMAP3 ISP output using the V4L2 API on the appropriate video node. Best Regards, Tom My Code Snippet board-overo.c: #define LM3553_SLAVE_ADDRESS0x53 #define OV3640_I2C_ADDR (0x78 1) int omap3evm_ov3640_platform_data; int lm3553_platform_data; static struct i2c_board_info omap3_i2c_boardinfo_ov3640 = { I2C_BOARD_INFO(ov3640, OV3640_I2C_ADDR), .platform_data = omap3evm_ov3640_platform_data, }; static struct i2c_board_info omap3_i2c_boardinfo_lm3553 = { I2C_BOARD_INFO(lm3553,LM3553_SLAVE_ADDRESS), .platform_data = lm3553_platform_data, }; static struct i2c_board_info mt9v032_i2c_device = { I2C_BOARD_INFO
Re: implement ov3640 driver using subdev-api with omap3-isp
Laurent Pinchart laurent.pinchart at ideasonboard.com writes: Hi Tom, On Monday 15 July 2013 09:23:19 Tom wrote: Hello, I am working with a gumstix overo board connected with a e-con-systems camera module using a ov3640 camera sensor. Along with the board I got a camera driver (https://github.com/scottellis/econ-cam-driver) which can be used with linux kernel 2.6.34, but I want to use the camera along with the linux kernel 3.5. So I tried to implement the driver into the kernel sources by referring to a existing drivers like /driver/media/video/ov9640.c and /driver/media/video/mt9v032.c. The old driver has an isp implementation integrated and it registers itself once as a video device. So the application which is going to use the camera sensor just needs to open the right video device and by calling ioctl the corresponding functions will be called. By going through the linux 3.5 kernel sources I found out that the omap3-isp registers itself as an video-device and should support sensors using the v4l2-subdev interface. So am I right when I think that I just need to add the ov3640 subdev to the isp_v4l2_subdevs_group in the board-overo.c file and then just open the video device of the isp to use it via application (ioctl)? I read an article which told me that I need to use the v4l2_subdev_pad_ops to interact from isp with the ov3640 subdev, but it does not work. I don't know what I am doing wrong. Is there already an implemenation of the ov3640 using subdev-api which I couldn't find or can someone give me a hint what I need to do to get the sensor with the isp working? As a matter of fact there's one. You can't be blamed for not finding it, as it was stored on my computer. I've rebased the patches on top of the latest linuxtv master branch and pushed the patches to git://linuxtv.org/pinchartl/media.git sensors/ov3640 Two caveats: - The rebased patches have been compile-tested only, I haven't had time to test them on the hardware. One particular point that might break is the use of the clock API as a replacement for the OMAP3 ISP .set_xclk() callback. Any problem that may arise from this shouldn't be too difficult to fix. - The driver doesn't work in all resolutions and formats. This is really work in progress that I haven't had time to finish. The code should be relatively clean, but the lack of support from Omnivision killed the schedule (which I've planned too optimistically I have to confess). Fixes would be very welcome. I'd like to push this driver to mainline at some point, I'd hate to waste the time I've spent on this. Hello Laurent, many thanks for the quick reply. I'm still a beginner, so please excuse that I have to ask you once again just to understand the subdev-api and the isp exactly. Is the implementation within the board-overo.c file correct to use the isp along with your camera driver? And would it be enough to just open the isp video device within my application or do I need to open the subdev-device, too when calling ioctl? Best Regards, Tom My Code Snippet board-overo.c: #define LM3553_SLAVE_ADDRESS0x53 #define OV3640_I2C_ADDR (0x78 1) int omap3evm_ov3640_platform_data; int lm3553_platform_data; static struct i2c_board_info omap3_i2c_boardinfo_ov3640 = { I2C_BOARD_INFO(ov3640, OV3640_I2C_ADDR), .platform_data = omap3evm_ov3640_platform_data, }; static struct i2c_board_info omap3_i2c_boardinfo_lm3553 = { I2C_BOARD_INFO(lm3553,LM3553_SLAVE_ADDRESS), .platform_data = lm3553_platform_data, }; static struct i2c_board_info mt9v032_i2c_device = { I2C_BOARD_INFO(mt9v032, MT9V032_I2C_ADDR), .platform_data = mt9v032_platform_data, }; /*static struct isp_subdev_i2c_board_info mt9v032_subdevs[] = { { .board_info = mt9v032_i2c_device, .i2c_adapter_id = MT9V032_I2C_BUS_NUM, }, { NULL, 0, }, };*/ static struct isp_subdev_i2c_board_info overo_subdevs[] = { /*{ .board_info = mt9v032_i2c_device, .i2c_adapter_id = MT9V032_I2C_BUS_NUM, },*/ { .board_info = omap3_i2c_boardinfo_ov3640, .i2c_adapter_id = MT9V032_I2C_BUS_NUM, }, { NULL, 0, }, }; static struct isp_v4l2_subdevs_group overo_camera_subdevs[] = { { //.subdevs = mt9v032_subdevs, .subdevs = overo_subdevs, .interface = ISP_INTERFACE_PARALLEL, .bus = { .parallel = { .data_lane_shift = 0, .clk_pol = 0, .bridge = ISPCTRL_PAR_BRIDGE_DISABLE, } }, }, { NULL, 0, }, }; static
implement ov3640 driver using subdev-api with omap3-isp
= ARRAY_SIZE(ov3640_controls), };*/ static int mt9v032_registered(struct v4l2_subdev *subdev) { printk(TOM OPEN NEW ##\n); return 0; } static int mt9v032_open(struct v4l2_subdev *subdev, struct v4l2_subdev_fh *fh) { printk(TOM OPEN NEW ##\n); return 0; } static int mt9v032_close(struct v4l2_subdev *subdev, struct v4l2_subdev_fh *fh) { printk(TOM CLOSE NEW ##\n); return 0; //return mt9v032_set_power(subdev, 0); } static const struct v4l2_subdev_internal_ops mt9v032_subdev_internal_ops = { .registered = mt9v032_registered, .open = mt9v032_open, .close = mt9v032_close, }; static INT32 ov3640_probe(struct i2c_client *client, const struct i2c_device_id *id) { FNRESLT ret_val; cam_data *cam; struct soc_camera_link *icl; struct v4l2_subdev *sd; int ret; cam = kzalloc(sizeof(cam_data), GFP_KERNEL); if (!cam) return -ENOMEM; ret_val = v4l2_base_struct(cam,SET_ADDRESS); if(CHECK_IN_FAIL_LIMIT(ret_val)) { printk(KERN_ERR Failed to register the camera device\n); //TRACE_ERR_AND_RET(FAIL); } ret_val = init_phy_mem(); /*if(CHECK_IN_FAIL_LIMIT(ret_val)) { goto exit; }*/ if (!i2c_check_functionality(client-adapter, I2C_FUNC_SMBUS_WORD_DATA)) { dev_warn(client-adapter-dev, I2C-Adapter doesn't support I2C_FUNC_SMBUS_WORD\n); return -EIO; } sd = cam-subdev; cam-cam_sensor.client = client; v4l2_i2c_subdev_init(sd, client, ov3640_subdev_ops); printk(TOM SUBDEV NAME: %s ##\n,sd-name); sd-internal_ops = mt9v032_subdev_internal_ops; sd-flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; cam-pad.flags = MEDIA_PAD_FL_SOURCE; ret = media_entity_init(sd-entity, 1, cam-pad, 0); printk(TOM OV3640 PROBE PAD %08x ##\n,cam-pad); /*/ gpio_request(RESET_GPIO,ov3640); gpio_request(STANDBY_GPIO,ov3640); gpio_direction_output(RESET_GPIO, true); gpio_direction_output(STANDBY_GPIO, true); /* Turn ON Omnivision sensor */ gpio_set_value(RESET_GPIO, ENABLE); gpio_set_value(STANDBY_GPIO, DISABLE); udelay(100); /* RESET Omnivision sensor */ gpio_set_value(RESET_GPIO, DISABLE); udelay(100); gpio_set_value(RESET_GPIO, ENABLE); udelay(100); /*/ //ret = ov3640_video_probe(client); if (ret) { //icd-ops = NULL; kfree(cam); } ret_val = ov3640_init(cam); if(CHECK_IN_FAIL_LIMIT(ret_val)) { return ret_val; } return 0; } static const struct i2c_device_id ov3640_id[] = { { ov3640, 0 }, { } }; MODULE_DEVICE_TABLE(i2c, ov3640_id); static struct i2c_driver ov3640_driver = { .class = I2C_CLASS_HWMON, .driver = { .owner = THIS_MODULE, .name = ov3640, }, .probe = ov3640_probe, .remove = __exit_p(ov3640_remove), .id_table = ov3640_id, }; Regards, Tom -- 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
RE: [Linaro-mm-sig] [RFC] New dma_buf - EGLImage EGL extension
Hi Rob, -Original Message- From: robdcl...@gmail.com [mailto:robdcl...@gmail.com] On Behalf Of Rob Clark Sent: 03 October 2012 13:39 To: Maarten Lankhorst Cc: Tom Cooksey; mesa-...@lists.freedesktop.org; linaro-mm-...@lists.linaro.org; dri- de...@lists.freedesktop.org; Jesse Barker; linux-media@vger.kernel.org Subject: Re: [Linaro-mm-sig] [RFC] New dma_buf - EGLImage EGL extension On Tue, Oct 2, 2012 at 2:10 PM, Maarten Lankhorst m.b.lankho...@gmail.com wrote: How do you want to deal with the case where Y' and CbCr are different hardware buffers? Could some support for 2d arrays be added in case Y' and CbCr are separated into top/bottom fields? How are semi-planar/planar formats handled that have a different width/height for Y' and CbCr? (YUV420) The API works (AFAIU) like drm addfb2 ioctl, take I420 for example, you could either do: single buffer: fd0 = fd offset0 = 0 pitch0 = width fd1 = fd offset1 = width * height pitch1 = width / 2 fd2 = fd offset2 = offset1 + (width / height / 4) pitch2 = width / 2 multiple buffers: offset0 = offset1 = offset2 = 0 fd0 = fd_luma fd1 = fd_u fd2 = fd_v ... and so on Yup, that's pretty much how I'd envisaged it. for interlaced/stereo.. is sticking our heads in sand an option? :-P You could get lots of permutations for data layout of fields between interlaced and stereo. One option might be to ignore and let the user create two egl-images and deal with blending in the shader? I think for interlaced video the only option really is to create two EGLImages as the two fields have to be displayed at different times. If the application wanted to display them progressively they'd have to run a de-interlacing filter over the two images. Perhaps writing such a filter as a GLSL shader might not be such a bad idea, but it's kinda the app's problem. Same deal with stereo. Cheers, Tom PS: I've updated the spec and sent out a new draft. -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -- 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
Creating a DVB-T transport stream with ffmpeg
Hi all, I'm attempting to broadcast an mpeg2 transport stream created with ffmpeg via DVB-T. I have a modulator card with kernel driver, and have successfully modulated (and received with a simple Hauppage DVB-T USB device) a transport stream file I obtained from a friend. My problem is the stream I create myself with ffmpeg (and it's mpegts options, see link below for docs) is detected by my USB receiver's software (it finds the channel name and reports full signal strength), but it displays a black screen with no audio. I used a spectrum analyser to search for the signal, and was able to locate it and view it with sound - so I believe the problem is with normal consumer receivers being unable to understand the stream. I took a look at the two streams with a hex editor, and noticed my friend's stream appears to contain a large quantity of additional data before the media data itself starts. I also noticed that my file browser's thumbnailer was able to generate thumbnails for the streams I created, but was unable to for my friend's stream. I'm hoping that my lack of a picture on the USB receiver is caused by the absence of this additional data. Could anyone with more knowledge of a DVB-T stream's structure shed some light on what my ffmpeg-created stream might be missing that upsets simple consumer receivers (I've tried a couple with identical results)? Many thanks for your time, Tom 1: http://ffmpeg.org/ffmpeg.html#toc-mpegts -- 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
Another New Member Makes $7,500 In 1 WEEK!
Hello, Yes It is True!!! Would you like a little proof that this business works? We show you our automated, turnkey, never chase another lead system. One new member just received $7,500 using this simple formula. $7,500 in just one week! Imagine how much you can earn in a month. All I did was follow the simple formula he said! http://www.dailycashatm.com With this system I DO NOT chase anybody and you won't have to either... Call me with any questions. Sincerely, Tom VanBuren The Work At Home Expert 363 Harbor Ct Holland,MI 49424 To be removed just reply with REMOVE -- 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
Re: My DVB-card is flooding the consol with
Bob Hepple bhepple at promptu.com writes: To add another data-point, I am also getting this error with the same board ... as far as I have been able to test, it's something that was OK in 2.6.27, regressed in 2.6.28 and is still a problem in 2.6.30. Note that this is the rev.1 DViCO ... I get spammed by this console message every 1 second and the board does not operate: [ 375.385180] dvb-usb: bulk message failed: -110 (4/0) ... So I put in a new disc and installed Fedora-10 (2.6.27) with the same firmware: /lib/firmware/xc3028-v27.fw ... and it's working fine now. Same here. I hadn't touched my kernel for some time for fear of breaking things (getting it working was a trial). Recently tried with a new kernel on a different drive and the card didn't work. Working on: 2.6.22 (Gentoo) with patches by Michael Krufky and Australian firmware by Chris Pascoe. Not working on: 2.6.28 (Mythbuntu 9.04) both stock and built from the v4l-dvb repo. I also tried a 2.6.30 kernel and an earlier 2.6.28 kernel with both the stock driver and built from the v4l-dvb repo - none worked. Also tried going back to older v4l-dvb revisions, but this was hit and miss as they often wouldn't build (the few successful builds didn't work). Unfortunately I can't easily try a 2.6.27 kernel, but if it comes to that I can probably re-install with an older distro. Bob, I'd agree that it seems the DViCO Dual Digital 4 rev.1 was working in 2.6.27, regressed in 2.6.28, and still not working in 2.6.30. I'd like to hear from anyone who has a DD4 rev.1 working in 2.6.30 or later. I'm also in Australia, but this time I don't think that is a factor (unlike the firmware shenanigans several years ago). Just a hunch though. For the record, my dmesg shows: [ 178.599125] xc2028 2-0061: Loading 80 firmware images from xc3028-v27.fw, t ype: xc2028 firmware, ver 2.7 [ 178.609325] xc2028 2-0061: Loading firmware for type=BASE F8MHZ (3), id 000 0. [ 183.165027] xc2028 2-0061: Loading firmware for type=D2633 DTV7 (90), id 00 00. [ 183.245019] xc2028 2-0061: Loading SCODE for type=SCODE HAS_IF_5260 (60 00), id . [ 185.400150] dvb-usb: recv bulk message failed: -110 [ 185.400162] zl10353: write to reg 62 failed (err = -121)! [ 187.400099] dvb-usb: bulk message failed: -110 (5/0) [ 187.400112] zl10353: write to reg 50 failed (err = -121)! [ 189.411540] dvb-usb: bulk message failed: -110 (2/0) [ 191.408114] dvb-usb: bulk message failed: -110 (4/0) [ 191.408124] cxusb: i2c read failed [ 193.508151] dvb-usb: bulk message failed: -110 (4/0) [ 193.508160] cxusb: i2c read failed (last 2 lines repeating) - Tom -- 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
Re: Compile of gspca
** Sorry this didn't get to the list. I must be more careful of my replies... Tom *** On Tue, Apr 7, 2009 at 3:00 PM, Tom Merry Cada theca...@gmail.com wrote: On Tue, Apr 7, 2009 at 3:57 AM, Jean-Francois Moine moin...@free.fr wrote: On Mon, 6 Apr 2009 13:15:26 -0400 Tom Merry Cada theca...@gmail.com wrote: Video in skype works great. However, now the sound does not work (sigh...). The USB mic is shown in ALSA mixer as card 1 with the gain up at max. The mic is shown in the pulseaudio mixer as an input device, but no sound to either skype or the gnome sound recorder. Is this a problem with gspca, or with the other components (ALSA, pulseaudio, OSS, or whatever - too many choices!). An external mic through the on-board sound card works properly. Any suggestions or direction would be most welcome. Hello Tom, I know that some integrated microphones do not work with gspca, and, sorry, I could not find yet why... Regards. -- All is not lost. I have done extensive testing - sort of like a bull rampaging in a china shop with the following results. First the operating parameters: Kernel Ubuntu 2.6.28-11-generic SMP 64bit Programs gspca-1a7449833166 compiled this morning. Camera Microsoft VX 3000 web-cam/microphone combination. It has been working on and off with sound sometimes and video sometimes but not both at once. I noticed from earlier documentation that the camera driver was the sn9c102 module. On boot, the modules gspca_main and gspca_sonixj are loaded. The microphone is detected and shows up in the pulseaudio mixer with no indication of sound (i.e. the sound level bar is empty). First: - rmmod gspca_sonixj - modprobe sn9c102. - Result: There was no change in the mixer display. Second: modprobe gspca_sonixj - Result: Mixer display shows a low level of noise which jumps when I speak. Mic is working. Ta-dah! Third: - Start skype, and am able to make a test call with sound. I have gotten so tired of Test, 1, 2, 3,... that I now whistle. My wife appreciates the change. Fourth: - Enable the video in skype. Mic goes dead. Sound disappears. Fifth: - rmmod gspca_sonixj - modprobe gspca-sonixj Result: Sound is back. Of course the video is gone. I hope this can help in tracking down what is going on. Let me know if you need anything further, or if you wish for me to do any testing... Tom. -- 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
Compile of gspca
Hi all. I hope this is the right place to bring up this problem. I have been attempting to set up a Microsoft VX 3000 webcam/microphone combo. I was running Ubuntu 8.10 (intrepid ibex) with the 2.6.27-11 kernel. I was unable to get the camera running until I found a reference to downloading the gspca source http://linuxtv.org/hg/~jfrancois/gspca/archive/tip.tar.bz2. I did so and got package gspca-d8d701594f71.tar.bz2 which I unpacked, and following the instructions compiled and installed successfully. Upon reboot, the camera was found and the video worked very well. However, the sound did not work although the USB mike was detected. I knew that there were problems with pulseaudio and ALSA in Intrepid and from work on my notebook, I knew that the upgrade to 9.04 (Jaunty Jackalope) corrected the sound problems (new kernel 2.6.28-11-generic). I did the upgrade with the result that the sound appeared. But the camera disappeared. I know how to fix this. I'll just recompile and install using the source that I had previously downloaded. I was mistaken. I got the following: t...@brutus:~/Desktop/gspca-d8d701594f71$ make make -C /home/tom/Desktop/gspca-d8d701594f71/v4l make[1]: Entering directory `/home/tom/Desktop/gspca-d8d701594f71/v4l' perl scripts/make_config_compat.pl /lib/modules/2.6.27-11-generic/build ./.myconfig ./config-compat.h File not found: /lib/modules/2.6.27-11-generic/build/include/linux/netdevice.h at scripts/make_config_compat.pl line 15. make[1]: *** [config-compat.h] Error 2 make[1]: Leaving directory `/home/tom/Desktop/gspca-d8d701594f71/v4l' make: *** [all] Error 2 Further investigation showed that the symbolic link build in /lib/modules/2.6.27-11-generic does not exist although the directory /lib/modules/2.6.27-11... does. Can I simply modify one of the files in the gspca source directory to point to 2.6.28-11-generic and use the build link in that directory, or is it more complicated than that? Is this a problem for the Ubuntu folks? Any advice or direction is most welcome. Thanks... Tom. -- 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