Re: Question about implementation of __qbuf_dmabuf() in videobuf2-core.c

2014-04-23 Thread Hans Verkuil
On 04/23/2014 02:18 AM, n179911 wrote:
 In __qbuf_dmabuf(), it check the length and size of the buffer being
 queued, like this:
 http://lxr.free-electrons.com/source/drivers/media/v4l2-core/videobuf2-core.c#L1158
 
 My question is why the range check is liked this:
 
 1158  if (planes[plane].length  planes[plane].data_offset +
 1159 q-plane_sizes[plane]) {

It's a bug. It should be:

if (planes[plane].length  q-plane_sizes[plane]) {

This has been fixed in our upstream code and will appear in 3.16.

Regards,

Hans

 .
 
 Isn't  planes[plane].length + planes[plane].data_offset equals to
 q-plane_sizes[plane]?
 
 So the check should be?
  if (planes[plane].length  q-plane_sizes[plane] - planes[plane].data_offset)
 
 Please tell me what am I missing?
 
 Thank you
 --
 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


[RFC PATCH 2/2 with seqcount v3] reservation: add suppport for read-only access using rcu

2014-04-23 Thread Maarten Lankhorst

This adds 4 more functions to deal with rcu.

reservation_object_get_fences_rcu() will obtain the list of shared
and exclusive fences without obtaining the ww_mutex.

reservation_object_wait_timeout_rcu() will wait on all fences of the
reservation_object, without obtaining the ww_mutex.

reservation_object_test_signaled_rcu() will test if all fences of the
reservation_object are signaled without using the ww_mutex.

reservation_object_get_excl() is added because touching the fence_excl
member directly will trigger a sparse warning.

Signed-off-by: Maarten Lankhorst maarten.lankho...@canonical.com
---
Using seqcount and fixing some lockdep bugs.
Changes since v2:
- Fix some crashes, remove some unneeded barriers when provided by seqcount 
writes
- Fix code to work correctly with sparse's RCU annotations.
- Create a global string for the seqcount lock to make lockdep happy.

Can I get this version reviewed? If it looks correct I'll mail the full series
because it's intertwined with the TTM conversion to use this code.

See http://cgit.freedesktop.org/~mlankhorst/linux/log/?h=vmwgfx_wip
---
diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c
index d89a98d2c37b..0df673f812eb 100644
--- a/drivers/base/dma-buf.c
+++ b/drivers/base/dma-buf.c
@@ -137,7 +137,7 @@ static unsigned int dma_buf_poll(struct file *file, 
poll_table *poll)
struct reservation_object_list *fobj;
struct fence *fence_excl;
unsigned long events;
-   unsigned shared_count;
+   unsigned shared_count, seq;
 
 	dmabuf = file-private_data;

if (!dmabuf || !dmabuf-resv)
@@ -151,14 +151,20 @@ static unsigned int dma_buf_poll(struct file *file, 
poll_table *poll)
if (!events)
return 0;
 
-	ww_mutex_lock(resv-lock, NULL);

+retry:
+   seq = read_seqcount_begin(resv-seq);
+   rcu_read_lock();
 
-	fobj = resv-fence;

-   if (!fobj)
-   goto out;
-
-   shared_count = fobj-shared_count;
-   fence_excl = resv-fence_excl;
+   fobj = rcu_dereference(resv-fence);
+   if (fobj)
+   shared_count = fobj-shared_count;
+   else
+   shared_count = 0;
+   fence_excl = rcu_dereference(resv-fence_excl);
+   if (read_seqcount_retry(resv-seq, seq)) {
+   rcu_read_unlock();
+   goto retry;
+   }
 
 	if (fence_excl  (!(events  POLLOUT) || shared_count == 0)) {

struct dma_buf_poll_cb_t *dcb = dmabuf-cb_excl;
@@ -176,14 +182,20 @@ static unsigned int dma_buf_poll(struct file *file, 
poll_table *poll)
spin_unlock_irq(dmabuf-poll.lock);
 
 		if (events  pevents) {

-   if (!fence_add_callback(fence_excl, dcb-cb,
+   if (!fence_get_rcu(fence_excl)) {
+   /* force a recheck */
+   events = ~pevents;
+   dma_buf_poll_cb(NULL, dcb-cb);
+   } else if (!fence_add_callback(fence_excl, dcb-cb,
   dma_buf_poll_cb)) {
events = ~pevents;
+   fence_put(fence_excl);
} else {
/*
 * No callback queued, wake up any additional
 * waiters.
 */
+   fence_put(fence_excl);
dma_buf_poll_cb(NULL, dcb-cb);
}
}
@@ -205,13 +217,26 @@ static unsigned int dma_buf_poll(struct file *file, 
poll_table *poll)
goto out;
 
 		for (i = 0; i  shared_count; ++i) {

-   struct fence *fence = fobj-shared[i];
+   struct fence *fence = rcu_dereference(fobj-shared[i]);
 
+			if (!fence_get_rcu(fence)) {

+   /*
+* fence refcount dropped to zero, this means
+* that fobj has been freed
+*
+* call dma_buf_poll_cb and force a recheck!
+*/
+   events = ~POLLOUT;
+   dma_buf_poll_cb(NULL, dcb-cb);
+   break;
+   }
if (!fence_add_callback(fence, dcb-cb,
dma_buf_poll_cb)) {
+   fence_put(fence);
events = ~POLLOUT;
break;
}
+   fence_put(fence);
}
 
 		/* No callback queued, wake up any additional waiters. */

@@ -220,7 +245,7 @@ static unsigned int dma_buf_poll(struct file *file, 
poll_table *poll)
}
 
 out:

-   

[GIT PULL for v3.16] smiapp: small fixes and cleanups

2014-04-23 Thread Sakari Ailus
Hi,

This patchset contains small cleanups and fixes to the smiapp driver from
the patchset smiapp and smiapp-pll quirk improvements, fixes. I'm sending
just the driver patches now; the PLL patches are still pending. The PLL
patches are dependent on the patches in this pull request.

The following changes since commit 701b57ee3387b8e3749845b02310b5625fbd8da0:

  [media] vb2: Add videobuf2-dvb support (2014-04-16 18:59:29 -0300)

are available in the git repository at:

  ssh://linuxtv.org/git/sailus/media_tree.git smiapp

for you to fetch changes up to 1e350219b4c70ce7bfa0a8b26c58db38357168ac:

  smiapp: Use %u for printing u32 value (2014-04-22 20:42:16 +0300)


Sakari Ailus (11):
  smiapp: Remove unused quirk register functionality
  smiapp: Rename SMIA_REG to SMIAPP_REG for consistency
  smiapp: Fix determining the need for 8-bit read access
  smiapp: Add a macro for constructing 8-bit quirk registers
  smiapp: Use I2C adapter ID and address in the sub-device name
  smiapp: Make PLL flags separate from regular quirk flags
  smiapp: Make PLL flags unsigned long
  smiapp: Make PLL (quirk) flags a function
  smiapp: Add register diversion quirk
  smiapp: Define macros for obtaining properties of register definitions
  smiapp: Use %u for printing u32 value

 drivers/media/i2c/smiapp-pll.h |2 +-
 drivers/media/i2c/smiapp/smiapp-core.c |   12 ++--
 drivers/media/i2c/smiapp/smiapp-quirk.c|   55 +++--
 drivers/media/i2c/smiapp/smiapp-quirk.h|   24 +---
 drivers/media/i2c/smiapp/smiapp-reg-defs.h |8 +--
 drivers/media/i2c/smiapp/smiapp-regs.c |   89 +++-
 drivers/media/i2c/smiapp/smiapp-regs.h |   19 +++---
 7 files changed, 105 insertions(+), 104 deletions(-)

-- 
Kind regards,

Sakari Ailus
e-mail: sakari.ai...@iki.fi XMPP: sai...@retiisi.org.uk
--
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] [media] s5p-mfc: Core support to add v8 decoder

2014-04-23 Thread Arun Kumar K
From: Kiran AVND avnd.ki...@samsung.com

This patch adds variant data and core support for
V8 decoder. This patch also adds the register definition
file for new firmware version v8 for MFC.

Signed-off-by: Kiran AVND avnd.ki...@samsung.com
Signed-off-by: Pawel Osciak posc...@chromium.org
Signed-off-by: Arun Kumar K arun...@samsung.com
---
 .../devicetree/bindings/media/s5p-mfc.txt  |3 +-
 drivers/media/platform/s5p-mfc/regs-mfc-v8.h   |   93 
 drivers/media/platform/s5p-mfc/s5p_mfc.c   |   30 +++
 drivers/media/platform/s5p-mfc/s5p_mfc_common.h|4 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_dec.c   |4 +
 drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c|   85 --
 6 files changed, 209 insertions(+), 10 deletions(-)
 create mode 100644 drivers/media/platform/s5p-mfc/regs-mfc-v8.h

diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt 
b/Documentation/devicetree/bindings/media/s5p-mfc.txt
index f418168..3e3c5f3 100644
--- a/Documentation/devicetree/bindings/media/s5p-mfc.txt
+++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt
@@ -10,7 +10,8 @@ Required properties:
   - compatible : value should be either one among the following
(a) samsung,mfc-v5 for MFC v5 present in Exynos4 SoCs
(b) samsung,mfc-v6 for MFC v6 present in Exynos5 SoCs
-   (b) samsung,mfc-v7 for MFC v7 present in Exynos5420 SoC
+   (c) samsung,mfc-v7 for MFC v7 present in Exynos5420 SoC
+   (d) samsung,mfc-v8 for MFC v8 present in Exynos5800 SoC
 
   - reg : Physical base address of the IP registers and length of memory
  mapped region.
diff --git a/drivers/media/platform/s5p-mfc/regs-mfc-v8.h 
b/drivers/media/platform/s5p-mfc/regs-mfc-v8.h
new file mode 100644
index 000..747907c
--- /dev/null
+++ b/drivers/media/platform/s5p-mfc/regs-mfc-v8.h
@@ -0,0 +1,93 @@
+/*
+ * Register definition file for Samsung MFC V8.x Interface (FIMV) driver
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef _REGS_MFC_V8_H
+#define _REGS_MFC_V8_H
+
+#include regs-mfc-v7.h
+
+/* Additional registers for v8 */
+#define S5P_FIMV_D_MVC_NUM_VIEWS_V80xf104
+#define S5P_FIMV_D_FIRST_PLANE_DPB_SIZE_V8 0xf144
+#define S5P_FIMV_D_SECOND_PLANE_DPB_SIZE_V80xf148
+#define S5P_FIMV_D_MV_BUFFER_SIZE_V8   0xf150
+
+#define S5P_FIMV_D_FIRST_PLANE_DPB_STRIDE_SIZE_V8  0xf138
+#define S5P_FIMV_D_SECOND_PLANE_DPB_STRIDE_SIZE_V8 0xf13c
+
+#define S5P_FIMV_D_FIRST_PLANE_DPB_V8  0xf160
+#define S5P_FIMV_D_SECOND_PLANE_DPB_V8 0xf260
+#define S5P_FIMV_D_MV_BUFFER_V80xf460
+
+#define S5P_FIMV_D_NUM_MV_V8   0xf134
+#define S5P_FIMV_D_INIT_BUFFER_OPTIONS_V8  0xf154
+
+#define S5P_FIMV_D_SCRATCH_BUFFER_ADDR_V8  0xf560
+#define S5P_FIMV_D_SCRATCH_BUFFER_SIZE_V8  0xf564
+
+#define S5P_FIMV_D_CPB_BUFFER_ADDR_V8  0xf5b0
+#define S5P_FIMV_D_CPB_BUFFER_SIZE_V8  0xf5b4
+#define S5P_FIMV_D_AVAILABLE_DPB_FLAG_LOWER_V8 0xf5bc
+#define S5P_FIMV_D_CPB_BUFFER_OFFSET_V80xf5c0
+#define S5P_FIMV_D_SLICE_IF_ENABLE_V8  0xf5c4
+#define S5P_FIMV_D_STREAM_DATA_SIZE_V8 0xf5d0
+
+/* Display information register */
+#define S5P_FIMV_D_DISPLAY_FRAME_WIDTH_V8  0xf600
+#define S5P_FIMV_D_DISPLAY_FRAME_HEIGHT_V8 0xf604
+
+/* Display status */
+#define S5P_FIMV_D_DISPLAY_STATUS_V8   0xf608
+
+#define S5P_FIMV_D_DISPLAY_FIRST_PLANE_ADDR_V8 0xf60c
+#define S5P_FIMV_D_DISPLAY_SECOND_PLANE_ADDR_V80xf610
+
+#define S5P_FIMV_D_DISPLAY_FRAME_TYPE_V8   0xf618
+#define S5P_FIMV_D_DISPLAY_CROP_INFO1_V8   0xf61c
+#define S5P_FIMV_D_DISPLAY_CROP_INFO2_V8   0xf620
+#define S5P_FIMV_D_DISPLAY_PICTURE_PROFILE_V8  0xf624
+
+/* Decoded picture information register */
+#define S5P_FIMV_D_DECODED_STATUS_V8   0xf644
+#define S5P_FIMV_D_DECODED_FIRST_PLANE_ADDR_V8 0xf648
+#define S5P_FIMV_D_DECODED_SECOND_PLANE_ADDR_V80xf64c
+#define S5P_FIMV_D_DECODED_THIRD_PLANE_ADDR_V8 0xf650
+#define S5P_FIMV_D_DECODED_FRAME_TYPE_V8   0xf654
+#define S5P_FIMV_D_DECODED_NAL_SIZE_V8  0xf664
+
+/* Returned value register for specific setting */
+#define S5P_FIMV_D_RET_PICTURE_TAG_TOP_V8  0xf674
+#define S5P_FIMV_D_RET_PICTURE_TAG_BOT_V8  0xf678
+#define S5P_FIMV_D_MVC_VIEW_ID_V8  0xf6d8
+
+/* SEI related information */
+#define S5P_FIMV_D_FRAME_PACK_SEI_AVAIL_V8 0xf6dc
+
+/* MFCv8 Context buffer sizes */
+#define MFC_CTX_BUF_SIZE_V8(30 * SZ_1K)/*  30KB */
+#define MFC_H264_DEC_CTX_BUF_SIZE_V8   (2 * SZ_1M) /*  2MB */
+#define MFC_OTHER_DEC_CTX_BUF_SIZE_V8  (20 * SZ_1K)/*  20KB */
+
+/* Buffer size defines */

[PATCH 3/3] [media] s5p-mfc: Rename IS_MFCV7 macro

2014-04-23 Thread Arun Kumar K
With the inclusion of MFCv8 which reuses the v7 code,
the macro IS_MFCV7 is modified to IS_MFCV7_PLUS.

Signed-off-by: Arun Kumar K arun...@samsung.com
---
 drivers/media/platform/s5p-mfc/s5p_mfc_common.h |2 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_enc.c|2 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c |   14 +++---
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h 
b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
index f0e63f5..d64b680 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
@@ -703,7 +703,7 @@ void set_work_bit_irqsave(struct s5p_mfc_ctx *ctx);
(dev-variant-port_num ? 1 : 0) : 0) : 0)
 #define IS_TWOPORT(dev)(dev-variant-port_num == 2 ? 1 : 0)
 #define IS_MFCV6_PLUS(dev) (dev-variant-version = 0x60 ? 1 : 0)
-#define IS_MFCV7(dev)  (dev-variant-version = 0x70 ? 1 : 0)
+#define IS_MFCV7_PLUS(dev) (dev-variant-version = 0x70 ? 1 : 0)
 #define IS_MFCV8(dev)  (dev-variant-version = 0x80 ? 1 : 0)
 
 #endif /* S5P_MFC_COMMON_H_ */
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c 
b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
index f8c7053..a9a23e1 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
@@ -1045,7 +1045,7 @@ static int vidioc_try_fmt(struct file *file, void *priv, 
struct v4l2_format *f)
return -EINVAL;
}
 
