Re: PCIe capture driver
On Tue, Oct 20, 2015 at 9:23 AM, Hans Verkuilwrote: > On 10/19/2015 10:26 PM, Ran Shalit wrote: >> Hello, >> >> When writing a device driver for capturing video coming from PCIe, >> does it need to be used as v4l device (video for linux) , ? > > Yes. If you don't then 1) you will never be able to upstream the driver, > 2) any application that wants to use your driver will need custom code to > talk to your driver, 3) it will be a lot more work to write the driver > since you can't use the V4L2 kernel frameworks it provides or ask for > help. > > Basically, by deciding to reinvent the wheel you're screwing over your > customers and yourself. > > Here is a nice PCI(e) template driver that you can use as your starting > point: Documentation/video4linux/v4l2-pci-skeleton.c > > Regards, > > Hans Hans, Many thanks for the detailed answer and the example ! Regards, Ran -- 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: Brazilian television capture device
Hi, David I'm in the same process that you are. I'm also on remote (Europe) but I have some laptop in Brazil where I can do some test using remote shell. I don't talk Brazilian/Portuguese so it is also hard to find Local Linux groups certainly discussing about it I have also that reference. http://www.isdb-t.com/usb-isdb-t-full-seg-digital-usb-tv-stick-use-for-pc-philippines-japan-chile-vcan1012/ I don't know neither if this could be working. Not yet purchased My contact purchased http://www.netserv19.com/ecommerce_site/produto_103630_1598_Visus-Tv-Radicale-Receptor-Tv-Digital-Fullhd-Alta-Definicao-FULL-SEG I will need to test it coming days but dvbsnoop -s feinfo allready return: Device: /dev/dvb/adapter0/frontend0 Basic capabilities: Name: "DiBcom 8000 ISDB-T" Frontend-type: OFDM (DVB-T) Frequency (min): 45000.000 kHz Frequency (max): 86.000 kHz Frequency stepsiz: 62.500 kHz Frequency tolerance: 0.000 kHz Which is not a bad sign. Please share you finding, it would be appreciated. Regards, Michael On Tue, Oct 20, 2015 at 1:04 AM, David Liontoothwrote: > > Does anyone know of a tv capture device for Brazil (ISDB-T) that is > supported in Linux and available for sale? > > I'm having a hard time finding any of the devices listed under > http://www.linuxtv.org/wiki/index.php/ISDB-T_USB_Devices or ISDB-T PCIe > devices -- > > * Pixelview SBTVD > (http://www.kabum.com.br/produto/6784/receptor-de-tv-digital-pixelview-playtv-usb-2-0-sbtvd-full-seg-pv-d231urn-f) > is out of stock > * Geniatech/MyGica X8507 PCI-Express Hybrid Card > (http://www.linuxtv.org/wiki/index.php/Geniatech/MyGica_X8507_PCI-Express_Hybrid_Card) > > I see the Aver3d Hybrid Volar Xpro (H869 -- > http://avertv.avermedia.com/avertv/Upload/ProductImages/DS_H869_EN_140415.pdf) > at americanas.com > (http://www.americanas.com.br/produto/9869979/placa-captura-de-tv-aver3d-hybrid-volar-xpro) > -- is it supported? > > I'm advising friends remotely, so I can't just purchase it and try it out. > > Cheers, > Dave > > -- > 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 -- 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: Brazilian television capture device
The new Sundtek devices support DVB-C, DVB-T, ISDB-T, AnalogTV and FM Radio. The old ones only supported ISDB-T/AnalogTV and FM Radio. Power consumption is very low too. On Tue, Oct 20, 2015 at 11:01 AM, Michael Stilmantwrote: > Hi, David > > I'm in the same process that you are. I'm also on remote (Europe) but > I have some laptop in Brazil where I can do some test using remote > shell. I don't talk Brazilian/Portuguese so it is also hard to find > Local Linux groups certainly discussing about it > > I have also that reference. > http://www.isdb-t.com/usb-isdb-t-full-seg-digital-usb-tv-stick-use-for-pc-philippines-japan-chile-vcan1012/ > I don't know neither if this could be working. Not yet purchased > > My contact purchased > http://www.netserv19.com/ecommerce_site/produto_103630_1598_Visus-Tv-Radicale-Receptor-Tv-Digital-Fullhd-Alta-Definicao-FULL-SEG > I will need to test it coming days > but dvbsnoop -s feinfo allready return: > > Device: /dev/dvb/adapter0/frontend0 > > Basic capabilities: > Name: "DiBcom 8000 ISDB-T" > Frontend-type: OFDM (DVB-T) > Frequency (min): 45000.000 kHz > Frequency (max): 86.000 kHz > Frequency stepsiz: 62.500 kHz > Frequency tolerance: 0.000 kHz > > > Which is not a bad sign. > > Please share you finding, it would be appreciated. > > Regards, > > Michael > > > > > On Tue, Oct 20, 2015 at 1:04 AM, David Liontooth wrote: >> >> Does anyone know of a tv capture device for Brazil (ISDB-T) that is >> supported in Linux and available for sale? >> >> I'm having a hard time finding any of the devices listed under >> http://www.linuxtv.org/wiki/index.php/ISDB-T_USB_Devices or ISDB-T PCIe >> devices -- >> >> * Pixelview SBTVD >> (http://www.kabum.com.br/produto/6784/receptor-de-tv-digital-pixelview-playtv-usb-2-0-sbtvd-full-seg-pv-d231urn-f) >> is out of stock >> * Geniatech/MyGica X8507 PCI-Express Hybrid Card >> (http://www.linuxtv.org/wiki/index.php/Geniatech/MyGica_X8507_PCI-Express_Hybrid_Card) >> >> I see the Aver3d Hybrid Volar Xpro (H869 -- >> http://avertv.avermedia.com/avertv/Upload/ProductImages/DS_H869_EN_140415.pdf) >> at americanas.com >> (http://www.americanas.com.br/produto/9869979/placa-captura-de-tv-aver3d-hybrid-volar-xpro) >> -- is it supported? >> >> I'm advising friends remotely, so I can't just purchase it and try it out. >> >> Cheers, >> Dave >> >> -- >> 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 > -- > 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 -- 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 resume
Hi! A acquaintance of mine gave me your email adress. He was very confident you would be very glad to read my resume. After looking through your website and seeing what it is you guys do, I'm also very sure you will not be disappointed. I'm attaching my resume for you to read. I am very much looking forward to hearing back from you. Best regards. alexandrina gallagher MyCV_157.doc Description: MS-Word document
Re: Brazilian television capture device
On 10/20/15 11:32 AM, Markus Rechberger wrote: The new Sundtek devices support DVB-C, DVB-T, ISDB-T, AnalogTV and FM Radio. The old ones only supported ISDB-T/AnalogTV and FM Radio. Power consumption is very low too. OK, very cool -- I see for instance http://sundtek.com/shop/Digital-TV-Sticks-oxid/Sundtek-MediaTV-ISDB-T-ISDB-T/DVB-C-FM-Radio-AnalogTV.html Page claims "Linux and FreeBSD Support". Dave -- 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 1/1] staging: omap4iss: Compiling V4L2 framework and I2C as modules is fine
Hi Sakari, Thank you for the patch. On Friday 16 October 2015 02:21:13 Sakari Ailus wrote: > Don't require V4L2 framework and I2C being linked to the kernel directly. That's a leftover of when the driver had to be compiled in the kernel. > Signed-off-by: Sakari AilusAcked-by: Laurent Pinchart > --- > drivers/staging/media/omap4iss/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/media/omap4iss/Kconfig > b/drivers/staging/media/omap4iss/Kconfig index 8d4e3bd..4618346 100644 > --- a/drivers/staging/media/omap4iss/Kconfig > +++ b/drivers/staging/media/omap4iss/Kconfig > @@ -1,6 +1,6 @@ > config VIDEO_OMAP4 > tristate "OMAP 4 Camera support" > - depends on VIDEO_V4L2=y && VIDEO_V4L2_SUBDEV_API && I2C=y && ARCH_OMAP4 > + depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && I2C && ARCH_OMAP4 > depends on HAS_DMA > select MFD_SYSCON > select VIDEOBUF2_DMA_CONTIG -- Regards, Laurent Pinchart -- 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: PCIe capture driver
On 10/19/2015 10:26 PM, Ran Shalit wrote: > Hello, > > When writing a device driver for capturing video coming from PCIe, > does it need to be used as v4l device (video for linux) , ? Yes. If you don't then 1) you will never be able to upstream the driver, 2) any application that wants to use your driver will need custom code to talk to your driver, 3) it will be a lot more work to write the driver since you can't use the V4L2 kernel frameworks it provides or ask for help. Basically, by deciding to reinvent the wheel you're screwing over your customers and yourself. Here is a nice PCI(e) template driver that you can use as your starting point: Documentation/video4linux/v4l2-pci-skeleton.c Regards, Hans -- 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] m5602: correctly check failed thread creation
Hi, On 19-10-15 17:24, Insu Yun wrote: Since thread creation can be failed, check return value of kthread_create and handle an error. Signed-off-by: Insu Yun--- drivers/media/usb/gspca/m5602/m5602_s5k83a.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/media/usb/gspca/m5602/m5602_s5k83a.c b/drivers/media/usb/gspca/m5602/m5602_s5k83a.c index bf6b215..76b40d1 100644 --- a/drivers/media/usb/gspca/m5602/m5602_s5k83a.c +++ b/drivers/media/usb/gspca/m5602/m5602_s5k83a.c @@ -221,6 +221,10 @@ int s5k83a_start(struct sd *sd) to assume that there is no better way of accomplishing this */ sd->rotation_thread = kthread_create(rotation_thread_function, sd, "rotation thread"); + if (IS_ERR(sd->rotation_thread)) { + err = PTR_ERR(sd->rotation_thread); + goto fail; + } There is no need to use a goto here you can simply directly return the error. wake_up_process(sd->rotation_thread); /* Preinit the sensor */ @@ -234,9 +238,11 @@ int s5k83a_start(struct sd *sd) data[0]); } if (err < 0) - return err; + goto fail; No need for introducing a goto here either. return s5k83a_set_led_indication(sd, 1); +fail: + return err; } int s5k83a_stop(struct sd *sd) Regards, Hans -- 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] gspca: correctly checked failed allocation
Hi, On 19-10-15 18:43, Insu Yun wrote: create_singlethread_workqueue can be failed in memory pressue. So, check return value and return -ENOMEM Signed-off-by: Insu Yun--- drivers/media/usb/gspca/sq905.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/media/usb/gspca/sq905.c b/drivers/media/usb/gspca/sq905.c index a7ae0ec..b1c25d9a 100644 --- a/drivers/media/usb/gspca/sq905.c +++ b/drivers/media/usb/gspca/sq905.c @@ -392,6 +392,8 @@ static int sd_start(struct gspca_dev *gspca_dev) } /* Start the workqueue function to do the streaming */ dev->work_thread = create_singlethread_workqueue(MODULE_NAME); + if (!dev->work_thread) + return -ENOMEM; queue_work(dev->work_thread, >work_struct); return 0; If the thread creation fails we should not send the start command, so the create_singlethread_workqueue call should be moved up in the function, while keeping the queue_work at the end. And if the sq905_command fails then the workqueue should be destroyed and dev->work_thread should be set to NULL before returning the sq905_command failure to the caller. Regards, Hans -- 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
Guten Tag,
-- Guten Tag, Ich bin Frau Alicia Raymond, die vollziehende Mittel aus einem gut erkannt legitimen Darlehensgeberin als Sheffield Credit Union bekannt. Haben Sie schlechte Kredit haben, oder Sie brauchen Geld, um Ihre Rechnungen zu bezahlen sind? Zinssatz beträgt 3%. füllen Sie das folgende Formular aus, wenn interessiert. Voller Name: Geschlecht: Benötigte Menge: Dauer: Sie können uns per Telefon kontaktieren: +447045734550, s-creditun...@outlook.com Mit freundlichen Grüßen, Frau Alicia Raymond -- 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
Trying to get Terratec Cinergy T XS to work
Hi all! I own a USB DVB-T receiver, Terratec Cinergy T XS, (0ccd:0043) which as far as I can tell from google searches used to work with the old "em28xx-new" driver. I've downloaded the old driver from https://bugs.launchpad.net/ubuntu/+source/linux/+bug/460636/comments/2 and tried to modify the current media_tree drivers accordingly (please see the attached patch), but I get an error when initializing the frontend: = Oct 20 19:33:20 mapperone kernel: [25479.846347] usb 2-1.1: new high-speed USB device number 6 using ehci-pci Oct 20 19:33:20 mapperone kernel: [25479.951208] usb 2-1.1: New USB device found, idVendor=0ccd, idProduct=0043 Oct 20 19:33:20 mapperone kernel: [25479.951215] usb 2-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=0 Oct 20 19:33:20 mapperone kernel: [25479.951220] usb 2-1.1: Product: Cinergy T USB XS Oct 20 19:33:20 mapperone kernel: [25479.951223] usb 2-1.1: Manufacturer: TerraTec Electronic GmbH Oct 20 19:33:20 mapperone mtp-probe: checking bus 2, device 6: "/sys/devices/pci:00/:00:1d.0/usb2/2-1/2-1.1" Oct 20 19:33:20 mapperone mtp-probe: bus: 2, device: 6 was not an MTP device Oct 20 19:33:20 mapperone kernel: [25479.982735] em28xx: New device TerraTec Electronic GmbH Cinergy T USB XS @ 480 Mbps (0ccd:0043, interface 0, class 0) Oct 20 19:33:20 mapperone kernel: [25479.982739] em28xx: Video interface 0 found: isoc Oct 20 19:33:20 mapperone kernel: [25479.982740] em28xx: DVB interface 0 found: isoc Oct 20 19:33:20 mapperone kernel: [25479.982859] em28xx: chip ID is em2870 Oct 20 19:33:20 mapperone kernel: [25480.110080] em2870 #0: EEPROM ID = 1a eb 67 95, EEPROM hash = 0x084c44df Oct 20 19:33:20 mapperone kernel: [25480.110085] em2870 #0: EEPROM info: Oct 20 19:33:20 mapperone kernel: [25480.110087] em2870 #0: No audio on board. Oct 20 19:33:20 mapperone kernel: [25480.110089] em2870 #0: 500mA max power Oct 20 19:33:20 mapperone kernel: [25480.110092] em2870 #0: Table at offset 0x06, strings=0x246a, 0x348e, 0x Oct 20 19:33:20 mapperone kernel: [25480.110096] em2870 #0: Identified as Terratec Cinergy T XS (card=43) Oct 20 19:33:20 mapperone kernel: [25480.110099] em2870 #0: analog set to isoc mode. Oct 20 19:33:20 mapperone kernel: [25480.110101] em2870 #0: dvb set to isoc mode. Oct 20 19:33:20 mapperone kernel: [25480.110149] usbcore: registered new interface driver em28xx Oct 20 19:33:20 mapperone kernel: [25480.113975] em2870 #0: Registering V4L2 extension Oct 20 19:33:20 mapperone kernel: [25480.118352] Chip ID is not zero. It is not a TEA5767 Oct 20 19:33:20 mapperone kernel: [25480.118361] tuner 7-0060: Tuner -1 found with type(s) Radio TV. Oct 20 19:33:20 mapperone kernel: [25480.118390] xc2028 7-0060: creating new instance Oct 20 19:33:20 mapperone kernel: [25480.118397] xc2028 7-0060: type set to XCeive xc2028/xc3028 tuner Oct 20 19:33:20 mapperone kernel: [25480.118453] xc2028 7-0060: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7 Oct 20 19:33:21 mapperone kernel: [25480.166568] xc2028 7-0060: Loading firmware for type=BASE (1), id . Oct 20 19:33:22 mapperone kernel: [25481.248675] xc2028 7-0060: Loading firmware for type=(0), id b700. Oct 20 19:33:22 mapperone kernel: [25481.266071] SCODE (2000), id b700: Oct 20 19:33:22 mapperone kernel: [25481.266078] xc2028 7-0060: Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 8000. Oct 20 19:33:22 mapperone kernel: [25481.270699] xc2028 7-0060: Incorrect readback of firmware version. Oct 20 19:33:22 mapperone kernel: [25481.371524] xc2028 7-0060: Loading firmware for type=BASE (1), id . Oct 20 19:33:23 mapperone kernel: [25482.449292] xc2028 7-0060: Loading firmware for type=(0), id b700. Oct 20 19:33:23 mapperone kernel: [25482.466803] SCODE (2000), id b700: Oct 20 19:33:23 mapperone kernel: [25482.466811] xc2028 7-0060: Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 8000. Oct 20 19:33:23 mapperone kernel: [25482.471431] xc2028 7-0060: Incorrect readback of firmware version. Oct 20 19:33:23 mapperone kernel: [25482.572622] xc2028 7-0060: Loading firmware for type=BASE (1), id . Oct 20 19:33:24 mapperone kernel: [25483.650635] xc2028 7-0060: Loading firmware for type=(0), id b700. Oct 20 19:33:24 mapperone kernel: [25483.66] SCODE (2000), id b700: Oct 20 19:33:24 mapperone kernel: [25483.667784] xc2028 7-0060: Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 8000. Oct 20 19:33:24 mapperone kernel: [25483.672770] xc2028 7-0060: Incorrect readback of firmware version. Oct 20 19:33:24 mapperone kernel: [25483.773478] xc2028 7-0060: Loading firmware for type=BASE (1), id . Oct 20 19:33:25 mapperone kernel: [25484.851617] xc2028 7-0060: Loading firmware for type=(0), id b700. Oct 20 19:33:25 mapperone kernel:
Re: [Patch v2 1/2] media: v4l: ti-vpe: Add CAL v4l2 camera capture driver
On 10/16/2015 05:07 PM, Hans Verkuil wrote: > On 09/21/2015 10:04 PM, Benoit Parrot wrote: >> The Camera Adaptation Layer (CAL) is a block which consists of a dual >> port CSI2/MIPI camera capture engine. >> Port #0 can handle CSI2 camera connected to up to 4 data lanes. >> Port #1 can handle CSI2 camera connected to up to 2 data lanes. >> The driver implements the required API/ioctls to be V4L2 compliant. >> Driver supports the following: >> - V4L2 API using DMABUF/MMAP buffer access based on videobuf2 api >> - Asynchronous sensor sub device registration >> - DT support >> >> Signed-off-by: Benoit Parrot>> --- >> drivers/media/platform/Kconfig | 12 + >> drivers/media/platform/Makefile |2 + >> drivers/media/platform/ti-vpe/Makefile |4 + >> drivers/media/platform/ti-vpe/cal.c | 2161 >> ++ >> drivers/media/platform/ti-vpe/cal_regs.h | 779 +++ >> 5 files changed, 2958 insertions(+) >> create mode 100644 drivers/media/platform/ti-vpe/cal.c >> create mode 100644 drivers/media/platform/ti-vpe/cal_regs.h >> >> diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig >> index dc75694ac12d..c7f5704c56a2 100644 >> --- a/drivers/media/platform/Kconfig >> +++ b/drivers/media/platform/Kconfig >> @@ -120,6 +120,18 @@ source "drivers/media/platform/s5p-tv/Kconfig" >> source "drivers/media/platform/am437x/Kconfig" >> source "drivers/media/platform/xilinx/Kconfig" >> >> +config VIDEO_TI_CAL >> +tristate "TI CAL (Camera Adaptation Layer) driver" >> +depends on VIDEO_DEV && VIDEO_V4L2 && SOC_DRA7XX >> +depends on VIDEO_V4L2_SUBDEV_API >> +depends on VIDEOBUF2_DMA_CONTIG > > This should be: > >depends on VIDEO_DEV && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API >depends on SOC_DRA7XX || COMPILE_TEST >select VIDEOBUF2_DMA_CONTIG > >> +default n >> +---help--- >> + Support for the TI CAL (Camera Adaptation Layer) block >> + found on DRA72X SoC. >> + In TI Technical Reference Manual this module is referred as >> + Camera Interface Subsystem (CAMSS). >> + >> endif # V4L_PLATFORM_DRIVERS >> >> menuconfig V4L_MEM2MEM_DRIVERS > > By compiling with COMPILE_TEST I found a number of compile warnings and it > also no > longer compiled due to vb2 changes. Both are fixed in the patch below. > > SoB for the patch: Signed-off-by: Hans Verkuil > > That said, I'll postpone merging this until the remainder of the vb2 split > patches > have been merged. When that's done this driver will have to be changed some > more. OK, the vb2 split patches were just merged. Can you rebase and repost? Thanks, Hans -- 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 1/1] x86: Fix reading the current exposure value of UVC
Hello! Have you received my patch? When will it be included in the kernel? Thanks! 19.10.2015, 00:02, "Anton V. Shokurov": > V4L2_CID_EXPOSURE_ABSOLUTE property does not return an updated value when > autoexposure (V4L2_CID_EXPOSURE_AUTO) is turned on. This patch fixes this > issue by adding the UVC_CTRL_FLAG_AUTO_UPDATE flag. > > Tested on a C920 camera. > > Signed-off-by: Anton V. Shokurov > --- > drivers/media/usb/uvc/uvc_ctrl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/usb/uvc/uvc_ctrl.c > b/drivers/media/usb/uvc/uvc_ctrl.c > index 3e59b28..c2ee6e3 100644 > --- a/drivers/media/usb/uvc/uvc_ctrl.c > +++ b/drivers/media/usb/uvc/uvc_ctrl.c > @@ -227,7 +227,8 @@ static struct uvc_control_info uvc_ctrls[] = { > .size = 4, > .flags = UVC_CTRL_FLAG_SET_CUR > | UVC_CTRL_FLAG_GET_RANGE > - | UVC_CTRL_FLAG_RESTORE, > + | UVC_CTRL_FLAG_RESTORE > + | UVC_CTRL_FLAG_AUTO_UPDATE, > }, > { > .entity = UVC_GUID_UVC_CAMERA, > -- > 2.6.0 -- 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
[PATCH] v4l-utils: mc_nextgen_test add ALSA capture, playback, and mixer
Add support for ALSA capture, playback, and mixer entity functions. Signed-off-by: Shuah Khan--- contrib/test/mc_nextgen_test.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/contrib/test/mc_nextgen_test.c b/contrib/test/mc_nextgen_test.c index e287096..e0d0ad2 100644 --- a/contrib/test/mc_nextgen_test.c +++ b/contrib/test/mc_nextgen_test.c @@ -227,6 +227,12 @@ static inline const char *ent_function(uint32_t function) return "ATV decoder"; case MEDIA_ENT_F_TUNER: return "tuner"; + case MEDIA_ENT_F_AUDIO_CAPTURE: + return "Audio Capture"; + case MEDIA_ENT_F_AUDIO_PLAYBACK: + return "Audio Playback"; + case MEDIA_ENT_F_AUDIO_MIXER: + return "Audio Mixer"; case MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN: default: return "unknown entity type"; -- 2.1.4 -- 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
[PATCH MC Next Gen v2 2/3] sound/usb: Create media mixer function and control interface entities
Add support for creating MEDIA_ENT_F_AUDIO_MIXER entity for each mixer and a MEDIA_INTF_T_ALSA_CONTROL control interface entity that links to mixer entities. MEDIA_INTF_T_ALSA_CONTROL entity corresponds to the control device for the card. Signed-off-by: Shuah Khan--- sound/usb/card.c | 5 +++ sound/usb/media.c| 89 sound/usb/media.h| 20 sound/usb/mixer.h| 1 + sound/usb/usbaudio.h | 1 + 5 files changed, 116 insertions(+) diff --git a/sound/usb/card.c b/sound/usb/card.c index 469d2bf..d004cb4 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -560,6 +560,9 @@ static int usb_audio_probe(struct usb_interface *intf, if (err < 0) goto __error; + /* Create media entities for mixer and control dev */ + media_mixer_init(chip); + usb_chip[chip->index] = chip; chip->num_interfaces++; chip->probing = 0; @@ -616,6 +619,8 @@ static void usb_audio_disconnect(struct usb_interface *intf) list_for_each(p, >midi_list) { snd_usbmidi_disconnect(p); } + /* delete mixer media resources */ + media_mixer_delete(chip); /* release mixer resources */ list_for_each_entry(mixer, >mixer_list, list) { snd_usb_mixer_disconnect(mixer); diff --git a/sound/usb/media.c b/sound/usb/media.c index 0cbfee6..a26ea8b 100644 --- a/sound/usb/media.c +++ b/sound/usb/media.c @@ -199,4 +199,93 @@ void media_stop_pipeline(struct snd_usb_substream *subs) if (mctl) media_disable_source(mctl); } + +int media_mixer_init(struct snd_usb_audio *chip) +{ + struct device *ctl_dev = >card->ctl_dev; + struct media_intf_devnode *ctl_intf; + struct usb_mixer_interface *mixer; + struct media_device *mdev; + struct media_mixer_ctl *mctl; + u32 intf_type = MEDIA_INTF_T_ALSA_CONTROL; + int ret; + + mdev = media_device_find_devres(>dev->dev); + if (!mdev) + return -ENODEV; + + ctl_intf = (struct media_intf_devnode *) chip->ctl_intf_media_devnode; + if (!ctl_intf) { + ctl_intf = (void *) media_devnode_create(mdev, +intf_type, 0, +MAJOR(ctl_dev->devt), +MINOR(ctl_dev->devt)); + if (!ctl_intf) + return -ENOMEM; + } + + list_for_each_entry(mixer, >mixer_list, list) { + + if (mixer->media_mixer_ctl) + continue; + + /* allocate media_ctl */ + mctl = kzalloc(sizeof(struct media_ctl), GFP_KERNEL); + if (!mctl) + return -ENOMEM; + + mixer->media_mixer_ctl = (void *) mctl; + mctl->media_dev = mdev; + + mctl->media_entity.function = MEDIA_ENT_F_AUDIO_MIXER; + mctl->media_entity.name = chip->card->mixername; + mctl->media_pad[0].flags = MEDIA_PAD_FL_SINK; + mctl->media_pad[1].flags = MEDIA_PAD_FL_SOURCE; + mctl->media_pad[2].flags = MEDIA_PAD_FL_SOURCE; + media_entity_init(>media_entity, MEDIA_MIXER_PAD_MAX, + mctl->media_pad); + ret = media_device_register_entity(mctl->media_dev, + >media_entity); + if (ret) + return ret; + + mctl->intf_link = media_create_intf_link(>media_entity, +_intf->intf, +MEDIA_LNK_FL_ENABLED); + if (!mctl->intf_link) { + media_device_unregister_entity(>media_entity); + return -ENOMEM; + } + mctl->intf_devnode = ctl_intf; + } + return 0; +} + +void media_mixer_delete(struct snd_usb_audio *chip) +{ + struct usb_mixer_interface *mixer; + struct media_device *mdev; + + mdev = media_device_find_devres(>dev->dev); + if (!mdev) + return; + + list_for_each_entry(mixer, >mixer_list, list) { + struct media_mixer_ctl *mctl; + + mctl = (struct media_mixer_ctl *) mixer->media_mixer_ctl; + if (!mixer->media_mixer_ctl) + continue; + + media_entity_remove_links(>media_entity); + media_device_unregister_entity(>media_entity); + media_entity_cleanup(>media_entity); + mctl->media_dev = NULL; + mctl->intf_devnode = NULL; + kfree(mctl); + mixer->media_mixer_ctl = NULL; +
[PATCH MC Next Gen v2 3/3] media: au0828 create link between ALSA Mixer and decoder
Change au0828_create_media_graph() to create pad link between MEDIA_ENT_F_AUDIO_MIXER entity and decoder's AU8522_PAD_AUDIO_OUT. With mixer entity now linked to decoder, change to link MEDIA_ENT_F_AUDIO_CAPTURE to mixer's source pad. Signed-off-by: Shuah Khan--- drivers/media/usb/au0828/au0828-core.c | 17 ++--- drivers/media/usb/au0828/au0828.h | 1 + 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/media/usb/au0828/au0828-core.c b/drivers/media/usb/au0828/au0828-core.c index 7af5d0d..3ef6fee 100644 --- a/drivers/media/usb/au0828/au0828-core.c +++ b/drivers/media/usb/au0828/au0828-core.c @@ -225,6 +225,7 @@ void au0828_create_media_graph(struct media_entity *new, void *notify_data) struct media_entity *entity; struct media_entity *tuner = NULL, *decoder = NULL; struct media_entity *audio_capture = NULL; + struct media_entity *mixer = NULL; int i, ret; if (!mdev) @@ -245,6 +246,9 @@ void au0828_create_media_graph(struct media_entity *new, void *notify_data) case MEDIA_ENT_F_AUDIO_CAPTURE: audio_capture = entity; break; + case MEDIA_ENT_F_AUDIO_MIXER: + mixer = entity; + break; } } @@ -309,13 +313,20 @@ void au0828_create_media_graph(struct media_entity *new, void *notify_data) } } - if (audio_capture && !dev->audio_capture_linked) { - ret = media_create_pad_link(decoder, AU8522_PAD_AUDIO_OUT, - audio_capture, 0, + if (mixer && audio_capture && !dev->audio_capture_linked) { + ret = media_create_pad_link(mixer, 1, audio_capture, 0, MEDIA_LNK_FL_ENABLED); if (ret == 0) dev->audio_capture_linked = 1; } + + if (mixer && !dev->mixer_linked) { + ret = media_create_pad_link(decoder, AU8522_PAD_AUDIO_OUT, + mixer, 0, + MEDIA_LNK_FL_ENABLED); + if (ret == 0) + dev->mixer_linked = 1; + } #endif } diff --git a/drivers/media/usb/au0828/au0828.h b/drivers/media/usb/au0828/au0828.h index 2f4d597..6dd81b2 100644 --- a/drivers/media/usb/au0828/au0828.h +++ b/drivers/media/usb/au0828/au0828.h @@ -288,6 +288,7 @@ struct au0828_dev { bool vdev_linked; bool vbi_linked; bool audio_capture_linked; + bool mixer_linked; struct media_link *active_link; struct media_entity *active_link_owner; #endif -- 2.1.4 -- 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
[PATCH MC Next Gen v2 0/3] Add mixer and control interface media entities
This patch v2 series adds the following: A fix to media_stream_delete() to remove intf devnode. Add support for creating MEDIA_ENT_F_AUDIO_MIXER entity for each mixer and a MEDIA_INTF_T_ALSA_CONTROL control interface entity that links to mixer entities. MEDIA_INTF_T_ALSA_CONTROL entity corresponds to the control device for the card. Change au0828_create_media_graph() to create pad link between MEDIA_ENT_F_AUDIO_MIXER entity and decoder's AU8522_PAD_AUDIO_OUT. With mixer entity now linked to decoder, change to link MEDIA_ENT_F_AUDIO_CAPTURE to mixer's source pad Changes since v1: 1. Included the fix to media_stream_delete() which was by mistake not included in the patch v1. 2. Fixed mixer to decoder link and mider to capture node links based on Mauro Chehapb's review comments on the media graph. This patch series is dependent on an earlier patch series: Update ALSA, and au0828 drivers to use Managed Media Controller API: https://www.mail-archive.com/linux-media@vger.kernel.org/msg92752.html Please find the media graphs for ALSA work with mixer and control interface nodes: https://drive.google.com/folderview?id=0B0NIL0BQg-AlLWE3SzAxazBJWm8=sharing Shuah Khan (3): sound/usb: Fix media_stream_delete() to remove intf devnode sound/usb: Create media mixer function and control interface entities media: au0828 create link between ALSA Mixer and decoder drivers/media/usb/au0828/au0828-core.c | 17 +-- drivers/media/usb/au0828/au0828.h | 1 + sound/usb/card.c | 5 ++ sound/usb/media.c | 90 ++ sound/usb/media.h | 20 sound/usb/mixer.h | 1 + sound/usb/usbaudio.h | 1 + 7 files changed, 132 insertions(+), 3 deletions(-) -- 2.1.4 -- 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
[PATCH MC Next Gen v2 1/3] sound/usb: Fix media_stream_delete() to remove intf devnode
media_stream_delete() doesn't remove intf_devnode. Fix it to call media_devnode_remove() to remove the intf_devnode. Signed-off-by: Shuah Khan--- sound/usb/media.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/usb/media.c b/sound/usb/media.c index 9b455ad..0cbfee6 100644 --- a/sound/usb/media.c +++ b/sound/usb/media.c @@ -173,6 +173,7 @@ void media_stream_delete(struct snd_usb_substream *subs) mdev = media_device_find_devres(>dev->dev); if (mdev) { media_entity_remove_links(>media_entity); + media_devnode_remove(mctl->intf_devnode); media_device_unregister_entity(>media_entity); media_entity_cleanup(>media_entity); } -- 2.1.4 -- 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
cron job: media_tree daily build: ERRORS
This message is generated daily by a cron job that builds media_tree for the kernels and architectures in the list below. Results of the daily build of media_tree: date: Wed Oct 21 04:00:41 CEST 2015 git branch: test git hash: 79f5b6ae960d380c829fb67d5dadcd1d025d2775 gcc version:i686-linux-gcc (GCC) 5.1.0 sparse version: v0.5.0-51-ga53cea2 smatch version: 0.4.1-3153-g7d56ab3 host hardware: x86_64 host os:4.0.0-3.slh.1-amd64 linux-git-arm-at91: OK linux-git-arm-davinci: OK linux-git-arm-exynos: OK linux-git-arm-mx: OK linux-git-arm-omap: OK linux-git-arm-omap1: OK linux-git-arm-pxa: OK linux-git-blackfin-bf561: OK linux-git-i686: OK linux-git-m32r: OK linux-git-mips: OK linux-git-powerpc64: OK linux-git-sh: OK linux-git-x86_64: OK linux-2.6.32.27-i686: ERRORS linux-2.6.33.7-i686: ERRORS linux-2.6.34.7-i686: ERRORS linux-2.6.35.9-i686: ERRORS linux-2.6.36.4-i686: ERRORS linux-2.6.37.6-i686: ERRORS linux-2.6.38.8-i686: ERRORS linux-2.6.39.4-i686: ERRORS linux-3.0.60-i686: ERRORS linux-3.1.10-i686: ERRORS linux-3.2.37-i686: ERRORS linux-3.3.8-i686: ERRORS linux-3.4.27-i686: ERRORS linux-3.5.7-i686: ERRORS linux-3.6.11-i686: ERRORS linux-3.7.4-i686: ERRORS linux-3.8-i686: ERRORS linux-3.9.2-i686: ERRORS linux-3.10.1-i686: ERRORS linux-3.11.1-i686: ERRORS linux-3.12.23-i686: ERRORS linux-3.13.11-i686: ERRORS linux-3.14.9-i686: ERRORS linux-3.15.2-i686: ERRORS linux-3.16.7-i686: ERRORS linux-3.17.8-i686: ERRORS linux-3.18.7-i686: ERRORS linux-3.19-i686: ERRORS linux-4.0-i686: ERRORS linux-4.1.1-i686: ERRORS linux-4.2-i686: ERRORS linux-4.3-rc1-i686: ERRORS linux-2.6.32.27-x86_64: ERRORS linux-2.6.33.7-x86_64: ERRORS linux-2.6.34.7-x86_64: ERRORS linux-2.6.35.9-x86_64: ERRORS linux-2.6.36.4-x86_64: ERRORS linux-2.6.37.6-x86_64: ERRORS linux-2.6.38.8-x86_64: ERRORS linux-2.6.39.4-x86_64: ERRORS linux-3.0.60-x86_64: ERRORS linux-3.1.10-x86_64: ERRORS linux-3.2.37-x86_64: ERRORS linux-3.3.8-x86_64: ERRORS linux-3.4.27-x86_64: ERRORS linux-3.5.7-x86_64: ERRORS linux-3.6.11-x86_64: ERRORS linux-3.7.4-x86_64: ERRORS linux-3.8-x86_64: ERRORS linux-3.9.2-x86_64: ERRORS linux-3.10.1-x86_64: ERRORS linux-3.11.1-x86_64: ERRORS linux-3.12.23-x86_64: ERRORS linux-3.13.11-x86_64: ERRORS linux-3.14.9-x86_64: ERRORS linux-3.15.2-x86_64: ERRORS linux-3.16.7-x86_64: ERRORS linux-3.17.8-x86_64: ERRORS linux-3.18.7-x86_64: ERRORS linux-3.19-x86_64: ERRORS linux-4.0-x86_64: ERRORS linux-4.1.1-x86_64: ERRORS linux-4.2-x86_64: ERRORS linux-4.3-rc1-x86_64: ERRORS apps: OK spec-git: OK ABI WARNING: change for arm-at91 ABI WARNING: change for arm-davinci ABI WARNING: change for arm-exynos ABI WARNING: change for arm-mx ABI WARNING: change for arm-omap ABI WARNING: change for arm-omap1 ABI WARNING: change for arm-pxa ABI WARNING: change for blackfin-bf561 ABI WARNING: change for i686 ABI WARNING: change for m32r ABI WARNING: change for mips ABI WARNING: change for powerpc64 ABI WARNING: change for sh ABI WARNING: change for x86_64 sparse: WARNINGS smatch: ERRORS Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Wednesday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Wednesday.tar.bz2 The Media Infrastructure API from this daily build is here: http://www.xs4all.nl/~hverkuil/spec/media.html -- 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