mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Lubomir Rintel <lkundrak@v3.sk>
Cc: kbuild-all@01.org, Mauro Carvalho Chehab <mchehab@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	linux-media@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Lubomir Rintel <lkundrak@v3.sk>, James Cameron <quozl@laptop.org>,
	Pavel Machek <pavel@ucw.cz>
Subject: Re: [PATCH 11/11] [media] marvell-ccic: provide a clock for the sensor
Date: Mon, 5 Nov 2018 21:01:46 +0800	[thread overview]
Message-ID: <201811052143.Vd2Sac3V%fengguang.wu@intel.com> (raw)
In-Reply-To: <20181105073054.24407-12-lkundrak@v3.sk>

[-- Attachment #1: Type: text/plain, Size: 11553 bytes --]

Hi Lubomir,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on v4.20-rc1 next-20181105]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Lubomir-Rintel/media-ov7670-hook-s_power-onto-v4l2-core/20181105-163336
base:   git://linuxtv.org/media_tree.git master
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 8.1.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=8.1.0 make.cross ARCH=ia64 

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

   In file included from drivers/media/platform/marvell-ccic/cafe-driver.c:38:
>> drivers/media/platform/marvell-ccic/mcam-core.h:129:16: error: field 'mclk_hw' has incomplete type
     struct clk_hw mclk_hw;
                   ^~~~~~~
--
   In file included from drivers/media/platform/marvell-ccic/mmp-driver.c:30:
>> drivers/media/platform/marvell-ccic/mcam-core.h:129:16: error: field 'mclk_hw' has incomplete type
     struct clk_hw mclk_hw;
                   ^~~~~~~
   drivers/media/platform/marvell-ccic/mmp-driver.c: In function 'mmpcam_probe':
