cron job: media_tree daily build: OK

2016-06-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:   Mon Jun 27 04:00:31 CEST 2016
git branch: test
git hash:   59f0bc11848f8f3242bc1fefae670e745929cd7b
gcc version:i686-linux-gcc (GCC) 5.3.0
sparse version: v0.5.0-56-g7647c77
smatch version: v0.5.0-3428-gdfe27cf
host hardware:  x86_64
host os:4.6.0-164

linux-git-arm-at91: OK
linux-git-arm-davinci: OK
linux-git-arm-exynos: OK
linux-git-arm-mtk: OK
linux-git-arm-mx: OK
linux-git-arm-omap: 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.36.4-i686: OK
linux-2.6.37.6-i686: OK
linux-2.6.38.8-i686: OK
linux-2.6.39.4-i686: OK
linux-3.0.60-i686: OK
linux-3.1.10-i686: OK
linux-3.2.37-i686: OK
linux-3.3.8-i686: OK
linux-3.4.27-i686: OK
linux-3.5.7-i686: OK
linux-3.6.11-i686: OK
linux-3.7.4-i686: OK
linux-3.8-i686: OK
linux-3.9.2-i686: OK
linux-3.10.1-i686: OK
linux-3.11.1-i686: OK
linux-3.12.23-i686: OK
linux-3.13.11-i686: OK
linux-3.14.9-i686: OK
linux-3.15.2-i686: OK
linux-3.16.7-i686: OK
linux-3.17.8-i686: OK
linux-3.18.7-i686: OK
linux-3.19-i686: OK
linux-4.0-i686: OK
linux-4.1.1-i686: OK
linux-4.2-i686: OK
linux-4.3-i686: OK
linux-4.4-i686: OK
linux-4.5-i686: OK
linux-4.6-i686: OK
linux-4.7-rc1-i686: OK
linux-2.6.36.4-x86_64: OK
linux-2.6.37.6-x86_64: OK
linux-2.6.38.8-x86_64: OK
linux-2.6.39.4-x86_64: OK
linux-3.0.60-x86_64: OK
linux-3.1.10-x86_64: OK
linux-3.2.37-x86_64: OK
linux-3.3.8-x86_64: OK
linux-3.4.27-x86_64: OK
linux-3.5.7-x86_64: OK
linux-3.6.11-x86_64: OK
linux-3.7.4-x86_64: OK
linux-3.8-x86_64: OK
linux-3.9.2-x86_64: OK
linux-3.10.1-x86_64: OK
linux-3.11.1-x86_64: OK
linux-3.12.23-x86_64: OK
linux-3.13.11-x86_64: OK
linux-3.14.9-x86_64: OK
linux-3.15.2-x86_64: OK
linux-3.16.7-x86_64: OK
linux-3.17.8-x86_64: OK
linux-3.18.7-x86_64: OK
linux-3.19-x86_64: OK
linux-4.0-x86_64: OK
linux-4.1.1-x86_64: OK
linux-4.2-x86_64: OK
linux-4.3-x86_64: OK
linux-4.4-x86_64: OK
linux-4.5-x86_64: OK
linux-4.6-x86_64: OK
linux-4.7-rc1-x86_64: OK
apps: OK
spec-git: OK
sparse: WARNINGS
smatch: WARNINGS

Detailed results are available here:

http://www.xs4all.nl/~hverkuil/logs/Monday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Monday.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


Re: [PATCH 13/19] dib0090: comment out the unused tables

2016-06-26 Thread Patrick Boettcher
Hi Mauro,

On Fri, 24 Jun 2016 12:31:54 -0300
Mauro Carvalho Chehab  wrote:

> Those tables are currently unused, so comment them out:

We actually could remove these tables. It is very, very unlikely that
this device will ever be used for S-Band in the future.
Extremely unlikely.

best regards,
-- 
Patrick.
--
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 v2 1/2] media: rc: meson-ir: fix enabling raw/soft-decoding mode