-   if (!IS_MFCV7(dev)  (fmt-fourcc == V4L2_PIX_FMT_VP8)) {
+   if (!IS_MFCV7_PLUS(dev)  (fmt-fourcc == V4L2_PIX_FMT_VP8)) {
mfc_err(VP8 is supported only in MFC v7\n);
return -EINVAL;
}
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c 
b/drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c
index 4324f2e..d0705b1 100644
--- a/drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c
+++ b/drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c
@@ -120,7 +120,7 @@ static int s5p_mfc_alloc_codec_buffers_v6(struct 
s5p_mfc_ctx *ctx)
(ctx-mv_count * ctx-mv_size);
break;
case S5P_MFC_CODEC_MPEG4_DEC:
-   if (IS_MFCV7(dev)) {
+   if (IS_MFCV7_PLUS(dev)) {
ctx-scratch_buf_size =
S5P_FIMV_SCRATCH_BUF_SIZE_MPEG4_DEC_V7(
mb_width,
@@ -373,7 +373,7 @@ static void s5p_mfc_enc_calc_src_size_v6(struct s5p_mfc_ctx 
*ctx)
ctx-chroma_size = ALIGN((mb_width * mb_height) * 128, 256);
 
/* MFCv7 needs pad bytes for Luma and Chroma */
-   if (IS_MFCV7(ctx-dev)) {
+   if (IS_MFCV7_PLUS(ctx-dev)) {
ctx-luma_size += MFC_LUMA_PAD_BYTES_V7;
ctx-chroma_size += MFC_CHROMA_PAD_BYTES_V7;
}
@@ -1312,7 +1312,7 @@ static bool s5p_mfc_is_v6_new(struct s5p_mfc_dev *dev)
unsigned long cur_fw, v6_new_fw;
unsigned int y, m, d;
 
-   if (IS_MFCV7(dev))
+   if (IS_MFCV7_PLUS(dev))
return false;
 
y = bcd2bin((dev-ver  16)  0xFF) + 2000;
@@ -1357,7 +1357,7 @@ static int s5p_mfc_init_decode_v6(struct s5p_mfc_ctx *ctx)
WRITEL(ctx-display_delay, mfc_regs-d_display_delay);
}
 
-   if (IS_MFCV7(dev) || s5p_mfc_is_v6_new(dev)) {
+   if (IS_MFCV7_PLUS(dev) || s5p_mfc_is_v6_new(dev)) {
WRITEL(reg, mfc_regs-d_dec_options);
reg = 0;
}
@@ -1372,7 +1372,7 @@ static int s5p_mfc_init_decode_v6(struct s5p_mfc_ctx *ctx)
if (ctx-dst_fmt-fourcc == V4L2_PIX_FMT_NV12MT_16X16)
reg |= (0x1  S5P_FIMV_D_OPT_TILE_MODE_SHIFT_V6);
 
-   if (IS_MFCV7(dev) || s5p_mfc_is_v6_new(dev))
+   if (IS_MFCV7_PLUS(dev) || s5p_mfc_is_v6_new(dev))
WRITEL(reg, mfc_regs-d_init_buffer_options);
else
WRITEL(reg, mfc_regs-d_dec_options);
@@ -1460,7 +1460,7 @@ static int s5p_mfc_init_encode_v6(struct s5p_mfc_ctx *ctx)
}
 
/* Set stride lengths for v7  above */
-   if (IS_MFCV7(dev)) {
+   if (IS_MFCV7_PLUS(dev)) {
WRITEL(ctx-img_width, mfc_regs-e_source_first_plane_stride);
WRITEL(ctx-img_width, mfc_regs-e_source_second_plane_stride);
}
@@ -2202,7 +2202,7 @@ const struct s5p_mfc_regs 
*s5p_mfc_init_regs_v6_plus(struct s5p_mfc_dev *dev)
R(e_h264_frame_packing_sei_info,
S5P_FIMV_E_H264_FRAME_PACKING_SEI_INFO_V6);
 
-   if (!IS_MFCV7(dev))
+   if (!IS_MFCV7_PLUS(dev))
goto done;
 
/* Initialize registers used in MFC v7+ */
-- 
1.7.9.5

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

[PATCH 0/3] Add MFCv8 support

2014-04-23 Thread Arun Kumar K
This patchset adds MFCv8 support to the s5p-mfc driver.
MFCv8 has the same operation sequence as that of v6+, but
there is some shuffling of the registers happened. So to
re-use the exisiting code, register access uses context
variables instead of macros.
The patchset modifies opr_v6 file to use register variables
and is tested on mfc v6, v7 and v8 based boards.

The patchset is based on the following set of patches
posted for MFC which are currently under review:

[media] s5p-mfc: Add support for resolution change event
v4l: Add resolution change event.
[media] s5p-mfc: Don't allocate codec buffers on STREAMON.
[media] s5p-mfc: Extract open/close MFC instance commands.
[media] s5p-mfc: Fixes for decode REQBUFS.
[media] s5p-mfc: Copy timestamps only when a frame is produced.
[media] s5p-mfc: add init buffer cmd to MFCV6
[media] s5p-mfc: Don't try to resubmit VP8 bitstream buffer for decode.
[media] s5p-mfc: Add a control for IVF format for VP8 encoder

Arun Kumar K (1):
  [media] s5p-mfc: Rename IS_MFCV7 macro

Kiran AVND (2):
  [media] s5p-mfc: Add variants to access mfc registers
  [media] s5p-mfc: Core support to add v8 decoder

 .../devicetree/bindings/media/s5p-mfc.txt  |3 +-
 drivers/media/platform/s5p-mfc/regs-mfc-v8.h   |   93 +++
 drivers/media/platform/s5p-mfc/s5p_mfc.c   |   31 +
 drivers/media/platform/s5p-mfc/s5p_mfc_common.h|7 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_dec.c   |4 +
 drivers/media/platform/s5p-mfc/s5p_mfc_enc.c   |2 +-
 drivers/media/platform/s5p-mfc/s5p_mfc_opr.c   |6 +
 drivers/media/platform/s5p-mfc/s5p_mfc_opr.h   |  254 +++
 drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c|  792 +---
 drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.h|7 +-
 10 files changed, 926 insertions(+), 273 deletions(-)
 create mode 100644 drivers/media/platform/s5p-mfc/regs-mfc-v8.h

-- 
1.7.9.5

--
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] Documentation: Update cardlists

2014-04-23 Thread Mauro Carvalho Chehab
Two new devices were added, but the cardlists weren't updated.

Signed-off-by: Mauro Carvalho Chehab m.che...@samsung.com
---
 Documentation/video4linux/CARDLIST.bttv   | 1 +
 Documentation/video4linux/CARDLIST.em28xx | 1 +
 2 files changed, 2 insertions(+)

diff --git a/Documentation/video4linux/CARDLIST.bttv 
b/Documentation/video4linux/CARDLIST.bttv
index 2f6e93597ce0..b092c0a14df2 100644
--- a/Documentation/video4linux/CARDLIST.bttv
+++ b/Documentation/video4linux/CARDLIST.bttv
@@ -164,3 +164,4 @@
 163 - Bt848 Capture 14MHz
 164 - CyberVision CV06 (SV)
 165 - Kworld V-Stream Xpert TV PVR878
+166 - PCI-8604PW
diff --git a/Documentation/video4linux/CARDLIST.em28xx 
b/Documentation/video4linux/CARDLIST.em28xx
index e085b1243b45..5a3ddcd340d3 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -92,3 +92,4 @@
  91 - SpeedLink Vicious And Devine Laplace webcam (em2765)
[1ae7:9003,1ae7:9004]
  92 - PCTV DVB-S2 Stick (461e) (em28178)
  93 - KWorld USB ATSC TV Stick UB435-Q V3  (em2874)[1b80:e34c]
+ 94 - PCTV tripleStick (292e)  (em28178)
-- 
1.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


Re: [GIT PULL 3.16] 2013:025f PCTV tripleStick (292e)

2014-04-23 Thread Mauro Carvalho Chehab
Em Wed, 23 Apr 2014 05:13:27 +0300
Antti Palosaari cr...@iki.fi escreveu:

 Hardware is Empia EM28178, Silicon Labs Si2168, Silicon Labs Si2157. 
 There is on/off external LNA too. Two new drivers for Silicon Labs DTV 
 chipset.
 
 Demod needs firmware, which could be found from driver CD version 6.4.8.984.
 /TVC 6.4.8/Driver/PCTV Empia/emOEM.sys
 dd if=emOEM.sys ibs=1 skip=1089416 count=2720 of=dvb-demod-si2168-01.fw
 md5sum dvb-demod-si2168-01.fw
 87c317e0b75ad49c2f2cbf35572a8093  dvb-demod-si2168-01.fw

Not sure if you did it already, but could you please put the above
instructions on our Wiki page?

It would be better to add it at the DVB get firmware script, but it seems
that PCTV didn't put the driver yet on their website.

 Demod and tuner power-management is broken - chips are not put sleep at 
 all. It is same for windows driver too. Fortunately device eats only 
 around 200mA from USB when active. Will be fixed if and when windows 
 drivers are fixed.
 
 Here is some internals from device.
 http://blog.palosaari.fi/2014/04/naked-hardware-15-pctv-triplestick-292e.html
 
 
 
 The following changes since commit a83b93a7480441a47856dc9104bea970e84cda87:
 
[media] em28xx-dvb: fix PCTV 461e tuner I2C binding (2014-03-31 
 08:02:16 -0300)
 
 are available in the git repository at:
 
git://linuxtv.org/anttip/media_tree.git pctv_292e
 
 for you to fetch changes up to 11c59dbb8a399558a2450a1cf64ff7b7e4157c45:
 
em28xx: PCTV tripleStick (292e) LNA support (2014-04-23 04:56:54 +0300)
 
 
 Antti Palosaari (12):
si2157: Silicon Labs Si2157 silicon tuner driver
si2168: Silicon Labs Si2168 DVB-T/T2/C demod driver
em28xx: add [2013:025f] PCTV tripleStick (292e)
si2168: add support for DVB-T2
si2157: extend frequency range for DVB-C
si2168: add support for DVB-C (annex A version)
si2157: add copyright and license
si2168: add copyright and license
MAINTAINERS: add si2168 driver
MAINTAINERS: add si2157 driver
si2168: relax demod lock checks a little
em28xx: PCTV tripleStick (292e) LNA support
 
   MAINTAINERS   |  20 
   drivers/media/dvb-frontends/Kconfig   |   7 ++
   drivers/media/dvb-frontends/Makefile  |   1 +
   drivers/media/dvb-frontends/si2168.c  | 760 
 +++
   drivers/media/dvb-frontends/si2168.h  |  39 +++
   drivers/media/dvb-frontends/si2168_priv.h |  46 +
   drivers/media/tuners/Kconfig  |   7 ++
   drivers/media/tuners/Makefile |   1 +
   drivers/media/tuners/si2157.c | 260 
 ++
   drivers/media/tuners/si2157.h |  34 ++
   drivers/media/tuners/si2157_priv.h|  37 +++
   drivers/media/usb/em28xx/Kconfig  |   2 +
   drivers/media/usb/em28xx/em28xx-cards.c   |  25 +
   drivers/media/usb/em28xx/em28xx-dvb.c |  89 
   drivers/media/usb/em28xx/em28xx.h |   1 +
   15 files changed, 1329 insertions(+)
   create mode 100644 drivers/media/dvb-frontends/si2168.c
   create mode 100644 drivers/media/dvb-frontends/si2168.h
   create mode 100644 drivers/media/dvb-frontends/si2168_priv.h
   create mode 100644 drivers/media/tuners/si2157.c
   create mode 100644 drivers/media/tuners/si2157.h
   create mode 100644 drivers/media/tuners/si2157_priv.h
 


-- 

Regards,
Mauro
--
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 ] fix mceusb endpoint type identification/handling

2014-04-23 Thread Sean Young
On Tue, Apr 22, 2014 at 05:49:03PM -0500, Matt DeVillier wrote:
 From: Matt DeVillier matt.devill...@gmail.com
 
 Change the I/O endpoint handling of the mceusb driver to respect the
 endpoint type reported by device (bulk/interrupt), rather than
 treating all endpoints as type interrupt, which breaks devices using
 bulk endpoints when connected to a xhci controller.  Accordingly,
 change the function calls to initialize an endpoint's transfer pipe
 and urb handlers to use the correct function based on the endpoint
 type.
 
 Signed-off-by: Matt DeVillier matt.devill...@gmail.com
 ---
 This is a continuation of the work started in patch #21648
 Patch compiled and tested against linux-media git master. Backported
 and tested against 3.14.1 stable as well.
 ---
 --- mceusb.c.orig2014-04-22 13:48:51.186259472 -0500
 +++ mceusb.c2014-04-22 14:46:12.378347584 -0500
 @@ -747,11 +747,17 @@ static void mce_request_packet(struct mc
  }
 
  /* outbound data */
 -pipe = usb_sndintpipe(ir-usbdev,
 -  ir-usb_ep_out-bEndpointAddress);
 -usb_fill_int_urb(async_urb, ir-usbdev, pipe,
 -async_buf, size, mce_async_callback,
 -ir, ir-usb_ep_out-bInterval);
 +if ((ir-usb_ep_out-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 +== USB_ENDPOINT_XFER_INT) {
 +pipe = usb_sndintpipe(ir-usbdev,
 ir-usb_ep_out-bEndpointAddress);

The lines are wrapped and tabs have been replaced with spaces; your mail
client messed with your patch.

See
https://www.kernel.org/doc/Documentation/email-clients.txt

 +usb_fill_int_urb(async_urb, ir-usbdev, pipe, async_buf,
 + size, mce_async_callback, ir,
 ir-usb_ep_out-bInterval);
 +} else {
 +pipe = usb_sndbulkpipe(ir-usbdev,
 + ir-usb_ep_out-bEndpointAddress);
 +usb_fill_bulk_urb(async_urb, ir-usbdev, pipe, async_buf,
 + size, mce_async_callback, ir);
 +}
  memcpy(async_buf, data, size);
 
  } else if (urb_type == MCEUSB_RX) {
 @@ -1271,38 +1277,48 @@ static int mceusb_dev_probe(struct usb_i
 
  if ((ep_in == NULL)
   ((ep-bEndpointAddress  USB_ENDPOINT_DIR_MASK)
 -== USB_DIR_IN)
 - (((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 -== USB_ENDPOINT_XFER_BULK)
 -|| ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 -== USB_ENDPOINT_XFER_INT))) {
 -
 -ep_in = ep;
 -ep_in-bmAttributes = USB_ENDPOINT_XFER_INT;
 -ep_in-bInterval = 1;
 -dev_dbg(intf-dev, acceptable inbound endpoint found);
 +== USB_DIR_IN)) {
 +
 +if ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 +== USB_ENDPOINT_XFER_BULK) {
 +
 +ep_in = ep;
 +mce_dbg(intf-dev, acceptable bulk inbound
 endpoint found\n);
 +} else if ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 +== USB_ENDPOINT_XFER_INT) {
 +
 +ep_in = ep;
 +ep_in-bInterval = 1;
 +mce_dbg(intf-dev, acceptable interrupt inbound
 endpoint found\n);
 +}
  }
 
  if ((ep_out == NULL)
   ((ep-bEndpointAddress  USB_ENDPOINT_DIR_MASK)
 -== USB_DIR_OUT)
 - (((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 -== USB_ENDPOINT_XFER_BULK)
 -|| ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 -== USB_ENDPOINT_XFER_INT))) {
 -
 -ep_out = ep;
 -ep_out-bmAttributes = USB_ENDPOINT_XFER_INT;
 -ep_out-bInterval = 1;
 -dev_dbg(intf-dev, acceptable outbound endpoint found);
 +== USB_DIR_OUT)) {
 +if ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 +== USB_ENDPOINT_XFER_BULK) {
 +ep_out = ep;
 +mce_dbg(intf-dev, acceptable bulk outbound
 endpoint found\n);
 +} else if ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 +== USB_ENDPOINT_XFER_INT) {
 +ep_out = ep;
 +ep_out-bInterval = 1;
 +mce_dbg(intf-dev, acceptable interrupt outbound
 endpoint found\n);
 +}
  }
  }
 -if (ep_in == NULL) {
 +if (ep_in == NULL || ep_out == NULL) {

Although I think this is correct this is unrelated to the rest of the patch.

  dev_dbg(intf-dev, inbound and/or endpoint not found);
  return -ENODEV;
  }
 
 -pipe = usb_rcvintpipe(dev, ep_in-bEndpointAddress);
 +if ((ep_in-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
 +== USB_ENDPOINT_XFER_INT) {
 +pipe = usb_rcvintpipe(dev, ep_in-bEndpointAddress);
 +} else {
 +pipe = usb_rcvbulkpipe(dev, ep_in-bEndpointAddress);
 +}
  maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
 
  ir = 

[GIT PULL FOR v3.16] saa7134 fixes and vb2 conversion

2014-04-23 Thread Hans Verkuil
Hi Mauro,

I have attempted to split up the saa7134 vb2 conversion a bit more, but I don't
see how I can reduce it further, except by disabling parts of the driver, then
converting each part and enabling it again (i.e., disable dvb  empress, convert
just video/vbi to vb2, then empress, then dvb).

But I think that's rather ugly since a bisect might end up with a partially
crippled driver.

It's the same as what I posted a week ago, except rebased to the latest master
branch:

http://www.spinics.net/lists/linux-media/msg75893.html

If you still want more changes, then please see if you can at least merge the
first 9 patches.

Regards,

Hans

The following changes since commit ce9c22443e77594531be84ba8d523f4148ba09fe:

  [media] vb2: fix compiler warning (2014-04-23 10:13:57 -0300)

are available in the git repository at:

  git://linuxtv.org/hverkuil/media_tree.git for-v3.16c

for you to fetch changes up to e37d96689c22fd547ed4153ae8a67c26c54ae679:

  saa7134: add saa7134_userptr module option to enable USERPTR (2014-04-23 
15:42:45 +0200)


Hans Verkuil (11):
  saa7134: fix regression with tvtime
  saa7134: coding style cleanups.
  saa7134: drop abuse of low-level videobuf functions
  saa7134: swap ts_init_encoder and ts_reset_encoder
  saa7134: store VBI hlen/vlen globally
  saa7134: remove fmt from saa7134_buf
  saa7134: rename empress_tsq to empress_vbq
  saa7134: rename vbi/cap to vbi_vbq/cap_vbq
  saa7134: move saa7134_pgtable to saa7134_dmaqueue
  saa7134: convert to vb2
  saa7134: add saa7134_userptr module option to enable USERPTR

 drivers/media/pci/saa7134/Kconfig   |   4 +-
 drivers/media/pci/saa7134/saa7134-alsa.c| 106 +++--
 drivers/media/pci/saa7134/saa7134-core.c| 130 
 drivers/media/pci/saa7134/saa7134-dvb.c |  50 ---
 drivers/media/pci/saa7134/saa7134-empress.c | 186 +--
 drivers/media/pci/saa7134/saa7134-i2c.c |   7 -
 drivers/media/pci/saa7134/saa7134-reg.h |   7 -
 drivers/media/pci/saa7134/saa7134-ts.c  | 191 +---
 drivers/media/pci/saa7134/saa7134-tvaudio.c |   7 -
 drivers/media/pci/saa7134/saa7134-vbi.c | 175 ++
 drivers/media/pci/saa7134/saa7134-video.c   | 652 
+---
 drivers/media/pci/saa7134/saa7134.h | 107 +++--
 12 files changed, 732 insertions(+), 890 deletions(-)
--
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] v4l2-pci-skeleton: fix typo

2014-04-23 Thread Hans Verkuil
Signed-off-by: Hans Verkuil hans.verk...@cisco.com

diff --git a/Documentation/video4linux/v4l2-pci-skeleton.c 
b/Documentation/video4linux/v4l2-pci-skeleton.c
index 53dd346..46904fe 100644
--- a/Documentation/video4linux/v4l2-pci-skeleton.c
+++ b/Documentation/video4linux/v4l2-pci-skeleton.c
@@ -174,7 +174,7 @@ static int queue_setup(struct vb2_queue *vq, const struct 
v4l2_format *fmt,
 * You cannot use read() with FIELD_ALTERNATE since the field
 * information (TOP/BOTTOM) cannot be passed back to the user.
 */
-   if (vb2_fileio_is_active(q))
+   if (vb2_fileio_is_active(vq))
return -EINVAL;
skel-field = V4L2_FIELD_TOP;
}
--
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] fix mceusb endpoint type identification/handling

