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 --]
next prev parent 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®