2016-06-26 Thread Martin Blumenstingl
According to the datasheet of Meson8b (S805) and GXBB (S905) the
decoding mode is configured in AO_MF_IR_DEC_REG2 (offset 0x20) using
bits 0-3.
The "duration" field may not be set correctly when any of the hardware
decoding modes. This can happen while a "default" decoding mode
(either set by the bootloader or the chip's default, which uses NEC as
it's default) is used.
While here, I also added defines for the protocols which can be decoded
by the hardware (more work is needed to be actually able to use them
though).

Signed-off-by: Martin Blumenstingl 
---
changes in v1 -> v2:
- fixed subject of the patch to include meson-ir
- fixed double-shifting of the decoder mode values

 drivers/media/rc/meson-ir.c | 24 ++--
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/media/rc/meson-ir.c b/drivers/media/rc/meson-ir.c
index fcc3b82..622a4160 100644
--- a/drivers/media/rc/meson-ir.c
+++ b/drivers/media/rc/meson-ir.c
@@ -32,13 +32,10 @@
 #define IR_DEC_FRAME   0x14
 #define IR_DEC_STATUS  0x18
 #define IR_DEC_REG10x1c
+#define IR_DEC_REG20x20
 
 #define REG0_RATE_MASK (BIT(11) - 1)
 
-#define REG1_MODE_MASK (BIT(7) | BIT(8))
-#define REG1_MODE_NEC  (0 << 7)
-#define REG1_MODE_GENERAL  (2 << 7)
-
 #define REG1_TIME_IV_SHIFT 16
 #define REG1_TIME_IV_MASK  ((BIT(13) - 1) << REG1_TIME_IV_SHIFT)
 
@@ -51,6 +48,20 @@
 #define REG1_RESET BIT(0)
 #define REG1_ENABLEBIT(15)
 
+#define REG2_DEC_MODE_SHIFT0
+#define REG2_DEC_MODE_MASK GENMASK(3, REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_NEC  0x0
+#define REG2_DEC_MODE_RAW  0x2
+#define REG2_DEC_MODE_THOMSON  0x4
+#define REG2_DEC_MODE_TOSHIBA  0x5
+#define REG2_DEC_MODE_SONY 0x6
+#define REG2_DEC_MODE_RC5  0x7
+#define REG2_DEC_MODE_RC6  0x9
+#define REG2_DEC_MODE_RCMM 0xa
+#define REG2_DEC_MODE_DUOKAN   0xb
+#define REG2_DEC_MODE_COMCAST  0xe
+#define REG2_DEC_MODE_SANYO0xf
+
 #define STATUS_IR_DEC_IN   BIT(8)
 
 #define MESON_TRATE10  /* us */
@@ -158,8 +169,9 @@ static int meson_ir_probe(struct platform_device *pdev)
/* Reset the decoder */
meson_ir_set_mask(ir, IR_DEC_REG1, REG1_RESET, REG1_RESET);
meson_ir_set_mask(ir, IR_DEC_REG1, REG1_RESET, 0);
-   /* Set general operation mode */
-   meson_ir_set_mask(ir, IR_DEC_REG1, REG1_MODE_MASK, REG1_MODE_GENERAL);
+   /* Enable raw/soft-decode mode */
+   meson_ir_set_mask(ir, IR_DEC_REG2, REG2_DEC_MODE_MASK,
+ REG2_DEC_MODE_RAW << REG2_DEC_MODE_SHIFT);
/* Set rate */
meson_ir_set_mask(ir, IR_DEC_REG0, REG0_RATE_MASK, MESON_TRATE - 1);
/* IRQ on rising and falling edges */
-- 
2.9.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 v2 2/2] ARM: dts: meson: fixed size of the meson-ir registers

2016-06-26 Thread Martin Blumenstingl
According to the reference driver (and the datasheet of the newer
Meson8b/S805 and GXBB/S905 SoCs) there are 14 registers, each 32 bit
wide.
Adjust the register size to reflect that, as register offset 0x20 is
now also needed by the meson-ir driver.