2014-04-23 Thread Matt DeVillier
From: Matt DeVillier matt.devill...@gmail.com

Change the I/O endpoint handling of the mceusb driver to respect the endpoint 
type reported by device (bulk/interrupt), rather than treating all endpoints 
as type interrupt, which breaks devices using bulk endpoints when connected 
to a xhci controller.  Accordingly, change the function calls to initialize 
an endpoint's transfer pipe and urb handlers to use the correct function based 
on the endpoint type.

Signed-off-by: Matt DeVillier matt.devill...@gmail.com
Tested-by: Sean Young s...@mess.org
---
This is a continuation of the work started in patch #21648
Patch compiled and tested against linux-media git master. Backported and tested 
against 3.14.1 stable as well.
v2 corrects some formatting issues (both with the patch itself and MUA), and 
removes a small bug fix not relevant to the core patch functionality.
---
diff -up mceusb.c{.orig,}
--- mceusb.c.orig   2014-04-22 13:48:51.186259472 -0500
+++ mceusb.c2014-04-23 09:51:50.060107612 -0500
@@ -747,11 +747,19 @@ static void mce_request_packet(struct mc
}

/* outbound data */
-   pipe = usb_sndintpipe(ir-usbdev,
- ir-usb_ep_out-bEndpointAddress);
-   usb_fill_int_urb(async_urb, ir-usbdev, pipe,
-   async_buf, size, mce_async_callback,
-   ir, ir-usb_ep_out-bInterval);
+   if ((ir-usb_ep_out-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
+   == USB_ENDPOINT_XFER_INT) {
+   pipe = usb_sndintpipe(ir-usbdev,
+ir-usb_ep_out-bEndpointAddress);
+   usb_fill_int_urb(async_urb, ir-usbdev, pipe, async_buf,
+size, mce_async_callback, ir,
+ir-usb_ep_out-bInterval);
+   } else {
+   pipe = usb_sndbulkpipe(ir-usbdev,
+ir-usb_ep_out-bEndpointAddress);
+   usb_fill_bulk_urb(async_urb, ir-usbdev, pipe, 
async_buf,
+size, mce_async_callback, ir);
+   }
memcpy(async_buf, data, size);

} else if (urb_type == MCEUSB_RX) {
@@ -1271,38 +1279,47 @@ static int mceusb_dev_probe(struct usb_i

if ((ep_in == NULL)
 ((ep-bEndpointAddress  USB_ENDPOINT_DIR_MASK)
-   == USB_DIR_IN)
-(((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
-   == USB_ENDPOINT_XFER_BULK)
-   || ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
-   == USB_ENDPOINT_XFER_INT))) {
-
-   ep_in = ep;
-   ep_in-bmAttributes = USB_ENDPOINT_XFER_INT;
-   ep_in-bInterval = 1;
-   dev_dbg(intf-dev, acceptable inbound endpoint 
found);
+   == USB_DIR_IN)) {
+
+   if ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
+   == USB_ENDPOINT_XFER_BULK) {
+
+   ep_in = ep;
+   mce_dbg(intf-dev, acceptable bulk inbound 
endpoint found\n);
+   } else if ((ep-bmAttributes  
USB_ENDPOINT_XFERTYPE_MASK)
+   == USB_ENDPOINT_XFER_INT) {
+
+   ep_in = ep;
+   ep_in-bInterval = 1;
+   mce_dbg(intf-dev, acceptable interrupt 
inbound endpoint found\n);
+   }
}

