[PATCH] dtv-scan-tables: update all Finnish Digita DVB-T2 transponders
Update Finnish frequencies for Digita. --- dvb-t/fi-Anjalankoski_Ruotila | 18 +- dvb-t/fi-Enontekio_Kuttanen | 7 +-- dvb-t/fi-Espoo| 11 +++ dvb-t/fi-Eurajoki | 20 ++-- dvb-t/fi-Fiskars | 11 +++ dvb-t/fi-Hyvinkaa | 13 - dvb-t/fi-Joutseno | 18 +- dvb-t/fi-Jyvaskyla| 17 ++--- dvb-t/fi-Karkkila | 17 ++--- dvb-t/fi-Kruunupyy| 20 ++-- dvb-t/fi-Kuopio | 18 +- dvb-t/fi-Lahti| 11 +++ dvb-t/fi-Lapua| 18 +- dvb-t/fi-Lohja| 14 +- dvb-t/fi-Oulu | 13 - dvb-t/fi-Tammela | 21 +++-- dvb-t/fi-Tampere | 12 dvb-t/fi-Tampere_Pyynikki | 18 +- dvb-t/fi-Turku| 11 +++ dvb-t/fi-Vantaa_Hakunila | 7 +-- 20 files changed, 119 insertions(+), 176 deletions(-) diff --git a/dvb-t/fi-Anjalankoski_Ruotila b/dvb-t/fi-Anjalankoski_Ruotila index 8ae1231..4d3ab83 100644 --- a/dvb-t/fi-Anjalankoski_Ruotila +++ b/dvb-t/fi-Anjalankoski_Ruotila @@ -1,27 +1,27 @@ # 2014-04-18 Antti Palosaari # generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet -[Anjalankoski_Ruotila] +[Anjalankoski-A] DELIVERY_SYSTEM = DVBT FREQUENCY = 48200 BANDWIDTH_HZ = 800 -[Anjalankoski_Ruotila] - DELIVERY_SYSTEM = DVBT - FREQUENCY = 52200 +[Anjalankoski-B] + DELIVERY_SYSTEM = DVBT2 + FREQUENCY = 65800 BANDWIDTH_HZ = 800 -[Anjalankoski_Ruotila] +[Anjalankoski-C] DELIVERY_SYSTEM = DVBT - FREQUENCY = 73000 + FREQUENCY = 51400 BANDWIDTH_HZ = 800 -[Anjalankoski_Ruotila] +[Anjalankoski-D] DELIVERY_SYSTEM = DVBT - FREQUENCY = 75400 + FREQUENCY = 61800 BANDWIDTH_HZ = 800 -[Anjalankoski_Ruotila] +[Anjalankoski-E] DELIVERY_SYSTEM = DVBT2 FREQUENCY = 63400 BANDWIDTH_HZ = 800 diff --git a/dvb-t/fi-Enontekio_Kuttanen b/dvb-t/fi-Enontekio_Kuttanen index f9a6af8..a792d59 100644 --- a/dvb-t/fi-Enontekio_Kuttanen +++ b/dvb-t/fi-Enontekio_Kuttanen @@ -3,11 +3,6 @@ [Enontekio_Kuttanen] DELIVERY_SYSTEM = DVBT - FREQUENCY = 73000 - BANDWIDTH_HZ = 800 - -[Enontekio_Kuttanen] - DELIVERY_SYSTEM = DVBT - FREQUENCY = 77000 + FREQUENCY = 52200 BANDWIDTH_HZ = 800 diff --git a/dvb-t/fi-Espoo b/dvb-t/fi-Espoo index 6fb0ff2..bc01a39 100644 --- a/dvb-t/fi-Espoo +++ b/dvb-t/fi-Espoo @@ -7,8 +7,8 @@ BANDWIDTH_HZ = 800 [Espoo-B] - DELIVERY_SYSTEM = DVBT - FREQUENCY = 65800 + DELIVERY_SYSTEM = DVBT2 + FREQUENCY = 65000 BANDWIDTH_HZ = 800 [Espoo-C] @@ -21,12 +21,7 @@ FREQUENCY = 51400 BANDWIDTH_HZ = 800 -[Espoo-D] - DELIVERY_SYSTEM = DVBT2 - FREQUENCY = 65000 - BANDWIDTH_HZ = 800 - -[Espoo-H] +[Espoo-F] DELIVERY_SYSTEM = DVBT2 FREQUENCY = 61800 BANDWIDTH_HZ = 800 diff --git a/dvb-t/fi-Eurajoki b/dvb-t/fi-Eurajoki index 1d090a5..2ccc418 100644 --- a/dvb-t/fi-Eurajoki +++ b/dvb-t/fi-Eurajoki @@ -1,28 +1,28 @@ # 2014-04-18 Antti Palosaari # generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet -[Eurajoki] +[Eurajoki-A] DELIVERY_SYSTEM = DVBT FREQUENCY = 61000 BANDWIDTH_HZ = 800 -[Eurajoki] - DELIVERY_SYSTEM = DVBT - FREQUENCY = 66600 +[Eurajoki-B] + DELIVERY_SYSTEM = DVBT2 + FREQUENCY = 59400 BANDWIDTH_HZ = 800 -[Eurajoki] +[Eurajoki-C] DELIVERY_SYSTEM = DVBT - FREQUENCY = 72200 + FREQUENCY = 64200 BANDWIDTH_HZ = 800 -[Eurajoki] +[Eurajoki-E] DELIVERY_SYSTEM = DVBT - FREQUENCY = 74600 + FREQUENCY = 60200 BANDWIDTH_HZ = 800 -[Eurajoki] +[Eurajoki-F] DELIVERY_SYSTEM = DVBT2 - FREQUENCY = 59400 + FREQUENCY = 57000 BANDWIDTH_HZ = 800 diff --git a/dvb-t/fi-Fiskars b/dvb-t/fi-Fiskars index 2b6b791..5f8cacc 100644 --- a/dvb-t/fi-Fiskars +++ b/dvb-t/fi-Fiskars @@ -1,22 +1,17 @@ # 2014-04-18 Antti Palosaari # generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet -[Fiskars] +[Fiskars-A] DELIVERY_SYSTEM = DVBT FREQUENCY = 56200 BANDWIDTH_HZ = 800 -[Fiskars] - DELIVERY_SYSTEM = DVBT - FREQUENCY = 49800 - BANDWIDTH_HZ = 800 - -[Fiskars] +[Fiskars-C] DELIVERY_SYSTEM = DVBT FREQUENCY = 67400 BANDWIDTH_HZ = 800
Re: [PATCH] vsp1: fix video output on R8A77970
Hello! On 12/26/2017 12:21 AM, Sergei Shtylyov wrote: Laurent has added support for the VSP2-D found on R-Car V3M (R8A77970) but the video output that VSP2-D sends to DU has a greenish garbage-like line repeated every 8 or so screen rows. It turns out that V3M has a teeny LIF register (at least it's documented!) that you need to set to some kind of a magic value for the LIF to work correctly... Based on the original (and large) patch by Daisuke Matsushita . Fixes: d455b45f8393 ("v4l: vsp1: Add support for new VSP2-BS, VSP2-DL and VSP2-D instances") Signed-off-by: Sergei Shtylyov --- This patch is against the 'media_tree.git' repo's 'master' branch. drivers/media/platform/vsp1/vsp1_lif.c |8 drivers/media/platform/vsp1/vsp1_regs.h |5 + 2 files changed, 13 insertions(+) Index: media_tree/drivers/media/platform/vsp1/vsp1_lif.c === --- media_tree.orig/drivers/media/platform/vsp1/vsp1_lif.c +++ media_tree/drivers/media/platform/vsp1/vsp1_lif.c @@ -155,6 +155,14 @@ static void lif_configure(struct vsp1_en (obth << VI6_LIF_CTRL_OBTH_SHIFT) | (format->code == 0 ? VI6_LIF_CTRL_CFMT : 0) | VI6_LIF_CTRL_REQSEL | VI6_LIF_CTRL_LIF_EN); + I remember I was going to add a comment here but apparently forgot to do it yesterday... Will repost. + if ((entity->vsp1->version & + (VI6_IP_VERSION_MODEL_MASK | VI6_IP_VERSION_SOC_MASK)) == + (VI6_IP_VERSION_MODEL_VSPD_V3 | VI6_IP_VERSION_SOC_V3M)) { + vsp1_lif_write(lif, dl, VI6_LIF_LBA, + VI6_LIF_LBA_LBA0 | + (1536 << VI6_LIF_LBA_LBA1_SHIFT)); + } } [...] MBR, Sergei
Pctv60e
Dear Support, there are some instruction on how to install driver for pctv60e on debian OS ? Thanks in advance Sent from my iPhone
Re: [PATCH v5 3/6] media: dt-bindings: Add bindings for TDA1997X
On Sat, Dec 16, 2017 at 10:00:27AM -0800, Tim Harvey wrote: > Cc: Rob Herring > Acked-by: Sakari Ailus > Signed-off-by: Tim Harvey > --- > v5: > - added Sakari's ack > > v4: > - move include/dt-bindings/media/tda1997x.h to bindings patch > - clarify port node details > > v3: > - fix typo > > v2: > - add vendor prefix and remove _ from vidout-portcfg > - remove _ from labels > - remove max-pixel-rate property > - describe and provide example for single output port > - update to new audio port bindings > --- > .../devicetree/bindings/media/i2c/tda1997x.txt | 179 > + > include/dt-bindings/media/tda1997x.h | 78 + > 2 files changed, 257 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/tda1997x.txt > create mode 100644 include/dt-bindings/media/tda1997x.h Acked-by: Rob Herring
Philips Tiger TDA10046H/SAA7131e/TDA8290+75a corruption due to bad card loaded
Hi, I'm not sure this is the right place but there are no user mailing lists anymore for V4L? I have a Gigabyte GT-PTV-TAF-RH rev d0 card that others report as working since long time. 01:07.0 Multimedia controller: Philips Semiconductors SAA7131/SAA7133/SAA7135 Video Broadcast Decoder (rev d0) I loaded this card using the wrong card identifier, I used 78: card=78 -> ASUSTeK P7131 Dual 1043:4862 and DVB-T worked for a while. Within a day DVB-T stopped working: $ dvbv5-scan nl-Free Cannot calc frequency shift. Either bandwidth/symbol-rate is unavailable (yet). Scanning frequency #1 61800 Lock (0x1f) Signal= 0,00% C/N= 77,65% UCB= 50886 postBER= 131070 ERRORdvb_read_sections: no data read on section filter ERRORerror while waiting for PAT table VLC output: [7fa784005eb8] ts demux error: libdvbpsi error (PSI decoder): TS discontinuity (received 1, expected 11) for PID 0 [7fa784005eb8] ts demux error: libdvbpsi error (PSI decoder): PSI section too long [7fa784005eb8] ts demux error: libdvbpsi error (misc PSI): Bad CRC_32 table 0xb7 !!! [7fa784005eb8] ts demux error: libdvbpsi error (PSI decoder): PSI section too long To get output using card=78, I had to connect the cable to the FM connector; it has an "FM" and "TV" connector and I had to use the "FM" one to get DVB-T signal I could lock on to and successfully scan and view in VLC. With card=81, this is now the "TV" connector, as it should be of course, but I did not know that in advance. However after about 6 hours of usage the functioning ceased and I got the above output on the FM input (that was working before), and now with card=81, I get the same output on the TV connector. Consequently, I tried using this card in Windows XP SP3 32-bit, for which there are drivers, and no functioning; I did not test prior to this failing in Linux. Did I wreck my card by using the wrong card= selector? Would there by any way to reset this card to its default state in that case? $ dmesg | grep saa [ 110.480504] saa7134: saa7130/34: v4l2 driver version 0, 2, 17 loaded [ 110.480799] saa7134: saa7133[0]: found at :01:07.0, rev: 208, irq: 17, latency: 32, mmio: 0xfdeff000 [ 110.480802] saa7134: saa7133[0]: subsystem: 1458:9001, board: Philips Tiger reference design [card=81,insmod option] [ 110.480820] saa7134: saa7133[0]: board init: gpio is 0 [ 110.641457] saa7134: i2c eeprom 00: 58 14 01 90 54 20 1c 00 43 43 a9 1c 55 d2 b2 92 [ 110.641459] saa7134: i2c eeprom 10: 00 01 20 00 ff 20 ff 00 00 00 00 00 00 00 00 00 [ 110.641459] saa7134: i2c eeprom 20: 01 40 01 02 02 01 01 03 08 ff 00 d5 00 00 00 00 [ 110.641460] saa7134: i2c eeprom 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641461] saa7134: i2c eeprom 40: ff 21 00 c2 96 10 03 32 15 00 00 00 00 00 00 00 [ 110.641461] saa7134: i2c eeprom 50: ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641462] saa7134: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641462] saa7134: i2c eeprom 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641463] saa7134: i2c eeprom 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641463] saa7134: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641464] saa7134: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641464] saa7134: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641465] saa7134: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641465] saa7134: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641466] saa7134: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.641466] saa7134: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 110.773504] tuner: 2-004b: Tuner -1 found with type(s) Radio TV. [ 110.901497] tda829x 2-004b: setting tuner address to 61 [ 111.001643] tda829x 2-004b: type set to tda8290+75a [ 115.321420] saa7134: saa7133[0]: registered device video0 [v4l2] [ 115.321510] saa7134: saa7133[0]: registered device vbi0 [ 115.321543] saa7134: saa7133[0]: registered device radio0 [ 115.590567] saa7134_alsa: saa7134 ALSA driver for DMA sound loaded [ 115.590597] saa7134_alsa: saa7133[0]/alsa: saa7133[0] at 0xfdeff000 irq 17 registered as card -2 [ 116.146794] saa7134_dvb: dvb_init() allocating 1 frontend [ 116.161494] dvbdev: DVB: registering new adapter (saa7133[0]) [ 116.161502] saa7134 :01:07.0: DVB: registering adapter 0 frontend 0 (Philips TDA10046H DVB-T)...
[PATCH v2] vsp1: fix video output on R8A77970
Laurent has added support for the VSP2-D found on R-Car V3M (R8A77970) but the video output that VSP2-D sends to DU has a greenish garbage-like line repeated every 8 or so screen rows. It turns out that V3M has a teeny LIF register (at least it's documented!) that you need to set to some kind of a magic value for the LIF to work correctly... Based on the original (and large) patch by Daisuke Matsushita . Fixes: d455b45f8393 ("v4l: vsp1: Add support for new VSP2-BS, VSP2-DL and VSP2-D instances") Signed-off-by: Sergei Shtylyov --- This patch is against the 'media_tree.git' repo's 'master' branch. Changes in version 2: - added a comment before the V3M SoC check; - fixed indetation in that check; - reformatted the patch description. drivers/media/platform/vsp1/vsp1_lif.c | 12 drivers/media/platform/vsp1/vsp1_regs.h |5 + 2 files changed, 17 insertions(+) Index: media_tree/drivers/media/platform/vsp1/vsp1_lif.c === --- media_tree.orig/drivers/media/platform/vsp1/vsp1_lif.c +++ media_tree/drivers/media/platform/vsp1/vsp1_lif.c @@ -155,6 +155,18 @@ static void lif_configure(struct vsp1_en (obth << VI6_LIF_CTRL_OBTH_SHIFT) | (format->code == 0 ? VI6_LIF_CTRL_CFMT : 0) | VI6_LIF_CTRL_REQSEL | VI6_LIF_CTRL_LIF_EN); + + /* +* R-Car V3M has the buffer attribute register you absolutely need +* to write kinda magic value to for the LIF to work correctly... +*/ + if ((entity->vsp1->version & +(VI6_IP_VERSION_MODEL_MASK | VI6_IP_VERSION_SOC_MASK)) == + (VI6_IP_VERSION_MODEL_VSPD_V3 | VI6_IP_VERSION_SOC_V3M)) { + vsp1_lif_write(lif, dl, VI6_LIF_LBA, + VI6_LIF_LBA_LBA0 | + (1536 << VI6_LIF_LBA_LBA1_SHIFT)); + } } static const struct vsp1_entity_operations lif_entity_ops = { Index: media_tree/drivers/media/platform/vsp1/vsp1_regs.h === --- media_tree.orig/drivers/media/platform/vsp1/vsp1_regs.h +++ media_tree/drivers/media/platform/vsp1/vsp1_regs.h @@ -693,6 +693,11 @@ #define VI6_LIF_CSBTH_LBTH_MASK(0x7ff << 0) #define VI6_LIF_CSBTH_LBTH_SHIFT 0 +#define VI6_LIF_LBA0x3b0c +#define VI6_LIF_LBA_LBA0 (1 << 31) +#define VI6_LIF_LBA_LBA1_MASK (0xfff << 16) +#define VI6_LIF_LBA_LBA1_SHIFT 16 + /* - * Security Control Registers */
Re: [linux-sunxi] [PATCH v4 1/2] dt-bindings: media: Add Allwinner V3s Camera Sensor Interface (CSI)
On Fri, Dec 22, 2017 at 10:00:08AM +, Priit Laes wrote: > On Fri, Dec 22, 2017 at 05:41:29PM +0800, Yong Deng wrote: > > Add binding documentation for Allwinner V3s CSI. > > > > Signed-off-by: Yong Deng > > --- > > .../devicetree/bindings/media/sun6i-csi.txt| 51 > > ++ > > 1 file changed, 51 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/media/sun6i-csi.txt > > > > diff --git a/Documentation/devicetree/bindings/media/sun6i-csi.txt > > b/Documentation/devicetree/bindings/media/sun6i-csi.txt > > new file mode 100644 > > index 000..b5bfe3f > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/media/sun6i-csi.txt > > @@ -0,0 +1,51 @@ > > +Allwinner V3s Camera Sensor Interface > > +-- > > Not sure whether syntax for these files is proper reStructuredText/Markdown, > but the underline-ish style expects the title and underline having same > length. The binding files are not rst/md format, but still the comment is just good style. Rob
Re: [PATCH v4 1/2] dt-bindings: media: Add Allwinner V3s Camera Sensor Interface (CSI)
On Fri, Dec 22, 2017 at 05:41:29PM +0800, Yong Deng wrote: > Add binding documentation for Allwinner V3s CSI. > > Signed-off-by: Yong Deng > --- > .../devicetree/bindings/media/sun6i-csi.txt| 51 > ++ > 1 file changed, 51 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/sun6i-csi.txt > > diff --git a/Documentation/devicetree/bindings/media/sun6i-csi.txt > b/Documentation/devicetree/bindings/media/sun6i-csi.txt > new file mode 100644 > index 000..b5bfe3f > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/sun6i-csi.txt > @@ -0,0 +1,51 @@ > +Allwinner V3s Camera Sensor Interface > +-- > + > +Required properties: > + - compatible: value must be "allwinner,sun8i-v3s-csi" > + - reg: base address and size of the memory-mapped region. > + - interrupts: interrupt associated to this IP > + - clocks: phandles to the clocks feeding the CSI > +* bus: the CSI interface clock > +* mod: the CSI module clock > +* ram: the CSI DRAM clock > + - clock-names: the clock names mentioned above > + - resets: phandles to the reset line driving the CSI > + > +- ports: A ports node with endpoint definitions as defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt. > + Currently, the driver only support the parallel interface. So, a single > port > + node with one endpoint and parallel bus is supported. What the driver supports is not relevant. Please document what the h/w has. > + > +Example: > + > + csi1: csi@1cb4000 { > + compatible = "allwinner,sun8i-v3s-csi"; > + reg = <0x01cb4000 0x1000>; > + interrupts = ; > + clocks = <&ccu CLK_BUS_CSI>, > + <&ccu CLK_CSI1_SCLK>, > + <&ccu CLK_DRAM_CSI>; > + clock-names = "bus", "mod", "ram"; > + resets = <&ccu RST_BUS_CSI>; > + > + port { > + #address-cells = <1>; > + #size-cells = <0>; These are not needed with a single endpoint. > + > + /* Parallel bus endpoint */ > + csi1_ep: endpoint { > + remote-endpoint = <&adv7611_ep>; > + bus-width = <16>; > + data-shift = <0>; > + > + /* If hsync-active/vsync-active are missing, > +embedded BT.656 sync is used */ > + hsync-active = <0>; /* Active low */ > + vsync-active = <0>; /* Active low */ > + data-active = <1>; /* Active high */ > + pclk-sample = <1>; /* Rising */ > + }; > + }; > + }; > + > -- > 1.8.3.1 >
RE: [PATCH v4 00/12] Intel IPU3 ImgU patchset
Hi Mauro, > -Original Message- > From: Mauro Carvalho Chehab [mailto:mche...@s-opensource.com] > Sent: Wednesday, December 20, 2017 5:58 AM > To: Mani, Rajmohan > Cc: Zhi, Yong ; linux-media@vger.kernel.org; > sakari.ai...@linux.intel.com; Zheng, Jian Xu ; > Toivonen, Tuukka ; Hu, Jerry W > ; a...@arndb.de; h...@lst.de; > robin.mur...@arm.com; io...@lists.linux-foundation.org > Subject: Re: [PATCH v4 00/12] Intel IPU3 ImgU patchset > > Hi, > > Em Fri, 17 Nov 2017 02:58:56 + > "Mani, Rajmohan" escreveu: > > > Here is an update on the IPU3 documentation that we are currently working > on. > > > > Image processing in IPU3 relies on the following. > > > > 1) HW configuration to enable ISP and > > 2) setting customer specific 3A Tuning / Algorithm Parameters to achieve > desired image quality. > > > > We intend to provide documentation on ImgU driver programming interface > to help users of this driver to configure and enable ISP HW to meet their > needs. This documentation will include details on complete V4L2 Kernel driver > interface and IO-Control parameters, except for the ISP internal algorithm and > its parameters (which is Intel proprietary IP). > > Sakari asked me to take a look on this thread, specifically on this email. I > took a > look on the other e-mails from this thread that are discussing about this IP > block. > > I understand that Intel wants to keep their internal 3A algorithm protected, > just like other vendors protect their own algos. It was never a requirement to > open whatever algorithm are used inside a hardware (or firmware). The only > requirement is that firmwares should be licensed with redistribution > permission, ideally merged at linux-firmware git tree. > > Yet, what I don't understand is why Intel also wants to also protect the > interface for such 3A hardware/firmware algorithm. The parameters that are > passed from an userspace application to Intel ISP logic doesn't contain the > algorithm itself. What's the issue of documenting the meaning of each > parameter? > Thanks for looking into this. To achieve improved image quality using IPU3, 3A (Auto White balance, Auto Focus and Auto Exposure) Tuning parameters specific to a given camera sensor module, are converted to Intel ISP algorithm parameters in user space camera HAL using AIC (Automatic ISP Configuration) library. As a unique design of Intel ISP, it exposes very detailed algorithm parameters (~ 1 parameters) to configure ISP's image processing algorithm per each image fame in runtime. Typical Camera SW developers (including those at Intel) are not expected to fully understand and directly set these parameters to configure the ISP algorithm blocks. Due to the above, a user space AIC library (in binary form) is provided to generate ISP Algorithm specific parameters, for a given set of 3A tuning parameters. It significantly reduces the efforts of SW development in ISP HW configuration. On the other hand, the ISP algorithm details could be deduced readily through these detailed parameters by other ISP experts outside Intel. This is the reason that we want to keep these parameter definitions as Intel proprietary IP. We are fully aware of your concerns on how to enable open source developers to use Intel ISP through up-streamed Kernel Driver. Internally, we are working on the license for this AIC library release now (as Hans said NDA license is not acceptable). We believe this will be more efficient way to help open source developers. This AIC library release would be a binary-only release. This AIC library does not use any kernel uAPIs directly. The user space Camera HAL that uses kernel uAPIs is available at https://chromium.googlesource.com/chromiumos/platform/arc-camera/+/master Thanks Raj
Re: [PATCH 2/4] [media] dt/bindings: Add bindings for OV5695
On Mon, Dec 25, 2017 at 10:11:24PM +0800, Shunqian Zheng wrote: > Add device tree binding documentation for the OV5695 sensor. > > Signed-off-by: Shunqian Zheng > --- > .../devicetree/bindings/media/i2c/ov5695.txt | 38 > ++ > 1 file changed, 38 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5695.txt > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov5695.txt > b/Documentation/devicetree/bindings/media/i2c/ov5695.txt > new file mode 100644 > index 000..ed27eb1 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/ov5695.txt > @@ -0,0 +1,38 @@ > +* Omnivision OV5695 MIPI CSI-2 sensor > + > +Required Properties: > +- compatible: should be "ovti,ov5695" > +- clocks: reference to the 24M xvclk input clock. > +- clock-names: should be "xvclk". > +- dovdd-supply: Digital I/O voltage supply, 1.8 volts > +- avdd-supply: Analog voltage supply, 2.8 volts > +- dvdd-supply: Digital core voltage supply, 1.2 volts > +- reset-gpios: Low active reset gpio > + > +The device node must contain one 'port' child node for its digital output > +video port, in accordance with the video interface bindings defined in > +Documentation/devicetree/bindings/media/video-interfaces.txt. > + > +Example: > +&i2c1 { Presumably, i2c1 is your I2C controller, so you are missing a child node here: camera-sensor@36 With that, Reviewed-by: Rob Herring > + compatible = "ovti,ov5695"; > + reg = <0x36>; > + pinctrl-names = "default"; > + pinctrl-0 = <&clk_24m_cam &wcam_rst>; > + > + clocks = <&cru SCLK_TESTCLKOUT1>; > + clock-names = "xvclk"; > + > + avdd-supply = <&pp2800_cam>; > + dvdd-supply = <&pp1250_cam>; > + dovdd-supply = <&pp1800>; > + > + reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; > + > + port { > + wcam_out: endpoint { > + remote-endpoint = <&mipi_in_wcam>; > + data-lanes = <1 2>; > + }; > + }; > +}; > -- > 1.9.1 >
Re: [PATCH 4/4] [media] dt/bindings: Add bindings for OV2685
On Mon, Dec 25, 2017 at 10:11:26PM +0800, Shunqian Zheng wrote: > Add device tree binding documentation for the OV2685 sensor. > > Signed-off-by: Shunqian Zheng > --- > .../devicetree/bindings/media/i2c/ov2685.txt | 35 > ++ > 1 file changed, 35 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/ov2685.txt > > diff --git a/Documentation/devicetree/bindings/media/i2c/ov2685.txt > b/Documentation/devicetree/bindings/media/i2c/ov2685.txt > new file mode 100644 > index 000..c62db9c > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/ov2685.txt > @@ -0,0 +1,35 @@ > +* Omnivision OV2685 MIPI CSI-2 sensor > + > +Required Properties: > +- compatible: should be "ovti,ov2685" > +- clocks: reference to the 24M xvclk input clock. > +- clock-names: should be "xvclk". > +- avdd-supply: Analog voltage supply, 2.8 volts > +- dvdd-supply: Digital core voltage supply, 1.2 volts > +- reset-gpios: Low active reset gpio > + > +The device node must contain one 'port' child node for its digital output > +video port, in accordance with the video interface bindings defined in > +Documentation/devicetree/bindings/media/video-interfaces.txt. > + > +Example: > + ucam: ov2680@3c { camera-sensor@3c > + compatible = "ovti,ov2685"; > + reg = <0x3c>; > + pinctrl-names = "default"; > + pinctrl-0 = <&clk_24m_cam &ucam_rst>; Not documented. > + > + clocks = <&cru SCLK_TESTCLKOUT1>; > + clock-names = "xvclk"; > + > + avdd-supply = <&pp2800_cam>; > + dovdd-supply = <&pp1800>; > + reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; > + > + port { > + ucam_out: endpoint { > + remote-endpoint = <&mipi_in_ucam>; > + data-lanes = <1>; > + }; > + }; > + }; > -- > 1.9.1 >
[PATCH 3/4] [media] dvb-frontends/stv0910: field and register access helpers
From: Daniel Scheller Add a write_field() function that acts as helper to update specific bits specified in the field defines (FSTV0910_*) in stv0910_regs.h, which was recently updated to carry the missing offset values. With that, add the SET_FIELD(), SET_REG() and GET_REG() macros that wrap the write_field(), write_reg() and read_reg() functions to allow for making all demod access code cleaner. The write_field() function is annotated with __maybe_unused temporarily to silence eventual compile warnings. Picked up from the dddvb upstream, with the macro names made uppercase so they are distinguishable as such. Cc: Ralph Metzler Signed-off-by: Daniel Scheller --- drivers/media/dvb-frontends/stv0910.c | 28 1 file changed, 28 insertions(+) diff --git a/drivers/media/dvb-frontends/stv0910.c b/drivers/media/dvb-frontends/stv0910.c index 06d2587125dd..5fed22685e28 100644 --- a/drivers/media/dvb-frontends/stv0910.c +++ b/drivers/media/dvb-frontends/stv0910.c @@ -194,6 +194,34 @@ static int write_shared_reg(struct stv *state, u16 reg, u8 mask, u8 val) return status; } +static int __maybe_unused write_field(struct stv *state, u32 field, u8 val) +{ + int status; + u8 shift, mask, old, new; + + status = read_reg(state, field >> 16, &old); + if (status) + return status; + mask = field & 0xff; + shift = (field >> 12) & 0xf; + new = ((val << shift) & mask) | (old & ~mask); + if (new == old) + return 0; + return write_reg(state, field >> 16, new); +} + +#define SET_FIELD(_reg, _val) \ + write_field(state, state->nr ? FSTV0910_P2_##_reg : \ + FSTV0910_P1_##_reg, _val) + +#define SET_REG(_reg, _val)\ + write_reg(state, state->nr ? RSTV0910_P2_##_reg : \ + RSTV0910_P1_##_reg, _val) + +#define GET_REG(_reg, _val)\ + read_reg(state, state->nr ? RSTV0910_P2_##_reg :\ +RSTV0910_P1_##_reg, _val) + static const struct slookup s1_sn_lookup[] = { { 0,9242 }, /* C/N= 0dB */ { 5,9105 }, /* C/N= 0.5dB */ -- 2.13.6
[PATCH 4/4] [media] dvb-frontends/stv0910: cleanup init_search_param() and enable PLS
From: Daniel Scheller Cleanup the mess in init_search_param() by utilising the new register access macros and functions. And while at it, move the ISI and PLS setup into separate functions, and pass the new scrambling_sequence_index (aka. physical layer scrambling) value to set_pls. Picked up from the dddvb upstream, adapted to the different naming of the pls property (pls vs. scrambling_sequence_index). Cc: Ralph Metzler Signed-off-by: Daniel Scheller --- drivers/media/dvb-frontends/stv0910.c | 113 -- 1 file changed, 52 insertions(+), 61 deletions(-) diff --git a/drivers/media/dvb-frontends/stv0910.c b/drivers/media/dvb-frontends/stv0910.c index 5fed22685e28..b0c14ff74b67 100644 --- a/drivers/media/dvb-frontends/stv0910.c +++ b/drivers/media/dvb-frontends/stv0910.c @@ -194,7 +194,7 @@ static int write_shared_reg(struct stv *state, u16 reg, u8 mask, u8 val) return status; } -static int __maybe_unused write_field(struct stv *state, u32 field, u8 val) +static int write_field(struct stv *state, u32 field, u8 val) { int status; u8 shift, mask, old, new; @@ -880,45 +880,60 @@ static int stop(struct stv *state) return 0; } -static int init_search_param(struct stv *state) +static void set_pls(struct stv *state, u32 pls_code) { - u8 tmp; - - read_reg(state, RSTV0910_P2_PDELCTRL1 + state->regoff, &tmp); - tmp |= 0x20; /* Filter_en (no effect if SIS=non-MIS */ - write_reg(state, RSTV0910_P2_PDELCTRL1 + state->regoff, tmp); - - read_reg(state, RSTV0910_P2_PDELCTRL2 + state->regoff, &tmp); - tmp &= ~0x02; /* frame mode = 0 */ - write_reg(state, RSTV0910_P2_PDELCTRL2 + state->regoff, tmp); - - write_reg(state, RSTV0910_P2_UPLCCST0 + state->regoff, 0xe0); - write_reg(state, RSTV0910_P2_ISIBITENA + state->regoff, 0x00); - - read_reg(state, RSTV0910_P2_TSSTATEM + state->regoff, &tmp); - tmp &= ~0x01; /* nosync = 0, in case next signal is standard TS */ - write_reg(state, RSTV0910_P2_TSSTATEM + state->regoff, tmp); - - read_reg(state, RSTV0910_P2_TSCFGL + state->regoff, &tmp); - tmp &= ~0x04; /* embindvb = 0 */ - write_reg(state, RSTV0910_P2_TSCFGL + state->regoff, tmp); - - read_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, &tmp); - tmp &= ~0x80; /* syncbyte = 0 */ - write_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, tmp); - - read_reg(state, RSTV0910_P2_TSINSDELM + state->regoff, &tmp); - tmp &= ~0x08; /* token = 0 */ - write_reg(state, RSTV0910_P2_TSINSDELM + state->regoff, tmp); + if (pls_code == state->cur_scrambling_code) + return; + + /* PLROOT2 bit 2 = gold code */ + write_reg(state, RSTV0910_P2_PLROOT0 + state->regoff, + pls_code & 0xff); + write_reg(state, RSTV0910_P2_PLROOT1 + state->regoff, + (pls_code >> 8) & 0xff); + write_reg(state, RSTV0910_P2_PLROOT2 + state->regoff, + 0x04 | ((pls_code >> 16) & 0x03)); + state->cur_scrambling_code = pls_code; +} - read_reg(state, RSTV0910_P2_TSDLYSET2 + state->regoff, &tmp); - tmp &= ~0x30; /* hysteresis threshold = 0 */ - write_reg(state, RSTV0910_P2_TSDLYSET2 + state->regoff, tmp); +static void set_isi(struct stv *state, u32 isi) +{ + if (isi == NO_STREAM_ID_FILTER) + return; + if (isi == 0x8000) { + SET_FIELD(FORCE_CONTINUOUS, 1); + SET_FIELD(TSOUT_NOSYNC, 1); + } else { + SET_FIELD(FILTER_EN, 1); + write_reg(state, RSTV0910_P2_ISIENTRY + state->regoff, + isi & 0xff); + write_reg(state, RSTV0910_P2_ISIBITENA + state->regoff, 0xff); + } + SET_FIELD(ALGOSWRST, 1); + SET_FIELD(ALGOSWRST, 0); +} - read_reg(state, RSTV0910_P2_PDELCTRL0 + state->regoff, &tmp); - tmp = (tmp & ~0x30) | 0x10; /* isi obs mode = 1, observe min ISI */ - write_reg(state, RSTV0910_P2_PDELCTRL0 + state->regoff, tmp); +static void set_stream_modes(struct stv *state, +struct dtv_frontend_properties *p) +{ + set_isi(state, p->stream_id); + set_pls(state, p->scrambling_sequence_index); +} +static int init_search_param(struct stv *state, +struct dtv_frontend_properties *p) +{ + SET_FIELD(FORCE_CONTINUOUS, 0); + SET_FIELD(FRAME_MODE, 0); + SET_FIELD(FILTER_EN, 0); + SET_FIELD(TSOUT_NOSYNC, 0); + SET_FIELD(TSFIFO_EMBINDVB, 0); + SET_FIELD(TSDEL_SYNCBYTE, 0); + SET_REG(UPLCCST0, 0xe0); + SET_FIELD(TSINS_TOKEN, 0); + SET_FIELD(HYSTERESIS_THRESHOLD, 0); + SET_FIELD(ISIOBS_MODE, 1); + + set_stream_modes(state, p); return 0; } @@ -1005,7 +1020,6 @@ static int start(struct stv *state, struct dtv_frontend_properties *p) s32 freq; u8 reg_dmdcfgmd; u16
[PATCH 2/4] [media] dvb-frontends/stv0910: cleanup I2C access functions
From: Daniel Scheller write_reg() and i2c_write_reg16() only act as a proxy to i2c_write(), which isn't called from anywhere else throughout the driver. Clean this up by moving the message setup and the i2c_transfer() into write_reg() so it becomes the only I2C write function. While touching those parts, fix the error codes from EREMOTEIO to EIO. The I2C cleanup is picked from the upstream dddvb. Cc: Ralph Metzler Signed-off-by: Daniel Scheller --- drivers/media/dvb-frontends/stv0910.c | 28 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/drivers/media/dvb-frontends/stv0910.c b/drivers/media/dvb-frontends/stv0910.c index a6c473f3647f..06d2587125dd 100644 --- a/drivers/media/dvb-frontends/stv0910.c +++ b/drivers/media/dvb-frontends/stv0910.c @@ -137,33 +137,21 @@ struct slookup { u32 reg_value; }; -static inline int i2c_write(struct i2c_adapter *adap, u8 adr, - u8 *data, int len) +static int write_reg(struct stv *state, u16 reg, u8 val) { - struct i2c_msg msg = {.addr = adr, .flags = 0, - .buf = data, .len = len}; + struct i2c_adapter *adap = state->base->i2c; + u8 data[3] = {reg >> 8, reg & 0xff, val}; + struct i2c_msg msg = {.addr = state->base->adr, .flags = 0, + .buf = data, .len = 3}; if (i2c_transfer(adap, &msg, 1) != 1) { dev_warn(&adap->dev, "i2c write error ([%02x] %04x: %02x)\n", -adr, (data[0] << 8) | data[1], -(len > 2 ? data[2] : 0)); - return -EREMOTEIO; +state->base->adr, reg, val); + return -EIO; } return 0; } -static int i2c_write_reg16(struct i2c_adapter *adap, u8 adr, u16 reg, u8 val) -{ - u8 msg[3] = {reg >> 8, reg & 0xff, val}; - - return i2c_write(adap, adr, msg, 3); -} - -static int write_reg(struct stv *state, u16 reg, u8 val) -{ - return i2c_write_reg16(state->base->i2c, state->base->adr, reg, val); -} - static inline int i2c_read_regs16(struct i2c_adapter *adapter, u8 adr, u16 reg, u8 *val, int count) { @@ -176,7 +164,7 @@ static inline int i2c_read_regs16(struct i2c_adapter *adapter, u8 adr, if (i2c_transfer(adapter, msgs, 2) != 2) { dev_warn(&adapter->dev, "i2c read error ([%02x] %04x)\n", adr, reg); - return -EREMOTEIO; + return -EIO; } return 0; } -- 2.13.6
[PATCH 1/4] [media] dvb-frontends/stv0910: deduplicate writes in enable_puncture_rate()
From: Daniel Scheller For all code rates, the same write is performed, only with a differing value. Clean this up by putting that value into a variable instead and perform the write at the end with that value. Picked up from the dddvb upstream. Cc: Ralph Metzler Signed-off-by: Daniel Scheller --- drivers/media/dvb-frontends/stv0910.c | 28 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/drivers/media/dvb-frontends/stv0910.c b/drivers/media/dvb-frontends/stv0910.c index a8c99f41478b..a6c473f3647f 100644 --- a/drivers/media/dvb-frontends/stv0910.c +++ b/drivers/media/dvb-frontends/stv0910.c @@ -908,27 +908,31 @@ static int init_search_param(struct stv *state) static int enable_puncture_rate(struct stv *state, enum fe_code_rate rate) { + u8 val; + switch (rate) { case FEC_1_2: - return write_reg(state, -RSTV0910_P2_PRVIT + state->regoff, 0x01); + val = 0x01; + break; case FEC_2_3: - return write_reg(state, -RSTV0910_P2_PRVIT + state->regoff, 0x02); + val = 0x02; + break; case FEC_3_4: - return write_reg(state, -RSTV0910_P2_PRVIT + state->regoff, 0x04); + val = 0x04; + break; case FEC_5_6: - return write_reg(state, -RSTV0910_P2_PRVIT + state->regoff, 0x08); + val = 0x08; + break; case FEC_7_8: - return write_reg(state, -RSTV0910_P2_PRVIT + state->regoff, 0x20); + val = 0x20; + break; case FEC_NONE: default: - return write_reg(state, -RSTV0910_P2_PRVIT + state->regoff, 0x2f); + val = 0x2f; + break; } + + return write_reg(state, RSTV0910_P2_PRVIT + state->regoff, val); } static int set_vth_default(struct stv *state) -- 2.13.6
[PATCH 0/4] stv0910: upstream changes and PLS support
From: Daniel Scheller This series basically is meant to fully enable support for physical layer scrambling which is now supported by the DVB core. Though I decided to pick up the latest changes to the driver from the dddvb upstream and bring both drivers in sync. So, along with support for PLS, these patches apply some cosmetics and cleanups, adds macros to utilise the field definitions for which the offsets were added recently, and makes use of them while finally enabling PLS. Daniel Scheller (4): [media] dvb-frontends/stv0910: deduplicate writes in enable_puncture_rate() [media] dvb-frontends/stv0910: cleanup I2C access functions [media] dvb-frontends/stv0910: field and register access helpers [media] dvb-frontends/stv0910: cleanup init_search_param() and enable PLS drivers/media/dvb-frontends/stv0910.c | 195 ++ 1 file changed, 103 insertions(+), 92 deletions(-) -- 2.13.6
Re: [PATCH 4/4] [media] dt/bindings: Add bindings for OV2685
Rob, On 2017年12月27日 07:28, Rob Herring wrote: On Mon, Dec 25, 2017 at 10:11:26PM +0800, Shunqian Zheng wrote: Add device tree binding documentation for the OV2685 sensor. Signed-off-by: Shunqian Zheng --- .../devicetree/bindings/media/i2c/ov2685.txt | 35 ++ 1 file changed, 35 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/ov2685.txt diff --git a/Documentation/devicetree/bindings/media/i2c/ov2685.txt b/Documentation/devicetree/bindings/media/i2c/ov2685.txt new file mode 100644 index 000..c62db9c --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/ov2685.txt @@ -0,0 +1,35 @@ +* Omnivision OV2685 MIPI CSI-2 sensor + +Required Properties: +- compatible: should be "ovti,ov2685" +- clocks: reference to the 24M xvclk input clock. +- clock-names: should be "xvclk". +- avdd-supply: Analog voltage supply, 2.8 volts +- dvdd-supply: Digital core voltage supply, 1.2 volts +- reset-gpios: Low active reset gpio + +The device node must contain one 'port' child node for its digital output +video port, in accordance with the video interface bindings defined in +Documentation/devicetree/bindings/media/video-interfaces.txt. + +Example: + ucam: ov2680@3c { camera-sensor@3c + compatible = "ovti,ov2685"; + reg = <0x3c>; + pinctrl-names = "default"; + pinctrl-0 = <&clk_24m_cam &ucam_rst>; Not documented. The &clk_24m_cam is pin mux on my rk3399. While the &ucam_rst is board special pin, I should remove it in Document. Thanks, Shunqian + + clocks = <&cru SCLK_TESTCLKOUT1>; + clock-names = "xvclk"; + + avdd-supply = <&pp2800_cam>; + dovdd-supply = <&pp1800>; + reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; + + port { + ucam_out: endpoint { + remote-endpoint = <&mipi_in_ucam>; + data-lanes = <1>; + }; + }; + }; -- 1.9.1
[PATCH][v4l-utils] [DVBV5] Streaming support using videobuf2 for DVR and auto-scan
Ported an older patch (details given below) to latest v4l-utils: commit 6049ea8bd64f (Statically linking libdvbv5 must include -ludev) v4l-utils -Added videobuf2 code for auto-scan -Enhanced queueing logic --Enqueue all bufs in the begining, dequeue one buf --Consume it, enqueue it again and so on.. -Added a common dvb-vb2 lib for following streaming APIs. --initializatioin, deinitialization: unmap and dequeue --enqueue buf, dequeue buf --export buf, stream_to_file --xioctl for repeated ioctl calling -Added comments to functions -This code could not be tested so far Original patch: https://patchwork.linuxtv.org/patch/31612/ Signed-off-by: Junghak Sung Signed-off-by: Geunyoung Kim Acked-by: Seung-Woo Kim Acked-by: Inki Dae Signed-off-by: Satendra Singh Thakur --- include/linux/dvb/dmx.h| 65 - lib/include/libdvbv5/dvb-dev.h | 8 ++ lib/include/libdvbv5/dvb-vb2.h | 152 lib/libdvbv5/Makefile.am | 2 + lib/libdvbv5/dvb-scan.c| 92 ++-- lib/libdvbv5/dvb-vb2.c | 320 + utils/dvb/dvbv5-zap.c | 31 +++- 7 files changed, 656 insertions(+), 14 deletions(-) create mode 100644 lib/include/libdvbv5/dvb-vb2.h create mode 100644 lib/libdvbv5/dvb-vb2.c diff --git a/include/linux/dvb/dmx.h b/include/linux/dvb/dmx.h index 7d27bf5..3cef421 100644 --- a/include/linux/dvb/dmx.h +++ b/include/linux/dvb/dmx.h @@ -1,4 +1,3 @@ -/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ /* * dmx.h * @@ -209,6 +208,64 @@ struct dmx_stc { __u64 stc; }; +/** + * struct dmx_buffer - dmx buffer info + * + * @index: id number of the buffer + * @bytesused: number of bytes occupied by data in the buffer (payload); + * @offset:for buffers with memory == DMX_MEMORY_MMAP; + * offset from the start of the device memory for this plane, + * (or a "cookie" that should be passed to mmap() as offset) + * @length:size in bytes of the buffer + * + * Contains data exchanged by application and driver using one of the streaming + * I/O methods. + */ +struct dmx_buffer { + __u32 index; + __u32 bytesused; + __u32 offset; + __u32 length; + __u32 reserved[4]; +}; + +/** + * struct dmx_requestbuffers - request dmx buffer information + * + * @count: number of requested buffers, + * @size: size in bytes of the requested buffer + * + * Contains data used for requesting a dmx buffer. + * All reserved fields must be set to zero. + */ +struct dmx_requestbuffers { + __u32 count; + __u32 size; + __u32 reserved[2]; +}; + +/** + * struct dmx_exportbuffer - export of dmx buffer as DMABUF file descriptor + * + * @index: id number of the buffer + * @flags: flags for newly created file, currently only O_CLOEXEC is + * supported, refer to manual of open syscall for more details + * @fd:file descriptor associated with DMABUF (set by driver) + * + * Contains data used for exporting a dmx buffer as DMABUF file descriptor. + * The buffer is identified by a 'cookie' returned by DMX_QUERYBUF + * (identical to the cookie used to mmap() the buffer to userspace). All + * reserved fields must be set to zero. The field reserved0 is expected to + * become a structure 'type' allowing an alternative layout of the structure + * content. Therefore this field should not be used for any other extensions. + */ +struct dmx_exportbuffer { + __u32 index; + __u32 flags; + __s32 fd; + __u32 reserved[5]; +}; + #define DMX_START_IO('o', 41) #define DMX_STOP _IO('o', 42) #define DMX_SET_FILTER _IOW('o', 43, struct dmx_sct_filter_params) @@ -227,4 +284,10 @@ typedef enum dmx_ts_pes dmx_pes_type_t; typedef struct dmx_filter dmx_filter_t; +#define DMX_REQBUFS _IOWR('o', 60, struct dmx_requestbuffers) +#define DMX_QUERYBUF _IOWR('o', 61, struct dmx_buffer) +#define DMX_EXPBUF _IOWR('o', 62, struct dmx_exportbuffer) +#define DMX_QBUF _IOWR('o', 63, struct dmx_buffer) +#define DMX_DQBUF_IOWR('o', 64, struct dmx_buffer) + #endif /* _DVBDMX_H_ */ diff --git a/lib/include/libdvbv5/dvb-dev.h b/lib/include/libdvbv5/dvb-dev.h index 6dbd2ae..221d87b 100644 --- a/lib/include/libdvbv5/dvb-dev.h +++ b/lib/include/libdvbv5/dvb-dev.h @@ -309,6 +309,14 @@ struct dvb_open_descriptor *dvb_dev_open(struct dvb_device *dvb, * closed. */ void dvb_dev_close(struct dvb_open_descriptor *open_dev); +/** + * @brief Gets open file descriptor of a dvb device + * @ingroup dvb_device + * + * @param open_dev Points to the struct dvb_open_descriptor + * @return Retuns fd on success, -1 otherwise. + */ +int dvb_dev_get
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 Dec 27 05:00:16 CET 2017 media-tree git hash:9eb124fe796cbadd454c8f946d7051f4c3f4a251 media_build git hash: f709aa47e1577563a814e2558cd78b6d00639021 v4l-utils git hash: 6049ea8bd64f9d78ef87ef0c2b3dc9b5de1ca4a1 gcc version:i686-linux-gcc (GCC) 7.1.0 sparse version: v0.5.0-3911-g6f737e1f smatch version: v0.5.0-3911-g6f737e1f host hardware: x86_64 host os:4.13.0-164 linux-git-arm-at91: OK linux-git-arm-davinci: OK linux-git-arm-multi: OK linux-git-arm-pxa: OK linux-git-arm-stm32: 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.36.4-i686: WARNINGS linux-2.6.37.6-i686: WARNINGS linux-2.6.38.8-i686: WARNINGS linux-2.6.39.4-i686: WARNINGS linux-3.0.60-i686: WARNINGS linux-3.1.10-i686: WARNINGS linux-3.2.37-i686: WARNINGS linux-3.3.8-i686: WARNINGS linux-3.4.27-i686: WARNINGS linux-3.5.7-i686: WARNINGS linux-3.6.11-i686: WARNINGS linux-3.7.4-i686: WARNINGS linux-3.8-i686: WARNINGS linux-3.9.2-i686: WARNINGS linux-3.10.1-i686: WARNINGS linux-3.11.1-i686: WARNINGS linux-3.12.67-i686: WARNINGS linux-3.13.11-i686: WARNINGS linux-3.14.9-i686: WARNINGS linux-3.15.2-i686: WARNINGS linux-3.16.7-i686: WARNINGS linux-3.17.8-i686: WARNINGS linux-3.18.7-i686: WARNINGS linux-3.19-i686: WARNINGS linux-4.0.9-i686: WARNINGS linux-4.1.33-i686: WARNINGS linux-4.2.8-i686: WARNINGS linux-4.3.6-i686: WARNINGS linux-4.4.22-i686: OK linux-4.5.7-i686: WARNINGS linux-4.6.7-i686: ERRORS linux-4.7.5-i686: ERRORS linux-4.8-i686: ERRORS linux-4.9.26-i686: OK linux-4.10.14-i686: OK linux-4.11-i686: OK linux-4.12.1-i686: OK linux-4.13-i686: OK linux-4.14-i686: OK linux-2.6.36.4-x86_64: WARNINGS linux-2.6.37.6-x86_64: WARNINGS linux-2.6.38.8-x86_64: WARNINGS linux-2.6.39.4-x86_64: WARNINGS linux-3.0.60-x86_64: WARNINGS linux-3.1.10-x86_64: WARNINGS linux-3.2.37-x86_64: WARNINGS linux-3.3.8-x86_64: WARNINGS linux-3.4.27-x86_64: WARNINGS linux-3.5.7-x86_64: WARNINGS linux-3.6.11-x86_64: WARNINGS linux-3.7.4-x86_64: WARNINGS linux-3.8-x86_64: WARNINGS linux-3.9.2-x86_64: WARNINGS linux-3.10.1-x86_64: WARNINGS linux-3.11.1-x86_64: WARNINGS linux-3.12.67-x86_64: WARNINGS linux-3.13.11-x86_64: WARNINGS linux-3.14.9-x86_64: WARNINGS linux-3.15.2-x86_64: WARNINGS linux-3.16.7-x86_64: WARNINGS linux-3.17.8-x86_64: WARNINGS linux-3.18.7-x86_64: WARNINGS linux-3.19-x86_64: WARNINGS linux-4.0.9-x86_64: WARNINGS linux-4.1.33-x86_64: WARNINGS linux-4.2.8-x86_64: WARNINGS linux-4.3.6-x86_64: WARNINGS linux-4.4.22-x86_64: WARNINGS linux-4.5.7-x86_64: WARNINGS linux-4.6.7-x86_64: ERRORS linux-4.7.5-x86_64: ERRORS linux-4.8-x86_64: ERRORS linux-4.9.26-x86_64: WARNINGS linux-4.10.14-x86_64: WARNINGS linux-4.11-x86_64: WARNINGS linux-4.12.1-x86_64: WARNINGS linux-4.13-x86_64: OK linux-4.14-x86_64: OK apps: OK spec-git: OK smatch: OK 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/index.html