Re: [PATCH 2/3] [media] hva: STiH41x multi-format video encoder V4L2 driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Yannick,

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v4.4-rc5 next-20151217]

url:    https://github.com/0day-ci/linux/commits/Yannick-Fertre/Documentation-devicetree-add-STI-HVA-binding/20151218-184834
base:   git://linuxtv.org/media_tree.git master
config: x86_64-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   drivers/media/platform/sti/hva/hva-v4l2.c: In function 'hva_open_encoder':
>> drivers/media/platform/sti/hva/hva-v4l2.c:164:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
       ctx->name, (char *)pixelformat, (char *)streamformat);
                  ^
   drivers/media/platform/sti/hva/hva-v4l2.c:164:36: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
       ctx->name, (char *)pixelformat, (char *)streamformat);
                                       ^
   drivers/media/platform/sti/hva/hva-v4l2.c: In function 'hva_querybuf':
>> drivers/media/platform/sti/hva/hva-v4l2.c:97:28: error: implicit declaration of function 'UL' [-Werror=implicit-function-declaration]
    #define MMAP_FRAME_OFFSET (UL(0x100000000) / 2)
                               ^
>> drivers/media/platform/sti/hva/hva-v4l2.c:589:18: note: in expansion of macro 'MMAP_FRAME_OFFSET'
      b->m.offset += MMAP_FRAME_OFFSET;
                     ^
   In file included from include/linux/printk.h:277:0,
                    from include/linux/kernel.h:13,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from drivers/media/platform/sti/hva/hva-v4l2.c:8:
   drivers/media/platform/sti/hva/hva-v4l2.c: In function 'hva_vb2_frame_prepare':