if ((ep_out == NULL)
 ((ep-bEndpointAddress  USB_ENDPOINT_DIR_MASK)
-   == USB_DIR_OUT)
-(((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
-   == USB_ENDPOINT_XFER_BULK)
-   || ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
-   == USB_ENDPOINT_XFER_INT))) {
-
-   ep_out = ep;
-   ep_out-bmAttributes = USB_ENDPOINT_XFER_INT;
-   ep_out-bInterval = 1;
-   dev_dbg(intf-dev, acceptable outbound endpoint 
found);
+   == USB_DIR_OUT)) {
+   if ((ep-bmAttributes  USB_ENDPOINT_XFERTYPE_MASK)
+   == USB_ENDPOINT_XFER_BULK) {
+   ep_out = ep;
+   mce_dbg(intf-dev, acceptable bulk outbound 
endpoint found\n);
+   } else if ((ep-bmAttributes  
USB_ENDPOINT_XFERTYPE_MASK)
+   == USB_ENDPOINT_XFER_INT) {
+   ep_out = ep;
+   ep_out-bInterval = 1;
+   mce_dbg(intf-dev, 

Re: [PATCH/RFC v3 5/5] media: Add registration helpers for V4L2 flash sub-devices

2014-04-23 Thread Sakari Ailus
Hi Jacek,

On Thu, Apr 17, 2014 at 10:26:44AM +0200, Jacek Anaszewski wrote:
 Hi Sakari,
 
 Thanks for the review.
 
 On 04/16/2014 08:21 PM, Sakari Ailus wrote:
 Hi Jacek,
 
 Thanks for the update!
 
 [...]
 +static inline enum led_brightness v4l2_flash_intensity_to_led_brightness(
 +   struct led_ctrl *config,
 +   u32 intensity)
 
 Fits on a single line.
 
 +{
 +   return intensity / config-step;
 
 Shouldn't you first decrement the minimum before the division?
 
 Brightness level 0 means that led is off. Let's consider following case:
 
 intensity - 15625
 config-step - 15625
 intensity / config-step = 1 (the lowest possible current level)

In V4L2 controls the minimum is not off, and zero might not be a possible
value since minimum isn't divisible by step.

I wonder how to best take that into account.

 +}
 +
 +static inline u32 v4l2_flash_led_brightness_to_intensity(
 +   struct led_ctrl *config,
 +   enum led_brightness brightness)
 +{
 +   return brightness * config-step;
 
 And do the opposite here?

..

 +   return -EINVAL;
 +   return v4l2_call_flash_op(strobe_set, led_cdev, true);
 +   case V4L2_CID_FLASH_STROBE_STOP:
 +   return v4l2_call_flash_op(strobe_set, led_cdev, false);
 +   case V4L2_CID_FLASH_TIMEOUT:
 +   ret =  v4l2_call_flash_op(timeout_set, led_cdev, c-val);
 +   case V4L2_CID_FLASH_INTENSITY:
 +   /* no conversion is needed */
 +   return v4l2_call_flash_op(flash_brightness_set, led_cdev,
 +   c-val);
 +   case V4L2_CID_FLASH_INDICATOR_INTENSITY:
 +   /* no conversion is needed */
 +   return v4l2_call_flash_op(indicator_brightness_set, led_cdev,
 +   c-val);
 +   case V4L2_CID_FLASH_TORCH_INTENSITY:
 +   if (ctrl-led_mode-val == V4L2_FLASH_LED_MODE_TORCH) {
 +   torch_brightness =
 +   v4l2_flash_intensity_to_led_brightness(
 +   led_cdev-brightness_ctrl,
 +   ctrl-torch_intensity-val);
 +   v4l2_call_flash_op(brightness_set, led_cdev,
 +   torch_brightness);
 
 I could be missing something but don't torch and indicator require similar
 handling?
 
 Why? Torch units need conversion whereas indicator units don't.
 Moreover they have different LED API.

I missed it was already in micro-Amps.

 +   }
 +   return 0;
 +   }
 +
 +   return -EINVAL;
 +}
 +
 +static const struct v4l2_ctrl_ops v4l2_flash_ctrl_ops = {
 +   .g_volatile_ctrl = v4l2_flash_g_volatile_ctrl,
 +   .s_ctrl = v4l2_flash_s_ctrl,
 +};
 +
 +static int v4l2_flash_init_controls(struct v4l2_flash *v4l2_flash)
 +
 +{
 +   struct led_classdev *led_cdev = v4l2_flash-led_cdev;
 +   struct led_flash *flash = led_cdev-flash;
 +   bool has_indicator = flash-indicator_brightness;
 +   struct v4l2_ctrl *ctrl;
 +   struct led_ctrl *ctrl_cfg;
 +   unsigned int mask;
 +   int ret, max, num_ctrls;
 +
 +   num_ctrls = flash-has_flash_led ? 8 : 2;
 +   if (flash-fault_flags)
 +   ++num_ctrls;
 +   if (has_indicator)
 +   ++num_ctrls;
 +
 +   v4l2_ctrl_handler_init(v4l2_flash-hdl, num_ctrls);
 +
 +   mask = 1  V4L2_FLASH_LED_MODE_NONE |
 +  1  V4L2_FLASH_LED_MODE_TORCH;
 +   if (flash-has_flash_led)
 +   mask |= 1  V4L2_FLASH_LED_MODE_FLASH;
 +
 +   /* Configure FLASH_LED_MODE ctrl */
 +   v4l2_flash-ctrl.led_mode = v4l2_ctrl_new_std_menu(
 +   v4l2_flash-hdl,
 +   v4l2_flash_ctrl_ops, V4L2_CID_FLASH_LED_MODE,
 +   V4L2_FLASH_LED_MODE_TORCH, ~mask,
 +   V4L2_FLASH_LED_MODE_NONE);
 +
 +   /* Configure TORCH_INTENSITY ctrl */
 +   ctrl_cfg = led_cdev-brightness_ctrl;
 +   ctrl = v4l2_ctrl_new_std(v4l2_flash-hdl, v4l2_flash_ctrl_ops,
 +V4L2_CID_FLASH_TORCH_INTENSITY,
 +ctrl_cfg-min, ctrl_cfg-max,
 +ctrl_cfg-step, ctrl_cfg-val);
 +   if (ctrl)
 +   ctrl-flags |= V4L2_CTRL_FLAG_VOLATILE;
 +   v4l2_flash-ctrl.torch_intensity = ctrl;
 +
 +   if (flash-has_flash_led) {
 +   /* Configure FLASH_STROBE_SOURCE ctrl */
 +   mask = 1  V4L2_FLASH_STROBE_SOURCE_SOFTWARE;
 +
 +   if (flash-has_external_strobe) {
 +   mask |= 1  V4L2_FLASH_STROBE_SOURCE_EXTERNAL;
 +   max = V4L2_FLASH_STROBE_SOURCE_EXTERNAL;
 +   } else {
 +   max = V4L2_FLASH_STROBE_SOURCE_SOFTWARE;
 +   }
 +
 +   v4l2_flash-ctrl.source = v4l2_ctrl_new_std_menu(
 +   v4l2_flash-hdl,
 +   v4l2_flash_ctrl_ops,
 +

Comparisons of images between Dazzle DVC100, EasyCap stk1160 and Hauppauge ImapctVCB-e in Linux.

2014-04-23 Thread Steve Cookson

Hi Guys,

I would be interested in your views of the comparisons of these images.  
The still is the image of a duodenum taken during an endoscopy and 
recorded to a DVD player (via an s-video or composite cable).  Although 
the endoscope is an HD endoscope, the DVD recorder isn't and the 
resulting video is 720x480i59.94.


Here are further details of the video:-

Format : MPEG Video v2
Format profile : Main@Main
Format settings, BVOP : Yes, Matrix : Custom, GOP : M=3, N=15
Bit rate mode : Variable
Bit rate : 4 566 Kbps
Maximum bit rate : 10 000 Kbps
Width : 720 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate : 29.970 fps
Standard : NTSC
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.441

The video was played through Dragon Player and the video signal has 
exited through a mini-VGA port defined as 640x480 and passed through a 
VGA-S-Video converter to an s-video cable.


The cable has in turn been connected in turn to a Dazzle DVC100, an 
EasyCap stk1160 and a Hauppauge ImapctVCB-e.


Each setting (eg brightness and contrast etc) has as near as possible to 
mid-range and a screengrab taken.


The results are shown here:

Original: 
http://tinypic.com/usermedia.php?uo=fNkd6hpTbcMrgmD6gSf74Ih4l5k2TGxc


Dazzle DVC100: 
http://tinypic.com/usermedia.php?uo=fNkd6hpTbcMaOf4QTsIefYh4l5k2TGxc


ImpactVCB-e: 
http://tinypic.com/usermedia.php?uo=fNkd6hpTbcM7i72IqGujuIh4l5k2TGxc


STK1160: 
http://tinypic.com/usermedia.php?uo=fNkd6hpTbcPO7kmQk/IS94h4l5k2TGxc


I would be grateful for your views on the quality of the images.

Is one of materially higher quality than the others, or can I adjust the 
settings to improve the quality of one of them more.


It seems to me that the Hauppauge is marginally better than the others.  
What do you think?


Can I improve the test?

Regards

Steve.



--
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/RFC v3 3/5] leds: Add support for max77693 mfd flash cell

2014-04-23 Thread Sakari Ailus
Hi Jacek,

Thanks for the answers to my comments! :-)

On Thu, Apr 17, 2014 at 11:23:06AM +0200, Jacek Anaszewski wrote:
 On 04/16/2014 07:26 PM, Sakari Ailus wrote:
 Hi Jacek,
 
 Thanks for the patch! Comments below.
 
 On Fri, Apr 11, 2014 at 04:56:54PM +0200, Jacek Anaszewski wrote:
 This patch adds led-flash support to Maxim max77693 chipset.
 A device can be exposed to user space through LED subsystem
 sysfs interface or through V4L2 subdevice when the support
 for V4L2 Flash sub-devices is enabled. Device supports up to
 two leds which can work in flash and torch mode. Leds can
 be triggered externally or by software.
 
 Signed-off-by: Andrzej Hajda a.ha...@samsung.com
 Signed-off-by: Jacek Anaszewski j.anaszew...@samsung.com
 Acked-by: Kyungmin Park kyungmin.p...@samsung.com
 Cc: Bryan Wu coolo...@gmail.com
 Cc: Richard Purdie rpur...@rpsys.net
 Cc: SangYoung Son hello@smasung.com
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 ---
   drivers/leds/Kconfig |   10 +
   drivers/leds/Makefile|1 +
   drivers/leds/leds-max77693.c |  794 
  ++
   drivers/mfd/max77693.c   |2 +-
   include/linux/mfd/max77693.h |   38 ++
   5 files changed, 844 insertions(+), 1 deletion(-)
   create mode 100644 drivers/leds/leds-max77693.c
 
 diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
 index 1e1c81f..b2152a6 100644
 --- a/drivers/leds/Kconfig
 +++ b/drivers/leds/Kconfig
 @@ -462,6 +462,16 @@ config LEDS_TCA6507
   LED driver chips accessed via the I2C bus.
   Driver support brightness control and hardware-assisted blinking.
 
 +config LEDS_MAX77693
 +   tristate LED support for MAX77693 Flash
 +   depends on LEDS_CLASS_FLASH
 +   depends on MFD_MAX77693
 +   depends on OF
 +   help
 + This option enables support for the flash part of the MAX77693
 + multifunction device. It has build in control for two leds in flash
 + and torch mode.
 +
   config LEDS_MAX8997
 tristate LED support for MAX8997 PMIC
 depends on LEDS_CLASS  MFD_MAX8997
 diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
 index 8861b86..64f6234 100644
 --- a/drivers/leds/Makefile
 +++ b/drivers/leds/Makefile
 @@ -52,6 +52,7 @@ obj-$(CONFIG_LEDS_MC13783)+= 
 leds-mc13783.o
   obj-$(CONFIG_LEDS_NS2)+= leds-ns2.o
   obj-$(CONFIG_LEDS_NETXBIG)+= leds-netxbig.o
   obj-$(CONFIG_LEDS_ASIC3)  += leds-asic3.o
 +obj-$(CONFIG_LEDS_MAX77693)+= leds-max77693.o
   obj-$(CONFIG_LEDS_MAX8997)+= leds-max8997.o
   obj-$(CONFIG_LEDS_LM355x) += leds-lm355x.o
   obj-$(CONFIG_LEDS_BLINKM) += leds-blinkm.o
 diff --git a/drivers/leds/leds-max77693.c b/drivers/leds/leds-max77693.c
 new file mode 100644
 index 000..979736c
 --- /dev/null
 +++ b/drivers/leds/leds-max77693.c
 @@ -0,0 +1,794 @@
 +/*
 + * Copyright (C) 2014, Samsung Electronics Co., Ltd.
 + *
 + * Authors: Andrzej Hajda a.ha...@samsung.com
 + *  Jacek Anaszewski j.anaszew...@samsung.com
 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
 + * version 2 as published by the Free Software Foundation.
 + */
 +
 +#include asm/div64.h
 +#include linux/leds_flash.h
 +#include linux/module.h
 +#include linux/mutex.h
 +#include linux/platform_device.h
 +#include linux/slab.h
 +#include media/v4l2-flash.h
 
 I guess this should be last in the list.
 
 +#include linux/workqueue.h
 +#include linux/mfd/max77693.h
 +#include linux/mfd/max77693-private.h
 +
 +#define MAX77693_LED_NAME  max77693-flash
 +
 +#define MAX77693_TORCH_IOUT_BITS   4
 +
 +#define MAX77693_TORCH_NO_TIMER0x40
 +#define MAX77693_FLASH_TIMER_LEVEL 0x80
 +
 +#define MAX77693_FLASH_EN_OFF  0
 +#define MAX77693_FLASH_EN_FLASH1
 +#define MAX77693_FLASH_EN_TORCH2
 +#define MAX77693_FLASH_EN_ON   3
 +
 +#define MAX77693_FLASH_EN1_SHIFT   6
 +#define MAX77693_FLASH_EN2_SHIFT   4
 +#define MAX77693_TORCH_EN1_SHIFT   2
 +#define MAX77693_TORCH_EN2_SHIFT   0
 +
 +#define MAX77693_FLASH_LOW_BATTERY_EN  0x80
 +
 +#define MAX77693_FLASH_BOOST_FIXED 0x04
 +#define MAX77693_FLASH_BOOST_LEDNUM_2  0x80
 +
 +#define MAX77693_FLASH_TIMEOUT_MIN 62500
 +#define MAX77693_FLASH_TIMEOUT_MAX 100
 +#define MAX77693_FLASH_TIMEOUT_STEP62500
 +
 +#define MAX77693_TORCH_TIMEOUT_MIN 262000
 +#define MAX77693_TORCH_TIMEOUT_MAX 15728000
 +
 +#define MAX77693_FLASH_IOUT_MIN15625
 +#define MAX77693_FLASH_IOUT_MAX_1LED   100
 +#define MAX77693_FLASH_IOUT_MAX_2LEDS  625000
 +#define MAX77693_FLASH_IOUT_STEP   15625
 +
 +#define MAX77693_TORCH_IOUT_MIN15625
 +#define MAX77693_TORCH_IOUT_MAX25
 +#define MAX77693_TORCH_IOUT_STEP   15625
 +
 +#define MAX77693_FLASH_VSYS_MIN2400
 +#define 

Re: [GIT PULL 3.16] 2013:025f PCTV tripleStick (292e)

2014-04-23 Thread Antti Palosaari

On 23.04.2014 16:11, Mauro Carvalho Chehab wrote:

Em Wed, 23 Apr 2014 05:13:27 +0300
Antti Palosaari cr...@iki.fi escreveu:


Hardware is Empia EM28178, Silicon Labs Si2168, Silicon Labs Si2157.
There is on/off external LNA too. Two new drivers for Silicon Labs DTV
chipset.

Demod needs firmware, which could be found from driver CD version 6.4.8.984.
/TVC 6.4.8/Driver/PCTV Empia/emOEM.sys
dd if=emOEM.sys ibs=1 skip=1089416 count=2720 of=dvb-demod-si2168-01.fw
md5sum dvb-demod-si2168-01.fw
87c317e0b75ad49c2f2cbf35572a8093  dvb-demod-si2168-01.fw


Not sure if you did it already, but could you please put the above
instructions on our Wiki page?


Will do.


It would be better to add it at the DVB get firmware script, but it seems
that PCTV didn't put the driver yet on their website.


There is driver updates , but not that as it is very new device and no 
updates available. I will add it after driver is available online.


regards
Antti
--
http://palosaari.fi/
--
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] v4l: subdev: Move [gs]_std operation to video ops

2014-04-23 Thread Prabhakar Lad
Hi Laurent,

Thanks for the patch.

On Tue, Mar 11, 2014 at 3:44 PM, Laurent Pinchart
laurent.pinch...@ideasonboard.com wrote:
 The g_std and s_std operations are video-related, move them to the video
 ops where they belong.

 Signed-off-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
 ---
[snip]
  drivers/media/i2c/tvp514x.c |  2 +-
  drivers/media/platform/davinci/vpfe_capture.c   |  2 +-
  drivers/media/platform/davinci/vpif_capture.c   |  2 +-
  drivers/staging/media/davinci_vpfe/vpfe_video.c |  2 +-
  include/media/v4l2-subdev.h |  6 +++---
  };


For the above: Acked-by: Lad, Prabhakar prabhakar.cse...@gmail.com

Thanks,
--Prabhakar Lad
--
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


[GIT PULL for v3.16] Sub-device and Media device owner change, small fixes

2014-04-23 Thread Sakari Ailus
Hi Mauro,

This pull request contains ownership and module use count changes for the
media device and V4L2 sub-devices, a missing check for the user space
arguments in [gs]_frame_interval and a few comment improvements.

Please pull.

The following changes since commit 701b57ee3387b8e3749845b02310b5625fbd8da0:

  [media] vb2: Add videobuf2-dvb support (2014-04-16 18:59:29 -0300)

are available in the git repository at:

  ssh://linuxtv.org/git/sailus/media_tree.git upstream

for you to fetch changes up to 6544c39041d2e88c895110796c7db4cdb1f5d8e2:

  v4l: Remove documentation for nonexistend input field in v4l2_buffer 
(2014-04-23 22:14:34 +0300)


Sakari Ailus (5):
  v4l: Check pad arguments for [gs]_frame_interval
  media: Use a better owner for the media device
  v4l: Only get module if it's different than the driver for v4l2_dev
  v4l: V4L2_MBUS_FRAME_DESC_FL_BLOB is about 1D DMA
  v4l: Remove documentation for nonexistend input field in v4l2_buffer

 drivers/media/media-device.c  |7 ---
 drivers/media/media-devnode.c |5 +++--
 drivers/media/v4l2-core/v4l2-device.c |   18 +++---
 drivers/media/v4l2-core/v4l2-subdev.c |   16 ++--
 include/media/media-device.h  |4 +++-
 include/media/media-devnode.h |3 ++-
 include/media/v4l2-subdev.h   |   10 +++---
 include/uapi/linux/videodev2.h|1 -
 8 files changed, 48 insertions(+), 16 deletions(-)

-- 
Kind regards,

Sakari Ailus
e-mail: sakari.ai...@iki.fi XMPP: sai...@retiisi.org.uk
--
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] smiapp: Print the index of the format descriptor

