Hi Andy, kernel test robot noticed the following build warnings: [auto build test WARNING on soc/for-next] [also build test WARNING on linus/master v6.9-rc4 next-20240417] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/mmc-atmel-mci-Get-rid-of-platform-data-leftovers/20240418-005915 base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next patch link: https://lore.kernel.org/r/20240417165708.2965612-5-andriy.shevchenko%40linux.intel.com patch subject: [PATCH v1 4/5] mmc: atmel-mci: Incapsulate used to be a platform data into host structure config: arm-defconfig (https://download.01.org/0day-ci/archive/20240418/202404180428.bZDYDFAE-lkp@xxxxxxxxx/config) compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240418/202404180428.bZDYDFAE-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202404180428.bZDYDFAE-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/mmc/host/atmel-mci.c:378: warning: Function parameter or struct member 'pdata' not described in 'atmel_mci' vim +378 drivers/mmc/host/atmel-mci.c 65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30 245 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 246 /** 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 247 * struct atmel_mci - MMC controller state shared between all slots 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 248 * @lock: Spinlock protecting the queue and associated data. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 249 * @regs: Pointer to MMIO registers. 796211b7953bd1 Ludovic Desroches 2011-08-11 250 * @sg: Scatterlist entry currently being processed by PIO or PDC code. f51874b7ec92cb Lee Jones 2020-07-01 251 * @sg_len: Size of the scatterlist 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 252 * @pio_offset: Offset into the current scatterlist entry. 7a90dcc2d7ceb6 Ludovic Desroches 2012-05-16 253 * @buffer: Buffer used if we don't have the r/w proof capability. We 7a90dcc2d7ceb6 Ludovic Desroches 2012-05-16 254 * don't have the time to switch pdc buffers so we have to use only 7a90dcc2d7ceb6 Ludovic Desroches 2012-05-16 255 * one buffer for the full transaction. 7a90dcc2d7ceb6 Ludovic Desroches 2012-05-16 256 * @buf_size: size of the buffer. f51874b7ec92cb Lee Jones 2020-07-01 257 * @buf_phys_addr: buffer address needed for pdc. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 258 * @cur_slot: The slot which is currently using the controller. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 259 * @mrq: The request currently being processed on @cur_slot, 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 260 * or NULL if the controller is idle. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 261 * @cmd: The command currently being sent to the card, or NULL. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 262 * @data: The data currently being transferred, or NULL if no data 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 263 * transfer is in progress. 796211b7953bd1 Ludovic Desroches 2011-08-11 264 * @data_size: just data->blocks * data->blksz. 65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30 265 * @dma: DMA client state. 65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30 266 * @data_chan: DMA channel being used for the current data transfer. f51874b7ec92cb Lee Jones 2020-07-01 267 * @dma_conf: Configuration for the DMA slave 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 268 * @cmd_status: Snapshot of SR taken upon completion of the current 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 269 * command. Only valid when EVENT_CMD_COMPLETE is pending. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 270 * @data_status: Snapshot of SR taken upon completion of the current 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 271 * data transfer. Only valid when EVENT_DATA_COMPLETE or 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 272 * EVENT_DATA_ERROR is pending. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 273 * @stop_cmdr: Value to be loaded into CMDR when the stop command is 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 274 * to be sent. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 275 * @tasklet: Tasklet running the request state machine. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 276 * @pending_events: Bitmask of events flagged by the interrupt handler 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 277 * to be processed by the tasklet. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 278 * @completed_events: Bitmask of events which the state machine has 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 279 * processed. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 280 * @state: Tasklet state. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 281 * @queue: List of slots waiting for access to the controller. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 282 * @need_clock_update: Update the clock rate before the next request. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 283 * @need_reset: Reset controller before next request. 24011f346471f7 Ludovic Desroches 2012-05-16 284 * @timer: Timer to balance the data timeout error flag which cannot rise. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 285 * @mode_reg: Value of the MR register. 74791a2dc8dc2a Nicolas Ferre 2009-12-14 286 * @cfg_reg: Value of the CFG register. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 287 * @bus_hz: The rate of @mck in Hz. This forms the basis for MMC bus 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 288 * rate and timeout calculations. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 289 * @mapbase: Physical address of the MMIO registers. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 290 * @mck: The peripheral bus clock hooked up to the MMC controller. d9faa6e8381c3a Andy Shevchenko 2024-04-17 291 * @dev: Device associated with the MMC controller. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 292 * @slot: Slots sharing this MMC controller. 796211b7953bd1 Ludovic Desroches 2011-08-11 293 * @caps: MCI capabilities depending on MCI version. 796211b7953bd1 Ludovic Desroches 2011-08-11 294 * @prepare_data: function to setup MCI before data transfer which 796211b7953bd1 Ludovic Desroches 2011-08-11 295 * depends on MCI capabilities. 796211b7953bd1 Ludovic Desroches 2011-08-11 296 * @submit_data: function to start data transfer which depends on MCI 796211b7953bd1 Ludovic Desroches 2011-08-11 297 * capabilities. 796211b7953bd1 Ludovic Desroches 2011-08-11 298 * @stop_transfer: function to stop data transfer which depends on MCI 796211b7953bd1 Ludovic Desroches 2011-08-11 299 * capabilities. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 300 * 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 301 * Locking 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 302 * ======= 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 303 * 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 304 * @lock is a softirq-safe spinlock protecting @queue as well as 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 305 * @cur_slot, @mrq and @state. These must always be updated 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 306 * at the same time while holding @lock. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 307 * 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 308 * @lock also protects mode_reg and need_clock_update since these are 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 309 * used to synchronize mode register updates with the queue 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 310 * processing. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 311 * 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 312 * The @mrq field of struct atmel_mci_slot is also protected by @lock, 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 313 * and must always be written at the same time as the slot is added to 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 314 * @queue. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 315 * 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 316 * @pending_events and @completed_events are accessed using atomic bit 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 317 * operations, so they don't need any locking. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 318 * 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 319 * None of the fields touched by the interrupt handler need any 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 320 * locking. However, ordering is important: Before EVENT_DATA_ERROR or 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 321 * EVENT_DATA_COMPLETE is set in @pending_events, all data-related 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 322 * interrupts must be disabled and @data_status updated with a 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 323 * snapshot of SR. Similarly, before EVENT_CMD_COMPLETE is set, the 25985edcedea63 Lucas De Marchi 2011-03-30 324 * CMDRDY interrupt must be disabled and @cmd_status updated with a 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 325 * snapshot of SR, and before EVENT_XFER_COMPLETE can be set, the 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 326 * bytes_xfered field of @data must be written. This is ensured by 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 327 * using barriers. 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 328 */ 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 329 struct atmel_mci { 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 330 spinlock_t lock; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 331 void __iomem *regs; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 332 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 333 struct scatterlist *sg; bdbc5d0c60f3e9 Terry Barnaby 2013-04-08 334 unsigned int sg_len; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 335 unsigned int pio_offset; 7a90dcc2d7ceb6 Ludovic Desroches 2012-05-16 336 unsigned int *buffer; 7a90dcc2d7ceb6 Ludovic Desroches 2012-05-16 337 unsigned int buf_size; 7a90dcc2d7ceb6 Ludovic Desroches 2012-05-16 338 dma_addr_t buf_phys_addr; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 339 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 340 struct atmel_mci_slot *cur_slot; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 341 struct mmc_request *mrq; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 342 struct mmc_command *cmd; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 343 struct mmc_data *data; 796211b7953bd1 Ludovic Desroches 2011-08-11 344 unsigned int data_size; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 345 65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30 346 struct atmel_mci_dma dma; 65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30 347 struct dma_chan *data_chan; e2b35f3dbfc080 Viresh Kumar 2012-02-01 348 struct dma_slave_config dma_conf; 65e8b083fc8ec3 Haavard Skinnemoen 2008-07-30 349 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 350 u32 cmd_status; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 351 u32 data_status; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 352 u32 stop_cmdr; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 353 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 354 struct tasklet_struct tasklet; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 355 unsigned long pending_events; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 356 unsigned long completed_events; c06ad2580dca4e Haavard Skinnemoen 2008-07-31 357 enum atmel_mci_state state; 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 358 struct list_head queue; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 359 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 360 bool need_clock_update; 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 361 bool need_reset; 24011f346471f7 Ludovic Desroches 2012-05-16 362 struct timer_list timer; 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 363 u32 mode_reg; 74791a2dc8dc2a Nicolas Ferre 2009-12-14 364 u32 cfg_reg; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 365 unsigned long bus_hz; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 366 unsigned long mapbase; 7d2be0749a5909 Haavard Skinnemoen 2008-06-30 367 struct clk *mck; d9faa6e8381c3a Andy Shevchenko 2024-04-17 368 struct device *dev; 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 369 e20b1c52f08695 Andy Shevchenko 2024-04-17 370 struct mci_slot_pdata pdata[ATMCI_MAX_NR_SLOTS]; 2c96a293bbd6b3 Ludovic Desroches 2011-08-11 371 struct atmel_mci_slot *slot[ATMCI_MAX_NR_SLOTS]; 796211b7953bd1 Ludovic Desroches 2011-08-11 372 796211b7953bd1 Ludovic Desroches 2011-08-11 373 struct atmel_mci_caps caps; 796211b7953bd1 Ludovic Desroches 2011-08-11 374 796211b7953bd1 Ludovic Desroches 2011-08-11 375 u32 (*prepare_data)(struct atmel_mci *host, struct mmc_data *data); 796211b7953bd1 Ludovic Desroches 2011-08-11 376 void (*submit_data)(struct atmel_mci *host, struct mmc_data *data); 796211b7953bd1 Ludovic Desroches 2011-08-11 377 void (*stop_transfer)(struct atmel_mci *host); 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 @378 }; 965ebf33ea5afb Haavard Skinnemoen 2008-09-17 379 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki