Re: media: platform: s5p-jpeg: jpeg-hw-exynos4: Remove some unused functions

2015-01-04 Thread Pankaj Dubey

+Tony Nadackal

Hi Rickard,

On Saturday 03 January 2015 02:07 AM, Rickard Strandqvist wrote:

Removes some functions that are not used anywhere:
exynos4_jpeg_set_timer_count() exynos4_jpeg_get_frame_size() 
exynos4_jpeg_set_sys_int_enable() exynos4_jpeg_get_fifo_status()

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist rickard_strandqv...@spectrumdigital.se

---
drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c |   35 -
  drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.h |5 ---
  2 files changed, 40 deletions(-)

diff --git a/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c 
b/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c
index ab6d6f4..5685577 100644
--- a/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c
+++ b/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c
@@ -163,15 +163,6 @@ unsigned int exynos4_jpeg_get_int_status(void __iomem 
*base)
return int_status;
  }

-unsigned int exynos4_jpeg_get_fifo_status(void __iomem *base)
-{
-   unsigned int fifo_status;
-
-   fifo_status = readl(base + EXYNOS4_FIFO_STATUS_REG);
-
-   return fifo_status;
-}
-
  void exynos4_jpeg_set_huf_table_enable(void __iomem *base, int value)
  {
unsigned intreg;
@@ -186,18 +177,6 @@ void exynos4_jpeg_set_huf_table_enable(void __iomem *base, 
int value)
base + EXYNOS4_JPEG_CNTL_REG);
  }

-void exynos4_jpeg_set_sys_int_enable(void __iomem *base, int value)
-{
-   unsigned intreg;
-
-   reg = readl(base + EXYNOS4_JPEG_CNTL_REG)  ~(EXYNOS4_SYS_INT_EN);
-
-   if (value == 1)
-   writel(reg | EXYNOS4_SYS_INT_EN, base + EXYNOS4_JPEG_CNTL_REG);
-   else
-   writel(reg  ~EXYNOS4_SYS_INT_EN, base + EXYNOS4_JPEG_CNTL_REG);
-}
-


Above function will be needed for enabling JPEG support on Exynos7 SoC. 
There is already inflight patch [1] which will be using it.


1: https://patchwork.kernel.org/patch/5505391/


Thanks,
Pankaj Dubey
--
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 v2 2/2] V4L2: add CCF support to the v4l2_clk API

2015-01-04 Thread Laurent Pinchart
Hi Guennadi,

Thank you for the patch.

On Friday 02 January 2015 21:18:41 Guennadi Liakhovetski wrote:
 From aeaee56e04d023f3a019d2595ef5128015acdb06 Mon Sep 17 00:00:00 2001
 From: Guennadi Liakhovetski g.liakhovet...@gmx.de
 Date: Fri, 2 Jan 2015 12:26:41 +0100
 Subject: [PATCH 2/2] V4L2: add CCF support to the v4l2_clk API
 
 V4L2 clocks, e.g. used by camera sensors for their master clock, do not
 have to be supplied by a different V4L2 driver, they can also be
 supplied by an independent source. In this case the standart kernel
 clock API should be used to handle such clocks. This patch adds support
 for such cases.
 
 Signed-off-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
 ---
 
 Hi Laurent,
 Thanks for the comment. The idea of allocating a new object for each get
 operation seems a bit weird to me, and completely trusting the user is a
 bit scary... :) But yes, it can work this way too, I think, and the user
 can screw either way too, anyway.

