Re: [PATCH 4/4] media: pxa_camera: conversion to dmaengine

2015-06-21 Thread Guennadi Liakhovetski
Hi Robert,

On Sun, 22 Mar 2015, Robert Jarzmik wrote:

 From: Robert Jarzmik robert.jarz...@intel.com
 
 Convert pxa_camera to dmaengine. This removes all DMA registers
 manipulation in favor of the more generic dmaengine API.
 
 The functional level should be the same as before. The biggest change is
 in the videobuf_sg_splice() function, which splits a videobuf-dma into

As also commented below, I'm not sure splice is a good word for 
splitting.

 several scatterlists for 3 planes captures (Y, U, V).

Several is actually exactly 3, isn't it?

 
 Signed-off-by: Robert Jarzmik robert.jarz...@free.fr
 ---
  drivers/media/platform/soc_camera/pxa_camera.c | 428 
 -
  1 file changed, 211 insertions(+), 217 deletions(-)
 
 diff --git a/drivers/media/platform/soc_camera/pxa_camera.c 
 b/drivers/media/platform/soc_camera/pxa_camera.c
 index 8b39f44..8644022 100644
 --- a/drivers/media/platform/soc_camera/pxa_camera.c
 +++ b/drivers/media/platform/soc_camera/pxa_camera.c
 @@ -28,6 +28,9 @@
  #include linux/clk.h
  #include linux/sched.h
  #include linux/slab.h
 +#include linux/dmaengine.h
 +#include linux/dma-mapping.h
 +#include linux/dma/pxa-dma.h
  
  #include media/v4l2-common.h
  #include media/v4l2-dev.h
 @@ -38,7 +41,6 @@
  
  #include linux/videodev2.h
  
 -#include mach/dma.h
  #include linux/platform_data/camera-pxa.h
  
  #define PXA_CAM_VERSION 0.0.6
 @@ -175,21 +177,16 @@ enum pxa_camera_active_dma {
   DMA_V = 0x4,
  };
  
 -/* descriptor needed for the PXA DMA engine */
 -struct pxa_cam_dma {
 - dma_addr_t  sg_dma;
 - struct pxa_dma_desc *sg_cpu;
 - size_t  sg_size;
 - int sglen;
 -};
 -
  /* buffer for one video frame */
  struct pxa_buffer {
   /* common v4l buffer stuff -- must be first */
   struct videobuf_buffer  vb;
   u32 code;
   /* our descriptor lists for Y, U and V channels */
 - struct pxa_cam_dma  dmas[3];
 + struct dma_async_tx_descriptor  *descs[3];
 + dma_cookie_tcookie[3];
 + struct scatterlist  *sg[3];
 + int sg_len[3];
   int inwork;
   enum pxa_camera_active_dma  active_dma;
  };
 @@ -207,7 +204,7 @@ struct pxa_camera_dev {
   void __iomem*base;
  
   int channels;
 - unsigned intdma_chans[3];
 + struct dma_chan *dma_chans[3];
  
   struct pxacamera_platform_data *pdata;
   struct resource *res;
 @@ -222,7 +219,6 @@ struct pxa_camera_dev {
   spinlock_t  lock;
  
   struct pxa_buffer   *active;
 - struct pxa_dma_desc *sg_tail[3];
   struct tasklet_struct   task_eof;
  
   u32 save_cicr[5];
 @@ -259,7 +255,6 @@ static int pxa_videobuf_setup(struct videobuf_queue *vq, 
 unsigned int *count,
  static void free_buffer(struct videobuf_queue *vq, struct pxa_buffer *buf)
  {
   struct soc_camera_device *icd = vq-priv_data;
 - struct soc_camera_host *ici = to_soc_camera_host(icd-parent);
   struct videobuf_dmabuf *dma = videobuf_to_dma(buf-vb);
   int i;
  
 @@ -276,41 +271,82 @@ static void free_buffer(struct videobuf_queue *vq, 
 struct pxa_buffer *buf)
   if (buf-vb.state == VIDEOBUF_NEEDS_INIT)
   return;
  
 - for (i = 0; i  ARRAY_SIZE(buf-dmas); i++) {
 - if (buf-dmas[i].sg_cpu)
 - dma_free_coherent(ici-v4l2_dev.dev,
 -   buf-dmas[i].sg_size,
 -   buf-dmas[i].sg_cpu,
 -   buf-dmas[i].sg_dma);
 - buf-dmas[i].sg_cpu = NULL;
 + for (i = 0; i  3  buf-descs[i]; i++) {
 + async_tx_ack(buf-descs[i]);
 + dmaengine_tx_release(buf-descs[i]);
 + kfree(buf-sg[i]);
 + buf-descs[i] = NULL;
 + buf-sg[i] = NULL;
 + buf-sg_len[i] = 0;
   }
   videobuf_dma_unmap(vq-dev, dma);
   videobuf_dma_free(dma);
  
   buf-vb.state = VIDEOBUF_NEEDS_INIT;
 +
 + dev_dbg(icd-parent, %s end (vb=0x%p) 0x%08lx %d\n, __func__,
 + buf-vb, buf-vb.baddr, buf-vb.bsize);
  }
  
 -static int calculate_dma_sglen(struct scatterlist *sglist, int sglen,
 -int sg_first_ofs, int size)
 +static struct scatterlist *videobuf_sg_splice(struct scatterlist *sglist,
 +   int sglen, int offset, int size,
 +   int *new_sg_len)
  {
 - int i, offset, dma_len, xfer_len;
 - struct scatterlist *sg;
 + struct scatterlist *sg0, *sg, *sg_first = NULL;
 + int i, dma_len, dropped_xfer_len, dropped_remain, remain;
 + int nfirst = -1, nfirst_offset = 0, xfer_len;
  
 - offset = sg_first_ofs;
 + *new_sg_len = 0;
 + 

Re: [PATCH 02/14] sh-veu: don't use COLORSPACE_JPEG.

2015-06-21 Thread Guennadi Liakhovetski
Hi Hans,

I'm not maintaining this driver, so, just

On Mon, 15 Jun 2015, Hans Verkuil wrote:

 From: Hans Verkuil hans.verk...@cisco.com
 
 COLORSPACE_JPEG should only be used for JPEGs. Use SMPTE170M instead,
 which is how YCbCr images are usually encoded.
 
 Signed-off-by: Hans Verkuil hans.verk...@cisco.com

Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de

Thanks
Guennadi

 ---
  drivers/media/platform/sh_veu.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/media/platform/sh_veu.c b/drivers/media/platform/sh_veu.c
 index 77a74d3..f5e3eb3a 100644
 --- a/drivers/media/platform/sh_veu.c
 +++ b/drivers/media/platform/sh_veu.c
 @@ -211,7 +211,7 @@ static enum v4l2_colorspace sh_veu_4cc2cspace(u32 fourcc)
   case V4L2_PIX_FMT_NV12:
   case V4L2_PIX_FMT_NV16:
   case V4L2_PIX_FMT_NV24:
 - return V4L2_COLORSPACE_JPEG;
 + return V4L2_COLORSPACE_SMPTE170M;
   case V4L2_PIX_FMT_RGB332:
   case V4L2_PIX_FMT_RGB444:
   case V4L2_PIX_FMT_RGB565:
 -- 
 2.1.4
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in


randconfig build error with next-20150621, in drivers/media/v4l2-core/v4l2-flash-led-class.c

2015-06-21 Thread Jim Davis
Building with the attached random configuration file,

drivers/built-in.o: In function `v4l2_flash_open':
v4l2-flash-led-class.c:(.text+0x27f495): undefined reference to
`v4l2_fh_is_singular'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x27fe35): undefined reference to `v4l2_subdev_init'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x280554): undefined reference to `v4l2_ctrl_handler_init_class'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x2805c0): undefined reference to `v4l2_ctrl_new_std'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x2806a3): undefined reference to `v4l2_ctrl_new_std_menu'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x2806f3): undefined reference to `v4l2_ctrl_handler_setup'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x280732): undefined reference to `v4l2_async_register_subdev'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x280785): undefined reference to `v4l2_ctrl_handler_free'
drivers/built-in.o: In function `v4l2_flash_init':
(.text+0x2807a9): undefined reference to `v4l2_ctrl_handler_free'
drivers/built-in.o: In function `v4l2_flash_release':
(.text+0x280815): undefined reference to `v4l2_async_unregister_subdev'
drivers/built-in.o: In function `v4l2_flash_release':
(.text+0x28084a): undefined reference to `v4l2_ctrl_handler_free'
drivers/built-in.o: In function `v4l2_flash_close':
v4l2-flash-led-class.c:(.text+0x2808c5): undefined reference to
`v4l2_fh_is_singular'
v4l2-flash-led-class.c:(.text+0x28093b): undefined reference to
`__v4l2_ctrl_s_ctrl'
drivers/built-in.o: In function `board_staging_register_clock':
(.init.text+0x10ba1): undefined reference to `clk_add_alias'
drivers/built-in.o:(.rodata+0xe3110): undefined reference to
`v4l2_subdev_queryctrl'
drivers/built-in.o:(.rodata+0xe3140): undefined reference to
`v4l2_subdev_querymenu'
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.1.0-rc8 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT=elf64-x86-64
CONFIG_ARCH_DEFCONFIG=arch/x86/configs/x86_64_defconfig
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
CONFIG_ZONE_DMA32=y
CONFIG_AUDIT_ARCH=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx 
-fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 
-fcall-saved-r11
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_PGTABLE_LEVELS=4
CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
CONFIG_CONSTRUCTORS=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=
CONFIG_COMPILE_TEST=y
CONFIG_LOCALVERSION=
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME=(none)
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_FHANDLE=y
CONFIG_USELIB=y
CONFIG_AUDIT=y
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_WATCH=y
CONFIG_AUDIT_TREE=y

#
# IRQ subsystem
#
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
# CONFIG_IRQ_DOMAIN_DEBUG is not set
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_TICK_ONESHOT=y
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE is not set
# CONFIG_NO_HZ is not set
CONFIG_HIGH_RES_TIMERS=y

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y

Re: [PATCH 01/14] sh-veu: initialize timestamp_flags and copy timestamp info

2015-06-21 Thread Guennadi Liakhovetski
On Mon, 15 Jun 2015, Hans Verkuil wrote:

 From: Hans Verkuil hans.verk...@cisco.com
 
 This field wasn't set, causing WARN_ON's from the vb2 core.
 
 Signed-off-by: Hans Verkuil hans.verk...@cisco.com

Acked-by: Guennadi Liakhovetski g.liakhovet...@gmx.de

Thanks
Guennadi

 ---
  drivers/media/platform/sh_veu.c | 8 
  1 file changed, 8 insertions(+)
 
 diff --git a/drivers/media/platform/sh_veu.c b/drivers/media/platform/sh_veu.c
 index 2554f37..77a74d3 100644
 --- a/drivers/media/platform/sh_veu.c
 +++ b/drivers/media/platform/sh_veu.c
 @@ -958,6 +958,7 @@ static int sh_veu_queue_init(void *priv, struct vb2_queue 
 *src_vq,
   src_vq-ops = sh_veu_qops;
   src_vq-mem_ops = vb2_dma_contig_memops;
   src_vq-lock = veu-fop_lock;
 + src_vq-timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
  
   ret = vb2_queue_init(src_vq);
   if (ret  0)
 @@ -971,6 +972,7 @@ static int sh_veu_queue_init(void *priv, struct vb2_queue 
 *src_vq,
   dst_vq-ops = sh_veu_qops;
   dst_vq-mem_ops = vb2_dma_contig_memops;
   dst_vq-lock = veu-fop_lock;
 + dst_vq-timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
  
   return vb2_queue_init(dst_vq);
  }
 @@ -1103,6 +1105,12 @@ static irqreturn_t sh_veu_isr(int irq, void *dev_id)
   if (!src || !dst)
   return IRQ_NONE;
  
 + dst-v4l2_buf.timestamp = src-v4l2_buf.timestamp;
 + dst-v4l2_buf.flags = ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
 + dst-v4l2_buf.flags |=
 + src-v4l2_buf.flags  V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
 + dst-v4l2_buf.timecode = src-v4l2_buf.timecode;
 +
   spin_lock(veu-lock);
   v4l2_m2m_buf_done(src, VB2_BUF_STATE_DONE);
   v4l2_m2m_buf_done(dst, VB2_BUF_STATE_DONE);
 -- 
 2.1.4
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in


Hello

2015-06-21 Thread 'LEUNG CHEUNG'




I need your assistance to transfer $22,500,000.00 Dollars from Hong Kong 
--
To unsubscribe from this list: send the line unsubscribe linux-media in


Re: [RFC PATCH 2/2] v4l2-utils: extend set-dv-timing options for RB version

2015-06-21 Thread Prashant Laddha (prladdha)
Thanks for your comments Hans.

On 19/06/15 11:37 am, Hans Verkuil hverk...@xs4all.nl wrote:

  utils/v4l2-ctl/v4l2-ctl-stds.cpp | 13 +++--
  1 file changed, 11 insertions(+), 2 deletions(-)
 
 diff --git a/utils/v4l2-ctl/v4l2-ctl-stds.cpp
b/utils/v4l2-ctl/v4l2-ctl-stds.cpp
 index c0e919b..9734c80 100644
 --- a/utils/v4l2-ctl/v4l2-ctl-stds.cpp
 +++ b/utils/v4l2-ctl/v4l2-ctl-stds.cpp
 @@ -41,7 +41,10 @@ void stds_usage(void)
  index=index: use the index as provided
by --list-dv-timings\n
  or specify timings using cvt/gtf options
as follows:\n
   
cvt/gtf,width=width,height=height,fps=frames per sec\n
 - 
interlaced=0/1,reduced-blanking=0/1\n
 + 
interlaced=0/1,reduced-blanking=0/1,use-rb-v2=0/1\n
 +use-rb-v2 indicates whether to use
reduced blanking version 2\n
 +or not. This flag is relevant only for
cvt timings and has\n
 +effect only if reduced-blanking=1\n

Why not just allow a value of 2 for the reduced-blanking argument instead
of introducing a new argument? For gtf 1 and 2 mean the same thing, for
cvt 1
will use the standard RB and 2 RBv2.

The only reason for which I added another flag is to make control
parameters same as cvt spreadsheet. But, yes, we could accept
reduced-blanking = 2. I will post version 2 with this change.


Seems simpler to me. It also means that calc_cvt_modeline doesn't need a
new
argument, just that bool reduced_blanking becomes int reduced_blanking.

Other than this it looks good to me.

Regards,

   Hans

  or give a fully specified timings:\n
   
width=width,height=height,interlaced=0/1,\n
  polarities=polarities
mask,pixelclock=pixelclock Hz,\n
 @@ -148,6 +151,7 @@ enum timing_opts {
  GTF,
  FPS,
  REDUCED_BLANK,
 +USE_RB_V2,
  };
  
  static int parse_timing_subopt(char **subopt_str, int *value)
 @@ -175,6 +179,7 @@ static int parse_timing_subopt(char **subopt_str,
int *value)
  gtf,
  fps,
  reduced-blanking,
 +use-rb-v2,
  NULL
  };
  
 @@ -205,6 +210,7 @@ static void get_cvt_gtf_timings(char *subopt, int
standard,
  int fps = 0;
  int r_blank = 0;
  int interlaced = 0;
 +int use_rb_v2 = 0;
  
  bool timings_valid = false;
  
 @@ -231,6 +237,8 @@ static void get_cvt_gtf_timings(char *subopt, int
standard,
  case INTERLACED:
  interlaced = opt_val;
  break;
 +case USE_RB_V2:
 +use_rb_v2 = opt_val;
  default:
  break;
  }
 @@ -240,7 +248,8 @@ static void get_cvt_gtf_timings(char *subopt, int
standard,
  timings_valid = calc_cvt_modeline(width, height, fps,
r_blank == 1 ? true : false,
interlaced == 1 ? true : false,
 -  false, bt);
 +  use_rb_v2 == 1 ? true : false,
 +  bt);
  } else {
  timings_valid = calc_gtf_modeline(width, height, fps,
r_blank == 1 ? true : false,
 


--
To unsubscribe from this list: send the line unsubscribe linux-media in


Re: [PATCH 4/4] media: pxa_camera: conversion to dmaengine

2015-06-21 Thread Robert Jarzmik
Guennadi Liakhovetski g.liakhovet...@gmx.de writes:

 Hi Robert,

 On Sun, 22 Mar 2015, Robert Jarzmik wrote:

 From: Robert Jarzmik robert.jarz...@intel.com
 
 Convert pxa_camera to dmaengine. This removes all DMA registers
 manipulation in favor of the more generic dmaengine API.
 
 The functional level should be the same as before. The biggest change is
 in the videobuf_sg_splice() function, which splits a videobuf-dma into

 As also commented below, I'm not sure splice is a good word for 
 splitting.
Ok. I'm all ears for your best candidate :)

 several scatterlists for 3 planes captures (Y, U, V).

 Several is actually exactly 3, isn't it?
Yup, it's 3, definitely. I can amend the commit message accordingly.

 +static struct scatterlist *videobuf_sg_splice(struct scatterlist *sglist,
 +  int sglen, int offset, int size,
 +  int *new_sg_len)
  {
 -int i, offset, dma_len, xfer_len;
 -struct scatterlist *sg;
 +struct scatterlist *sg0, *sg, *sg_first = NULL;
 +int i, dma_len, dropped_xfer_len, dropped_remain, remain;
 +int nfirst = -1, nfirst_offset = 0, xfer_len;
  
 -offset = sg_first_ofs;
 +*new_sg_len = 0;
 +dropped_remain = offset;
 +remain = size;
  for_each_sg(sglist, sg, sglen, i) {

 Ok, after something-that-felt-like-hours of looking at this code, I think, 
 I understand now, that first you calculate what sg elements have been used 
 for offset bytes, which is either 0, or the size of the Y plain, or size 
 of Y + U plains.
You can say it that way. I'd say that I calculate how to malloc and fill a new
scatter-gather to represent [offset, offset + size [ interval of the original
sglist.


  dma_len = sg_dma_len(sg);
 -
  /* PXA27x Developer's Manual 27.4.4.1: round up to 8 bytes */
 -xfer_len = roundup(min(dma_len - offset, size), 8);
 +dropped_xfer_len = roundup(min(dma_len, dropped_remain), 8);
 +if (dropped_remain)
 +dropped_remain -= dropped_xfer_len;
 +xfer_len = dma_len - dropped_xfer_len;
 +
 +if ((nfirst  0)  (xfer_len  0)) {

 Superfluous parentheses
Got it.


 +sg_first = sg;
 +nfirst = i;
 +nfirst_offset = dropped_xfer_len;
 +}
 +if (xfer_len  0) {
 +*new_sg_len = *new_sg_len + 1;

 make it
 + (*new_sg_len)++;
Got it.

  static void pxa_camera_dma_irq(struct pxa_camera_dev *pcdev,
 enum pxa_camera_active_dma act_dma);
  
 @@ -343,93 +379,59 @@ static void pxa_camera_dma_irq_v(void *data)
   * @channel: dma channel (0 = 'Y', 1 = 'U', 2 = 'V')
   * @cibr: camera Receive Buffer Register
   * @size: bytes to transfer
 - * @sg_first: first element of sg_list
 - * @sg_first_ofs: offset in first element of sg_list
 + * @offset: offset in videobuffer of the first byte to transfer
   *
   * Prepares the pxa dma descriptors to transfer one camera channel.
 - * Beware sg_first and sg_first_ofs are both input and output parameters.
   *
 - * Returns 0 or -ENOMEM if no coherent memory is available
 + * Returns 0 if success or -ENOMEM if no memory is available
   */
  static int pxa_init_dma_channel(struct pxa_camera_dev *pcdev,
  struct pxa_buffer *buf,
  struct videobuf_dmabuf *dma, int channel,
 -int cibr, int size,
 -struct scatterlist **sg_first, int 
 *sg_first_ofs)
 +int cibr, int size, int offset)
  {

 Hmm, ok, can you, please, explain, why you have to change this so much? 
 IIUC, the functionality, that you're implementing now is rather similar to 
 the present one - you split the global videobuf SG list into 3 SG lists 
 for YUV formats. Of course, details are different, you don't use 
 pxa_dma_desc and all the low-level values directly, you prepare a standard 
 SG list for your dmaengine driver. But the splitting is the same, isn't 
 it?
The overall splitting is the same, yes : split one global SG list into 3 SG
lists.

 And the current one seems rather good to me, because it preserves and 
 re-uses partially consumed pointers instead of recalculating them every 
 time, like you do it in your new version. What's the reason for that? Is 
 the current version buggy or the current approach unsuitable for your new 
 version?

Let's say unsuitable, or to be more correct, let's say that I didn't found any
better idea yet. As I find that piece of code a bit complicated too, I'll tell
you what was my need for doing it, and maybe you'll/we'll come up with a better
idea.

The previous version had the good fortune to rely on a _single_ scatter-gather
list. Only the DMA descriptors list was computed to be 3 lists
(dma[channe].sg_cpu[0..n]).

The new version must have 3 separated SG lists, each 

Re: [PATCH 3/4] media: pxa_camera: trivial move of dma irq functions

2015-06-21 Thread Guennadi Liakhovetski
On Sat, 20 Jun 2015, Robert Jarzmik wrote:

 Guennadi Liakhovetski g.liakhovet...@gmx.de writes:
 
  +static void pxa_camera_dma_irq(struct pxa_camera_dev *pcdev,
  + enum pxa_camera_active_dma act_dma);
  +
  +static void pxa_camera_dma_irq_y(void *data)
 
  Wait, how is this patch trivial? You change pxa_camera_dma_irq_?() 
  prototypes, which are used as PXA DMA callbacks. Does this mean, that 
  either before or after this patch compilation is broken?
 
 Jeez you're right.
 So I can either fold that with patch 4, or try to rework it somehow ...

How about letting that patch do exactly what it says it does? Just move 
functions up in the file if you need them there, without changing them, 
and only change them when it's needed?

Thanks
Guennadi
--
To unsubscribe from this list: send the line unsubscribe linux-media in


Re: [PATCH 04/14] tw9910: init priv-scale and update standard

2015-06-21 Thread Guennadi Liakhovetski
On Mon, 15 Jun 2015, Hans Verkuil wrote:

 From: Hans Verkuil hans.verk...@cisco.com
 
 When the standard changes the VACTIVE and VDELAY values need to be updated.
 
 Signed-off-by: Hans Verkuil hans.verk...@cisco.com
 ---
  drivers/media/i2c/soc_camera/tw9910.c | 29 -
  1 file changed, 28 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/media/i2c/soc_camera/tw9910.c 
 b/drivers/media/i2c/soc_camera/tw9910.c
 index df66417..e939c24 100644
 --- a/drivers/media/i2c/soc_camera/tw9910.c
 +++ b/drivers/media/i2c/soc_camera/tw9910.c
 @@ -510,13 +510,39 @@ static int tw9910_s_std(struct v4l2_subdev *sd, 
 v4l2_std_id norm)
  {
   struct i2c_client *client = v4l2_get_subdevdata(sd);
   struct tw9910_priv *priv = to_tw9910(client);
 + const unsigned hact = 720;
 + const unsigned hdelay = 15;
 + unsigned vact;
 + unsigned vdelay;
 + int ret;
  
   if (!(norm  (V4L2_STD_NTSC | V4L2_STD_PAL)))
   return -EINVAL;
  
   priv-norm = norm;
 + if (norm  V4L2_STD_525_60) {
 + vact = 240;
 + vdelay = 18;
 + ret = tw9910_mask_set(client, VVBI, 0x10, 0x10);
 + } else {
 + vact = 288;
 + vdelay = 24;
 + ret = tw9910_mask_set(client, VVBI, 0x10, 0x00);
 + }
 + if (!ret)
 + ret = i2c_smbus_write_byte_data(client, CROP_HI,
 + ((vdelay  2)  0xc0) |
 + ((vact  4)  0x30) |
 + ((hdelay  6)  0x0c) |
 + ((hact  8)  0x03));

I personally would find ((x  0xc0)  {2,4,6,8}) a bit easier for the 
eyes, but this works as well for me:)

 + if (!ret)
 + ret = i2c_smbus_write_byte_data(client, VDELAY_LO,
 + vdelay  0xff);
 + if (!ret)
 + ret = i2c_smbus_write_byte_data(client, VACTIVE_LO,
 + vact  0xff);
  
 - return 0;
 + return ret;
  }
  
  #ifdef CONFIG_VIDEO_ADV_DEBUG
 @@ -820,6 +846,7 @@ static int tw9910_video_probe(struct i2c_client *client)
tw9910 Product ID %0x:%0x\n, id, priv-revision);
  
   priv-norm = V4L2_STD_NTSC;
 + priv-scale = tw9910_ntsc_scales[0];

Why do you need this? So far everywhere in the code priv-scale is either 
checked or set before use. Don't see why an additional initialisation is 
needed.

Thanks
Guennadi

  
  done:
   tw9910_s_power(priv-subdev, 0);
 -- 
 2.1.4
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in


Re: [x86/mm/pat, drivers/media/ivtv] WARNING: CPU: 0 PID: 1 at drivers/media/pci/ivtv/ivtvfb.c:1270 ivtvfb_init()

2015-06-21 Thread Luis R. Rodriguez
On Sun, Jun 21, 2015 at 10:41:20PM +0200, Borislav Petkov wrote:
 On Sun, Jun 21, 2015 at 10:23:48PM +0200, Luis R. Rodriguez wrote:
  Nope, well the driver requires huge amounts of work to work with PAT,
  that work will likely never be done, so hence the warning. Its our
  compromise as only 2 drivers will live on Linux like this and they are
  both old and rare.
 
 Hmm, so wasn't the possibility discussed to fail loading 

It will fail load.

 instead and
 issue a single-line pr_warn() when PAT is enabled? 

During review no one opposed the idea of having the warn
as its a load thing, not a compile thing, and a user
that does not get their driver loaded should know why,
otherwise its not clear.

 Those big WARN() splats will only confuse people...

We can certainly replace the WARN() with pr_warn(), I don't see
how its confusing though as its a run time real issue. Either
way whatever you recommend is fine by me.

 Luis
--
To unsubscribe from this list: send the line unsubscribe linux-media in


cron job: media_tree daily build: OK

2015-06-21 Thread Hans Verkuil
This message is generated daily by a cron job that builds media_tree for
the kernels and architectures in the list below.

Results of the daily build of media_tree:

date:   Mon Jun 22 04:00:13 CEST 2015
git branch: test
git hash:   6f32a8c97f11eb074027052b6b507891e5c9d8b1
gcc version:i686-linux-gcc (GCC) 5.1.0
sparse version: v0.5.0-44-g40791b9
smatch version: 0.4.1-3153-g7d56ab3
host hardware:  x86_64
host os:4.0.0-3.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-bf561: OK
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: OK
linux-git-powerpc64: OK
linux-git-sh: OK
linux-git-x86_64: OK
linux-2.6.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: OK
linux-2.6.37.6-i686: OK
linux-2.6.38.8-i686: OK
linux-2.6.39.4-i686: OK
linux-3.0.60-i686: OK
linux-3.1.10-i686: OK
linux-3.2.37-i686: OK
linux-3.3.8-i686: OK
linux-3.4.27-i686: OK
linux-3.5.7-i686: OK
linux-3.6.11-i686: OK
linux-3.7.4-i686: OK
linux-3.8-i686: OK
linux-3.9.2-i686: OK
linux-3.10.1-i686: OK
linux-3.11.1-i686: OK
linux-3.12.23-i686: OK
linux-3.13.11-i686: OK
linux-3.14.9-i686: OK
linux-3.15.2-i686: OK
linux-3.16.7-i686: OK
linux-3.17.8-i686: OK
linux-3.18.7-i686: OK
linux-3.19-i686: OK
linux-4.0-i686: OK
linux-4.1-rc1-i686: 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: OK
linux-2.6.37.6-x86_64: OK
linux-2.6.38.8-x86_64: OK
linux-2.6.39.4-x86_64: OK
linux-3.0.60-x86_64: OK
linux-3.1.10-x86_64: OK
linux-3.2.37-x86_64: OK
linux-3.3.8-x86_64: OK
linux-3.4.27-x86_64: OK
linux-3.5.7-x86_64: OK
linux-3.6.11-x86_64: OK
linux-3.7.4-x86_64: OK
linux-3.8-x86_64: OK
linux-3.9.2-x86_64: OK
linux-3.10.1-x86_64: OK
linux-3.11.1-x86_64: OK
linux-3.12.23-x86_64: OK
linux-3.13.11-x86_64: OK
linux-3.14.9-x86_64: OK
linux-3.15.2-x86_64: OK
linux-3.16.7-x86_64: OK
linux-3.17.8-x86_64: OK
linux-3.18.7-x86_64: OK
linux-3.19-x86_64: OK
linux-4.0-x86_64: OK
linux-4.1-rc1-x86_64: OK
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


Re: [x86/mm/pat, drivers/media/ivtv] WARNING: CPU: 0 PID: 1 at drivers/media/pci/ivtv/ivtvfb.c:1270 ivtvfb_init()

2015-06-21 Thread Luis R. Rodriguez
On Sat, Jun 20, 2015 at 01:08:44PM +0200, Borislav Petkov wrote:
 On Sat, Jun 20, 2015 at 03:17:56PM +0800, Fengguang Wu wrote:
  Greetings,
  
  0day kernel testing robot got the below dmesg and the first bad commit is
  
  git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
  
  commit 1bf1735b478008c30acaff18ec6f4a3ff211c28a
  Author: Luis R. Rodriguez mcg...@suse.com
  AuthorDate: Mon Jun 15 10:28:16 2015 +0200
  Commit: Ingo Molnar mi...@kernel.org
  CommitDate: Thu Jun 18 11:23:41 2015 +0200
  
  x86/mm/pat, drivers/media/ivtv: Use arch_phys_wc_add() and require PAT 
  disabled
 
 ...
 
  [   12.956506] ivtv: Start initialization, version 1.4.3
  [   12.958238] ivtv: End initialization
  [   12.959438] [ cut here ]
  [   12.974076] WARNING: CPU: 0 PID: 1 at 
  drivers/media/pci/ivtv/ivtvfb.c:1270 ivtvfb_init+0x32/0xa3()
  [   12.978017] ivtvfb needs PAT disabled, boot with nopat kernel parameter
 
 Warning says it all. You need to boot with nopat. Apparently, those
 devices are very seldom now and users should boot with nopat.

Indeed.

 Luis, what is the plan, is this driver supposed to be converted to
 reserve_memtype(..., _PAGE_CACHE_MODE_WC, ...) at some point?

Nope, well the driver requires huge amounts of work to work with PAT,
that work will likely never be done, so hence the warning. Its our
compromise as only 2 drivers will live on Linux like this and they are
both old and rare.

  Luis
--
To unsubscribe from this list: send the line unsubscribe linux-media in


Re: [PATCH] [media] mantis: cleanup a warning

2015-06-21 Thread Jan Klötzke
Hi Mauro,

my bad. 

On Thu, Jun 18, 2015 at 02:32:39PM -0300, Mauro Carvalho Chehab wrote:
 Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com
 drivers/media/pci/mantis/mantis_i2c.c: In function 'mantis_i2c_init':
 drivers/media/pci/mantis/mantis_i2c.c:222:15: warning: variable 'intmask' set 
 but not used [-Wunused-but-set-variable]
   u32 intstat, intmask;
 
 Signed-off-by: Mauro Carvalho Chehab mche...@osg.samsung.com
 
 diff --git a/drivers/media/pci/mantis/mantis_i2c.c 
 b/drivers/media/pci/mantis/mantis_i2c.c
 index a93823490a43..d72ee47dc6e4 100644
 --- a/drivers/media/pci/mantis/mantis_i2c.c
 +++ b/drivers/media/pci/mantis/mantis_i2c.c
 @@ -219,7 +219,7 @@ static struct i2c_algorithm mantis_algo = {
  
  int mantis_i2c_init(struct mantis_pci *mantis)
  {
 - u32 intstat, intmask;
 + u32 intstat;
   struct i2c_adapter *i2c_adapter = mantis-adapter;
   struct pci_dev *pdev= mantis-pdev;
  
 @@ -242,7 +242,7 @@ int mantis_i2c_init(struct mantis_pci *mantis)
   dprintk(MANTIS_DEBUG, 1, Initializing I2C ..);
  
   intstat = mmread(MANTIS_INT_STAT);
 - intmask = mmread(MANTIS_INT_MASK);
 + mmread(MANTIS_INT_MASK);

I'm not sure if the mmread() is still needed. But as I don't have any
docs about the chipset I would keep it because that's how it has been
tested. I could re-test without it but I guess nobody cares about the
extra mmread() in the init path anyway.

Acked-by: Jan Klötzke j...@kloetzke.net

Regards,
Jan

   mmwrite(intstat, MANTIS_INT_STAT);
   dprintk(MANTIS_DEBUG, 1, Disabling I2C interrupt);
   mantis_mask_ints(mantis, MANTIS_INT_I2CDONE);
 -- 
 2.4.3
 
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in


ivtv - firmware - v4l-cx2341x*.fw - Upstream Fedora

2015-06-21 Thread poma

Háu kola


$ lspci -d :0016 -knn
01:08.0 Multimedia video controller [0400]: Internext Compression Inc iTVC16 
(CX23416) Video Decoder [:0016] (rev 01)
Subsystem: Hauppauge computer works Inc. WinTV PVR 150 [0070:8801]
Kernel driver in use: ivtv
Kernel modules: ivtv



$ dmesg | grep ivtv
[   10.082881] ivtv: Start initialization, version 1.4.3
[   10.085644] ivtv0: Initializing card 0
[   10.088287] ivtv0: Autodetected Hauppauge card (cx23416 based)
[   10.094502] ivtv0: Unreasonably low latency timer, setting to 64 (was 32)
[   10.183374] ivtv0: Autodetected Hauppauge WinTV PVR-150
[   10.240409] cx25840 2-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #0)
[   10.380617] wm8775 2-001b: chip found @ 0x36 (ivtv i2c driver #0)
[   10.431991] ivtv0: Registered device video0 for encoder MPG (4096 kB)
[   10.432151] ivtv0: Registered device video32 for encoder YUV (2048 kB)
[   10.432256] ivtv0: Registered device vbi0 for encoder VBI (1024 kB)
[   10.432358] ivtv0: Registered device video24 for encoder PCM (320 kB)
[   10.432459] ivtv0: Registered device radio0 for encoder radio
[   10.432473] ivtv0: Initialized card: Hauppauge WinTV PVR-150
[   10.433869] ivtv: End initialization
[   11.820105] ivtv :01:08.0: Direct firmware load for v4l-cx2341x-enc.fw 
failed with error -2
[   11.820119] ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 
376836 bytes)
[   11.820124] ivtv0: Did you put the firmware in the hotplug firmware 
directory?
[   11.820129] ivtv0: Retry loading firmware
[   12.439735] ivtv :01:08.0: Direct firmware load for v4l-cx2341x-enc.fw 
failed with error -2
[   12.439747] ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 
376836 bytes)
[   12.439752] ivtv0: Did you put the firmware in the hotplug firmware 
directory?
[   12.439757] ivtv0: Failed to initialize on device video32
[   12.439788] ivtv0: Failed to initialize on device video0
[   12.439953] ivtv0: Failed to initialize on device vbi0
[   12.439968] ivtv0: Failed to initialize on device video24
[   12.440110] ivtv0: Failed to initialize on device radio0



$ modinfo ivtv | grep 'author\|firmware'
author: Kevin Thayer, Chris Kennedy, Hans Verkuil
firmware:   v4l-cx2341x-init.mpg
firmware:   v4l-cx2341x-dec.fw
firmware:   v4l-cx2341x-enc.fw



$ rpm -qi linux-firmware
...
Packager: Fedora Project
Vendor  : Fedora Project
...
Summary : Firmware files used by the Linux kernel
Description :
This package includes firmware files required for some devices to
operate.

~~~

$ rpm -ql linux-firmware | grep v4l-cx2341x
$ 

~~~

# yum install ivtv-firmware
...
No package ivtv-firmware available.
Error: Nothing to do



$ rpm -qilp 
https://kojipkgs.fedoraproject.org/packages/ivtv-firmware/20080701/26/noarch/ivtv-firmware-20080701-26.noarch.rpm
Name: ivtv-firmware
Epoch   : 2
Version : 20080701
Release : 26
Architecture: noarch
Install Date: (not installed)
Group   : System Environment/Kernel
Size: 857256
License : Redistributable, no modification permitted
Signature   : (none)
Source RPM  : ivtv-firmware-20080701-26.src.rpm
Build Date  : Sun 08 Jun 2014 05:38:45 AM CEST
Build Host  : buildvm-11.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager: Fedora Project
Vendor  : Fedora Project
URL : http://dl.ivtvdriver.org/ivtv/firmware/
Summary : Firmware for the Hauppauge PVR 250/350/150/500/USB2 model series
Description :
This package contains the firmware for WinTV Hauppauge PVR
250/350/150/500/USB2 cards.
/lib/firmware/ivtv-firmware-license-end-user.txt
/lib/firmware/ivtv-firmware-license-oemihvisv.txt
/lib/firmware/v4l-cx2341x-dec.fw
/lib/firmware/v4l-cx2341x-enc.fw
/lib/firmware/v4l-cx2341x-init.mpg
/lib/firmware/v4l-cx25840.fw
/lib/firmware/v4l-pvrusb2-24xxx-01.fw
/lib/firmware/v4l-pvrusb2-29xxx-01.fw
/usr/share/doc/ivtv-firmware
/usr/share/doc/ivtv-firmware/license-end-user.txt
/usr/share/doc/ivtv-firmware/license-oemihvisv.txt

~

Why these firmwares are not included upstream
http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/
?

Why these firmwares are obsoleted(?) downstream
http://pkgs.fedoraproject.org/cgit/ivtv-firmware.git
?

Why these firmware are not included downstream
http://pkgs.fedoraproject.org/cgit/linux-firmware.git
?


--
To unsubscribe from this list: send the line unsubscribe linux-media in


Re: [x86/mm/pat, drivers/media/ivtv] WARNING: CPU: 0 PID: 1 at drivers/media/pci/ivtv/ivtvfb.c:1270 ivtvfb_init()

2015-06-21 Thread Borislav Petkov
On Sun, Jun 21, 2015 at 10:23:48PM +0200, Luis R. Rodriguez wrote:
 Nope, well the driver requires huge amounts of work to work with PAT,
 that work will likely never be done, so hence the warning. Its our
 compromise as only 2 drivers will live on Linux like this and they are
 both old and rare.

Hmm, so wasn't the possibility discussed to fail loading instead and
issue a single-line pr_warn() when PAT is enabled? Those big WARN()
splats will only confuse people...

-- 
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--
--
To unsubscribe from this list: send the line unsubscribe linux-media in


cx23885 risc op code error with DvbSKY T982

2015-06-21 Thread Jouni Karvo

I have dvbsky T982.  The firmware is up to date from openelec site.  Nothing on 
the CI slot

Linux xpc 4.1.0-rc8 #2 SMP Sun Jun 21 11:16:21 EEST 2015 x86_64 x86_64 x86_64 
GNU/Linux
I run the kernel in ubuntu

dmesg from the startup

[   16.427634] CORE cx23885[0]: subsystem: 4254:0982, board: DVBSky T982 
[card=51,autodetected]
[   17.275820] cx23885_dvb_register() allocating 1 frontend(s)
[   17.275822] cx23885[0]: cx23885 based dvb card
[   17.281850] DVB: registering new adapter (cx23885[0])
[   17.281853] cx23885 :01:00.0: DVB: registering adapter 0 frontend 0 
(Silicon Labs Si2168)...
[   17.308303] DVBSky T982 port 1 MAC address: 00:17:42:54:09:87
[   17.308304] cx23885_dvb_register() allocating 1 frontend(s)
[   17.308305] cx23885[0]: cx23885 based dvb card
[   17.310640] DVB: registering new adapter (cx23885[0])

And /var/log/kern.log from the event.

Jun 21 16:44:03 xpc kernel: [ 9793.748543] cx23885[0]: mpeg risc op code error
Jun 21 16:44:03 xpc kernel: [ 9793.748548] cx23885[0]: TS2 C - dma channel 
status dump
Jun 21 16:44:03 xpc kernel: [ 9793.748550] cx23885[0]:   cmds: init risc lo   : 
0x78b76000
Jun 21 16:44:03 xpc kernel: [ 9793.748552] cx23885[0]:   cmds: init risc hi   : 
0x
Jun 21 16:44:03 xpc kernel: [ 9793.748554] cx23885[0]:   cmds: cdt base   : 
0x000105e0
Jun 21 16:44:03 xpc kernel: [ 9793.748556] cx23885[0]:   cmds: cdt size   : 
0x000a
Jun 21 16:44:03 xpc kernel: [ 9793.748558] cx23885[0]:   cmds: iq base: 
0x00010440
Jun 21 16:44:03 xpc kernel: [ 9793.748560] cx23885[0]:   cmds: iq size: 
0x0010
Jun 21 16:44:03 xpc kernel: [ 9793.748562] cx23885[0]:   cmds: risc pc lo : 
0x78b76004
Jun 21 16:44:03 xpc kernel: [ 9793.748564] cx23885[0]:   cmds: risc pc hi : 
0x
Jun 21 16:44:03 xpc kernel: [ 9793.748566] cx23885[0]:   cmds: iq wr ptr  : 
0x4111
Jun 21 16:44:03 xpc kernel: [ 9793.748568] cx23885[0]:   cmds: iq rd ptr  : 
0x4110
Jun 21 16:44:03 xpc kernel: [ 9793.748570] cx23885[0]:   cmds: cdt current: 
0x00010628
Jun 21 16:44:03 xpc kernel: [ 9793.748572] cx23885[0]:   cmds: pci target lo  : 
0x4b9a42f0
Jun 21 16:44:03 xpc kernel: [ 9793.748574] cx23885[0]:   cmds: pci target hi  : 
0x
Jun 21 16:44:03 xpc kernel: [ 9793.748576] cx23885[0]:   cmds: line / byte: 
0x0261
Jun 21 16:44:03 xpc kernel: [ 9793.748578] cx23885[0]:   risc0: 0x1c0002f0 [ 
write sol eol count=752 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748582] cx23885[0]:   risc1: 0x4b9a42f0 [ 
INVALID sol irq2 irq1 23 20 19 cnt1 14 count=752 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748587] cx23885[0]:   risc2: 0x [ 
INVALID count=0 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748589] cx23885[0]:   risc3: 0x1c0002f0 [ 
write sol eol count=752 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748592] cx23885[0]:   (0x00010440) iq 0: 
0x003fb002 [ INVALID 21 20 19 18 cnt1 cnt0 resync 13 12 count=2 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748597] cx23885[0]:   (0x00010444) iq 1: 
0x4b9a4000 [ INVALID sol irq2 irq1 23 20 19 cnt1 14 count=0 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748601] cx23885[0]:   (0x00010448) iq 2: 
0x [ INVALID count=0 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748603] cx23885[0]:   (0x0001044c) iq 3: 
0x1c0002f0 [ write sol eol count=752 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748606] cx23885[0]:   iq 4: 0x4b9a42f0 [ arg 
#1 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748608] cx23885[0]:   iq 5: 0x [ arg 
#2 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748610] cx23885[0]:   (0x00010458) iq 6: 
0x1c0002f0 [ write sol eol count=752 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748613] cx23885[0]:   iq 7: 0x4b9a45e0 [ arg 
#1 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748615] cx23885[0]:   iq 8: 0x [ arg 
#2 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748617] cx23885[0]:   (0x00010464) iq 9: 
0x1c0002f0 [ write sol eol count=752 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748620] cx23885[0]:   iq a: 0x4b9a48d0 [ arg 
#1 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748623] cx23885[0]:   iq b: 0x [ arg 
#2 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748625] cx23885[0]:   (0x00010470) iq c: 
0x1c0002f0 [ write sol eol count=752 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748628] cx23885[0]:   iq d: 0x4b9a4bc0 [ arg 
#1 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748629] cx23885[0]:   iq e: 0x [ arg 
#2 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748631] cx23885[0]:   (0x0001047c) iq f: 
0x7100 [ jump irq1 count=0 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748634] cx23885[0]:   iq 10: 0x0af829b7 [ 
arg #1 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748636] cx23885[0]:   iq 11: 0x7bf7a9f0 [ 
arg #2 ]
Jun 21 16:44:03 xpc kernel: [ 9793.748637] cx23885[0]: fifo: 0x6000 - 
0x7000
Jun 21 16:44:03 xpc kernel: [ 9793.748638] cx23885[0]: ctrl: 0x00010440 - 
0x104a0
Jun 21 16:44:03 xpc kernel: [ 9793.748640] cx23885[0]:   ptr1_reg: 0x6be0
Jun 21 16:44:03 xpc kernel: [ 9793.748642] cx23885[0]:   ptr2_reg: 0x00010628
Jun 21 16:44:03 xpc kernel: [ 9793.748643] cx23885[0]:   cnt1_reg: 0x0002
Jun 21 

Re: [PATCH 3/4] media: pxa_camera: trivial move of dma irq functions

2015-06-21 Thread Robert Jarzmik
Guennadi Liakhovetski g.liakhovet...@gmx.de writes:

 On Sat, 20 Jun 2015, Robert Jarzmik wrote:

 Guennadi Liakhovetski g.liakhovet...@gmx.de writes:
 
  +static void pxa_camera_dma_irq(struct pxa_camera_dev *pcdev,
  +enum pxa_camera_active_dma act_dma);
  +
  +static void pxa_camera_dma_irq_y(void *data)
 
  Wait, how is this patch trivial? You change pxa_camera_dma_irq_?() 
  prototypes, which are used as PXA DMA callbacks. Does this mean, that 
  either before or after this patch compilation is broken?
 
 Jeez you're right.
 So I can either fold that with patch 4, or try to rework it somehow ...

 How about letting that patch do exactly what it says it does? Just move 
 functions up in the file if you need them there, without changing them, 
 and only change them when it's needed?
Deal, for next iteration.

Cheers.

-- 
Robert
--
To unsubscribe from this list: send the line unsubscribe linux-media in