2014-04-23 Thread Sakari Ailus
This makes constructing quirks easier.

Signed-off-by: Sakari Ailus sakari.ai...@linux.intel.com
---
 drivers/media/i2c/smiapp/smiapp-core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/i2c/smiapp/smiapp-core.c 
b/drivers/media/i2c/smiapp/smiapp-core.c
index 3af8df8..da4422e 100644
--- a/drivers/media/i2c/smiapp/smiapp-core.c
+++ b/drivers/media/i2c/smiapp/smiapp-core.c
@@ -741,8 +741,8 @@ static int smiapp_get_mbus_formats(struct smiapp_sensor 
*sensor)
if (rval)
return rval;
 
-   dev_dbg(client-dev, bpp %d, compressed %d\n,
-   fmt  8, (u8)fmt);
+   dev_dbg(client-dev, %u: bpp %u, compressed %u\n,
+   i, fmt  8, (u8)fmt);
 
for (j = 0; j  ARRAY_SIZE(smiapp_csi_data_formats); j++) {
const struct smiapp_csi_data_format *f =
-- 
1.8.3.2

--
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] Smiapp quirk call order and best scaling ratio fixes

2014-04-23 Thread Sakari Ailus
Hi,

The most important patch is the third one: wrong scaling ratio was selected
in many (or most?) cases due to the wrong signedness of the variable. The
other two have less effect on the functionality.

-- 
Kind regards,
Sakari

--
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] smiapp: Scaling goodness is signed

2014-04-23 Thread Sakari Ailus
The best value was unsigned however, leading to signed-to-unsigned
comparison and wrong results. Possibly only on a newer GCC. Fix this by
making the best value signed as well.

Signed-off-by: Sakari Ailus sakari.ai...@linux.intel.com
---
 drivers/media/i2c/smiapp/smiapp-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/i2c/smiapp/smiapp-core.c 
b/drivers/media/i2c/smiapp/smiapp-core.c
index 0a74e14..db3d5a6 100644
--- a/drivers/media/i2c/smiapp/smiapp-core.c
+++ b/drivers/media/i2c/smiapp/smiapp-core.c
@@ -1766,7 +1766,7 @@ static void smiapp_set_compose_binner(struct v4l2_subdev 
*subdev,
struct smiapp_sensor *sensor = to_smiapp_sensor(subdev);
unsigned int i;
unsigned int binh = 1, binv = 1;
-   unsigned int best = scaling_goodness(
+   int best = scaling_goodness(
subdev,
crops[SMIAPP_PAD_SINK]-width, sel-r.width,
crops[SMIAPP_PAD_SINK]-height, sel-r.height, sel-flags);
-- 
1.8.3.2

--
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] smiapp: Call limits quirk immediately after retrieving the limits

2014-04-23 Thread Sakari Ailus
Some of the limits are used before the limits quirk is called. Move the call
immediately after obtaining the limits.

Signed-off-by: Sakari Ailus sakari.ai...@linux.intel.com
---
 drivers/media/i2c/smiapp/smiapp-core.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/media/i2c/smiapp/smiapp-core.c 
b/drivers/media/i2c/smiapp/smiapp-core.c
index da4422e..0a74e14 100644
--- a/drivers/media/i2c/smiapp/smiapp-core.c
+++ b/drivers/media/i2c/smiapp/smiapp-core.c
@@ -2423,6 +2423,12 @@ static int smiapp_registered(struct v4l2_subdev *subdev)
sensor-hvflip_inv_mask = SMIAPP_IMAGE_ORIENTATION_HFLIP |
  SMIAPP_IMAGE_ORIENTATION_VFLIP;
 
+   rval = smiapp_call_quirk(sensor, limits);
+   if (rval) {
+   dev_err(client-dev, limits quirks failed\n);
+   goto out_power_off;
+   }
+
rval = smiapp_get_mbus_formats(sensor);
if (rval) {
rval = -ENODEV;
@@ -2483,12 +2489,6 @@ static int smiapp_registered(struct v4l2_subdev *subdev)
}
}
 
