Hi Songjun, [auto build test WARNING on linuxtv-media/master] [also build test WARNING on v4.6-rc3 next-20160413] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system] url: https://github.com/0day-ci/linux/commits/Songjun-Wu/atmel-isc-add-driver-for-Atmel-ISC/20160413-155337 base: git://linuxtv.org/media_tree.git master config: tile-allmodconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=tile All warnings (new ones prefixed by >>): drivers/media/platform/atmel/atmel-isc.c:67:18: error: field 'hw' has incomplete type drivers/media/platform/atmel/atmel-isc.c: In function 'isc_clk_enable': >> drivers/media/platform/atmel/atmel-isc.c:247:28: warning: initialization from incompatible pointer type [enabled by default] drivers/media/platform/atmel/atmel-isc.c:247:28: warning: (near initialization for 'isc_clk') [enabled by default] drivers/media/platform/atmel/atmel-isc.c: In function 'isc_clk_disable': drivers/media/platform/atmel/atmel-isc.c:280:28: warning: initialization from incompatible pointer type [enabled by default] drivers/media/platform/atmel/atmel-isc.c:280:28: warning: (near initialization for 'isc_clk') [enabled by default] drivers/media/platform/atmel/atmel-isc.c: In function 'isc_clk_is_enabled': drivers/media/platform/atmel/atmel-isc.c:295:28: warning: initialization from incompatible pointer type [enabled by default] drivers/media/platform/atmel/atmel-isc.c:295:28: warning: (near initialization for 'isc_clk') [enabled by default] drivers/media/platform/atmel/atmel-isc.c: In function 'isc_clk_recalc_rate': drivers/media/platform/atmel/atmel-isc.c:309:28: warning: initialization from incompatible pointer type [enabled by default] drivers/media/platform/atmel/atmel-isc.c:309:28: warning: (near initialization for 'isc_clk') [enabled by default] drivers/media/platform/atmel/atmel-isc.c: At top level: drivers/media/platform/atmel/atmel-isc.c:315:14: warning: 'struct clk_rate_request' declared inside parameter list [enabled by default] drivers/media/platform/atmel/atmel-isc.c:315:14: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default] drivers/media/platform/atmel/atmel-isc.c: In function 'isc_clk_determine_rate': drivers/media/platform/atmel/atmel-isc.c:324:2: error: implicit declaration of function 'clk_hw_get_num_parents' [-Werror=implicit-function-declaration] drivers/media/platform/atmel/atmel-isc.c:325:3: error: implicit declaration of function 'clk_hw_get_parent_by_index' [-Werror=implicit-function-declaration] drivers/media/platform/atmel/atmel-isc.c:325:10: warning: assignment makes pointer from integer without a cast [enabled by default] drivers/media/platform/atmel/atmel-isc.c:329:3: error: implicit declaration of function 'clk_hw_get_rate' [-Werror=implicit-function-declaration] drivers/media/platform/atmel/atmel-isc.c:335:15: error: dereferencing pointer to incomplete type drivers/media/platform/atmel/atmel-isc.c:335: confused by earlier errors, bailing out vim +247 drivers/media/platform/atmel/atmel-isc.c 61 enum isc_clk_id { 62 ISC_ISPCK = 0, 63 ISC_MCK = 1, 64 }; 65 66 struct isc_clk { > 67 struct clk_hw hw; 68 struct clk *clk; 69 struct regmap *regmap; 70 spinlock_t *lock; 71 enum isc_clk_id id; 72 u32 div; 73 u8 parent_id; 74 }; 75 76 struct isc_buffer { 77 struct vb2_v4l2_buffer vb; 78 struct list_head list; 79 }; 80 81 struct isc_subdev_entity { 82 struct v4l2_subdev *sd; 83 struct v4l2_async_subdev *asd; 84 struct v4l2_async_notifier notifier; 85 86 u32 hsync_active; 87 u32 vsync_active; 88 u32 pclk_sample; 89 90 struct list_head list; 91 }; 92 93 /* 94 * struct isc_format - ISC media bus format information 95 * @fourcc: Fourcc code for this format 96 * @isc_mbus_code: V4L2 media bus format code if ISC is preferred 97 * @sd_mbus_code: V4L2 media bus format code if subdev is preferred 98 * @bpp: Bytes per pixel (when stored in memory) 99 * @reg_sd_bps: reg value for bits per sample if subdev is preferred 100 * (when transferred over a bus) 101 * @reg_isc_bps: reg value for bits per sample if ISC is preferred 102 * (when transferred over a bus) 103 * @pipeline: pipeline switch if ISC is preferred 104 * @isc_support: ISC can convert raw format to this format 105 * @sd_support: Subdev supports this format 106 */ 107 struct isc_format { 108 u32 fourcc; 109 u32 isc_mbus_code; 110 u32 sd_mbus_code; 111 112 u8 bpp; 113 114 u32 reg_sd_bps; 115 u32 reg_isc_bps; 116 117 u32 reg_wb_cfg; 118 u32 reg_cfa_cfg; 119 u32 reg_rlp_mode; 120 u32 reg_dcfg_imode; 121 u32 reg_dctrl_dview; 122 123 u32 pipeline; 124 125 bool isc_support; 126 bool sd_support; 127 }; 128 129 struct isc_device { 130 struct regmap *regmap; 131 struct clk *hclock; 132 struct clk *ispck; 133 struct isc_clk isc_clks[2]; 134 135 struct device *dev; 136 struct v4l2_device v4l2_dev; 137 struct video_device video_dev; 138 139 struct vb2_queue vb2_vidq; 140 struct vb2_alloc_ctx *alloc_ctx; 141 142 spinlock_t dma_queue_lock; 143 struct list_head dma_queue; 144 struct isc_buffer *cur_frm; 145 unsigned int sequence; 146 bool stop; 147 148 struct v4l2_format fmt; 149 150 struct isc_format **user_formats; 151 int num_user_formats; 152 const struct isc_format *current_fmt; 153 154 struct mutex lock; 155 156 struct isc_subdev_entity *current_subdev; 157 struct list_head subdev_entities; 158 }; 159 160 struct reg_mask { 161 u32 reg; 162 u32 mask; 163 }; 164 165 /* WB-->CFA-->CC-->GAM-->CSC-->CBC-->SUB422-->SUB420 */ 166 const struct reg_mask pipeline_regs[] = { 167 { ISC_WB_CTRL, ISC_WB_CTRL_MASK }, 168 { ISC_CFA_CTRL, ISC_CFA_CTRL_MASK }, 169 { ISC_CC_CTRL, ISC_CC_CTRL_MASK }, 170 { ISC_GAM_CTRL, ISC_GAM_CTRL_MASK | ISC_GAM_CTRL_ALL_CHAN_MASK }, 171 { ISC_CSC_CTRL, ISC_CSC_CTRL_MASK }, 172 { ISC_CBC_CTRL, ISC_CBC_CTRL_MASK }, 173 { ISC_SUB422_CTRL, ISC_SUB422_CTRL_MASK }, 174 { ISC_SUB420_CTRL, ISC_SUB420_CTRL_MASK } 175 }; 176 177 #define RAW_FMT_INDEX_START 0 178 #define RAW_FMT_INDEX_END 11 179 #define ISC_FMT_INDEX_START 12 180 #define ISC_FMT_INDEX_END 12 181 182 /* 183 * index(0~11): raw formats. 184 * index(12~12): the formats which can be converted from raw format by ISC. 185 * index(): the formats which can only be provided by subdev. 186 */ 187 static struct isc_format isc_formats[] = { 188 {V4L2_PIX_FMT_SBGGR8, MEDIA_BUS_FMT_SBGGR8_1X8, MEDIA_BUS_FMT_SBGGR8_1X8, 189 1, ISC_PFE_CFG0_BPS_EIGHT, ISC_PFE_CFG0_BPS_EIGHT, ISC_WB_CFG_BAYCFG_BGBG, 190 ISC_CFA_CFG_BAY_BGBG, ISC_RLP_CFG_MODE_DAT8, ISC_DCFG_IMODE_PACKED8, 191 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 192 {V4L2_PIX_FMT_SGBRG8, MEDIA_BUS_FMT_SGBRG8_1X8, MEDIA_BUS_FMT_SGBRG8_1X8, 193 1, ISC_PFE_CFG0_BPS_EIGHT, ISC_PFE_CFG0_BPS_EIGHT, ISC_WB_CFG_BAYCFG_GBGB, 194 ISC_CFA_CFG_BAY_GBGB, ISC_RLP_CFG_MODE_DAT8, ISC_DCFG_IMODE_PACKED8, 195 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 196 {V4L2_PIX_FMT_SGRBG8, MEDIA_BUS_FMT_SGRBG8_1X8, MEDIA_BUS_FMT_SGRBG8_1X8, 197 1, ISC_PFE_CFG0_BPS_EIGHT, ISC_PFE_CFG0_BPS_EIGHT, ISC_WB_CFG_BAYCFG_GRGR, 198 ISC_CFA_CFG_BAY_GRGR, ISC_RLP_CFG_MODE_DAT8, ISC_DCFG_IMODE_PACKED8, 199 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 200 {V4L2_PIX_FMT_SRGGB8, MEDIA_BUS_FMT_SRGGB8_1X8, MEDIA_BUS_FMT_SRGGB8_1X8, 201 1, ISC_PFE_CFG0_BPS_EIGHT, ISC_PFE_CFG0_BPS_EIGHT, ISC_WB_CFG_BAYCFG_RGRG, 202 ISC_CFA_CFG_BAY_RGRG, ISC_RLP_CFG_MODE_DAT8, ISC_DCFG_IMODE_PACKED8, 203 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 204 205 {V4L2_PIX_FMT_SBGGR10, MEDIA_BUS_FMT_SBGGR10_1X10, MEDIA_BUS_FMT_SBGGR10_1X10, 206 2, ISC_PFG_CFG0_BPS_TEN, ISC_PFG_CFG0_BPS_TEN, ISC_WB_CFG_BAYCFG_BGBG, 207 ISC_CFA_CFG_BAY_BGBG, ISC_RLP_CFG_MODE_DAT10, ISC_DCFG_IMODE_PACKED16, 208 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 209 {V4L2_PIX_FMT_SGBRG10, MEDIA_BUS_FMT_SGBRG10_1X10, MEDIA_BUS_FMT_SGBRG10_1X10, 210 2, ISC_PFG_CFG0_BPS_TEN, ISC_PFG_CFG0_BPS_TEN, ISC_WB_CFG_BAYCFG_GBGB, 211 ISC_CFA_CFG_BAY_GBGB, ISC_RLP_CFG_MODE_DAT10, ISC_DCFG_IMODE_PACKED16, 212 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 213 {V4L2_PIX_FMT_SGRBG10, MEDIA_BUS_FMT_SGRBG10_1X10, MEDIA_BUS_FMT_SGRBG10_1X10, 214 2, ISC_PFG_CFG0_BPS_TEN, ISC_PFG_CFG0_BPS_TEN, ISC_WB_CFG_BAYCFG_GRGR, 215 ISC_CFA_CFG_BAY_GRGR, ISC_RLP_CFG_MODE_DAT10, ISC_DCFG_IMODE_PACKED16, 216 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 217 {V4L2_PIX_FMT_SRGGB10, MEDIA_BUS_FMT_SRGGB10_1X10, MEDIA_BUS_FMT_SRGGB10_1X10, 218 2, ISC_PFG_CFG0_BPS_TEN, ISC_PFG_CFG0_BPS_TEN, ISC_WB_CFG_BAYCFG_RGRG, 219 ISC_CFA_CFG_BAY_RGRG, ISC_RLP_CFG_MODE_DAT10, ISC_DCFG_IMODE_PACKED16, 220 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 221 222 {V4L2_PIX_FMT_SBGGR12, MEDIA_BUS_FMT_SBGGR12_1X12, MEDIA_BUS_FMT_SBGGR12_1X12, 223 2, ISC_PFG_CFG0_BPS_TWELVE, ISC_PFG_CFG0_BPS_TWELVE, ISC_WB_CFG_BAYCFG_BGBG, 224 ISC_CFA_CFG_BAY_BGBG, ISC_RLP_CFG_MODE_DAT12, ISC_DCFG_IMODE_PACKED16, 225 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 226 {V4L2_PIX_FMT_SGBRG12, MEDIA_BUS_FMT_SGBRG12_1X12, MEDIA_BUS_FMT_SGBRG12_1X12, 227 2, ISC_PFG_CFG0_BPS_TWELVE, ISC_PFG_CFG0_BPS_TWELVE, ISC_WB_CFG_BAYCFG_GBGB, 228 ISC_CFA_CFG_BAY_GBGB, ISC_RLP_CFG_MODE_DAT12, ISC_DCFG_IMODE_PACKED16, 229 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 230 {V4L2_PIX_FMT_SGRBG12, MEDIA_BUS_FMT_SGRBG12_1X12, MEDIA_BUS_FMT_SGRBG12_1X12, 231 2, ISC_PFG_CFG0_BPS_TWELVE, ISC_PFG_CFG0_BPS_TWELVE, ISC_WB_CFG_BAYCFG_GRGR, 232 ISC_CFA_CFG_BAY_GRGR, ISC_RLP_CFG_MODE_DAT12, ISC_DCFG_IMODE_PACKED16, 233 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 234 {V4L2_PIX_FMT_SRGGB12, MEDIA_BUS_FMT_SRGGB12_1X12, MEDIA_BUS_FMT_SRGGB12_1X12, 235 2, ISC_PFG_CFG0_BPS_TWELVE, ISC_PFG_CFG0_BPS_TWELVE, ISC_WB_CFG_BAYCFG_RGRG, 236 ISC_CFA_CFG_BAY_RGRG, ISC_RLP_CFG_MODE_DAT12, ISC_DCFG_IMODE_PACKED16, 237 ISC_DCTRL_DVIEW_PACKED, 0x0, false, false}, 238 239 {V4L2_PIX_FMT_YUYV, MEDIA_BUS_FMT_YUYV8_2X8, MEDIA_BUS_FMT_YUYV8_2X8, 240 2, ISC_PFE_CFG0_BPS_EIGHT, ISC_PFE_CFG0_BPS_EIGHT, ISC_WB_CFG_BAYCFG_BGBG, 241 ISC_CFA_CFG_BAY_BGBG, ISC_RLP_CFG_MODE_DAT8, ISC_DCFG_IMODE_PACKED8, 242 ISC_DCTRL_DVIEW_PACKED, 0x7f, false, false}, 243 }; 244 245 static int isc_clk_enable(struct clk_hw *hw) 246 { > 247 struct isc_clk *isc_clk = to_isc_clk(hw); 248 u32 id = isc_clk->id; 249 struct regmap *regmap = isc_clk->regmap; 250 unsigned long flags; --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data