>> drivers/media/platform/sti/hva/hva-v4l2.c:875:16: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=]
      dev_dbg(dev, "%s frame[%d] prepared; virt=%p, phy=0x%x\n",
                   ^
   include/linux/dynamic_debug.h:86:39: note: in definition of macro 'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^
>> drivers/media/platform/sti/hva/hva-v4l2.c:875:3: note: in expansion of macro 'dev_dbg'
      dev_dbg(dev, "%s frame[%d] prepared; virt=%p, phy=0x%x\n",
      ^
   drivers/media/platform/sti/hva/hva-v4l2.c: In function 'hva_vb2_stream_prepare':
   drivers/media/platform/sti/hva/hva-v4l2.c:999:16: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=]
      dev_dbg(dev, "%s stream[%d] prepared; virt=%p, phy=0x%x\n",
                   ^
   include/linux/dynamic_debug.h:86:39: note: in definition of macro 'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^
   drivers/media/platform/sti/hva/hva-v4l2.c:999:3: note: in expansion of macro 'dev_dbg'
      dev_dbg(dev, "%s stream[%d] prepared; virt=%p, phy=0x%x\n",
      ^
   In file included from drivers/media/platform/sti/hva/hva-v4l2.c:8:0:
   drivers/media/platform/sti/hva/hva-v4l2.c: In function 'hva_probe':
   drivers/media/platform/sti/hva/hva-v4l2.c:1345:26: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
       HVA_PREFIX, HVA_NAME, (void *)hva->esram_addr,
                             ^
   include/linux/device.h:1174:58: note: in definition of macro 'dev_info'
    #define dev_info(dev, fmt, arg...) _dev_info(dev, fmt, ##arg)
                                                             ^
   cc1: some warnings being treated as errors
--
   In file included from include/linux/printk.h:277:0,
                    from include/linux/kernel.h:13,
                    from include/linux/clk.h:16,
                    from drivers/media/platform/sti/hva/hva-hw.c:8:
   drivers/media/platform/sti/hva/hva-hw.c: In function 'hva_hw_execute_task':
>> drivers/media/platform/sti/hva/hva-hw.c:523:15: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=]
     dev_dbg(dev, "%s     %s: Send task ( cmd:%d, task_desc:0x%x)\n",
                  ^
   include/linux/dynamic_debug.h:86:39: note: in definition of macro 'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^
>> drivers/media/platform/sti/hva/hva-hw.c:523:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(dev, "%s     %s: Send task ( cmd:%d, task_desc:0x%x)\n",
     ^
--
   In file included from include/linux/printk.h:277:0,
                    from include/linux/kernel.h:13,
                    from include/linux/list.h:8,
                    from include/linux/preempt.h:10,
                    from include/linux/spinlock.h:50,
                    from include/linux/seqlock.h:35,
                    from include/linux/time.h:5,
                    from include/linux/ktime.h:24,
                    from include/linux/poll.h:6,
                    from include/media/v4l2-dev.h:12,
                    from include/media/v4l2-common.h:29,
                    from drivers/media/platform/sti/hva/hva.h:11,
                    from drivers/media/platform/sti/hva/hva-mem.c:8:
   drivers/media/platform/sti/hva/hva-mem.c: In function 'hva_mem_alloc':
>> drivers/media/platform/sti/hva/hva-mem.c:43:3: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=]
      "%s allocate %d bytes of HW memory @(virt=%p, phy=0x%x): %s\n",
      ^
   include/linux/dynamic_debug.h:86:39: note: in definition of macro 'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^
>> drivers/media/platform/sti/hva/hva-mem.c:42:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(dev,
     ^
   drivers/media/platform/sti/hva/hva-mem.c: In function 'hva_mem_free':
   drivers/media/platform/sti/hva/hva-mem.c:57:3: warning: format '%x' expects argument of type 'unsigned int', but argument 7 has type 'dma_addr_t {aka long long unsigned int}' [-Wformat=]
      "%s free %d bytes of HW memory @(virt=%p, phy=0x%x): %s\n",
      ^
   include/linux/dynamic_debug.h:86:39: note: in definition of macro 'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^
   drivers/media/platform/sti/hva/hva-mem.c:56:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(dev,
     ^

vim +/UL +97 drivers/media/platform/sti/hva/hva-v4l2.c

     2	 * Copyright (C) STMicroelectronics SA 2015
     3	 * Authors: Yannick Fertre <yannick.fertre@xxxxxx>
     4	 *          Hugues Fruchet <hugues.fruchet@xxxxxx>
     5	 * License terms:  GNU General Public License (GPL), version 2
     6	 */
     7	
   > 8	#include <linux/device.h>
     9	#include <linux/dma-mapping.h>
    10	#include <linux/module.h>
    11	#include <linux/platform_device.h>
    12	#include <linux/slab.h>
    13	#include <linux/version.h>
    14	#include <linux/of.h>
    15	#include <media/v4l2-ioctl.h>
    16	#include <media/videobuf2-dma-contig.h>
    17	#include "hva.h"
    18	#include "hva-hw.h"
    19	
    20	#define HVA_NAME "hva"
    21	
    22	/*
    23	 * 1 frame at least for user
    24	 * limit number of frames to 16
    25	 */
    26	#define MAX_FRAMES	16
    27	#define MIN_FRAMES	1
    28	
    29	#define HVA_MIN_WIDTH	32
    30	#define HVA_MAX_WIDTH	1920
    31	#define HVA_MIN_HEIGHT	32
    32	#define HVA_MAX_HEIGHT	1080
    33	
    34	#define DFT_CFG_WIDTH		HVA_MIN_WIDTH
    35	#define	DFT_CFG_HEIGHT		HVA_MIN_HEIGHT
    36	#define DFT_CFG_BITRATE_MODE	V4L2_MPEG_VIDEO_BITRATE_MODE_CBR
    37	#define DFT_CFG_GOP_SIZE	16
    38	#define DFT_CFG_INTRA_REFRESH	true
    39	#define DFT_CFG_FRAME_NUM	1
    40	#define DFT_CFG_FRAME_DEN	30
    41	#define DFT_CFG_QPMIN		5
    42	#define DFT_CFG_QPMAX		51
    43	#define DFT_CFG_DCT8X8		false
    44	#define DFT_CFG_COMP_QUALITY	85
    45	#define DFT_CFG_SAR_ENABLE	1
    46	#define DFT_CFG_BITRATE		(20000 * 1024)
    47	#define DFT_CFG_CPB_SIZE	(25000 * 1024)
    48	
    49	static const struct hva_frameinfo frame_dflt_fmt = {
    50		.fmt		= {
    51					.pixelformat	= V4L2_PIX_FMT_NV12,
    52					.nb_planes	= 2,
    53					.bpp		= 12,
    54					.bpp_plane0	= 8,
    55					.w_align	= 2,
    56					.h_align	= 2
    57				  },
    58		.width		= DFT_CFG_WIDTH,
    59		.height		= DFT_CFG_HEIGHT,
    60		.crop		= {0, 0, DFT_CFG_WIDTH, DFT_CFG_HEIGHT},
    61		.frame_width	= DFT_CFG_WIDTH,
    62		.frame_height	= DFT_CFG_HEIGHT
    63	};
    64	
    65	static const struct hva_streaminfo stream_dflt_fmt = {
    66		.width		= DFT_CFG_WIDTH,
    67		.height		= DFT_CFG_HEIGHT
    68	};
    69	
    70	/* list of stream formats supported by hva hardware */
    71	const u32 stream_fmt[] = {
    72	};
    73	
    74	/* list of pixel formats supported by hva hardware */
    75	static const struct hva_frame_fmt frame_fmts[] = {
    76		/* NV12. YUV420SP - 1 plane for Y + 1 plane for (CbCr) */
    77		{
    78			.pixelformat	= V4L2_PIX_FMT_NV12,
    79			.nb_planes	= 2,
    80			.bpp		= 12,
    81			.bpp_plane0	= 8,
    82			.w_align	= 2,
    83			.h_align	= 2
    84		},
    85		/* NV21. YUV420SP - 1 plane for Y + 1 plane for (CbCr) */
    86		{
    87			.pixelformat	= V4L2_PIX_FMT_NV21,
    88			.nb_planes	= 2,
    89			.bpp		= 12,
    90			.bpp_plane0	= 8,
    91			.w_align	= 2,
    92			.h_align	= 2
    93		},
    94	};
    95	
    96	/* offset to differentiate OUTPUT/CAPTURE @mmap */
  > 97	#define MMAP_FRAME_OFFSET (UL(0x100000000) / 2)
    98	
    99	/* registry of available encoders */
   100	const struct hva_encoder *hva_encoders[] = {
   101	};
   102	
   103	static const struct hva_frame_fmt *hva_find_frame_fmt(u32 pixelformat)
   104	{
   105		const struct hva_frame_fmt *fmt;
   106		unsigned int i;
   107	
   108		for (i = 0; i < ARRAY_SIZE(frame_fmts); i++) {
   109			fmt = &frame_fmts[i];
   110			if (fmt->pixelformat == pixelformat)
   111				return fmt;
   112		}
   113	
   114		return NULL;
   115	}
   116	
   117	static void register_encoder(struct hva_device *hva,
   118				     const struct hva_encoder *enc)
   119	{
   120		if (hva->nb_of_encoders >= HVA_MAX_ENCODERS) {
   121			dev_warn(hva->dev,
   122				 "%s can' t register encoder (max nb (%d) is reached!)\n",
   123				 enc->name, HVA_MAX_ENCODERS);
   124			return;
   125		}
   126	
   127		/* those encoder ops are mandatory */
   128		WARN_ON(!enc->open);
   129		WARN_ON(!enc->close);
   130		WARN_ON(!enc->encode);
   131	
   132		hva->encoders[hva->nb_of_encoders] = enc;
   133		hva->nb_of_encoders++;
   134		dev_info(hva->dev, "%s encoder registered\n", enc->name);
   135	}
   136	
   137	static void register_all(struct hva_device *hva)
   138	{
   139		unsigned int i;
   140	
   141		for (i = 0; i < ARRAY_SIZE(hva_encoders); i++)
   142			register_encoder(hva, hva_encoders[i]);
   143	}
   144	
   145	static int hva_open_encoder(struct hva_ctx *ctx, u32 streamformat,
   146				    u32 pixelformat, struct hva_encoder **penc)
   147	{
   148		struct hva_device *hva = ctx_to_hdev(ctx);
   149		struct device *dev = ctx_to_dev(ctx);
   150		struct hva_encoder *enc;
   151		unsigned int i;
   152		int ret;
   153	
   154		/* find an encoder which can deal with these formats */
   155		for (i = 0; i < hva->nb_of_encoders; i++) {
   156			enc = (struct hva_encoder *)hva->encoders[i];
   157			if ((enc->streamformat == streamformat) &&
   158			    (enc->pixelformat == pixelformat))
   159				break;	/* found */
   160		}
   161	
   162		if (i == hva->nb_of_encoders) {
   163			dev_err(dev, "%s no encoder found matching %4.4s => %4.4s\n",
 > 164				ctx->name, (char *)pixelformat, (char *)streamformat);
   165			return -EINVAL;
   166		}
   167	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: Binary data


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux