cron job: media_tree daily build: ERRORS

2017-12-26 Thread Hans Verkuil
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


[PATCH][v4l-utils] [DVBV5] Streaming support using videobuf2 for DVR and auto-scan

2017-12-26 Thread Satendra Singh Thakur
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 

Re: [PATCH 4/4] [media] dt/bindings: Add bindings for OV2685

2017-12-26 Thread Shunqian Zheng

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 = <_24m_cam _rst>;

Not documented.
The _24m_cam is pin mux on my rk3399. While the _rst is board 
special pin, I should remove it in Document.


Thanks,

Shunqian




+
+   clocks = < SCLK_TESTCLKOUT1>;
+   clock-names = "xvclk";
+
+   avdd-supply = <_cam>;
+   dovdd-supply = <>;
+   reset-gpios = < 3 GPIO_ACTIVE_LOW>;
+
+   port {
+   ucam_out: endpoint {
+   remote-endpoint = <_in_ucam>;
+   data-lanes = <1>;
+   };
+   };
+   };
--
1.9.1









[PATCH 0/4] stv0910: upstream changes and PLS support

2017-12-26 Thread Daniel Scheller
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



[PATCH 3/4] [media] dvb-frontends/stv0910: field and register access helpers

2017-12-26 Thread Daniel Scheller
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, );
+   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

2017-12-26 Thread Daniel Scheller
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 |= 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 &= ~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 &= ~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 &= ~0x04; /* embindvb = 0 */
-   write_reg(state, RSTV0910_P2_TSCFGL + state->regoff, tmp);
-
-   read_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, );
-   tmp &= ~0x80; /* syncbyte = 0 */
-   write_reg(state, RSTV0910_P2_TSINSDELH + state->regoff, tmp);
-
-   read_reg(state, RSTV0910_P2_TSINSDELM + state->regoff, );
-   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 &= ~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 & ~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;

[PATCH 2/4] [media] dvb-frontends/stv0910: cleanup I2C access functions

2017-12-26 Thread Daniel Scheller
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, , 1) != 1) {
dev_warn(>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(>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()

2017-12-26 Thread Daniel Scheller
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



Re: [PATCH 4/4] [media] dt/bindings: Add bindings for OV2685

2017-12-26 Thread Rob Herring
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 = <_24m_cam _rst>;

Not documented.

> +
> + clocks = < SCLK_TESTCLKOUT1>;
> + clock-names = "xvclk";
> +
> + avdd-supply = <_cam>;
> + dovdd-supply = <>;
> + reset-gpios = < 3 GPIO_ACTIVE_LOW>;
> +
> + port {
> + ucam_out: endpoint {
> + remote-endpoint = <_in_ucam>;
> + data-lanes = <1>;
> + };
> + };
> + };
> -- 
> 1.9.1
> 


Re: [PATCH 2/4] [media] dt/bindings: Add bindings for OV5695

2017-12-26 Thread Rob Herring
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:
> + {

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 = <_24m_cam _rst>;
> +
> + clocks = < SCLK_TESTCLKOUT1>;
> + clock-names = "xvclk";
> +
> + avdd-supply = <_cam>;
> + dvdd-supply = <_cam>;
> + dovdd-supply = <>;
> +
> + reset-gpios = < 5 GPIO_ACTIVE_LOW>;
> +
> + port {
> + wcam_out: endpoint {
> + remote-endpoint = <_in_wcam>;
> + data-lanes = <1 2>;
> + };
> + };
> +};
> -- 
> 1.9.1
> 


RE: [PATCH v4 00/12] Intel IPU3 ImgU patchset

2017-12-26 Thread Mani, Rajmohan
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 v4 1/2] dt-bindings: media: Add Allwinner V3s Camera Sensor Interface (CSI)

2017-12-26 Thread Rob Herring
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 = < CLK_BUS_CSI>,
> +  < CLK_CSI1_SCLK>,
> +  < CLK_DRAM_CSI>;
> + clock-names = "bus", "mod", "ram";
> + resets = < 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 = <_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: [linux-sunxi] [PATCH v4 1/2] dt-bindings: media: Add Allwinner V3s Camera Sensor Interface (CSI)

2017-12-26 Thread Rob Herring
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


[PATCH v2] vsp1: fix video output on R8A77970

2017-12-26 Thread Sergei Shtylyov
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
  */



Philips Tiger TDA10046H/SAA7131e/TDA8290+75a corruption due to bad card loaded

2017-12-26 Thread Xen

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)...


Re: [PATCH v5 3/6] media: dt-bindings: Add bindings for TDA1997X

2017-12-26 Thread Rob Herring
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 


Pctv60e

2017-12-26 Thread Fulvio Nigrisoli
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] vsp1: fix video output on R8A77970

2017-12-26 Thread Sergei Shtylyov

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



[PATCH] dtv-scan-tables: update all Finnish Digita DVB-T2 transponders

2017-12-26 Thread Olli Salonen
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 =