Signed-off-by: Martin Blumenstingl 
---
changes in v1 -> v2:
- new patch, this is needed because we are now trying to read/write
  offset 0x20 which is beyond the space which was reserved previously
  

 arch/arm/boot/dts/meson.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi
index 8c77c87..0f5722a 100644
--- a/arch/arm/boot/dts/meson.dtsi
+++ b/arch/arm/boot/dts/meson.dtsi
@@ -147,7 +147,7 @@
 
ir_receiver: ir-receiver@c8100480 {
compatible= "amlogic,meson6-ir";
-   reg = <0xc8100480 0x20>;
+   reg = <0xc8100480 0x34>;
interrupts = <0 15 1>;
status = "disabled";
};
-- 
2.9.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


[v2] media: rc: fix Meson IR decoder

2016-06-26 Thread Martin Blumenstingl
The meson-ir driver uses the wrong offset (at least according to
Amlogic's reference driver as well as the datasheets of the
Meson8b/S805 and GXBB/S905).
This means that we are getting incorrect durations (REG1_TIME_IV)
reported from the hardware.

This problem was also noticed by some people trying to use this on an
ODROID-C1 and ODROID-C2 - the workaround there (probably because the
datasheets were not publicy available yet at that time) was to switch
to ir_raw_event_store_edge (which leaves it up to the kernel to measure
the duration of a pulse). See [0] and [1] for the corresponding
patches.

Please note that I was only able to test this on an GXBB/S905 based
device (due to lack of other hardware).


[0] 
https://github.com/erdoukki/linux-amlogic-1/commit/969b2e2242fb14a13cb651f9a1cf771b599c958b
[1] http://forum.odroid.com/viewtopic.php?f=135=20504

--
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] media: rc: use the correct register offset and bits to enable raw mode