The user needs to get it right for when we'll replace v4l2_clk_get() with 
clk_get(), so I'd rather force it to get it right now.

 So, here comes a v2. Something like this?
 
 v2: don't add CCF-related clocks on the global list, just allocate a new
 instance on each v4l2_clk_get()
 
  drivers/media/v4l2-core/v4l2-clk.c | 45 +++---
  include/media/v4l2-clk.h   |  2 ++
  2 files changed, 44 insertions(+), 3 deletions(-)
 
 diff --git a/drivers/media/v4l2-core/v4l2-clk.c
 b/drivers/media/v4l2-core/v4l2-clk.c index c210906..f5d1688 100644
 --- a/drivers/media/v4l2-core/v4l2-clk.c
 +++ b/drivers/media/v4l2-core/v4l2-clk.c
 @@ -9,6 +9,7 @@
   */
 
  #include linux/atomic.h
 +#include linux/clk.h
  #include linux/device.h
  #include linux/errno.h
  #include linux/list.h
 @@ -42,6 +43,18 @@ static struct v4l2_clk *v4l2_clk_find(const char *dev_id,
 const char *id) struct v4l2_clk *v4l2_clk_get(struct device *dev, const
 char *id) {
   struct v4l2_clk *clk;
 + struct clk *ccf_clk = clk_get(dev, id);
 +
 + if (!IS_ERR(ccf_clk)) {
 + clk = kzalloc(sizeof(struct v4l2_clk), GFP_KERNEL);
 + if (!clk) {
 + clk_put(ccf_clk);
 + return ERR_PTR(-ENOMEM);
 + }
 + clk-clk = ccf_clk;
 +
 + return clk;
 + }

If clk_get() returns -EPROBE_DEFER I think you should return the error code to 
the user instead of falling back to the v4l2 clocks.

   mutex_lock(clk_lock);
   clk = v4l2_clk_find(dev_name(dev), id);
 @@ -61,6 +74,12 @@ void v4l2_clk_put(struct v4l2_clk *clk)
   if (IS_ERR(clk))
   return;
 
 + if (clk-clk) {
 + clk_put(clk-clk);
 + kfree(clk);
 + return;
 + }
 +
   mutex_lock(clk_lock);
 
   list_for_each_entry(tmp, clk_list, list)
 @@ -98,8 +117,12 @@ static void v4l2_clk_unlock_driver(struct v4l2_clk *clk)
 
  int v4l2_clk_enable(struct v4l2_clk *clk)
  {
 - int ret = v4l2_clk_lock_driver(clk);
 + int ret;
 
 + if (clk-clk)
 + return clk_enable(clk-clk);

Shouldn't you use clk_prepare_enable() ? CCF requires a prepare call before 
enabling the clock.

 +
 + ret = v4l2_clk_lock_driver(clk);
   if (ret  0)
   return ret;
 
 @@ -125,6 +148,9 @@ void v4l2_clk_disable(struct v4l2_clk *clk)
  {
   int enable;
 
 + if (clk-clk)
 + return clk_disable(clk-clk);

Likewise, clk_disable_unprepare() ?

 +
   mutex_lock(clk-lock);
 
   enable = --clk-enable;
 @@ -142,8 +168,12 @@ EXPORT_SYMBOL(v4l2_clk_disable);
 
  unsigned long v4l2_clk_get_rate(struct v4l2_clk *clk)
  {
 - int ret = v4l2_clk_lock_driver(clk);
 + int ret;
 +
 + if (clk-clk)
 + return clk_get_rate(clk-clk);
 
 + ret = v4l2_clk_lock_driver(clk);
   if (ret  0)
   return ret;
 
 @@ -162,7 +192,16 @@ EXPORT_SYMBOL(v4l2_clk_get_rate);
 
  int v4l2_clk_set_rate(struct v4l2_clk *clk, unsigned long rate)
  {
 - int ret = v4l2_clk_lock_driver(clk);
 + int ret;
 +
 + if (clk-clk) {
 + long r = clk_round_rate(clk-clk, rate);
 + if (r  0)
 + return r;
 + return clk_set_rate(clk-clk, r);
 + }
 +
 + ret = v4l2_clk_lock_driver(clk);
 
   if (ret  0)
   return ret;
 diff --git a/include/media/v4l2-clk.h b/include/media/v4l2-clk.h
 index 8f06967..4402b2d 100644
 --- a/include/media/v4l2-clk.h
 +++ b/include/media/v4l2-clk.h
 @@ -22,6 +22,7 @@
  struct module;
  struct device;
 
 +struct clk;
  struct v4l2_clk {
   struct list_head list;
   const struct v4l2_clk_ops *ops;
 @@ -30,6 +31,7 @@ struct v4l2_clk {
   int enable;
   struct mutex lock; /* Protect the enable count */
   atomic_t use_count;
 + struct clk *clk;
   void *priv;
  };

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to 

TeVii S482 driver installation

2015-01-04 Thread Josu Lazkano
Hello,

I am trying to install the drivers for the TeVii S482 device, I am
using official drivers:

cd /usr/src/
wget http://www.tevii.com/Tevii_Product_20140428_media_build_b6.tar.bz2.rar
bzip2 -dc Tevii_Product_20140428_media_build_b6.tar.bz2.rar | tar -xv
cd b6/media_build/

When execute make, I get this:

# make
make -C /usr/src/b6/media_build/v4l
make[1]: Entering directory '/usr/src/b6/media_build/v4l'

... [complete output: http://paste.debian.net/139122/ ]

/usr/src/linux-headers-3.16.0-4-common/scripts/Makefile.build:262:
recipe for target '/usr/src/b6/media_build/v4l/altera-lpt.o' failed
make[5]: *** [/usr/src/b6/media_build/v4l/altera-lpt.o] Error 1
/usr/src/linux-headers-3.16.0-4-common/Makefile:1350: recipe for
target '_module_/usr/src/b6/media_build/v4l' failed
make[4]: *** [_module_/usr/src/b6/media_build/v4l] Error 2
Makefile:181: recipe for target 'sub-make' failed
make[3]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
Makefile:51: recipe for target 'default' failed
make[1]: *** [default] Error 2
make[1]: Leaving directory '/usr/src/b6/media_build/v4l'
Makefile:26: recipe for target 'all' failed
make: *** [all] Error 2

I am in Debian Jessie with 3.16.0-4-amd64 kernel.

I need to install or configure some software? Anyone with this device?

Thanks and regards.

-- 
Josu Lazkano
--
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 2/3] When building for avr32, the build fails as follows.

2015-01-04 Thread Romain Naour
From: Simon Dawson spdaw...@gmail.com

  cc1: error: unrecognized command line option -Wno-packed-bitfield-compat

An example of an autobuild failure arising from this is the following.

  
http://autobuild.buildroot.net/results/92e/92e472004812a3616f62d766a9ea07a997a66e89/

Clearly, not all toolchains provide a gcc that understands
the -Wno-packed-bitfield-compat flag; remove usage of this flag.

Signed-off-by: Simon Dawson spdaw...@gmail.com
---
 util/scan/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util/scan/Makefile b/util/scan/Makefile
index d48c478..88667c5 100644
--- a/util/scan/Makefile
+++ b/util/scan/Makefile
@@ -14,7 +14,7 @@ inst_bin = $(binaries)
 
 removing = atsc_psip_section.c atsc_psip_section.h
 
-CPPFLAGS += -Wno-packed-bitfield-compat -D__KERNEL_STRICT_NAMES
+CPPFLAGS += -D__KERNEL_STRICT_NAMES
 
 .PHONY: all
 
-- 
1.9.3

--
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 0/3] dvb-apps: Buildroot patches

2015-01-04 Thread Romain Naour
This series contains several patches for dvb-apps to fixes
some cross-compilation/toolchain issues and add the ability
to disable static/shared libraries.

Arnout Vandecappelle (Essensium/Mind) (1):
  Fix generate-keynames.sh script for cross-compilation

Romain Naour (1):
  Make.rules: Handle static/shared only build

Simon Dawson (1):
  When building for avr32, the build fails as follows.

 Make.rules| 8 +++-
 util/av7110_loadkeys/generate-keynames.sh | 4 ++--
 util/scan/Makefile| 2 +-
 3 files changed, 10 insertions(+), 4 deletions(-)

-- 
1.9.3

--
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 3/3] Make.rules: Handle static/shared only build

2015-01-04 Thread Romain Naour
Do not build .a library when disable_static is set
Do not build .so library when disable_shared is set

Signed-off-by: Romain Naour romain.na...@openwide.fr
---
 Make.rules | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Make.rules b/Make.rules
index 3410d7b..4add272 100644
--- a/Make.rules
+++ b/Make.rules
@@ -9,7 +9,13 @@ ifneq ($(lib_name),)
 CFLAGS_LIB ?= -fPIC
 CFLAGS += $(CFLAGS_LIB)
 
-libraries = $(lib_name).so $(lib_name).a
+ifeq ($(disable_static),)
+libraries = $(lib_name).a
+endif
+
+ifeq ($(disable_shared),)
+libraries += $(lib_name).so
+endif
 
 .PHONY: library
 
-- 
1.9.3

--
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 1/3] Fix generate-keynames.sh script for cross-compilation

2015-01-04 Thread Romain Naour
From: Arnout Vandecappelle (Essensium/Mind) arn...@mind.be

generate-keynames.sh reads /usr/include/linux to find the keyname
symbols. However, when cross-compiling, the include path points
somewhere else. Allow the user to pass CROSS_ROOT to point to the
root of the cross-compilation environment.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) arn...@mind.be
---
 util/av7110_loadkeys/generate-keynames.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/util/av7110_loadkeys/generate-keynames.sh 
b/util/av7110_loadkeys/generate-keynames.sh
index 49d2b71..cb8f5c5 100644
--- a/util/av7110_loadkeys/generate-keynames.sh
+++ b/util/av7110_loadkeys/generate-keynames.sh
@@ -18,7 +18,7 @@ echo };  $1
 echo  $1
 echo  $1
 echo static struct input_key_name key_name [] = {  $1
-for x in $(cat /usr/include/linux/input.h input_fake.h | \
+for x in $(cat ${CROSS_ROOT}/usr/include/linux/input.h input_fake.h | \
egrep #define[ \t]+KEY_ | grep -v KEY_MAX | \
cut -f 1 | cut -f 2 -d   | sort -u) ; do
 echo { \$(echo $x | cut -b 5-)\, $x },  $1
@@ -26,7 +26,7 @@ done
 echo };  $1
 echo  $1
 echo static struct input_key_name btn_name [] = {  $1
-for x in $(cat /usr/include/linux/input.h input_fake.h | \
+for x in $(cat ${CROSS_ROOT}/usr/include/linux/input.h input_fake.h | \
egrep #define[ \t]+BTN_ | \
cut -f 1 | cut -f 2 -d   | sort -u) ; do
  echo { \$(echo $x | cut -b 5-)\, $x },  $1
-- 
1.9.3

--
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: s5p-jpeg: Remove some unused functions

2015-01-04 Thread Rickard Strandqvist
Removes some functions that are not used anywhere:
s5p_jpeg_input_raw_y16() s5p_jpeg_timer_disable() s5p_jpeg_timer_enable()

This was partially found by using a static code analysis program called 
cppcheck.

Signed-off-by: Rickard Strandqvist rickard_strandqv...@spectrumdigital.se
---
 drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c |   32 -
 drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.h |3 ---
 2 files changed, 35 deletions(-)

diff --git a/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c 
b/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c
index e3b8e67..b5f20e7 100644
--- a/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c
+++ b/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c
@@ -51,18 +51,6 @@ void s5p_jpeg_input_raw_mode(void __iomem *regs, unsigned 
long mode)
writel(reg, regs + S5P_JPGCMOD);
 }
 
-void s5p_jpeg_input_raw_y16(void __iomem *regs, bool y16)
-{
-   unsigned long reg;
-
-   reg = readl(regs + S5P_JPGCMOD);
-   if (y16)
-   reg |= S5P_MODE_Y16;
-   else
-   reg = ~S5P_MODE_Y16_MASK;
-   writel(reg, regs + S5P_JPGCMOD);
-}
-
 void s5p_jpeg_proc_mode(void __iomem *regs, unsigned long mode)
 {
unsigned long reg, m;
@@ -208,26 +196,6 @@ void s5p_jpeg_final_mcu_num_int_enable(void __iomem *regs, 
bool enbl)
writel(reg, regs + S5P_JPGINTSE);
 }
 
-void s5p_jpeg_timer_enable(void __iomem *regs, unsigned long val)
-{
-   unsigned long reg;
-
-   reg = readl(regs + S5P_JPG_TIMER_SE);
-   reg |= S5P_TIMER_INT_EN;
-   reg = ~S5P_TIMER_INIT_MASK;
-   reg |= val  S5P_TIMER_INIT_MASK;
-   writel(reg, regs + S5P_JPG_TIMER_SE);
-}
-
-void s5p_jpeg_timer_disable(void __iomem *regs)
-{
-   unsigned long reg;
-
-   reg = readl(regs + S5P_JPG_TIMER_SE);
-   reg = ~S5P_TIMER_INT_EN_MASK;
-   writel(reg, regs + S5P_JPG_TIMER_SE);
-}
-
 int s5p_jpeg_timer_stat(void __iomem *regs)
 {
return (int)((readl(regs + S5P_JPG_TIMER_ST)  S5P_TIMER_INT_STAT_MASK)
diff --git a/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.h 
b/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.h
index c11ebe8..f208fa3 100644
--- a/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.h
+++ b/drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.h
@@ -29,7 +29,6 @@
 void s5p_jpeg_reset(void __iomem *regs);
 void s5p_jpeg_poweron(void __iomem *regs);
 void s5p_jpeg_input_raw_mode(void __iomem *regs, unsigned long mode);
-void s5p_jpeg_input_raw_y16(void __iomem *regs, bool y16);
 void s5p_jpeg_proc_mode(void __iomem *regs, unsigned long mode);
 void s5p_jpeg_subsampling_mode(void __iomem *regs, unsigned int mode);
 unsigned int s5p_jpeg_get_subsampling_mode(void __iomem *regs);
@@ -42,8 +41,6 @@ void s5p_jpeg_x(void __iomem *regs, unsigned int x);
 void s5p_jpeg_rst_int_enable(void __iomem *regs, bool enable);
 void s5p_jpeg_data_num_int_enable(void __iomem *regs, bool enable);
 void s5p_jpeg_final_mcu_num_int_enable(void __iomem *regs, bool enbl);
-void s5p_jpeg_timer_enable(void __iomem *regs, unsigned long val);
-void s5p_jpeg_timer_disable(void __iomem *regs);
 int s5p_jpeg_timer_stat(void __iomem *regs);
 void s5p_jpeg_clear_timer_stat(void __iomem *regs);
 void s5p_jpeg_enc_stream_int(void __iomem *regs, unsigned long size);
-- 
1.7.10.4

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


Re: [PATCH 1/1] gspca: Add high-speed modes for PS3 Eye camera

2015-01-04 Thread Antonio Ospite
On Mon, 29 Dec 2014 11:00:03 -0400
Joe Howse josephho...@nummist.com wrote:

 Add support in the PS3 Eye driver for QVGA capture at higher
 frame rates: 187, 150, and 137 FPS. This functionality is valuable
 because the PS3 Eye is popular for computer vision projects and no
 other camera in its price range supports such high frame rates.
 
 Correct a QVGA mode that was listed as 40 FPS. It is really 37 FPS
 (half of 75 FPS).
 
 Tests confirm that the nominal frame rates are achieved.
 
 Signed-off-by: Joe Howse josephho...@nummist.com

Tested-by: Antonio Ospite a...@ao2.it

Thanks Joe.

I noticed that qv4l2 displays max 60fps even though from the video I can
perceive the higher framerate, and same happens in guvcview.

gst-inspect-1.0 won't even let me set framerates higher than 75 so
I didn't test with GStreamer.

I know that the camera is also able to stream raw Bayer data which
requires less bandwidth than the default YUYV, although the driver does
not currently expose that; maybe some higher framerates can be achieved
also at VGA with Bayer output.

In case you wanted to explore that remember to set supported framerates
appropriately in ov772x_framerates for the 4 combinations of formats and
resolutions (i.e. Bayer outputs will support more framerates).

Ciao,
   Antonio

 ---
  drivers/media/usb/gspca/ov534.c | 10 --
  1 file changed, 8 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/media/usb/gspca/ov534.c b/drivers/media/usb/gspca/ov534.c
 index 90f0d63..a9c866d 100644
 --- a/drivers/media/usb/gspca/ov534.c
 +++ b/drivers/media/usb/gspca/ov534.c
 @@ -12,6 +12,8 @@
   * PS3 Eye camera enhanced by Richard Kaswy http://kaswy.free.fr
   * PS3 Eye camera - brightness, contrast, awb, agc, aec controls
   *  added by Max Thrun bear2...@gmail.com
 + * PS3 Eye camera - FPS range extended by Joseph Howse
 + *  josephho...@nummist.com http://nummist.com
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License as published by
 @@ -116,7 +118,7 @@ static const struct v4l2_pix_format ov767x_mode[] = {
   .colorspace = V4L2_COLORSPACE_JPEG},
  };
  
 -static const u8 qvga_rates[] = {125, 100, 75, 60, 50, 40, 30};
 +static const u8 qvga_rates[] = {187, 150, 137, 125, 100, 75, 60, 50, 37, 30};
  static const u8 vga_rates[] = {60, 50, 40, 30, 15};
  
  static const struct framerates ov772x_framerates[] = {
 @@ -769,12 +771,16 @@ static void set_frame_rate(struct gspca_dev *gspca_dev)
   {15, 0x03, 0x41, 0x04},
   };
   static const struct rate_s rate_1[] = { /* 320x240 */
 +/*   {205, 0x01, 0xc1, 0x02},  * 205 FPS: video is partly corrupt */
 + {187, 0x01, 0x81, 0x02}, /* 187 FPS or below: video is valid */
 + {150, 0x01, 0xc1, 0x04},
 + {137, 0x02, 0xc1, 0x02},
   {125, 0x02, 0x81, 0x02},
   {100, 0x02, 0xc1, 0x04},
   {75, 0x03, 0xc1, 0x04},
   {60, 0x04, 0xc1, 0x04},
   {50, 0x02, 0x41, 0x04},
 - {40, 0x03, 0x41, 0x04},
 + {37, 0x03, 0x41, 0x04},
   {30, 0x04, 0x41, 0x04},
   };
  
 -- 
 1.9.1
 
 --
 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


-- 
Antonio Ospite
http://ao2.it

A: Because it messes up the order in which people normally read text.
   See http://en.wikipedia.org/wiki/Posting_style
Q: Why is top-posting such a bad thing?
--
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


DVB-T regressions in recent kernels for el7

2015-01-04 Thread John Pilkington
Hi:  It's a long time since I posted to this list.  I'm a long-time user 
of MythTV, using DVB-T in the UK.


My current Mythbox is running myth-master under Scientific Linux 7, a 
near-clone of RHEL7, an x86_64 distro.  I know that long-lived distros 
like this are not a prime target for linux-media, but they have some 
attractions.


I'm currently running a recent but not current stock kernel; it works 
for me.  Later stock kernels don't see the Hauppauge pci DVB-T card and 
don't identify separately the two tuners in the Kworld usb device. I've 
also tried later kernels from elrepo, with similar lack of success.


So, I do have a working box, but updating kernels is broken.  I'd 
appreciate suggestions.


I have posted earlier on the MythTV and SL lists, without getting 
suggestions leading to a solution.


Thanks,

John Pilkington

-
This one works:

[john@HP_Box ~]$ uname -r
3.10.0-123.9.3.el7.x86_64
[john@HP_Box ~]$ dmesg | grep adapter
[   12.319211] DVB: registering new adapter (Kworld UB499-2T T09(IT9137))
[   12.939916] usb 2-2: DVB: registering adapter 0 frontend 0 (Kworld 
UB499-2T T09(IT9137)_1)...

[   12.941371] DVB: registering new adapter (Kworld UB499-2T T09(IT9137))
[   13.584187] usb 2-2: DVB: registering adapter 1 frontend 0 (Kworld 
UB499-2T T09(IT9137)_2)...

[   16.764033] DVB: registering new adapter (saa7133[0])
[   16.764043] saa7134 :07:04.0: DVB: registering adapter 2 frontend 
0 (Philips TDA10046H DVB-T)...


-
This one, a later stock el7 kernel, doesn't work.

[john@HP_Box ~]$ uname -r
3.10.0-123.13.1.el7.x86_64
john@HP_Box ~]$ dmesg | grep DVB
[1.556887] saa7133[0]: subsystem: 0070:6700, board: Hauppauge 
WinTV-HVR1110 DVB-T/Hybrid [card=104,autodetected]
[1.695217] tveeprom 0-0050: TV standards PAL(B/G) NTSC(M) PAL(I) 
SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)

[1.708443] DVB: Unable to find symbol tda10046_attach()  **
[1.736049] usb 2-2: Product: DVB-T TV Stick
[1.845944] DVB: registering new adapter (Kworld UB499-2T T09(IT9137))
[1.848465] DVB: Unable to find symbol it913x_fe_attach()  **

---
.. and this, a 'testing' kernel, doesn't see the Hauppauge pci device.

[john@HP_Box ~]$ uname -r
3.18.0-1.el7.elrepo.x86_64
[john@HP_Box ~]$ dmesg | grep adapter
[   11.707221] DVB: registering new adapter (Kworld UB499-2T T09)
[   12.054409] usb 2-2: DVB: registering adapter 0 frontend 0 (Afatech 
AF9033 (DVB-T))...

[   12.343371] DVB: registering new adapter (Kworld UB499-2T T09)
[   12.352152] usb 2-2: DVB: registering adapter 1 frontend 0 (Afatech 
AF9033 (DVB-T))...


-
End

--
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 v2 2/2] V4L2: add CCF support to the v4l2_clk API

2015-01-04 Thread Guennadi Liakhovetski
On Sun, 4 Jan 2015, Laurent Pinchart wrote:

 Hi Guennadi,
 
 Thank you for the patch.
 
 On Friday 02 January 2015 21:18:41 Guennadi Liakhovetski wrote:
  From aeaee56e04d023f3a019d2595ef5128015acdb06 Mon Sep 17 00:00:00 2001
  From: Guennadi Liakhovetski g.liakhovet...@gmx.de
  Date: Fri, 2 Jan 2015 12:26:41 +0100
  Subject: [PATCH 2/2] V4L2: add CCF support to the v4l2_clk API
  
  V4L2 clocks, e.g. used by camera sensors for their master clock, do not
  have to be supplied by a different V4L2 driver, they can also be
  supplied by an independent source. In this case the standart kernel
  clock API should be used to handle such clocks. This patch adds support
  for such cases.
  
  Signed-off-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
  ---
  
  Hi Laurent,
  Thanks for the comment. The idea of allocating a new object for each get
  operation seems a bit weird to me, and completely trusting the user is a
  bit scary... :) But yes, it can work this way too, I think, and the user
  can screw either way too, anyway.
 
 The user needs to get it right for when we'll replace v4l2_clk_get() with 
 clk_get(), so I'd rather force it to get it right now.
 
  So, here comes a v2. Something like this?
  
  v2: don't add CCF-related clocks on the global list, just allocate a new
  instance on each v4l2_clk_get()
  
   drivers/media/v4l2-core/v4l2-clk.c | 45 +++---
   include/media/v4l2-clk.h   |  2 ++
   2 files changed, 44 insertions(+), 3 deletions(-)
  
  diff --git a/drivers/media/v4l2-core/v4l2-clk.c
  b/drivers/media/v4l2-core/v4l2-clk.c index c210906..f5d1688 100644
  --- a/drivers/media/v4l2-core/v4l2-clk.c
  +++ b/drivers/media/v4l2-core/v4l2-clk.c
  @@ -9,6 +9,7 @@