>> drivers/media/platform/marvell-ccic/mmp-driver.c:302:8: error: implicit declaration of function 'of_clk_add_provider'; did you mean 'of_clk_get_from_provider'? [-Werror=implicit-function-declaration]
     ret = of_clk_add_provider(pdev->dev.of_node, of_clk_src_simple_get,
           ^~~~~~~~~~~~~~~~~~~
           of_clk_get_from_provider
>> drivers/media/platform/marvell-ccic/mmp-driver.c:302:47: error: 'of_clk_src_simple_get' undeclared (first use in this function); did you mean 'ida_simple_get'?
     ret = of_clk_add_provider(pdev->dev.of_node, of_clk_src_simple_get,
                                                  ^~~~~~~~~~~~~~~~~~~~~
                                                  ida_simple_get
   drivers/media/platform/marvell-ccic/mmp-driver.c:302:47: note: each undeclared identifier is reported only once for each function it appears in
   cc1: some warnings being treated as errors
--
   In file included from drivers/media/platform/marvell-ccic/mcam-core.c:35:
>> drivers/media/platform/marvell-ccic/mcam-core.h:129:16: error: field 'mclk_hw' has incomplete type
     struct clk_hw mclk_hw;
                   ^~~~~~~
   In file included from include/linux/kernel.h:10,
                    from drivers/media/platform/marvell-ccic/mcam-core.c:9:
   drivers/media/platform/marvell-ccic/mcam-core.c: In function 'mclk_prepare':
   include/linux/kernel.h:997:32: error: dereferencing pointer to incomplete type 'struct clk_hw'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                                   ^~~~~~
   include/linux/compiler.h:353:9: note: in definition of macro '__compiletime_assert'
      if (!(condition))     \
            ^~~~~~~~~
   include/linux/compiler.h:373:2: note: in expansion of macro '_compiletime_assert'
     _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
     ^~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:45:37: note: in expansion of macro 'compiletime_assert'
    #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                        ^~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:997:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
     ^~~~~~~~~~~~~~~~
   include/linux/kernel.h:997:20: note: in expansion of macro '__same_type'
     BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
                       ^~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:952:28: note: in expansion of macro 'container_of'
     struct mcam_camera *cam = container_of(hw, struct mcam_camera, mclk_hw);
                               ^~~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c: At top level:
>> drivers/media/platform/marvell-ccic/mcam-core.c:1004:21: error: variable 'mclk_ops' has initializer but incomplete type
    static const struct clk_ops mclk_ops = {
                        ^~~~~~~
>> drivers/media/platform/marvell-ccic/mcam-core.c:1005:3: error: 'const struct clk_ops' has no member named 'prepare'
     .prepare = mclk_prepare,
      ^~~~~~~
>> drivers/media/platform/marvell-ccic/mcam-core.c:1005:13: warning: excess elements in struct initializer
     .prepare = mclk_prepare,
                ^~~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1005:13: note: (near initialization for 'mclk_ops')
>> drivers/media/platform/marvell-ccic/mcam-core.c:1006:3: error: 'const struct clk_ops' has no member named 'unprepare'
     .unprepare = mclk_unprepare,
      ^~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1006:15: warning: excess elements in struct initializer
     .unprepare = mclk_unprepare,
                  ^~~~~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1006:15: note: (near initialization for 'mclk_ops')
>> drivers/media/platform/marvell-ccic/mcam-core.c:1007:3: error: 'const struct clk_ops' has no member named 'enable'
     .enable = mclk_enable,
      ^~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1007:12: warning: excess elements in struct initializer
     .enable = mclk_enable,
               ^~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1007:12: note: (near initialization for 'mclk_ops')
>> drivers/media/platform/marvell-ccic/mcam-core.c:1008:3: error: 'const struct clk_ops' has no member named 'disable'
     .disable = mclk_disable,
      ^~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1008:13: warning: excess elements in struct initializer
     .disable = mclk_disable,
                ^~~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1008:13: note: (near initialization for 'mclk_ops')
>> drivers/media/platform/marvell-ccic/mcam-core.c:1009:3: error: 'const struct clk_ops' has no member named 'recalc_rate'
     .recalc_rate = mclk_recalc_rate,
      ^~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1009:17: warning: excess elements in struct initializer
     .recalc_rate = mclk_recalc_rate,
                    ^~~~~~~~~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c:1009:17: note: (near initialization for 'mclk_ops')
   drivers/media/platform/marvell-ccic/mcam-core.c: In function 'mccic_register':
>> drivers/media/platform/marvell-ccic/mcam-core.c:1895:9: error: variable 'mclk_init' has initializer but incomplete type
     struct clk_init_data mclk_init = { };
            ^~~~~~~~~~~~~
>> drivers/media/platform/marvell-ccic/mcam-core.c:1895:23: error: storage size of 'mclk_init' isn't known
     struct clk_init_data mclk_init = { };
                          ^~~~~~~~~
>> drivers/media/platform/marvell-ccic/mcam-core.c:1963:14: error: implicit declaration of function 'devm_clk_register'; did you mean 'device_register'? [-Werror=implicit-function-declaration]
     cam->mclk = devm_clk_register(cam->dev, &cam->mclk_hw);
                 ^~~~~~~~~~~~~~~~~
                 device_register
   drivers/media/platform/marvell-ccic/mcam-core.c:1895:23: warning: unused variable 'mclk_init' [-Wunused-variable]
     struct clk_init_data mclk_init = { };
                          ^~~~~~~~~
   drivers/media/platform/marvell-ccic/mcam-core.c: At top level:
>> drivers/media/platform/marvell-ccic/mcam-core.c:1004:29: error: storage size of 'mclk_ops' isn't known
    static const struct clk_ops mclk_ops = {
                                ^~~~~~~~
   cc1: some warnings being treated as errors

vim +/mclk_hw +129 drivers/media/platform/marvell-ccic/mcam-core.h

    94	
    95	/*
    96	 * A description of one of our devices.
    97	 * Locking: controlled by s_mutex.  Certain fields, however, require
    98	 *          the dev_lock spinlock; they are marked as such by comments.
    99	 *          dev_lock is also required for access to device registers.
   100	 */
   101	struct mcam_camera {
   102		/*
   103		 * These fields should be set by the platform code prior to
   104		 * calling mcam_register().
   105		 */
   106		unsigned char __iomem *regs;
   107		unsigned regs_size; /* size in bytes of the register space */
   108		spinlock_t dev_lock;
   109		struct device *dev; /* For messages, dma alloc */
   110		enum mcam_chip_id chip_id;
   111		enum mcam_buffer_mode buffer_mode;
   112	
   113		int mclk_src;	/* which clock source the mclk derives from */
   114		int mclk_div;	/* Clock Divider Value for MCLK */
   115	
   116		enum v4l2_mbus_type bus_type;
   117		/* MIPI support */
   118		/* The dphy config value, allocated in board file
   119		 * dphy[0]: DPHY3
   120		 * dphy[1]: DPHY5
   121		 * dphy[2]: DPHY6
   122		 */
   123		int *dphy;
   124		bool mipi_enabled;	/* flag whether mipi is enabled already */
   125		int lane;			/* lane number */
   126	
   127		/* clock tree support */
   128		struct clk *clk[NR_MCAM_CLK];
 > 129		struct clk_hw mclk_hw;
   130		struct clk *mclk;
   131	
   132		/*
   133		 * Callbacks from the core to the platform code.
   134		 */
   135		int (*plat_power_up) (struct mcam_camera *cam);
   136		void (*plat_power_down) (struct mcam_camera *cam);
   137		void (*calc_dphy) (struct mcam_camera *cam);
   138	
   139		/*
   140		 * Everything below here is private to the mcam core and
   141		 * should not be touched by the platform code.
   142		 */
   143		struct v4l2_device v4l2_dev;
   144		struct v4l2_ctrl_handler ctrl_handler;
   145		enum mcam_state state;
   146		unsigned long flags;		/* Buffer status, mainly (dev_lock) */
   147	
   148		struct mcam_frame_state frame_state;	/* Frame state counter */
   149		/*
   150		 * Subsystem structures.
   151		 */
   152		struct video_device vdev;
   153		struct v4l2_async_notifier notifier;
   154		struct v4l2_async_subdev asd;
   155		struct v4l2_subdev *sensor;
   156	
   157		/* Videobuf2 stuff */
   158		struct vb2_queue vb_queue;
   159		struct list_head buffers;	/* Available frames */
   160	
   161		unsigned int nbufs;		/* How many are alloc'd */
   162		int next_buf;			/* Next to consume (dev_lock) */
   163	
   164		char bus_info[32];		/* querycap bus_info */
   165	
   166		/* DMA buffers - vmalloc mode */
   167	#ifdef MCAM_MODE_VMALLOC
   168		unsigned int dma_buf_size;	/* allocated size */
   169		void *dma_bufs[MAX_DMA_BUFS];	/* Internal buffer addresses */
   170		dma_addr_t dma_handles[MAX_DMA_BUFS]; /* Buffer bus addresses */
   171		struct tasklet_struct s_tasklet;
   172	#endif
   173		unsigned int sequence;		/* Frame sequence number */
   174		unsigned int buf_seq[MAX_DMA_BUFS]; /* Sequence for individual bufs */
   175	
   176		/* DMA buffers - DMA modes */
   177		struct mcam_vb_buffer *vb_bufs[MAX_DMA_BUFS];
   178	
   179		/* Mode-specific ops, set at open time */
   180		void (*dma_setup)(struct mcam_camera *cam);
   181		void (*frame_complete)(struct mcam_camera *cam, int frame);
   182	
   183		/* Current operating parameters */
   184		struct v4l2_pix_format pix_format;
   185		u32 mbus_code;
   186	
   187		/* Locks */
   188		struct mutex s_mutex; /* Access to this structure */
   189	};
   190	
   191	

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 52267 bytes --]

  reply	other threads:[~2018-11-05 13:22 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-05  7:30 [PATCH 0/11] media: make Marvell camera work on DT-based OLPC XO-1.75 Lubomir Rintel
2018-11-05  7:30 ` [PATCH 01/11] media: ov7670: hook s_power onto v4l2 core Lubomir Rintel
2018-11-05  7:30 ` [PATCH 02/11] media: ov7670: control clock along with power Lubomir Rintel
2018-11-05  7:30 ` [PATCH 03/11] media: dt-bindings: marvell,mmp2-ccic: Add Marvell MMP2 camera Lubomir Rintel
2018-11-05  7:30 ` [PATCH 04/11] [media] marvell-ccic: fix DMA s/g desc number calculation Lubomir Rintel
2018-11-05  7:30 ` [PATCH 05/11] [media] marvell-ccic: don't generate EOF on parallel bus Lubomir Rintel
2018-11-05  9:07   ` Pavel Machek
2018-11-05  7:30 ` [PATCH 06/11] [media] marvell-ccic: drop ctlr_reset() Lubomir Rintel
2018-11-05  9:11   ` Pavel Machek
2018-11-05  7:30 ` [PATCH 07/11] [media] marvell-ccic: drop unused stuff Lubomir Rintel
2018-11-05  9:17   ` Pavel Machek
2018-11-05  7:30 ` [PATCH 08/11] [media] marvell-ccic/mmp: enable clock before accessing registers Lubomir Rintel
2018-11-05  9:17   ` Pavel Machek
2018-11-05  7:30 ` [PATCH 09/11] [media] marvell-ccic/mmp: add devicetree support Lubomir Rintel
2018-11-05  9:20   ` Pavel Machek
2018-11-05  7:30 ` [PATCH 10/11] [media] marvell-ccic: use async notifier to get the sensor Lubomir Rintel
2018-11-05  7:30 ` [PATCH 11/11] [media] marvell-ccic: provide a clock for " Lubomir Rintel
2018-11-05 13:01   ` kbuild test robot [this message]
2018-11-07  4:42   ` Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201811052143.Vd2Sac3V%fengguang.wu@intel.com \
    --to=lkp@intel.com \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=kbuild-all@01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=lkundrak@v3.sk \
    --cc=mark.rutland@arm.com \
    --cc=mchehab@kernel.org \
    --cc=pavel@ucw.cz \
    --cc=quozl@laptop.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®