2016-06-26 Thread Martin Blumenstingl
According to the datasheet of Meson8b (S805) and GXBB (S905) the
decoding mode is configured in AO_MF_IR_DEC_REG2 (offset 0x20) using
bits 0-3.
The "duration" field may not be set correctly when any of the hardware
decoding modes. This can happen while a "default" decoding mode
(either set by the bootloader or the chip's default, which uses NEC as
it's default) is used.
While here, I also added defines for the protocols which can be decoded
by the hardware (more work is needed to be actually able to use them
though).

Signed-off-by: Martin Blumenstingl 
---
 drivers/media/rc/meson-ir.c | 24 ++--
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/media/rc/meson-ir.c b/drivers/media/rc/meson-ir.c
index fcc3b82..662d065 100644
--- a/drivers/media/rc/meson-ir.c
+++ b/drivers/media/rc/meson-ir.c
@@ -32,13 +32,10 @@
 #define IR_DEC_FRAME   0x14
 #define IR_DEC_STATUS  0x18
 #define IR_DEC_REG10x1c
+#define IR_DEC_REG20x20
 
 #define REG0_RATE_MASK (BIT(11) - 1)
 
-#define REG1_MODE_MASK (BIT(7) | BIT(8))
-#define REG1_MODE_NEC  (0 << 7)
-#define REG1_MODE_GENERAL  (2 << 7)
-
 #define REG1_TIME_IV_SHIFT 16
 #define REG1_TIME_IV_MASK  ((BIT(13) - 1) << REG1_TIME_IV_SHIFT)
 
@@ -51,6 +48,20 @@
 #define REG1_RESET BIT(0)
 #define REG1_ENABLEBIT(15)
 
+#define REG2_DEC_MODE_SHIFT0
+#define REG2_DEC_MODE_MASK GENMASK(3, REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_NEC  (0x0 << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_RAW  (0x2 << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_THOMSON  (0x4 << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_TOSHIBA  (0x5 << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_SONY (0x6 << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_RC5  (0x7 << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_RC6  (0x9 << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_RCMM (0xa << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_DUOKAN   (0xb << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_COMCAST  (0xe << REG2_DEC_MODE_SHIFT)
+#define REG2_DEC_MODE_SANYO(0xf << REG2_DEC_MODE_SHIFT)
+
 #define STATUS_IR_DEC_IN   BIT(8)
 
 #define MESON_TRATE10  /* us */
@@ -158,8 +169,9 @@ static int meson_ir_probe(struct platform_device *pdev)
/* Reset the decoder */
meson_ir_set_mask(ir, IR_DEC_REG1, REG1_RESET, REG1_RESET);
meson_ir_set_mask(ir, IR_DEC_REG1, REG1_RESET, 0);
-   /* Set general operation mode */
-   meson_ir_set_mask(ir, IR_DEC_REG1, REG1_MODE_MASK, REG1_MODE_GENERAL);
+   /* Enable raw/soft-decode mode */
+   meson_ir_set_mask(ir, IR_DEC_REG2, REG2_DEC_MODE_MASK,
+ REG2_DEC_MODE_RAW << REG2_DEC_MODE_SHIFT);
/* Set rate */
meson_ir_set_mask(ir, IR_DEC_REG0, REG0_RATE_MASK, MESON_TRATE - 1);
/* IRQ on rising and falling edges */
-- 
2.9.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


media: rc: fix Meson IR decoder

2016-06-26 Thread Martin Blumenstingl
The meson-ir driver uses the wrong offset (at least according to
Amlogic's reference driver as well as the datasheets of the
Meson8b/S805 and GXBB/S905).
This means that we are getting incorrect durations (REG1_TIME_IV)
reported from the hardware.

This problem was also noticed by some people trying to use this on an
ODROID-C1 and ODROID-C2 - the workaround there (probably because the
datasheets were not publicy available yet at that time) was to switch
to ir_raw_event_store_edge (which leaves it up to the kernel to measure
the duration of a pulse). See [0] and [1] for the corresponding
patches.

Please note that I was only able to test this on an GXBB/S905 based
device (due to lack of other hardware).


[0] 
https://github.com/erdoukki/linux-amlogic-1/commit/969b2e2242fb14a13cb651f9a1cf771b599c958b
[1] http://forum.odroid.com/viewtopic.php?f=135=20504

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: media_build & cx23885

2016-06-26 Thread Torbjorn Jansson

On 2016-06-26 17:07, Hans Verkuil wrote:

On 06/26/2016 04:29 PM, Torbjorn Jansson wrote:

Hello

if i use media_build and modprobe cx23885 i get:
# modprobe cx23885
modprobe: ERROR: could not insert 'cx23885': Exec format error

and on dmesg i get:
frame_vector: exports duplicate symbol frame_vector_create (owned by kernel)


The frame_vector.ko module was incorrectly installed in /lib/modules/`uname -r`
(probably in the kernel/mm directory). Your kernel already has that module
compiled in, so that's the reason for the duplicate symbol.

Remove that module and run 'depmod -a' and it should work again.

I've seen this before, but I don't know why media_build compiles and installs it
for a kernel that doesn't need it.



thanks, that helped.
i removed frame_vector.ko and that solved the problem.

is it possible that the media_build scripts always make the module but 
only installs frame_vector.ko based on some conditions?

if so, it might be my own fault.

because i test different media build versions i want an easy way to 
remove just the modules produced by media build so i tend to first build 
it normally but instead of make install i copy over the modules manually.
copying all *.ko modules under media_build/v4l to /lib/modules/`uname 
-r`/updates/media and then run depmod.


this way i can just revert by deleting the entire updates/media folder 
and wont have to go thru loads of different folders and hunt for the 
relevant .ko files.


anyway, wish i had asked you earlier back in february/march when i first 
ran into this frame_vector problem.
now i can hopefully continue my troubleshooting, i suspect i need to fix 
some application problems too since it looks like this driver (compared 
to the old from dvbsky) don't support the old dvb api for getting signal 
strength causing application issues since the program is not yet updated 
fully to new dvb api.



--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: media_build & cx23885

2016-06-26 Thread Hans Verkuil
On 06/26/2016 04:29 PM, Torbjorn Jansson wrote:
> Hello
> 
> if i use media_build and modprobe cx23885 i get:
> # modprobe cx23885
> modprobe: ERROR: could not insert 'cx23885': Exec format error
> 
> and on dmesg i get:
> frame_vector: exports duplicate symbol frame_vector_create (owned by kernel)

The frame_vector.ko module was incorrectly installed in /lib/modules/`uname -r`
(probably in the kernel/mm directory). Your kernel already has that module
compiled in, so that's the reason for the duplicate symbol.

Remove that module and run 'depmod -a' and it should work again.

I've seen this before, but I don't know why media_build compiles and installs it
for a kernel that doesn't need it.

Regards,

Hans

> 
> any idea whats causing this?
> this prevents one of my cards from working with media_build
> --
> 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


media_build & cx23885

2016-06-26 Thread Torbjorn Jansson

Hello

if i use media_build and modprobe cx23885 i get:
# modprobe cx23885
modprobe: ERROR: could not insert 'cx23885': Exec format error

and on dmesg i get:
frame_vector: exports duplicate symbol frame_vector_create (owned by kernel)

any idea whats causing this?
this prevents one of my cards from working with media_build
--
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] rc-main: fix kernel oops after unloading keymap module