*/
  
   #include linux/atomic.h
  +#include linux/clk.h
   #include linux/device.h
   #include linux/errno.h
   #include linux/list.h
  @@ -42,6 +43,18 @@ static struct v4l2_clk *v4l2_clk_find(const char *dev_id,
  const char *id) struct v4l2_clk *v4l2_clk_get(struct device *dev, const
  char *id) {
  struct v4l2_clk *clk;
  +   struct clk *ccf_clk = clk_get(dev, id);
  +
  +   if (!IS_ERR(ccf_clk)) {
  +   clk = kzalloc(sizeof(struct v4l2_clk), GFP_KERNEL);
  +   if (!clk) {
  +   clk_put(ccf_clk);
  +   return ERR_PTR(-ENOMEM);
  +   }
  +   clk-clk = ccf_clk;
  +
  +   return clk;
  +   }
 
 If clk_get() returns -EPROBE_DEFER I think you should return the error code 
 to 
 the user instead of falling back to the v4l2 clocks.

This is the case, when a clock is correctly set up in DT, but no suitable 
provider is registered yet, right? I think such a case isn't very likely, 
but yes, can do, makes more sense, perhaps.

  mutex_lock(clk_lock);
  clk = v4l2_clk_find(dev_name(dev), id);
  @@ -61,6 +74,12 @@ void v4l2_clk_put(struct v4l2_clk *clk)
  if (IS_ERR(clk))
  return;
  
  +   if (clk-clk) {
  +   clk_put(clk-clk);
  +   kfree(clk);
  +   return;
  +   }
  +
  mutex_lock(clk_lock);
  
  list_for_each_entry(tmp, clk_list, list)
  @@ -98,8 +117,12 @@ static void v4l2_clk_unlock_driver(struct v4l2_clk *clk)
  
   int v4l2_clk_enable(struct v4l2_clk *clk)
   {
  -   int ret = v4l2_clk_lock_driver(clk);
  +   int ret;
  
  +   if (clk-clk)
  +   return clk_enable(clk-clk);
 
 Shouldn't you use clk_prepare_enable() ? CCF requires a prepare call before 
 enabling the clock.

Right, my fault, thanks for pointing out.

  +
  +   ret = v4l2_clk_lock_driver(clk);
  if (ret  0)
  return ret;
  
  @@ -125,6 +148,9 @@ void v4l2_clk_disable(struct v4l2_clk *clk)
   {
  int enable;
  
  +   if (clk-clk)
  +   return clk_disable(clk-clk);
 
 Likewise, clk_disable_unprepare() ?

Sure. Ok, these are trivial changes, perhaps we can wait for Josh's test 
results, then I can submit a v3 with (hopefully) all required changes.

Thanks
Guennadi

  +
  mutex_lock(clk-lock);
  
  enable = --clk-enable;
  @@ -142,8 +168,12 @@ EXPORT_SYMBOL(v4l2_clk_disable);
  
   unsigned long v4l2_clk_get_rate(struct v4l2_clk *clk)
   {
  -   int ret = v4l2_clk_lock_driver(clk);
  +   int ret;
  +
  +   if (clk-clk)
  +   return clk_get_rate(clk-clk);
  
  +   ret = v4l2_clk_lock_driver(clk);
  if (ret  0)
  return ret;
  
  @@ -162,7 +192,16 @@ EXPORT_SYMBOL(v4l2_clk_get_rate);
  
   int v4l2_clk_set_rate(struct v4l2_clk *clk, unsigned long rate)
   {
  -   int ret = v4l2_clk_lock_driver(clk);
  +   int ret;
  +
  +   if (clk-clk) {
  +   long r = clk_round_rate(clk-clk, rate);
  +   if (r  0)
  +   return r;
  +   return clk_set_rate(clk-clk, r);
  +   }
  +
  +   ret = v4l2_clk_lock_driver(clk);
  
  if (ret  0)
  return ret;
  diff --git a/include/media/v4l2-clk.h b/include/media/v4l2-clk.h
  index 8f06967..4402b2d 100644
  --- a/include/media/v4l2-clk.h
  +++ 

[PATCH v2 2/8] ARM: at91: dts: sama5d3: split isi pinctrl

2015-01-04 Thread Josh Wu
From: Bo Shen voice.s...@atmel.com

As the ISI has 12 data lines, however we only use 8 data lines with
sensor module. So, split the data line into two groups which make
it can be choosed depends on the hardware design.

Signed-off-by: Bo Shen voice.s...@atmel.com
Acked-by: Nicolas Ferre nicolas.fe...@atmel.com
Acked-by: Alexandre Belloni alexandre.bell...@free-electrons.com
Signed-off-by: Josh Wu josh...@atmel.com
---
 arch/arm/boot/dts/sama5d3.dtsi| 11 ---
 arch/arm/boot/dts/sama5d3xmb.dtsi |  2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 61746ef..595609f 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -547,7 +547,7 @@
};
 
isi {
-   pinctrl_isi: isi-0 {
+   pinctrl_isi_data_0_7: isi-0-data-0-7 {
atmel,pins =
AT91_PIOA 16 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA16 periph C ISI_D0, conflicts with 
LCDDAT16 */
 AT91_PIOA 17 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA17 periph C ISI_D1, conflicts with 
LCDDAT17 */
@@ -559,10 +559,15 @@
 AT91_PIOA 23 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA23 periph C ISI_D7, conflicts with 
LCDDAT23, PWML1 */
 AT91_PIOC 30 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC30 periph C ISI_PCK, conflicts with 
UTXD0 */
 AT91_PIOA 31 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA31 periph C ISI_HSYNC, conflicts with 
TWCK0, UTXD1 */
-AT91_PIOA 30 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PA30 periph C ISI_VSYNC, conflicts with 
TWD0, URXD1 */
-AT91_PIOC 29 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC29 periph C ISI_PD8, conflicts with 
URXD0, PWMFI2 */
+AT91_PIOA 30 
AT91_PERIPH_C AT91_PINCTRL_NONE; /* PA30 periph C ISI_VSYNC, conflicts with 
TWD0, URXD1 */
+   };
+
+   pinctrl_isi_data_8_9: isi-0-data-8-9 {
+   atmel,pins =
+   AT91_PIOC 29 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC29 periph C ISI_PD8, conflicts with 
URXD0, PWMFI2 */
 AT91_PIOC 28 
AT91_PERIPH_C AT91_PINCTRL_NONE; /* PC28 periph C ISI_PD9, conflicts with 
SPI1_NPCS3, PWMFI0 */
};
+
pinctrl_isi_pck_as_mck: 
isi_pck_as_mck-0 {
atmel,pins =
AT91_PIOD 31 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD31 periph B ISI_MCK */
diff --git a/arch/arm/boot/dts/sama5d3xmb.dtsi 
b/arch/arm/boot/dts/sama5d3xmb.dtsi
index 49c10d3..2530541 100644
--- a/arch/arm/boot/dts/sama5d3xmb.dtsi
+++ b/arch/arm/boot/dts/sama5d3xmb.dtsi
@@ -61,7 +61,7 @@
 
isi: isi@f0034000 {
pinctrl-names = default;
-   pinctrl-0 = pinctrl_isi 
pinctrl_isi_pck_as_mck pinctrl_isi_power pinctrl_isi_reset;
+   pinctrl-0 = pinctrl_isi_data_0_7 
pinctrl_isi_pck_as_mck pinctrl_isi_power pinctrl_isi_reset;
};
 
mmc1: mmc@f800 {
-- 
1.9.1

--
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: [PATCHv2] media: i2c/adp1653: devicetree support for adp1653

2015-01-04 Thread Pavel Machek
Hi!

 Thanks for the patch! A few comments below.
 
 On Wed, Dec 24, 2014 at 11:34:34PM +0100, Pavel Machek wrote:
  
  We are moving to device tree support on OMAP3, but that currently
  breaks ADP1653 driver. This adds device tree support, plus required
  documentation.
  
  Signed-off-by: Pavel Machek pa...@ucw.cz
  
  ---
  
  Changed -microsec to -us, as requested by devicetree people.
  
  Fixed checkpatch issues.
  
  diff --git a/Documentation/devicetree/bindings/leds/common.txt 
  b/Documentation/devicetree/bindings/leds/common.txt
  index 2d88816..2c6c7c5 100644
  --- a/Documentation/devicetree/bindings/leds/common.txt
  +++ b/Documentation/devicetree/bindings/leds/common.txt
  @@ -14,6 +14,15 @@ Optional properties for child nodes:
ide-disk - LED indicates disk activity
timer - LED flashes at a fixed, configurable rate
   
  +- max-microamp : maximum intensity in microamperes of the LED
  +(torch LED for flash devices)
 
 s/torch LED/torch mode/
 
  +- flash-max-microamp : maximum intensity in microamperes of the
  +   flash LED; it is mandatory if the LED should
  +  support the flash mode
  +- flash-timeout-microsec : timeout in microseconds after which the flash
  +   LED is turned off
 
 These should go to a different patch.

Actually these both should not be in this patch in the first place.

  +  - reg: I2C slave address
  +
  +  - gpios: References to the GPIO that controls the power for the chip.
  +
  +There are two led outputs available - flash and indicator. One led is
  +represented by one child node, nodes need to be named flash and 
  indicator.
 
 80 characters per line.

Count them. It is.

  +
  +Required properties of the LED child node:
  +- max-microamp : see Documentation/devicetree/bindings/leds/common.txt
  +
  +Required properties of the flash LED child node:
  +
  +- flash-max-microamp : see 
  Documentation/devicetree/bindings/leds/common.txt
  +- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt
  +
  +Example:
  +
  +adp1653: led-controller@30 {
  +compatible = adi,adp1653;
  +   reg = 0x30;
  +gpios = gpio3 24 GPIO_ACTIVE_HIGH; /* 88 */
 
 Please use tabs for indentation above (and below).

Ok.

  --- a/arch/arm/boot/dts/omap3-n900.dts
  +++ b/arch/arm/boot/dts/omap3-n900.dts
  @@ -553,6 +558,22 @@
   
  ti,usb-charger-detection = isp1704;
  };
  +
  +   adp1653: led-controller@30 {
  +   compatible = adi,adp1653;
  +   reg = 0x30;
  +   gpios = gpio3 24 GPIO_ACTIVE_HIGH; /* 88 */
  +
  +   flash {
  +   flash-timeout-us = 50;
  +   flash-max-microamp = 32;
  +   max-microamp = 5;
  +   };
  +
  +   indicator {
  +   max-microamp = 17500;
  +   };
  +   };
 
 This should go to a separate patch as well.

How many patches do I need to do for one trivial change? :-(.


  +   if (flash-platform_data-power)
  +   ret = flash-platform_data-power(flash-subdev, on);
 
 if () {
 } else {
 }

Ok.

  +   else {
  +   gpio_set_value(flash-platform_data-power_gpio, on);
 
 Shouldn't you add this to the platform data struct?

I don't see what you mean.

 power_gpio is actually a poor name for this, as is the power callback.
 This is really EN gpio in the spec, I'd call it perhaps just gpio, or
 enable_gpio.

Feel free to clean that that up in followup patch.

  +   if (on) {
  +   /* Some delay is apparently required. */
  +   udelay(20);
 
 The driver should always handle the delay, platform data or not. This
 reminds me --- is there a need to retain the support for platform data? I
 don't think it's being used anywhere. I'm fine with both keeping and
 removing it.

Lets do that in followup patch, if needed.

  +   child = of_get_child_by_name(node, indicator);
  +   if (!child)
  +   return -EINVAL;
 
 Do you require an indicator to be connected? I think it shouldn't be
 mandatory, at least the driver should work without it, even if it
 exposes
 the control (making that conditional would be a subject for another patch,
 but that doesn't need to be done now).

Another patch, if someone needs it, yes.

  +   if (of_property_read_u32(child, max-microamp, val))
  +   return -EINVAL;
  +   pd-max_indicator_intensity = val;
  +
  +   if (!of_find_property(node, gpios, NULL)) {
  +   dev_err(client-dev, No gpio node\n);
  +   return -EINVAL;
  +   }
  +
  +   gpio = of_get_gpio_flags(node, 0, flags);
 
 You could assign to pd-... here.

Ok.
Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the 

[PATCH v2 0/8] ARM: at91: dts: sama5d3: add dt support for atmel isi and ov2640 sensor

2015-01-04 Thread Josh Wu
This patch series add ISI and ov2640 support on dts files.

As the ov2640 driver dt is still in review. The patch is in: 
https://patchwork.linuxtv.org/patch/27554/
So I want to send this dt patch early for a review.

v1 - v2:
  1. add one more patch to change the pin name of ISI_MCK
  2. rewrite the commit [4/8] ARM: at91: dts: sama5d3: change name of 
pinctrl_isi_{power,reset}.
  3. move the common chip parts of ISI node to sama5d3.dtsi.

Bo Shen (3):
  ARM: at91: dts: sama5d3: split isi pinctrl
  ARM: at91: dts: sama5d3: add missing pins of isi
  ARM: at91: dts: sama5d3: move the isi mck pin to mb

Josh Wu (5):
  ARM: at91: dts: sama5d3: add isi clock
  ARM: at91: dts: sama5d3: change name of pinctrl_isi_{power,reset}
  ARM: at91: dts: sama5d3: change name of pinctrl of ISI_MCK
  ARM: at91: dts: sama5d3: add ov2640 camera sensor support
  ARM: at91: sama5: enable atmel-isi and ov2640 in defconfig

 arch/arm/boot/dts/sama5d3.dtsi| 24 ++-
 arch/arm/boot/dts/sama5d3xmb.dtsi | 40 +++
 arch/arm/configs/sama5_defconfig  |  6 ++
 3 files changed, 61 insertions(+), 9 deletions(-)

-- 
1.9.1

--
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/8] ARM: at91: dts: sama5d3: add isi clock

2015-01-04 Thread Josh Wu
Add ISI peripheral clock in sama5d3.dtsi.

Signed-off-by: Josh Wu josh...@atmel.com
Acked-by: Alexandre Belloni alexandre.bell...@free-electrons.com
---
 arch/arm/boot/dts/sama5d3.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 5f4144d..61746ef 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -214,6 +214,8 @@
compatible = atmel,at91sam9g45-isi;
reg = 0xf0034000 0x4000;
interrupts = 37 IRQ_TYPE_LEVEL_HIGH 5;
+   clocks = isi_clk;
+   clock-names = isi_clk;
status = disabled;
};
 
-- 
1.9.1

--
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 4/8] ARM: at91: dts: sama5d3: move the isi mck pin to mb

2015-01-04 Thread Josh Wu
From: Bo Shen voice.s...@atmel.com

The mck is decided by the board design, move it to mb related
dtsi file.

Signed-off-by: Bo Shen voice.s...@atmel.com
Acked-by: Nicolas Ferre nicolas.fe...@atmel.com
Acked-by: Alexandre Belloni alexandre.bell...@free-electrons.com
Signed-off-by: Josh Wu josh...@atmel.com
---
 arch/arm/boot/dts/sama5d3.dtsi| 5 -
 arch/arm/boot/dts/sama5d3xmb.dtsi | 5 +
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index b3ac156..ed734e9 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -573,11 +573,6 @@
AT91_PIOC 27 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC27 periph C ISI_PD10, conflicts with 
SPI1_NPCS2, TWCK1 */
 AT91_PIOC 26 
AT91_PERIPH_C AT91_PINCTRL_NONE; /* PC26 periph C ISI_PD11, conflicts with 
SPI1_NPCS1, TWD1 */
};
-
-   pinctrl_isi_pck_as_mck: 
isi_pck_as_mck-0 {
-   atmel,pins =
-   AT91_PIOD 31 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD31 periph B ISI_MCK */
-   };
};
 
mmc0 {
diff --git a/arch/arm/boot/dts/sama5d3xmb.dtsi 
b/arch/arm/boot/dts/sama5d3xmb.dtsi
index 2530541..6af1cba 100644
--- a/arch/arm/boot/dts/sama5d3xmb.dtsi
+++ b/arch/arm/boot/dts/sama5d3xmb.dtsi
@@ -117,6 +117,11 @@
AT91_PIOD 30 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD30 periph B */
};
 
+   pinctrl_isi_pck_as_mck: 
isi_pck_as_mck-0 {
+   atmel,pins =
+   AT91_PIOD 31 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD31 periph B ISI_MCK */
+   };
+
pinctrl_isi_reset: isi_reset-0 {
atmel,pins =
AT91_PIOE 24 
AT91_PERIPH_GPIO AT91_PINCTRL_NONE;   /* PE24 gpio */
-- 
1.9.1

--
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 3/8] ARM: at91: dts: sama5d3: add missing pins of isi

2015-01-04 Thread Josh Wu
From: Bo Shen voice.s...@atmel.com

The ISI has 12 data lines, add the missing two data lines.

Signed-off-by: Bo Shen voice.s...@atmel.com
Acked-by: Nicolas Ferre nicolas.fe...@atmel.com
Acked-by: Alexandre Belloni alexandre.bell...@free-electrons.com
---
 arch/arm/boot/dts/sama5d3.dtsi | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 595609f..b3ac156 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -568,6 +568,12 @@
 AT91_PIOC 28 
AT91_PERIPH_C AT91_PINCTRL_NONE; /* PC28 periph C ISI_PD9, conflicts with 
SPI1_NPCS3, PWMFI0 */
};
 
+   pinctrl_isi_data_10_11: 
isi-0-data-10-11 {
+   atmel,pins =
+   AT91_PIOC 27 
AT91_PERIPH_C AT91_PINCTRL_NONE   /* PC27 periph C ISI_PD10, conflicts with 
SPI1_NPCS2, TWCK1 */
+AT91_PIOC 26 
AT91_PERIPH_C AT91_PINCTRL_NONE; /* PC26 periph C ISI_PD11, conflicts with 
SPI1_NPCS1, TWD1 */
+   };
+
pinctrl_isi_pck_as_mck: 
isi_pck_as_mck-0 {
atmel,pins =
AT91_PIOD 31 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD31 periph B ISI_MCK */
-- 
1.9.1

--
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 5/8] ARM: at91: dts: sama5d3: change name of pinctrl_isi_{power,reset}

2015-01-04 Thread Josh Wu
For sama5d3xmb board, the pins: pinctrl_isi_{power,reset} is used to
power-down or reset camera sensor.
So we should let camera sensor instead of ISI to configure the pins.

This patch will change pinctrl name from pinctrl_isi_{power,reset} to
pinctrl_sensor_{power,reset}. And remove these two pinctrl from ISI's
DT node. We will add these two pinctrl to sensor's DT node.

Signed-off-by: Josh Wu josh...@atmel.com
---
v1 - v2:
  1. only do things that mentioned in commit message.

 arch/arm/boot/dts/sama5d3xmb.dtsi | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/sama5d3xmb.dtsi 
b/arch/arm/boot/dts/sama5d3xmb.dtsi
index 6af1cba..db47f8b 100644
--- a/arch/arm/boot/dts/sama5d3xmb.dtsi
+++ b/arch/arm/boot/dts/sama5d3xmb.dtsi
@@ -61,7 +61,7 @@
 
isi: isi@f0034000 {
pinctrl-names = default;
-   pinctrl-0 = pinctrl_isi_data_0_7 
pinctrl_isi_pck_as_mck pinctrl_isi_power pinctrl_isi_reset;
+   pinctrl-0 = pinctrl_isi_data_0_7 
pinctrl_isi_pck_as_mck;
};
 
mmc1: mmc@f800 {
@@ -122,12 +122,12 @@
AT91_PIOD 31 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD31 periph B ISI_MCK */
};
 
-   pinctrl_isi_reset: isi_reset-0 {
+   pinctrl_sensor_reset: sensor_reset-0 {
atmel,pins =
AT91_PIOE 24 
AT91_PERIPH_GPIO AT91_PINCTRL_NONE;   /* PE24 gpio */
};
 
-   pinctrl_isi_power: isi_power-0 {
+   pinctrl_sensor_power: sensor_power-0 {
atmel,pins =
AT91_PIOE 29 
AT91_PERIPH_GPIO AT91_PINCTRL_NONE; /* PE29 gpio */
};
-- 
1.9.1

--
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 6/8] ARM: at91: dts: sama5d3: change name of pinctrl of ISI_MCK

2015-01-04 Thread Josh Wu
For sama5d3xmb board, the pins: pinctrl_isi_pck_as_mck is pck1, and
used to provide MCK for camera sensor.

We change its name to: pinctrl_pck1_as_isi_mck.

As we want camera sensor instead of ISI to configure the pck1 (ISI_MCK) pin.
So we remove this pinctrl from ISI DT node. It will be added in sensor's
DT node.

Signed-off-by: Josh Wu josh...@atmel.com
---
new added in v2.

 arch/arm/boot/dts/sama5d3xmb.dtsi | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/sama5d3xmb.dtsi 
b/arch/arm/boot/dts/sama5d3xmb.dtsi
index db47f8b..d9464fc 100644
--- a/arch/arm/boot/dts/sama5d3xmb.dtsi
+++ b/arch/arm/boot/dts/sama5d3xmb.dtsi
@@ -61,7 +61,7 @@
 
isi: isi@f0034000 {
pinctrl-names = default;
-   pinctrl-0 = pinctrl_isi_data_0_7 
pinctrl_isi_pck_as_mck;
+   pinctrl-0 = pinctrl_isi_data_0_7;
};
 
mmc1: mmc@f800 {
@@ -117,7 +117,7 @@
AT91_PIOD 30 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD30 periph B */
};
 
-   pinctrl_isi_pck_as_mck: 
isi_pck_as_mck-0 {
+   pinctrl_pck1_as_isi_mck: 
pck1_as_isi_mck-0 {
atmel,pins =
AT91_PIOD 31 
AT91_PERIPH_B AT91_PINCTRL_NONE; /* PD31 periph B ISI_MCK */
};
-- 
1.9.1

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


[PATCHv3] media: i2c/adp1653: devicetree support for adp1653

2015-01-04 Thread Pavel Machek

We are moving to device tree support on OMAP3, but that currently
breaks ADP1653 driver. This adds device tree support, plus required
documentation.

Signed-off-by: Pavel Machek pa...@ucw.cz

---

Please apply,
Pavel

diff --git a/Documentation/devicetree/bindings/media/i2c/adp1653.txt 
b/Documentation/devicetree/bindings/media/i2c/adp1653.txt
new file mode 100644
index 000..0fc28a9
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/adp1653.txt
@@ -0,0 +1,37 @@
+* Analog Devices ADP1653 flash LED driver
+
+Required Properties:
+
+  - compatible: Must contain be adi,adp1653
+
+  - reg: I2C slave address
+
+  - gpios: References to the GPIO that controls the power for the chip.
+
+There are two led outputs available - flash and indicator. One led is
+represented by one child node, nodes need to be named flash and indicator.
+
+Required properties of the LED child node:
+- max-microamp : see Documentation/devicetree/bindings/leds/common.txt
+
+Required properties of the flash LED child node:
+
+- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt
+- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt
+
+Example:
+
+   adp1653: led-controller@30 {
+   compatible = adi,adp1653;
+   reg = 0x30;
+   gpios = gpio3 24 GPIO_ACTIVE_HIGH; /* 88 */
+
+   flash {
+   flash-timeout-us = 50;
+   flash-max-microamp = 32;
+   max-microamp = 5;
+   };
+   indicator {
+   max-microamp = 17500;
+   };
+   };
diff --git a/drivers/media/i2c/adp1653.c b/drivers/media/i2c/adp1653.c
index 873fe19..0341009 100644
--- a/drivers/media/i2c/adp1653.c
+++ b/drivers/media/i2c/adp1653.c
@@ -8,6 +8,7 @@
  * Contributors:
  * Sakari Ailus sakari.ai...@iki.fi
  * Tuukka Toivonen tuukka...@gmail.com
+ * Pavel Machek pa...@ucw.cz
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -34,6 +35,8 @@
 #include linux/module.h
 #include linux/i2c.h
 #include linux/slab.h
+#include linux/of_gpio.h
+#include linux/gpio.h
 #include media/adp1653.h
 #include media/v4l2-device.h
 
@@ -306,9 +309,17 @@ adp1653_init_device(struct adp1653_flash *flash)
 static int
 __adp1653_set_power(struct adp1653_flash *flash, int on)
 {
-   int ret;
+   int ret = 0;
+
+   if (flash-platform_data-power) {
+   ret = flash-platform_data-power(flash-subdev, on);
+   } else {
+   gpio_set_value(flash-platform_data-power_gpio, on);
+   if (on)
+   /* Some delay is apparently required. */
+   udelay(20);
+   }
 
-   ret = flash-platform_data-power(flash-subdev, on);
if (ret  0)
return ret;
 
@@ -316,8 +327,13 @@ __adp1653_set_power(struct adp1653_flash *flash, int on)
return 0;
 
ret = adp1653_init_device(flash);
-   if (ret  0)
+   if (ret = 0)
+   return ret;
+
+   if (flash-platform_data-power)
flash-platform_data-power(flash-subdev, 0);
+   else
+   gpio_set_value(flash-platform_data-power_gpio, 0);
 
return ret;
 }
@@ -407,21 +423,77 @@ static int adp1653_resume(struct device *dev)
 
 #endif /* CONFIG_PM */
 
+static int adp1653_of_init(struct i2c_client *client,
+  struct adp1653_flash *flash,
+  struct device_node *node)
+{
+   u32 val;
+   struct adp1653_platform_data *pd;
+   enum of_gpio_flags flags;
+   int gpio;
+   struct device_node *child;
+
+   if (!node)
+   return -EINVAL;
+
+   pd = devm_kzalloc(client-dev, sizeof(*pd), GFP_KERNEL);
+   if (!pd)
+   return -ENOMEM;
+   flash-platform_data = pd;
+
+   child = of_get_child_by_name(node, flash);
+   if (!child)
+   return -EINVAL;
+   if (of_property_read_u32(child, flash-timeout-microsec, val))
+   return -EINVAL;
+
+   pd-max_flash_timeout = val;
+   if (of_property_read_u32(child, flash-max-microamp, val))
+   return -EINVAL;
+   pd-max_flash_intensity = val/1000;
+
+   if (of_property_read_u32(child, max-microamp, val))
+   return -EINVAL;
+   pd-max_torch_intensity = val/1000;
+
+   child = of_get_child_by_name(node, indicator);
+   if (!child)
+   return -EINVAL;
+   if (of_property_read_u32(child, max-microamp, val))
+   return -EINVAL;
+   pd-max_indicator_intensity = val;
+
+   if (!of_find_property(node, gpios, NULL)) {
+   dev_err(client-dev, No gpio node\n);
+   return -EINVAL;
+   }
+
+   pd-power_gpio = of_get_gpio_flags(node, 0, flags);
+ 

Re: [PATCH 0/2] V4L2: add CCF support to v4l2_clk

2015-01-04 Thread Josh Wu

Hi, Guennadi

On 1/2/2015 7:48 PM, Guennadi Liakhovetski wrote:

Hi,

This is an attempt to implement CCF support for v4l2_clk to be able to use
e.g. DT-based clocks. Beware - completely untested! Josh, could you please
see, whether you can use this as a starting point?


Thanks for the patches. I will test these patches tomorrow.

Best Regards,
Josh Wu



Thanks
Guennadi


--
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 v2 2/2] V4L2: add CCF support to the v4l2_clk API

2015-01-04 Thread Laurent Pinchart
Hi Guennadi,

On Sunday 04 January 2015 17:45:04 Guennadi Liakhovetski wrote:
 On Sun, 4 Jan 2015, Laurent Pinchart wrote:
  On Friday 02 January 2015 21:18:41 Guennadi Liakhovetski wrote:
   From aeaee56e04d023f3a019d2595ef5128015acdb06 Mon Sep 17 00:00:00 2001
   From: Guennadi Liakhovetski g.liakhovet...@gmx.de
   Date: Fri, 2 Jan 2015 12:26:41 +0100
   Subject: [PATCH 2/2] V4L2: add CCF support to the v4l2_clk API
   
   V4L2 clocks, e.g. used by camera sensors for their master clock, do not
   have to be supplied by a different V4L2 driver, they can also be
   supplied by an independent source. In this case the standart kernel
   clock API should be used to handle such clocks. This patch adds support
   for such cases.
   
   Signed-off-by: Guennadi Liakhovetski g.liakhovet...@gmx.de
   ---
   
   Hi Laurent,
   Thanks for the comment. The idea of allocating a new object for each
   get operation seems a bit weird to me, and completely trusting the
   user is a bit scary... :) But yes, it can work this way too, I think,
   and the user can screw either way too, anyway.
  
  The user needs to get it right for when we'll replace v4l2_clk_get() with
  clk_get(), so I'd rather force it to get it right now.
  
   So, here comes a v2. Something like this?
   
   v2: don't add CCF-related clocks on the global list, just allocate a new
   instance on each v4l2_clk_get()
   
drivers/media/v4l2-core/v4l2-clk.c | 45 ---
include/media/v4l2-clk.h   |  2 ++
2 files changed, 44 insertions(+), 3 deletions(-)
   
   diff --git a/drivers/media/v4l2-core/v4l2-clk.c
   b/drivers/media/v4l2-core/v4l2-clk.c index c210906..f5d1688 100644
   --- a/drivers/media/v4l2-core/v4l2-clk.c
   +++ b/drivers/media/v4l2-core/v4l2-clk.c
   @@ -9,6 +9,7 @@
 */

#include linux/atomic.h
   +#include linux/clk.h
#include linux/device.h
#include linux/errno.h
#include linux/list.h
   @@ -42,6 +43,18 @@ static struct v4l2_clk *v4l2_clk_find(const char
   *dev_id, const char *id) struct v4l2_clk *v4l2_clk_get(struct device
   *dev, const char *id) {
 struct v4l2_clk *clk;
   + struct clk *ccf_clk = clk_get(dev, id);
   +
   + if (!IS_ERR(ccf_clk)) {
   + clk = kzalloc(sizeof(struct v4l2_clk), GFP_KERNEL);
   + if (!clk) {
   + clk_put(ccf_clk);
   + return ERR_PTR(-ENOMEM);
   + }
   + clk-clk = ccf_clk;
   +
   + return clk;
   + }
  
  If clk_get() returns -EPROBE_DEFER I think you should return the error
  code to the user instead of falling back to the v4l2 clocks.
 
 This is the case, when a clock is correctly set up in DT, but no suitable
 provider is registered yet, right? I think such a case isn't very likely,
 but yes, can do, makes more sense, perhaps.

Yes, that's the use case. Even if it's not that likely I think it should still 
be implemented, if only to mimic the CCF behaviour and prepare drivers for the 
switch away from v4l2_clk_get().

 mutex_lock(clk_lock);
 clk = v4l2_clk_find(dev_name(dev), id);
   
   @@ -61,6 +74,12 @@ void v4l2_clk_put(struct v4l2_clk *clk)
   
 if (IS_ERR(clk))
 
 return;
   
   + if (clk-clk) {
   + clk_put(clk-clk);
   + kfree(clk);
   + return;
   + }
   +
   
 mutex_lock(clk_lock);
 
 list_for_each_entry(tmp, clk_list, list)
   
   @@ -98,8 +117,12 @@ static void v4l2_clk_unlock_driver(struct v4l2_clk
   *clk)  
int v4l2_clk_enable(struct v4l2_clk *clk)
{
   
   - int ret = v4l2_clk_lock_driver(clk);
   + int ret;
   
   + if (clk-clk)
   + return clk_enable(clk-clk);
  
  Shouldn't you use clk_prepare_enable() ? CCF requires a prepare call
  before enabling the clock.
 
 Right, my fault, thanks for pointing out.
 
   +
   + ret = v4l2_clk_lock_driver(clk);
   
 if (ret  0)
 
 return ret;
   
   @@ -125,6 +148,9 @@ void v4l2_clk_disable(struct v4l2_clk *clk)
   
{

 int enable;
   
   + if (clk-clk)
   + return clk_disable(clk-clk);
  
  Likewise, clk_disable_unprepare() ?
 
 Sure. Ok, these are trivial changes, perhaps we can wait for Josh's test
 results, then I can submit a v3 with (hopefully) all required changes.

Sure. CCF will trigger warnings due to clk_prepare() not being called though.

   +
   
 mutex_lock(clk-lock);
 
 enable = --clk-enable;
   
   @@ -142,8 +168,12 @@ EXPORT_SYMBOL(v4l2_clk_disable);
   
unsigned long v4l2_clk_get_rate(struct v4l2_clk *clk)
{
   
   - int ret = v4l2_clk_lock_driver(clk);
   + int ret;
   +
   + if (clk-clk)
   + return clk_get_rate(clk-clk);
   
   + ret = v4l2_clk_lock_driver(clk);
   
 if (ret  0)
 
 return ret;
   
   @@ -162,7 +192,16 @@ EXPORT_SYMBOL(v4l2_clk_get_rate);
   
int v4l2_clk_set_rate(struct v4l2_clk *clk, unsigned long rate)
{
   
   - int ret = v4l2_clk_lock_driver(clk);
   + int ret;
   +
   + if (clk-clk) {
   +   

RE: [PATCH] [media] s5p-jpeg: Clear JPEG_CODEC_ON bits in sw reset function

2015-01-04 Thread Tony K Nadackal
Gentle Reminder.

Thanks
Tony

 -Original Message-
 From: Tony K Nadackal [mailto:tony...@samsung.com]
 Sent: Wednesday, December 17, 2014 11:52 AM
 To: linux-media@vger.kernel.org; linux-arm-ker...@lists.infradead.org; linux-
 samsung-...@vger.kernel.org
 Cc: mche...@osg.samsung.com; j.anaszew...@samsung.com;
 kg...@kernel.org; k.deb...@samsung.com; s.nawro...@samsung.com;
 bhusha...@samsung.com; Tony K Nadackal
 Subject: [PATCH] [media] s5p-jpeg: Clear JPEG_CODEC_ON bits in sw reset
 function
 
 Bits EXYNOS4_DEC_MODE and EXYNOS4_ENC_MODE do not get cleared on
 software reset. These bits need to be cleared explicitly.
 
 Signed-off-by: Tony K Nadackal tony...@samsung.com
 ---
 This patch is created and tested on top of linux-next-20141210.
 It can be cleanly applied on media-next and kgene/for-next.
 
 
  drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c | 4 
  1 file changed, 4 insertions(+)
 
 diff --git a/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c
 b/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c
 index ab6d6f43..e53f13a 100644
 --- a/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c
 +++ b/drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c
 @@ -21,6 +21,10 @@ void exynos4_jpeg_sw_reset(void __iomem *base)
   unsigned int reg;
 
   reg = readl(base + EXYNOS4_JPEG_CNTL_REG);
 + writel(reg  ~(EXYNOS4_DEC_MODE | EXYNOS4_ENC_MODE),
 + base + EXYNOS4_JPEG_CNTL_REG);
 +
 + reg = readl(base + EXYNOS4_JPEG_CNTL_REG);
   writel(reg  ~EXYNOS4_SOFT_RESET_HI, base +
 EXYNOS4_JPEG_CNTL_REG);
 
   udelay(100);
 --
 2.2.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


RE: [PATCH] [media] s5p-jpeg: Fix crash in jpeg isr due to multiple interrupts.

2015-01-04 Thread Tony K Nadackal
Gentle Reminder.

Thanks
Tony

 -Original Message-
 From: Tony K Nadackal [mailto:tony...@samsung.com]
 Sent: Wednesday, December 17, 2014 11:55 AM
 To: linux-media@vger.kernel.org; linux-arm-ker...@lists.infradead.org; linux-
 samsung-...@vger.kernel.org
 Cc: mche...@osg.samsung.com; j.anaszew...@samsung.com;
 kg...@kernel.org; k.deb...@samsung.com; s.nawro...@samsung.com;
 bhusha...@samsung.com; Tony K Nadackal
 Subject: [PATCH] [media] s5p-jpeg: Fix crash in jpeg isr due to multiple
interrupts.
 
 In case of corrupt images, multiple interrupts may occur due to different
error
 scenarios.
 
 Since we are removing the src and dest buffers in the first interrupt itself,
crash
 occurs in the second error interrupts.
 
 Disable the global interrupt before we start processing the interrupt avoid
the
 crash.
 
 Disable System interrupt in isr to avoid the crash below.
 
 Unable to handle kernel NULL pointer dereference at virtual address 00c8
 pgd = ffc0007db000 [00c8] *pgd=fb006003,
 *pud=fb006003, *pmd=fb007003, *pte=006011001707
 Internal error: Oops: 9607 [#1] PREEMPT SMP Modules linked in:
 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.18.0-next-20141210+ #22 Hardware
 name: Samsung Exynos7 Espresso board based on EXYNOS7 (DT)
 task: ffc00075e5c0 ti: ffc00074c000 task.ti: ffc00074c000 PC is at
 exynos4_jpeg_irq+0x30/0x15c LR is at exynos4_jpeg_irq+0x2c/0x15c pc :
 [ffc00040873c] lr : [ffc000408738] pstate: 81c5 sp :
 ffc00074fc60
 x29: ffc00074fc60 x28: 00404000
 x27: ffc000673928 x26: ffc000673940
 x25: ffc0007a030c x24: ffc0bb20a400
 x23: 0030 x22: ffc0ba56ba40
 x21:  x20: 
 x19: ffc0ba56ba18 x18: 
 x17:  x16: ffc00018b508
 x15:  x14: 
 x13: 00989680 x12: 00989680
 x11: 0004 x10: 0101010101010101
 x9 : 0020a285a9ea x8 : ffc0007af880
 x7 : ffc0bac001a8 x6 : ffc0bac0
 x5 : fffa x4 : ffc00040870c
 x3 : 0003 x2 : 00010003
 x1 : 00010002 x0 : 
 
 Process swapper/0 (pid: 0, stack limit = 0xffc00074c058)
 Stack: (0xffc00074fc60 to 0xffc00075)
 fc60: 0074fca0 ffc0 000e4508 ffc0 bb225300 ffc0 bb20a494 ffc0
 fc80:     0030  000f8c6c ffc0
 fca0: 0074fd00 ffc0 000e4644 ffc0 bb20a400 ffc0 bb20a494 ffc0
 fcc0: 00776a00 ffc0 00670da8 ffc0   0001 
 fce0: bb008000 ffc0 407db000  00081230 ffc0 000e4638 ffc0
 fd00: 0074fd40 ffc0 000e7338 ffc0 bb20a400 ffc0 bb20a494 ffc0
 fd20: 00776a00 ffc0 000e7280 ffc0 bb225300 ffc0 000e72e0 ffc0
 fd40: 0074fd70 ffc0 000e3d60 ffc0 0030  00743000 ffc0
 fd60: 0066e000 ffc0 006c2000 ffc0 0074fd90 ffc0 000e3e90 ffc0
 fd80: 007437c8 ffc0 000e3e6c ffc0 0074fdf0 ffc0 00082404 ffc0
 fda0: 0074fe20 ffc0 0075a000 ffc0 200c ff80 2010 ff80
 fdc0: 6145  00672cc8 ffc0 407d9000  befb9b40 ffc0
 fde0: 0074fe20 ffc0 01d2  0074ff40 ffc0 00085da8 ffc0
 fe00: 00758584 ffc0 0052c000 ffc0 0074ff40 ffc0 00087114 ffc0
 fe20:   0074ff50 ffc0 0067d760 ffc0 befb9adc ffc0
 fe40: 0001  d4414200 0020 d6a39c00 0020 007a6a18 ffc0
 fe60: 0075eb00 ffc0 0074fd60 ffc0 c185  0020 
 fe80: 0052d340 ffc0 0030  fffe 0fff  
 fea0: 0018b508 ffc0     00758584 ffc0
 fec0: 0052c000 ffc0 006c24e8 ffc0 007a030a ffc0 0001 
 fee0: 00672cc8 ffc0 407d9000  407db000  00081230 ffc0
 ff00: 4000 0040 0074ff40 ffc0 00087110 ffc0 0074ff40 ffc0
 ff20: 00087114 ffc0 6145  00758584 ffc0 0052c000 ffc0
 ff40: 0074ff50 ffc0 000db568 ffc0 0074ff90 ffc0 00515fdc ffc0
 ff60: 00758000 ffc0 007a3000 ffc0 007a3000 ffc0 befc8940 ffc0
 ff80: 4076  4000  0074ffb0 ffc0 006ff998 ffc0
 ffa0: 0002  006ff988 ffc0   400826c0 
 ffc0: 8f03a688  0e11  4800  410fd030
 
 ffe0: 0072c250 ffc0      
 Call trace:
 [ffc00040873c] exynos4_jpeg_irq+0x30/0x15c [ffce4504]
 handle_irq_event_percpu+0x6c/0x160
 [ffce4640] handle_irq_event+0x48/0x78 [ffce7334]
 handle_fasteoi_irq+0xe0/0x198 [ffce3d5c]
 generic_handle_irq+0x24/0x40 [ffce3e8c]
 __handle_domain_irq+0x80/0xf0 [ffc82400] gic_handle_irq+0x30/0x80
 Exception 

RE: [PATCH v2 0/2] Adding support for Exynos7 Jpeg variant

2015-01-04 Thread Tony K Nadackal
Gentle Reminder.

Thanks,
Tony

 -Original Message-
 From: Tony K Nadackal [mailto:tony...@samsung.com]
 Sent: Friday, December 19, 2014 1:08 PM
 To: linux-media@vger.kernel.org; linux-arm-ker...@lists.infradead.org; linux-
 samsung-...@vger.kernel.org; devicet...@vger.kernel.org
 Cc: mche...@osg.samsung.com; j.anaszew...@samsung.com;
 kg...@kernel.org; k.deb...@samsung.com; s.nawro...@samsung.com;
 robh...@kernel.org; mark.rutl...@arm.com; bhusha...@samsung.com; Tony K
 Nadackal
 Subject: [PATCH v2 0/2] Adding support for Exynos7 Jpeg variant
 
 This patch series adds support for Exynos7 JPEG variant, which is mostly same
as
 Exynos4 JPEG variants with few register configuration differences.
 At the same time it modifies #define based JPEG variant macros into enum.
 Patch 1/2 fixes possible bug in setting INT EN register, where
 EXYNOS4_INT_EN_REG was getting modified without reading before.
 
 Patch set v1 and related discussion can be found here [1].
 
 [1]: http://www.spinics.net/lists/linux-samsung-soc/msg40308.html
 
 Changes since v1:
  - Added new patch 1/2 which fixes issues in writing EXYNOS4_INT_EN_REG.
  - Converted JPEG variant macros into enum as suggested by Jacek Anaszewski.
 
 
 Tony K Nadackal (2):
   [media] s5p-jpeg: Fix modification sequence of interrupt enable
 register
   [media] s5p-jpeg: Adding Exynos7 Jpeg variant
 
  .../bindings/media/exynos-jpeg-codec.txt   |  2 +-
  drivers/media/platform/s5p-jpeg/jpeg-core.c| 61 ++---
 -
  drivers/media/platform/s5p-jpeg/jpeg-core.h| 10 ++--
  drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c  | 33 +++-
 drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.h  |  8 +--
  drivers/media/platform/s5p-jpeg/jpeg-regs.h| 17 --
  6 files changed, 95 insertions(+), 36 deletions(-)
 
 --
 2.2.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


RE: [PATCH] [media] s5p-jpeg: Initialize cb and cr to zero.

2015-01-04 Thread Tony K Nadackal
Gentle Reminder.

Thanks,
Tony

 -Original Message-
 From: Tony K Nadackal [mailto:tony...@samsung.com]
 Sent: Wednesday, December 17, 2014 12:51 PM
 To: linux-media@vger.kernel.org; linux-arm-ker...@lists.infradead.org; linux-
 samsung-...@vger.kernel.org
 Cc: mche...@osg.samsung.com; j.anaszew...@samsung.com;
 kg...@kernel.org; k.deb...@samsung.com; s.nawro...@samsung.com;
 bhusha...@samsung.com; Tony K Nadackal
 Subject: [PATCH] [media] s5p-jpeg: Initialize cb and cr to zero.
 
 To avoid garbage value written into image base address planes, initialize cb
and cr
 of structure s5p_jpeg_addr to zero.
 
 Signed-off-by: Tony K Nadackal tony...@samsung.com
 ---
 This patch is created and tested on top of linux-next-20141210.
 It can be cleanly applied on media-next and kgene/for-next.
 
  drivers/media/platform/s5p-jpeg/jpeg-core.c | 3 +++
  1 file changed, 3 insertions(+)
 
 diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c
 b/drivers/media/platform/s5p-jpeg/jpeg-core.c
 index 91bd3e6..54fa5d9 100644
 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c
 +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c
 @@ -1845,6 +1845,9 @@ static void exynos4_jpeg_set_img_addr(struct
 s5p_jpeg_ctx *ctx)
   struct s5p_jpeg_addr jpeg_addr;
   u32 pix_size, padding_bytes = 0;
 
 + jpeg_addr.cb = 0;
 + jpeg_addr.cr = 0;
 +
   pix_size = ctx-cap_q.w * ctx-cap_q.h;
 
   if (ctx-mode == S5P_JPEG_ENCODE) {
 --
 2.2.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


cron job: media_tree daily build: ERRORS

2015-01-04 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 Jan  5 04:00:08 CET 2015
git branch: test
git hash:   99f3cd52aee21091ce62442285a68873e3be833f
gcc version:i686-linux-gcc (GCC) 4.9.1
sparse version: v0.5.0-41-g6c2d743
smatch version: 0.4.1-3153-g7d56ab3
host hardware:  x86_64
host os:3.17-3.slh.2-amd64

linux-git-arm-at91: OK
linux-git-arm-davinci: OK
linux-git-arm-exynos: OK
linux-git-arm-mx: OK
linux-git-arm-omap: OK
linux-git-arm-omap1: OK
linux-git-arm-pxa: OK
linux-git-blackfin: OK
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: OK
linux-git-powerpc64: OK
linux-git-sh: OK
linux-git-x86_64: OK
linux-2.6.32.27-i686: ERRORS
linux-2.6.33.7-i686: ERRORS
linux-2.6.34.7-i686: ERRORS
linux-2.6.35.9-i686: ERRORS
linux-2.6.36.4-i686: ERRORS
linux-2.6.37.6-i686: ERRORS
linux-2.6.38.8-i686: ERRORS
linux-2.6.39.4-i686: ERRORS
linux-3.0.60-i686: ERRORS
linux-3.1.10-i686: ERRORS
linux-3.2.37-i686: ERRORS
linux-3.3.8-i686: ERRORS
linux-3.4.27-i686: ERRORS
linux-3.5.7-i686: ERRORS
linux-3.6.11-i686: ERRORS
linux-3.7.4-i686: ERRORS
linux-3.8-i686: ERRORS
linux-3.9.2-i686: ERRORS
linux-3.10.1-i686: ERRORS
linux-3.11.1-i686: ERRORS
linux-3.12.23-i686: ERRORS
linux-3.13.11-i686: ERRORS
linux-3.14.9-i686: ERRORS
linux-3.15.2-i686: ERRORS
linux-3.16-i686: ERRORS
linux-3.17-i686: ERRORS
linux-3.18-i686: ERRORS
linux-2.6.32.27-x86_64: ERRORS
linux-2.6.33.7-x86_64: ERRORS
linux-2.6.34.7-x86_64: ERRORS
linux-2.6.35.9-x86_64: ERRORS
linux-2.6.36.4-x86_64: ERRORS
linux-2.6.37.6-x86_64: ERRORS
linux-2.6.38.8-x86_64: ERRORS
linux-2.6.39.4-x86_64: ERRORS
linux-3.0.60-x86_64: ERRORS
linux-3.1.10-x86_64: ERRORS
linux-3.2.37-x86_64: ERRORS
linux-3.3.8-x86_64: ERRORS
linux-3.4.27-x86_64: ERRORS
linux-3.5.7-x86_64: ERRORS
linux-3.6.11-x86_64: ERRORS
linux-3.7.4-x86_64: ERRORS
linux-3.8-x86_64: ERRORS
linux-3.9.2-x86_64: ERRORS
linux-3.10.1-x86_64: ERRORS
linux-3.11.1-x86_64: ERRORS
linux-3.12.23-x86_64: ERRORS
linux-3.13.11-x86_64: ERRORS
linux-3.14.9-x86_64: ERRORS
linux-3.15.2-x86_64: ERRORS
linux-3.16-x86_64: ERRORS
linux-3.17-x86_64: ERRORS
linux-3.18-x86_64: ERRORS
apps: OK
spec-git: OK
sparse: WARNINGS
smatch: ERRORS

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