-   rval = smiapp_call_quirk(sensor, limits);
-   if (rval) {
-   dev_err(client-dev, limits quirks failed\n);
-   goto out_nvm_release;
-   }
-
/* We consider this as profile 0 sensor if any of these are zero. */
if (!sensor-limits[SMIAPP_LIMIT_MIN_OP_SYS_CLK_DIV] ||
!sensor-limits[SMIAPP_LIMIT_MAX_OP_SYS_CLK_DIV] ||
-- 
1.8.3.2

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


Terratec Cinergy T XS Firmware (Kernel 3.14.1)

2014-04-23 Thread Daniel Exner
Hi,

(Please keep me in CC as I'm currently not subscribed to this Mailinglist)

I happened to inherit one of those DVB-T Sticks

 ID 0ccd:0043 TerraTec Electronic GmbH Cinergy T XS

and of course it isn't working as exspected.

So far I extracted the firmware the tuner_xc2028 module was telling me
(xc3028-v27.fw) and the module loaded.
But no dvb device nodes where created.

I tried connecting directly to it using xawtv and that gave me a load of
Incorrect readback of firmware version. messages.

Then I tried loading the module with debug=1 and now I see:

 Device is Xceive 34584 version 8.7, firmware version 1.8

So I guess the driver is trying to use the wrong firmware file.

I extracted some file named merlinC.rom from the Terratec Windows
Drivers that I suspect to contain the firmware.

Now I need some help how to verify that and create a usable fw File for
the driver.

Greetings
Daniel
-- 
Daniel Exner
Public-Key: https://www.dragonslave.de/pub_key.asc



signature.asc
Description: OpenPGP digital signature


Re: Terratec Cinergy T XS Firmware (Kernel 3.14.1)

2014-04-23 Thread Devin Heitmueller
On Wed, Apr 23, 2014 at 4:34 PM, Daniel Exner d...@dragonslave.de wrote:
 Hi,

 (Please keep me in CC as I'm currently not subscribed to this Mailinglist)

 I happened to inherit one of those DVB-T Sticks

 ID 0ccd:0043 TerraTec Electronic GmbH Cinergy T XS

 and of course it isn't working as exspected.

 So far I extracted the firmware the tuner_xc2028 module was telling me
 (xc3028-v27.fw) and the module loaded.
 But no dvb device nodes where created.

 I tried connecting directly to it using xawtv and that gave me a load of
 Incorrect readback of firmware version. messages.

 Then I tried loading the module with debug=1 and now I see:

 Device is Xceive 34584 version 8.7, firmware version 1.8

 So I guess the driver is trying to use the wrong firmware file.

 I extracted some file named merlinC.rom from the Terratec Windows
 Drivers that I suspect to contain the firmware.

 Now I need some help how to verify that and create a usable fw File for
 the driver.

You can get the firmware via the following procedure:

http://www.linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028#How_to_Obtain_the_Firmware

or if you're on Ubuntu it's already packaged in
linux-firmware-nonfree.  The file itself is 66220 bytes and has an MD5
checksum of 293dc5e915d9a0f74a368f8a2ce3cc10.

Note that if you have that file in /lib/firmware, it's entirely
possible that the driver is just broken (this happens quite often).
The values read back by dmesg are from the device itself, so if the
chip wasn't properly initialized fields such as the version will
contain garbage values.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
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: Terratec Cinergy T XS Firmware (Kernel 3.14.1)

2014-04-23 Thread Daniel Exner
Hi,

Am 23.04.2014 22:42, schrieb Devin Heitmueller:
 On Wed, Apr 23, 2014 at 4:34 PM, Daniel Exner d...@dragonslave.de wrote:
 You can get the firmware via the following procedure:
 
 http://www.linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028#How_to_Obtain_the_Firmware
 
 or if you're on Ubuntu it's already packaged in
 linux-firmware-nonfree.  The file itself is 66220 bytes and has an MD5
 checksum of 293dc5e915d9a0f74a368f8a2ce3cc10.

I used that procedure and have exactly that file in my /lib/firmware dir.

 Note that if you have that file in /lib/firmware, it's entirely
 possible that the driver is just broken (this happens quite often).
 The values read back by dmesg are from the device itself, so if the
 chip wasn't properly initialized fields such as the version will
 contain garbage values.
On the page you linked above older firmware versions are mentions that
should be supported by the driver.

My Question is: how to get them?

But you may be right, because Device is Xceive 34584 seems also wrong
(didn't find any hint such a device exists..)

I'm willing to invest some time to repair the driver.
Anyone interested in helping me in getting this thing back to work?

Greetings
Daniel
-- 
Daniel Exner
Public-Key: https://www.dragonslave.de/pub_key.asc



signature.asc
Description: OpenPGP digital signature


Re: [PATCH] [media] V4L: s5c73m3: Fix build after v4l2_of_get_next_endpoint rename

2014-04-23 Thread David Rientjes
On Wed, 9 Apr 2014, Krzysztof Kozlowski wrote:

 Fix build error after v4l2_of_get_next_endpoint rename (fd9fdb78a9bf:
 [media] of: move graph helpers from drivers/media/v4l2-core...):
 
 drivers/media/i2c/s5c73m3/s5c73m3-core.c: In function 
 ‘s5c73m3_get_platform_data’:
 drivers/media/i2c/s5c73m3/s5c73m3-core.c:1619:2: error: implicit declaration 
 of function ‘v4l2_of_get_next_endpoint’ 
 [-Werror=implicit-function-declaration]
 drivers/media/i2c/s5c73m3/s5c73m3-core.c:1619:10: warning: assignment makes 
 pointer from integer without a cast [enabled by default]
 
 Signed-off-by: Krzysztof Kozlowski k.kozlow...@samsung.com
 ---
  drivers/media/i2c/s5c73m3/s5c73m3-core.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/media/i2c/s5c73m3/s5c73m3-core.c 
 b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
 index a4459301b5f8..ee0f57e01b56 100644
 --- a/drivers/media/i2c/s5c73m3/s5c73m3-core.c
 +++ b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
 @@ -1616,7 +1616,7 @@ static int s5c73m3_get_platform_data(struct s5c73m3 
 *state)
   if (ret  0)
   return -EINVAL;
  
 - node_ep = v4l2_of_get_next_endpoint(node, NULL);
 + node_ep = of_graph_get_next_endpoint(node, NULL);
   if (!node_ep) {
   dev_warn(dev, no endpoint defined for node: %s\n,
   node-full_name);

Acked-by: David Rientjes rient...@google.com

The build error that this patch fixes is still present in Linus's tree, 
and there's been no response to it in two weeks.  Any chance of this 
getting merged?

Re: [PATCH] [media] V4L: s5c73m3: Fix build after v4l2_of_get_next_endpoint rename

2014-04-23 Thread Sylwester Nawrocki

On 04/23/2014 10:57 PM, David Rientjes wrote:

On Wed, 9 Apr 2014, Krzysztof Kozlowski wrote:


Fix build error after v4l2_of_get_next_endpoint rename (fd9fdb78a9bf:
[media] of: move graph helpers from drivers/media/v4l2-core...):

drivers/media/i2c/s5c73m3/s5c73m3-core.c: In function 
‘s5c73m3_get_platform_data’:
drivers/media/i2c/s5c73m3/s5c73m3-core.c:1619:2: error: implicit declaration of 
function ‘v4l2_of_get_next_endpoint’ [-Werror=implicit-function-declaration]
drivers/media/i2c/s5c73m3/s5c73m3-core.c:1619:10: warning: assignment makes 
pointer from integer without a cast [enabled by default]

Signed-off-by: Krzysztof Kozlowski k.kozlow...@samsung.com
---
  drivers/media/i2c/s5c73m3/s5c73m3-core.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/i2c/s5c73m3/s5c73m3-core.c 
b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
index a4459301b5f8..ee0f57e01b56 100644
--- a/drivers/media/i2c/s5c73m3/s5c73m3-core.c
+++ b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
@@ -1616,7 +1616,7 @@ static int s5c73m3_get_platform_data(struct s5c73m3 
*state)
if (ret  0)
return -EINVAL;

-   node_ep = v4l2_of_get_next_endpoint(node, NULL);
+   node_ep = of_graph_get_next_endpoint(node, NULL);
if (!node_ep) {
dev_warn(dev, no endpoint defined for node: %s\n,
node-full_name);


Acked-by: David Rientjes rient...@google.com

The build error that this patch fixes is still present in Linus's tree,
and there's been no response to it in two weeks.  Any chance of this
getting merged?


I expect a patch fixing this issue to be sent in next batch of the media
fixes from Mauro.  It has been queued in the media tree:

http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?h=fixesid=41f484d12c0105ce01ea79acdc094fff9124491b

Thanks,
Sylwester

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

2014-04-23 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:   Thu Apr 24 04:00:28 CEST 2014
git branch: test
git hash:   393cbd8dc532c1ebed60719da8d379f50d445f28
gcc version:i686-linux-gcc (GCC) 4.8.2
sparse version: v0.5.0-11-g38d1124
host hardware:  x86_64
host os:3.14-1.slh.1-amd64

linux-git-arm-at91: OK
linux-git-arm-davinci: OK
linux-git-arm-exynos: OK
linux-git-arm-mx: OK
linux-git-arm-omap: OK
linux-git-arm-omap1: OK
linux-git-arm-pxa: OK
linux-git-blackfin: OK
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: ERRORS
linux-git-powerpc64: OK
linux-git-sh: OK
linux-git-x86_64: OK
linux-2.6.31.14-i686: OK
linux-2.6.32.27-i686: OK
linux-2.6.33.7-i686: OK
linux-2.6.34.7-i686: OK
linux-2.6.35.9-i686: OK
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: 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-i686: OK
linux-3.13-i686: OK
linux-3.14-i686: OK
linux-3.15-rc1-i686: OK
linux-2.6.31.14-x86_64: OK
linux-2.6.32.27-x86_64: OK
linux-2.6.33.7-x86_64: OK
linux-2.6.34.7-x86_64: OK
linux-2.6.35.9-x86_64: OK
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: 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-x86_64: OK
linux-3.13-x86_64: OK
linux-3.14-x86_64: OK
linux-3.15-rc1-x86_64: OK
apps: OK
spec-git: OK
sparse version: v0.5.0-11-g38d1124
sparse: ERRORS

Detailed results are available here:

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

Full logs are available here:

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