2016-06-26 Thread Hans Verkuil
When the rc_map table is created the char pointer of the name of the keymap
is copied to the rc_map->name field. However, this pointer points to memory
from the keymap module itself.

Since these keymap modules are not refcounted, that means anyone can call
rmmod to unload that module. Which is not a big deal because the contents of
the map is all copied to rc_map, except for the keymap name.

So after a keymap module is unloaded the name pointer has become stale. 
Unloading
the rc-core module will now cause a kernel oops in rc_dev_uevent().

The solution is to kstrdup the name so there are no more references to the
keymap module remaining.

Signed-off-by: Hans Verkuil 
---
This fix should probably be backported to older kernels as well.

A general note: keymap loading has a big race condition: there is no protection
against unloading the keymap module between the call to seek_rc_map and the map
being copied. seek_rc_map should copy the map when it is found and while the
lock is still held. Or, alternatively, the keymap module's usecount should be
increased when its keymap is in use.
---
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index 7dfc7c2..601ca23 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -130,13 +130,18 @@ static struct rc_map_list empty_map = {
 static int ir_create_table(struct rc_map *rc_map,
   const char *name, u64 rc_type, size_t size)
 {
-   rc_map->name = name;
+   rc_map->name = kstrdup(name, GFP_KERNEL);
+   if (!rc_map->name)
+   return -ENOMEM;
rc_map->rc_type = rc_type;
rc_map->alloc = roundup_pow_of_two(size * sizeof(struct rc_map_table));
rc_map->size = rc_map->alloc / sizeof(struct rc_map_table);
rc_map->scan = kmalloc(rc_map->alloc, GFP_KERNEL);
-   if (!rc_map->scan)
+   if (!rc_map->scan) {
+   kfree(rc_map->name);
+   rc_map->name = NULL;
return -ENOMEM;
+   }

IR_dprintk(1, "Allocated space for %u keycode entries (%u bytes)\n",
   rc_map->size, rc_map->alloc);
@@ -153,6 +158,7 @@ static int ir_create_table(struct rc_map *rc_map,
 static void ir_free_table(struct rc_map *rc_map)
 {
rc_map->size = 0;
+   kfree(rc_map->name);
kfree(rc_map->scan);
rc_map->scan = NULL;
 }
--
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


Job Vacancy!!! Escrow Officer Needed..‏

2016-06-26 Thread Angang Steel Co. ltd



--
Job title: Escrow Officer #216

An-gang Steel Company Limited
China Anshan Iron and Steel Co. Ltd.
www.ansteel.com.cn

It is my pleasure to announce to you the vacancy for the post of an 
Escrow Online Officer for An-gang Steel Company Limited China. if you 
are interested, please reply for more information's concerning the job 
position and how to apply.


Secretary.

Lucy Yang,
An-gang Steel Company Limited.
--
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